熊 威 衛(wèi) 鑫 吳延軍
(中國(guó)人民解放軍91550部隊(duì) 大連 116023)
隨著武器控制技術(shù)的不斷發(fā)展和1553B總線優(yōu)越性的體現(xiàn)[1~4],1553B總線技術(shù)在新一代武控系統(tǒng)中的應(yīng)用越來越廣泛。在武器系統(tǒng)試驗(yàn)和演習(xí)中,為了對(duì)武控系統(tǒng)功能性能進(jìn)行分析和故障定位,需要通過1553B總線技術(shù),采集武控系統(tǒng)中的一些關(guān)鍵信息[5]?;噩F(xiàn)有的武控系統(tǒng)1553B總線檢測(cè)設(shè)備分別針對(duì)不同型號(hào)設(shè)計(jì),不同型號(hào)間不能通用。開展新型號(hào)試驗(yàn),需要重新開發(fā)新的配套檢測(cè)系統(tǒng),這樣不但浪費(fèi)資源,而且與裝備通用化的發(fā)展要求不符[6~7]。針對(duì)上述問題,分析了武控系統(tǒng)1553B總線通信特征,綜合運(yùn)用1553B總線通信技術(shù)、數(shù)據(jù)庫(kù)和動(dòng)態(tài)鏈接庫(kù)等技術(shù),設(shè)計(jì)了一套基于1553B總線的武控系統(tǒng)信息檢測(cè)裝置。該裝置針對(duì)不同型號(hào)武控系統(tǒng),為用戶提供自定義檢測(cè)內(nèi)容與解析規(guī)則功能,靈活地實(shí)現(xiàn)了不同型號(hào)間的通用功能。
在基于1553B總線的武控系統(tǒng)中,接入總線的各子系統(tǒng)分別充當(dāng)控制器(BC)和遠(yuǎn)程終端(RT,最多可有31個(gè)),通過1553B總線實(shí)現(xiàn)信息無縫融合、快速處理。信息檢測(cè)裝置相當(dāng)于BM,只接收并按照事先設(shè)置的篩選條件,快速地從1553B總線上過濾并解析出部分關(guān)鍵數(shù)據(jù),不向總線發(fā)送任何信息[8]。
1553B總線數(shù)據(jù)以字(命令字、狀態(tài)字和數(shù)據(jù)字)為基本單位進(jìn)行傳輸[9]。如圖1所示,每個(gè)字包含20位(3位同步頭,16位信息段,1位奇偶校驗(yàn))。命令字信息段由5位RT地址、1位收發(fā)標(biāo)志、5位RT子地址和5位數(shù)據(jù)字計(jì)數(shù)長(zhǎng)度(最長(zhǎng)可為32個(gè)數(shù)據(jù)字)組成;數(shù)據(jù)字信息段為有效數(shù)據(jù)負(fù)載,即為檢測(cè)目標(biāo)信息;狀態(tài)字信息段由5位RT地址、8位通信狀態(tài)和3個(gè)備用位組成[10~11]。
1553B總線共具有10種消息類型,其中,常規(guī)消息類型(BC→RT、RT→BC、RT→RT)為信息檢測(cè)裝置的檢測(cè)范圍。分析常規(guī)消息塊結(jié)構(gòu)可知,BC→RT消息塊結(jié)構(gòu)為“接收命令字+若干個(gè)數(shù)據(jù)字+RT狀態(tài)字”;RT→BC消息塊結(jié)構(gòu)為“發(fā)送命令字+RT狀態(tài)字+若干個(gè)數(shù)據(jù)字”;RT→RT消息塊結(jié)構(gòu)為“接收命令字+發(fā)送命令字+發(fā)送方RT狀態(tài)字+若干個(gè)數(shù)據(jù)字+接收方RT狀態(tài)字”。
1553B總線各終端間接口通信協(xié)議、終端表示方法、消息內(nèi)部格式和數(shù)據(jù)字結(jié)構(gòu)均由接口控制文檔(ICD)根據(jù)控置策略和目標(biāo)定義,具有很大靈活性,數(shù)據(jù)解析通常就是根據(jù)ICD進(jìn)行的,因此,ICD定義的靈活性增加了數(shù)據(jù)解析的難度,這也是檢測(cè)系統(tǒng)實(shí)現(xiàn)通用功能的難點(diǎn)所在。
硬件設(shè)計(jì)方面,堅(jiān)持實(shí)用、小型便攜和可擴(kuò)展的思想,充分考慮使用環(huán)境以及研發(fā)生產(chǎn)成本和周期,最終采用“加固便攜式工控機(jī)+1553B總線測(cè)試板卡”的方案,設(shè)計(jì)了一套小型便攜、外形加固的硬件平臺(tái)。板卡用于數(shù)據(jù)采集,工控機(jī)用于參數(shù)設(shè)置、檢測(cè)控制和數(shù)據(jù)存儲(chǔ)、解析等。
工控機(jī)選用天瀚智能生產(chǎn)的RL-15A-I7便攜式軍用加固計(jì)算機(jī),該計(jì)算機(jī)基于InterI7-3610M處理器,全面支持Win7、Linux系統(tǒng);接口多樣化,適配性好、可擴(kuò)展性強(qiáng),便于通信和快速接收檢測(cè)數(shù)據(jù);存儲(chǔ)容量大,為大量檢測(cè)數(shù)據(jù)提供足夠的存儲(chǔ)空間。1553B總線板卡選用陜西正鴻航科電子有限公司研發(fā)的ZHHK1553B-USB多功能板卡。該板卡為一體鋁殼設(shè)計(jì)雙通道雙冗余多功能卡,支持多種工作模、多種消息和幀重發(fā),通訊速率快,數(shù)據(jù)存儲(chǔ)容量大,同時(shí)配套可靠驅(qū)動(dòng)程序和豐富靈活的接口函數(shù),支持多種操作系統(tǒng)和多種開發(fā)平臺(tái)。工控機(jī)與板卡間通過USB接口通信,整個(gè)裝置體積小、質(zhì)量輕、便攜、外形堅(jiān)固不易受損,環(huán)境適應(yīng)性強(qiáng),特別適合軍用。
軟件系統(tǒng)是實(shí)現(xiàn)檢測(cè)裝置各功能和通用性的關(guān)鍵,屬于系統(tǒng)設(shè)計(jì)的核心部分[12]。軟件設(shè)計(jì)主要包括自檢測(cè)試、消息過濾和數(shù)據(jù)解析三大部分。采用VC++2010開發(fā)平臺(tái)設(shè)計(jì)。
自檢測(cè)試主要包括兩方面。一是通過調(diào)用板卡自帶函數(shù)M1553_Open(),檢查系統(tǒng)各部件連接和板卡在線及打開狀態(tài)。若函數(shù)返回值為真,則表示線路正常,板卡在線并正常打開;若返回值為假,則反之;二是通過比較當(dāng)前通道與另一通道收發(fā)數(shù)據(jù)內(nèi)容是否相同,檢查數(shù)據(jù)通道狀態(tài)。將當(dāng)前使用的通道和另一通道分別設(shè)置為BC和RT模式,并相互形成回路,進(jìn)行數(shù)據(jù)收發(fā)。根據(jù)收發(fā)內(nèi)容是否相同,判斷數(shù)據(jù)通道是否良好。
消息過濾采用命令字過濾方法,根據(jù)命令字中“RT地址”、“R/T標(biāo)志”和“RT子地址”判斷是否為檢測(cè)目標(biāo)。1553B板卡提供了過濾表結(jié)構(gòu)和過濾函數(shù)MT_SetCmdFilterTable()。調(diào)用過濾函數(shù),即可根據(jù)過濾表設(shè)置完成消息過濾,并將過濾下來的消息存儲(chǔ)到1553B數(shù)據(jù)文件中。此處軟件界面面向用戶靈活設(shè)計(jì),用戶可根據(jù)實(shí)際檢測(cè)需求和ICD中的相關(guān)定義,在界面上輸入過濾表格賦值,完成過濾條件的自定義設(shè)置。
由于該板卡有多個(gè)通道和多種工作模式(BC、RT、BM),因此需要進(jìn)行通道選擇和模式設(shè)置等初始化工作。數(shù)據(jù)接收有查詢和中斷兩種方式,1553B數(shù)據(jù)信息量大,為提高效率,選擇中斷接收方式較合適。消息過濾程序流程見圖2。
存儲(chǔ)到1553B數(shù)據(jù)文件中的是復(fù)雜的機(jī)器碼。需要經(jīng)過解析處理,才能具有物理意義的信息轉(zhuǎn)化為方便用戶判讀的格式。數(shù)據(jù)解析軟件包括消息定義、數(shù)據(jù)字分類存儲(chǔ)和數(shù)據(jù)解析三大部分。
圖2 消息過濾流程圖
4.3.1 消息定義
為實(shí)現(xiàn)通用,首先進(jìn)行消息定義設(shè)計(jì)。消息定義設(shè)計(jì)包括消息類型定義和數(shù)據(jù)字信息段定義,是軟件實(shí)現(xiàn)用戶界面自定義解析規(guī)則功能的關(guān)鍵。消息定義數(shù)據(jù)量不大,選用桌面級(jí)數(shù)據(jù)庫(kù)Access,具備良好的可維護(hù)性和易用性。
消息類型定義。命令字位于每條消息的起始位置,消息類型主要由1553B消息命令字結(jié)構(gòu)中的RT地址、R/T標(biāo)識(shí)和子地址三者聯(lián)合確定,每種組合分別對(duì)應(yīng)一類消息。針對(duì)每種組合,軟件程序在數(shù)據(jù)庫(kù)消息分類表中建立對(duì)應(yīng)字段,同時(shí)補(bǔ)充一個(gè)全局標(biāo)識(shí)符字段存放每種組合獨(dú)有的分類標(biāo)識(shí),來表示和區(qū)分消息類型。當(dāng)用戶在消息類型定義界面輸入消息名、RT地址、R/T標(biāo)識(shí)和子地址后,程序?qū)⑤斎雰?nèi)容存入消息分類表中,數(shù)據(jù)庫(kù)引擎同時(shí)生成分類標(biāo)識(shí)符(見圖3)。
圖3 消息分類示意圖
數(shù)據(jù)字信息段定義。數(shù)據(jù)字內(nèi)部結(jié)構(gòu)由ICD確定,具有物理意義的信息按照ICD設(shè)計(jì)的規(guī)則被分段包含在數(shù)據(jù)字中,因此,可根據(jù)具體物理含義將數(shù)據(jù)字分為若干子段,每個(gè)子段分別包含一種物理信息。子段信息可根據(jù)對(duì)應(yīng)基本數(shù)據(jù)類型通過運(yùn)算得到??捎赏N基本數(shù)據(jù)類型通過相同運(yùn)算得到的子段信息稱為同類子段,即同類子項(xiàng)對(duì)應(yīng)同一運(yùn)算過程,軟件程序?qū)⑼愖佣芜\(yùn)算參數(shù)集中保存在同一張子段參數(shù)表中,分別用不同字段描述。不同類型子段創(chuàng)建不同參數(shù)表。運(yùn)算參數(shù)包括子段起始位、長(zhǎng)度、單位、符號(hào)等。分類標(biāo)識(shí)符作為索引字段與每個(gè)子段的參數(shù)合并記錄,存儲(chǔ)到對(duì)應(yīng)子段參數(shù)表中,如圖4所示。
圖4 子段參數(shù)存儲(chǔ)示意圖
4.3.2 數(shù)據(jù)字分類存儲(chǔ)
數(shù)據(jù)字是最終解析對(duì)象,數(shù)據(jù)字分類存儲(chǔ)是否正確合理會(huì)直接影響解析與分析過程。因此,數(shù)據(jù)字分類儲(chǔ)過程設(shè)計(jì),既要考慮正確可靠地將數(shù)據(jù)字記錄下來,又要便于解析過程,需要按照一定的格式將數(shù)據(jù)字記錄到數(shù)據(jù)庫(kù)中。數(shù)據(jù)字記錄過程包括總線消息分類和數(shù)據(jù)字標(biāo)記存儲(chǔ)兩步。原始消息通常包含一個(gè)控制字、一個(gè)或兩個(gè)命令字、一個(gè)或兩個(gè)狀態(tài)字、若干數(shù)據(jù)字和消息生成時(shí)間。程序先根據(jù)消息控制字的相關(guān)位,識(shí)別是否為RT→RT消息(包含兩個(gè)命令字),如果是,就找到確定分類的那個(gè)命令字;如果不是,則消息中只有一個(gè)命令字。然后程序會(huì)分析命令字中RT地址、R/T標(biāo)識(shí)和子地址,按消息分類表完成消息分類,并獲取分類標(biāo)識(shí)符。根據(jù)各類消息塊數(shù)據(jù)字相對(duì)位置和命令字中的數(shù)據(jù)字長(zhǎng)度信息,提取全部數(shù)據(jù)字,并以字節(jié)流方式與分類標(biāo)識(shí)符和生成時(shí)間合為一條記錄存入數(shù)據(jù)庫(kù)(消息分類標(biāo)識(shí)符和生成時(shí)間作為聯(lián)合索引標(biāo)志)。
圖5 數(shù)據(jù)字分類存儲(chǔ)程序流程圖
數(shù)據(jù)字分類存儲(chǔ)流程見圖5。數(shù)據(jù)字存儲(chǔ)涉及數(shù)據(jù)量大,檢索效率要求高,選用SQLServer數(shù)據(jù)庫(kù)能夠較好地滿足應(yīng)用要求。
4.3.3 數(shù)據(jù)字解析
數(shù)據(jù)字解析是利用子項(xiàng)參數(shù)表中的參數(shù),通過對(duì)應(yīng)的運(yùn)算過程,將數(shù)據(jù)字內(nèi)包含的各物理量信息,解析為便于用戶判讀格式的過程。
解析過程需要用到的各種運(yùn)算函數(shù)采用動(dòng)態(tài)鏈接庫(kù)編碼,便于靈活增加運(yùn)算過程或適當(dāng)修改。動(dòng)態(tài)鏈接庫(kù)中的每個(gè)運(yùn)算函數(shù)和子段表是一一對(duì)應(yīng)的,同一個(gè)子段表對(duì)應(yīng)的所有物理量數(shù)據(jù),可調(diào)用動(dòng)態(tài)鏈接庫(kù)中同一運(yùn)算函數(shù)來解析。消息分類標(biāo)識(shí)符與人機(jī)交互界面的數(shù)據(jù)類型名稱相互關(guān)聯(lián)的,它與生成時(shí)間在數(shù)據(jù)字存儲(chǔ)記錄中作為聯(lián)合查詢標(biāo)志。當(dāng)用戶選中數(shù)據(jù)類型名和生成時(shí)間進(jìn)行查詢時(shí),解析程序從數(shù)據(jù)字存儲(chǔ)數(shù)據(jù)庫(kù)中得到對(duì)應(yīng)的記錄后,再?gòu)淖佣螀?shù)表找到帶相同分類標(biāo)識(shí)符的記錄,針對(duì)每條子段參數(shù)記錄,程序分別反復(fù)調(diào)用所在參數(shù)表對(duì)應(yīng)動(dòng)態(tài)鏈接庫(kù)中的運(yùn)算過程,對(duì)查詢到的數(shù)據(jù)字記錄進(jìn)行集中解析并帶檢索標(biāo)記存儲(chǔ)解析結(jié)果。
圖6 數(shù)據(jù)字解析程序流程圖
檢索標(biāo)記由分類標(biāo)識(shí)符、子段名和生成時(shí)間聯(lián)合組成,分類標(biāo)識(shí)符、子段名分別對(duì)應(yīng)武控系統(tǒng)某類數(shù)據(jù)和其中的單項(xiàng)物理量數(shù)據(jù),便于分類查詢。當(dāng)所有子段參數(shù)記錄都使用完,查詢數(shù)據(jù)解析完成,并將全部解析結(jié)果顯示給用戶。數(shù)據(jù)字解析程序流程見圖6。
針對(duì)使用中的武控系統(tǒng)1553B總線信息檢測(cè)設(shè)備通用性差的現(xiàn)實(shí)問題,設(shè)計(jì)了基于1553B總線的武控系統(tǒng)測(cè)裝置。通過初步驗(yàn)證表明,該裝置穩(wěn)定可靠,使用方便,靈活實(shí)現(xiàn)了在不同型號(hào)武控系統(tǒng)間通用的功能。