呂曉峰,馬登武,曲曉燕
(海軍航空工程學(xué)院,山東 煙臺(tái) 264001)
懸掛物管理系統(tǒng)[1-2](又稱為武器控制系統(tǒng))在一方為飛行員及火力控制系統(tǒng)、另一方為導(dǎo)彈的兩者之間執(zhí)行接口功能,用于管理和控制載機(jī)所攜帶的導(dǎo)彈,完成戰(zhàn)斗和訓(xùn)練中對(duì)導(dǎo)彈的加熱、供電和發(fā)射等任務(wù)。某型飛機(jī)武器控制系統(tǒng)是以武器控制系統(tǒng)計(jì)算機(jī)為核心,采用ARINC429總線信號(hào)與武器接口組件、交聯(lián)組件、操作控制臺(tái)等12個(gè)通道進(jìn)行信息交聯(lián),傳遞與武器發(fā)射控制相關(guān)的信息,此信息稱為武器控制系統(tǒng)交聯(lián)信息。而“飛機(jī)-發(fā)射架-導(dǎo)彈”接口間的發(fā)射控制信號(hào)為“27V/OPEN”和“GND/OPEN”等開關(guān)量,包括飛機(jī)向?qū)梻鬏數(shù)墓╇?、制冷、?zhàn)術(shù)發(fā)射等信號(hào)和導(dǎo)彈向飛機(jī)傳輸?shù)膾燧d指示、導(dǎo)彈準(zhǔn)備好等信號(hào)。
可擴(kuò)展標(biāo)記語言(eXtensible Markup Language,XML)[3]作為描述數(shù)據(jù)表現(xiàn)的一種形式,它借助 DTD或XSD來靈活定義標(biāo)記從而可以表示任意數(shù)據(jù);在結(jié)構(gòu)化數(shù)據(jù)的表示方面,由于XML文件本身就是一種樹狀結(jié)構(gòu),因此它更能直觀地反映數(shù)據(jù)本身的特征;在信息呈現(xiàn)方面,由于XML可以自定義標(biāo)記和屬性,當(dāng)待表述的信息較復(fù)雜時(shí),它具有得天獨(dú)厚的優(yōu)勢(shì);在可擴(kuò)展方面,由于用戶可以隨時(shí)定義自己的標(biāo)記或?qū)傩詠肀硎緮?shù)據(jù),因此具備良好的可擴(kuò)展性和可移植性。以往表示武器控制系統(tǒng)交聯(lián)信號(hào)等元信息常采用電子表格或特定的數(shù)據(jù)結(jié)構(gòu),必須以二進(jìn)制形式存檔于文件才方便計(jì)算機(jī)處理,人們?cè)陂喿x時(shí)很不直觀。XML文件實(shí)際上是一種特定格式的文本文檔,在計(jì)算機(jī)處理方面,W3C等組織已開發(fā)了眾多優(yōu)秀的API接口非常方便于計(jì)算機(jī)解析,因此具備良好的人機(jī)可讀性。
通過分析武器控制系統(tǒng)交聯(lián)信息發(fā)現(xiàn),它具有高度結(jié)構(gòu)化的特點(diǎn),因此,采用XML來表示這些信息,當(dāng)今后交聯(lián)信息需要擴(kuò)展或重定義時(shí),只要增加或修改XML文件相應(yīng)的標(biāo)記或?qū)傩约纯?,而無需修改應(yīng)用程序。本文通過XML解析采集的交聯(lián)信息數(shù)據(jù)文件來分析武器發(fā)射控制信號(hào)。
ARINC429總線數(shù)據(jù)傳輸[4]是一種串行通信。其數(shù)據(jù)信息通過一對(duì)單向、差分耦合、雙絞屏蔽線傳輸。在傳輸信息時(shí),ARINC429數(shù)據(jù)總線的碼型為32位雙極性歸零碼,如圖1所示,發(fā)送的脈沖有3個(gè)電平:高電平(+6.5~+13 V)、低電平(-13~-6.5 V)、零電平(-2.5~ +2.5 V),分別對(duì)應(yīng)邏輯1、邏輯0和本身的時(shí)鐘脈沖。數(shù)據(jù)交換方式是異步進(jìn)行的,數(shù)據(jù)傳送速度為50 kb/s。
圖1 ARINC429總線數(shù)據(jù)傳輸Fig.1 Transmission of ARINC429 bus data
對(duì)于某型飛機(jī)武器控制系統(tǒng)內(nèi)部傳輸?shù)?2位ARINC429總線信息,32位為一個(gè)字,字的前8位為地址位,第32位為奇偶校驗(yàn)位,第9~31位為信息位,某一位或者某兩位的組合表示一個(gè)武器發(fā)射控制信號(hào)。
通過WinHex軟件分析采集得到的交聯(lián)信息文件可知,信息按數(shù)據(jù)幀保存,每幀64位二進(jìn)制數(shù),共8個(gè)字節(jié),表示的含義如圖2所示。
圖2 采集數(shù)據(jù)格式Fig.2 Format of acquired data
通過對(duì)二進(jìn)制交聯(lián)信息進(jìn)行分析可知,它每一位的含義分明,可通過位運(yùn)算來表述特定的含義,數(shù)據(jù)結(jié)構(gòu)清晰,非常適合XML來表示。對(duì)于該交聯(lián)信息分析系統(tǒng),首先采用樹結(jié)構(gòu)模型對(duì)交聯(lián)信息進(jìn)行建模,將樹結(jié)構(gòu)映射到XML文件對(duì)象樹,實(shí)現(xiàn)了交聯(lián)信息的XML表示,摒棄以往以電子表格或特定數(shù)據(jù)結(jié)構(gòu)等二進(jìn)制方式表示不方便閱讀以及修改、擴(kuò)展困難的缺點(diǎn);然后,對(duì)XML文件進(jìn)行解析[5],由于它本身是一種樹狀結(jié)構(gòu),它的解析實(shí)際上是樹的遍歷過程,現(xiàn)有的解析接口十分豐富,隨取隨用;最后,編寫應(yīng)用程序,通過調(diào)用XML解析API完成對(duì)源數(shù)據(jù)的分析、處理與顯示??傮w方案如圖3所示,利用XML解析交聯(lián)信息的基本步驟為:1)建立統(tǒng)一規(guī)范的XML文件;2)對(duì)文件進(jìn)行解析,獲得需要的數(shù)據(jù);3)數(shù)據(jù)計(jì)算與顯示。
圖3 總體方案Fig.3 Overall plan
此交聯(lián)信息的XML文件應(yīng)根據(jù)交聯(lián)信息碼的邏輯定義關(guān)系,采用位運(yùn)算方法確定,如表1、表2所示。表1為飛機(jī)傳輸給導(dǎo)彈的控制信號(hào)交聯(lián)信息邏輯定義,表2為導(dǎo)彈傳輸給飛機(jī)的反饋信號(hào)交聯(lián)信息邏輯定義。以“導(dǎo)彈加溫”指令和“發(fā)動(dòng)機(jī)點(diǎn)火”指令為例進(jìn)行分析。
表1 控制信號(hào)邏輯定義Table 1 Logic definition of controlling signal
“導(dǎo)彈加溫”指令為ARINC429串行碼9~31位中的某一位表示一個(gè)指令的情形,當(dāng)32位中的第18位為邏輯“1”時(shí),表示存在“導(dǎo)彈加溫”指令,考慮將ARINC429數(shù)據(jù)中的第9~32位與V1(0x4000)做“與”運(yùn)算,當(dāng)結(jié)果為V2(0x4000)時(shí)該信號(hào)存在,結(jié)果為V3(0)時(shí)信號(hào)不存在。
“發(fā)動(dòng)機(jī)點(diǎn)火”指令為某兩位的組合表示一個(gè)指令的情形,當(dāng)?shù)?1/12位的組合為“0/1”時(shí),表示存在“發(fā)動(dòng)機(jī)點(diǎn)火”指令,考慮將ARINC429數(shù)據(jù)中的第9~32位與 V1(0x300000)做“與”運(yùn)算,當(dāng)結(jié)果為 V2(0x100000)時(shí)該信號(hào)存在,結(jié)果為V3(0x200000)時(shí)信號(hào)不存在,因?yàn)槲淦骺刂葡到y(tǒng)硬件電路要求當(dāng)某兩位的組合表示一個(gè)指令時(shí),兩位數(shù)值互不相等,因此,“與”運(yùn)算后的結(jié)果不會(huì)為V1。
表2 反饋信號(hào)邏輯定義Table 2 Logic definition of feedback signal
以上分析得知,根據(jù)“通道號(hào)→前8位地址→9~31位中的某一位或某兩位組合”即可定位到具體某個(gè)發(fā)射控制信號(hào),因此,XML文件定義各個(gè)彈型參數(shù)應(yīng)該包含參數(shù)名、通道號(hào)、地址和位運(yùn)算等信息,對(duì)于不同的武器類型,我們定義各類“武器類型”標(biāo)記,在這個(gè)標(biāo)記下,再定義子標(biāo)記來表示各種控制信號(hào),子標(biāo)記定義一些屬性,包括通道號(hào)、地址和位運(yùn)算關(guān)系等。
XML文件采用節(jié)點(diǎn)樹的形式來表示,文檔中的每一部分都是樹的一個(gè)節(jié)點(diǎn),可以通過節(jié)點(diǎn)樹訪問文檔的內(nèi)容,并根據(jù)需要修改文檔。XML文件示例如下:
XML解析就是對(duì)讀入的XML文件進(jìn)行結(jié)構(gòu)解碼和信息檢索。當(dāng)前主流的XML文件解析方式有兩種:DOM(Document Object Mode)解析[6-7]和 SAX(Simple API for XML)解析[8]。SAX解析技術(shù)適用于流式XML解析,但不支持多標(biāo)記同步訪問。DOM解析器首先遍歷整個(gè)文檔,構(gòu)建Document對(duì)象,以樹形方式建模XML數(shù)據(jù),解決了多標(biāo)記訪問問題。
DOM解析方式[9]采用面向?qū)ο竽P秃鸵幌盗薪涌趤砻枋鯴ML文件的內(nèi)容和結(jié)構(gòu)。它采用節(jié)點(diǎn)樹的形式來表示XML文件,文檔中的每一部分都是樹的一個(gè)節(jié)點(diǎn),可以通過節(jié)點(diǎn)樹訪問文檔的內(nèi)容,并根據(jù)需要修改文檔,且由于DOM解析方式所用的樹結(jié)構(gòu)的思想與XML文件的結(jié)構(gòu)相吻合,因此,該XML文件采用DOM解析方式,C++Builder平臺(tái)已提供了現(xiàn)成的DOM解析接口,非常方便調(diào)用。
C++Builder有處理XML文件讀寫的類和庫函數(shù),XML文件中主要包含各種彈型的參數(shù)信息及其運(yùn)算關(guān)系,XML類(接口)_di_IXMLDocument獲取XML結(jié)點(diǎn)實(shí)際上就是樹的遍歷[10]。XML解析過程部分程序如下:
通過解析交聯(lián)信息XML文件,可得到相應(yīng)的通道號(hào)、前8位地址、9~31位數(shù)據(jù)和位運(yùn)算關(guān)系。同時(shí),根據(jù)“通道號(hào)→前8位地址→9~31位中的某一位或某兩位組合”即可定位到具體某個(gè)發(fā)射控制信號(hào)。因此,通過位運(yùn)算,將ARINC429數(shù)據(jù)中的第9~32位與V1做“與”運(yùn)算,當(dāng)結(jié)果為V2時(shí)該信號(hào)存在(邏輯“1”),結(jié)果為 V3時(shí)信號(hào)不存在(邏輯“0”)。以橫坐標(biāo)表示采集時(shí)間,縱坐標(biāo)表示計(jì)算結(jié)果,XML解析結(jié)果顯示曲線部分如圖4所示(部分區(qū)間放大后),曲線直觀顯示了飛機(jī)武器控制系統(tǒng)內(nèi)部交聯(lián)信息。
圖4 XML解析數(shù)據(jù)曲線Fig.4 Curve of XML parsing data
由于歷史遺留或技術(shù)封鎖等原因,在開發(fā)機(jī)載或地面飛行數(shù)據(jù)處理程序上,對(duì)元數(shù)據(jù)表示的方法和結(jié)構(gòu)比較混亂,沒有遵從特定的標(biāo)準(zhǔn)或協(xié)議,因此,在二次開發(fā)上往往比較困難,本文提出的基于XML的數(shù)據(jù)表示方法不僅具備先天的可移植、可擴(kuò)展的優(yōu)勢(shì),而且方便人機(jī)閱讀和處理,勢(shì)必是今后元數(shù)據(jù)表示的方向。
[1]王朝陽,季曉光,丁全心.機(jī)載懸掛物管理系統(tǒng)技術(shù)發(fā)展分析[J].電光與控制,2009,16(3):1-5.
[2]馮金富,孫杰,胡俊華,等.懸掛物管理系統(tǒng)[M].北京:國防工業(yè)出版社,2009.
[3]丁躍潮,張濤.XML實(shí)用教程[M].北京:北京大學(xué)出版社,2006.
[4]李寰宇,王勇,劉安.基于PCI的多通道ARINC429總線接口卡設(shè)計(jì)[J].電光與控制,2009,16(2):72-75.
[5]馮進(jìn),丁博,史殿習(xí),等.XML解析技術(shù)研究[J].計(jì)算機(jī)科學(xué)與工程,2009,31(2):120-124.
[6]Document Object Model(DOM)[EB/OL].[2007-08-20].http://www.w3.org/DOM/.
[7]W3C Recommendation,Document Object Model(DOM)/[EB/OL].[2005-01-19]http://www.w3.org/DOM/.
[8]About SAX [EB/OL].[2007-08-20]http://www.sax-project.org/.
[9]郭紅艷,楊波,金蓓弘.高效DOM實(shí)現(xiàn)的技術(shù)研究[J].計(jì)算機(jī)科學(xué),2006,33(6):274-277.
[10]Fabio Arciniegas.XML開發(fā)指南[M].北京:清華大學(xué)出版社,2003.