吕晓峰,马登武,曲晓燕
(海军航空工程学院,山东 烟台 264001)
悬挂物管理系统[1-2](又称为武器控制系统)在一方为飞行员及火力控制系统、另一方为导弹的两者之间执行接口功能,用于管理和控制载机所携带的导弹,完成战斗和训练中对导弹的加热、供电和发射等任务。某型飞机武器控制系统是以武器控制系统计算机为核心,采用ARINC429总线信号与武器接口组件、交联组件、操作控制台等12个通道进行信息交联,传递与武器发射控制相关的信息,此信息称为武器控制系统交联信息。而“飞机-发射架-导弹”接口间的发射控制信号为“27V/OPEN”和“GND/OPEN”等开关量,包括飞机向导弹传输的供电、制冷、战术发射等信号和导弹向飞机传输的挂载指示、导弹准备好等信号。
可扩展标记语言(eXtensible Markup Language,XML)[3]作为描述数据表现的一种形式,它借助 DTD或XSD来灵活定义标记从而可以表示任意数据;在结构化数据的表示方面,由于XML文件本身就是一种树状结构,因此它更能直观地反映数据本身的特征;在信息呈现方面,由于XML可以自定义标记和属性,当待表述的信息较复杂时,它具有得天独厚的优势;在可扩展方面,由于用户可以随时定义自己的标记或属性来表示数据,因此具备良好的可扩展性和可移植性。以往表示武器控制系统交联信号等元信息常采用电子表格或特定的数据结构,必须以二进制形式存档于文件才方便计算机处理,人们在阅读时很不直观。XML文件实际上是一种特定格式的文本文档,在计算机处理方面,W3C等组织已开发了众多优秀的API接口非常方便于计算机解析,因此具备良好的人机可读性。
通过分析武器控制系统交联信息发现,它具有高度结构化的特点,因此,采用XML来表示这些信息,当今后交联信息需要扩展或重定义时,只要增加或修改XML文件相应的标记或属性即可,而无需修改应用程序。本文通过XML解析采集的交联信息数据文件来分析武器发射控制信号。
ARINC429总线数据传输[4]是一种串行通信。其数据信息通过一对单向、差分耦合、双绞屏蔽线传输。在传输信息时,ARINC429数据总线的码型为32位双极性归零码,如图1所示,发送的脉冲有3个电平:高电平(+6.5~+13 V)、低电平(-13~-6.5 V)、零电平(-2.5~ +2.5 V),分别对应逻辑1、逻辑0和本身的时钟脉冲。数据交换方式是异步进行的,数据传送速度为50 kb/s。
图1 ARINC429总线数据传输Fig.1 Transmission of ARINC429 bus data
对于某型飞机武器控制系统内部传输的32位ARINC429总线信息,32位为一个字,字的前8位为地址位,第32位为奇偶校验位,第9~31位为信息位,某一位或者某两位的组合表示一个武器发射控制信号。
通过WinHex软件分析采集得到的交联信息文件可知,信息按数据帧保存,每帧64位二进制数,共8个字节,表示的含义如图2所示。
图2 采集数据格式Fig.2 Format of acquired data
通过对二进制交联信息进行分析可知,它每一位的含义分明,可通过位运算来表述特定的含义,数据结构清晰,非常适合XML来表示。对于该交联信息分析系统,首先采用树结构模型对交联信息进行建模,将树结构映射到XML文件对象树,实现了交联信息的XML表示,摒弃以往以电子表格或特定数据结构等二进制方式表示不方便阅读以及修改、扩展困难的缺点;然后,对XML文件进行解析[5],由于它本身是一种树状结构,它的解析实际上是树的遍历过程,现有的解析接口十分丰富,随取随用;最后,编写应用程序,通过调用XML解析API完成对源数据的分析、处理与显示。总体方案如图3所示,利用XML解析交联信息的基本步骤为:1)建立统一规范的XML文件;2)对文件进行解析,获得需要的数据;3)数据计算与显示。
图3 总体方案Fig.3 Overall plan
此交联信息的XML文件应根据交联信息码的逻辑定义关系,采用位运算方法确定,如表1、表2所示。表1为飞机传输给导弹的控制信号交联信息逻辑定义,表2为导弹传输给飞机的反馈信号交联信息逻辑定义。以“导弹加温”指令和“发动机点火”指令为例进行分析。
表1 控制信号逻辑定义Table 1 Logic definition of controlling signal
“导弹加温”指令为ARINC429串行码9~31位中的某一位表示一个指令的情形,当32位中的第18位为逻辑“1”时,表示存在“导弹加温”指令,考虑将ARINC429数据中的第9~32位与V1(0x4000)做“与”运算,当结果为V2(0x4000)时该信号存在,结果为V3(0)时信号不存在。
“发动机点火”指令为某两位的组合表示一个指令的情形,当第11/12位的组合为“0/1”时,表示存在“发动机点火”指令,考虑将ARINC429数据中的第9~32位与 V1(0x300000)做“与”运算,当结果为 V2(0x100000)时该信号存在,结果为V3(0x200000)时信号不存在,因为武器控制系统硬件电路要求当某两位的组合表示一个指令时,两位数值互不相等,因此,“与”运算后的结果不会为V1。
表2 反馈信号逻辑定义Table 2 Logic definition of feedback signal
以上分析得知,根据“通道号→前8位地址→9~31位中的某一位或某两位组合”即可定位到具体某个发射控制信号,因此,XML文件定义各个弹型参数应该包含参数名、通道号、地址和位运算等信息,对于不同的武器类型,我们定义各类“武器类型”标记,在这个标记下,再定义子标记来表示各种控制信号,子标记定义一些属性,包括通道号、地址和位运算关系等。
XML文件采用节点树的形式来表示,文档中的每一部分都是树的一个节点,可以通过节点树访问文档的内容,并根据需要修改文档。XML文件示例如下:
XML解析就是对读入的XML文件进行结构解码和信息检索。当前主流的XML文件解析方式有两种:DOM(Document Object Mode)解析[6-7]和 SAX(Simple API for XML)解析[8]。SAX解析技术适用于流式XML解析,但不支持多标记同步访问。DOM解析器首先遍历整个文档,构建Document对象,以树形方式建模XML数据,解决了多标记访问问题。
DOM解析方式[9]采用面向对象模型和一系列接口来描述XML文件的内容和结构。它采用节点树的形式来表示XML文件,文档中的每一部分都是树的一个节点,可以通过节点树访问文档的内容,并根据需要修改文档,且由于DOM解析方式所用的树结构的思想与XML文件的结构相吻合,因此,该XML文件采用DOM解析方式,C++Builder平台已提供了现成的DOM解析接口,非常方便调用。
C++Builder有处理XML文件读写的类和库函数,XML文件中主要包含各种弹型的参数信息及其运算关系,XML类(接口)_di_IXMLDocument获取XML结点实际上就是树的遍历[10]。XML解析过程部分程序如下:
通过解析交联信息XML文件,可得到相应的通道号、前8位地址、9~31位数据和位运算关系。同时,根据“通道号→前8位地址→9~31位中的某一位或某两位组合”即可定位到具体某个发射控制信号。因此,通过位运算,将ARINC429数据中的第9~32位与V1做“与”运算,当结果为V2时该信号存在(逻辑“1”),结果为 V3时信号不存在(逻辑“0”)。以横坐标表示采集时间,纵坐标表示计算结果,XML解析结果显示曲线部分如图4所示(部分区间放大后),曲线直观显示了飞机武器控制系统内部交联信息。
图4 XML解析数据曲线Fig.4 Curve of XML parsing data
由于历史遗留或技术封锁等原因,在开发机载或地面飞行数据处理程序上,对元数据表示的方法和结构比较混乱,没有遵从特定的标准或协议,因此,在二次开发上往往比较困难,本文提出的基于XML的数据表示方法不仅具备先天的可移植、可扩展的优势,而且方便人机阅读和处理,势必是今后元数据表示的方向。
[1]王朝阳,季晓光,丁全心.机载悬挂物管理系统技术发展分析[J].电光与控制,2009,16(3):1-5.
[2]冯金富,孙杰,胡俊华,等.悬挂物管理系统[M].北京:国防工业出版社,2009.
[3]丁跃潮,张涛.XML实用教程[M].北京:北京大学出版社,2006.
[4]李寰宇,王勇,刘安.基于PCI的多通道ARINC429总线接口卡设计[J].电光与控制,2009,16(2):72-75.
[5]冯进,丁博,史殿习,等.XML解析技术研究[J].计算机科学与工程,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实现的技术研究[J].计算机科学,2006,33(6):274-277.
[10]Fabio Arciniegas.XML开发指南[M].北京:清华大学出版社,2003.