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