舒传华, 唐海波, 曹 赣
(中国太原卫星发射中心试验技术部 太原 030027)
近年来陆续在导弹武器等飞行器系统中引入1553B总线技术[1~4],大大减少了飞行器上设备及电缆数量,减轻了飞行器重量,同时高可靠双冗余1553B总线系统的应用,也大幅增加了信号可靠性,简化了测试流程。采用1553B总线后,飞行器上模拟信号转变为数字信号传输,实现了飞行器上信号数字化,满足了信息化要求,同时有利于各设备进行通用化设计,便于拓展功能。
1553B总线在我国的标准是GJB289A-97《数字式时分制指令/响应型多路传输数据总线》[5],总线上传输的消息由总线系统中的总线监控器记录下来。对于导弹武器等飞行试验,获得导弹在飞行过程中弹体各系统尤其是控制系统的状态参数和飞行弹道等数据是试验目的之一,为此总线监控器通过接口与无线遥测连接。总线监控器以消息为基本单位对1553B总线上传输的数据进行接收记录,并对消息数据进行打包,然后每固定周期XXms传输一组(每组数据包括多个消息),再经统一编帧后进行无线遥测传输,在地面接收端对这些先打包再编帧的总线数据作解析处理,得到弹体状态参数和飞行弹道等数据。
1553B总线技术的引入,对飞行器上遥测测量体制[6]是一个较大的改变,同时也带来了遥测数据处理[7,8]的巨大改变。与传统测量方式下的遥测数据相比,1553B总线数据在遥测帧中数据量大、采样率高(每秒达七万个采样点以上),在不同飞行器应用中往往总线数据架构设计复杂、格式不完全规范统一,因此1553B总线数据处理需要两大步:第一步解析其中包含的各类消息;第二步按消息内格式由原码计算消息中的各参数。1553B总线在消息解析处理上要求高、技术难度大,包含某些重要参数(如指令参数)的消息点数有时极为有限,有的只在一个遥测帧中传输消息数据,有的甚至在一个遥测帧中只传送一次消息数据,因此必须尽量解析出该参数所在的这唯一一条消息,这对遥测数据处理提出了很大的挑战。
由于1553B总线数据处理结果就是对解析出的消息原码的直接计算,因此消息解析是1553B总线数据处理的核心。本文通过分析1553B总线数据架构特点及该特点对1553B总线消息解析方法的具体要求和影响,提出并实现了基于1553B总线数据架构特点的消息解析方法。该方法已多次应用于飞行试验任务数据处理中,效果良好,对其它新型飞行器1553B总线数据处理具有借鉴意义。最后,通过多次解析处理实践发现,架构格式设计影响着解析消息结果的准确性和完整性,因此建议架构设计应更规范统一。
如前所述,在地面接收端需要处理先打包再编帧的总线数据,因此总线数据架构的主要特点体现在消息包格式和对每组数据编帧时插入的填充特征码及可能需要的其它组特征信息。消息包内容主要包括这条消息和打包所用的附加信息,消息包格式详细介绍了消息包中各字节的含义和对应的数据内容,它还反映了具体消息内容的剪裁情况和消息中字的高低位排序等情况。
下面介绍四种常见的1553B总线数据架构格式,并对它们的特点进行分析。其中经常提到的“消息”和“字”的含义可参见GJB289A-97标准,现简要说明如下:
字:字是一个信息序列,它包括同步头、16位信息段及一个奇偶校验位。有三种类型的字:指令字、状态字和数据字。一般情况下,记录下的总线数据中指令字、状态字和数据字只包含字中的16位信息段内容,即字长为2字节。1553B总线字格式如图1所示。
消息:消息是包括一个指令字、一个状态字(或出现在远程终端到远程终端传输时的两个指令字、两个状态字)、若干个数据字(字数从0到32不等)及状态响应间隔的传输序列。即一条消息的标准长度N为(非远程终端到远程终端传输时):指令字长(2字节)+状态字长(2字节)+m个数据字长(2m字节);对于远程终端到远程终端传输,消息的标准长度N为:指令字长(4字节)+状态字长(4字节)+m个数据字长(2m字节)。
图1 1553B总线字格式Fig.1 The word format of 1553B bus
1.1.1 1553B总线数据架构格式一
1553B总线数据架构格式一的消息包格式见表1,其中MT指总线监控器,N为根据命令字由GJB289A-97标准计算的标准消息长度,它是命令字、数据字和状态字所占字节的总长。
编帧时插入的填充特征码为十六进制码0xZZ,未插入其它组特征信息。
架构特点:
①存在包头特征字:十六进制码0xXXYY,长度为2字节;
②存在数据长度信息:长度为1字节;
③存在总线监控器MT时间字和块状态字,长度各2字节,共占4字节;
④数据字/位指定:字的高字节在前,低字节在后,符合GJB289A-97标准;
⑤消息中包括命令字、状态字和数据字,架构设计上没有删掉状态字或剪裁数据字中的部分内容,也没有增加其它附加状态字,符合GJB289A-97标准。
1.1.2 1553B总线数据架构格式二
1553B总线数据架构格式二的消息包格式见表2。
表1 架构格式一1553B消息包格式Table 1 The 1553B message package format of frame format one
表2 架构格式二1553B消息包格式Table 2 The 1553B message package format of frame format two
编帧时插入的填充特征码为十六进制码0xZZ,未插入其它组特征信息。
架构特点:
①存在包头特征字:十六进制码0xXXYY,长度为2字节;
②存在数据长度信息:长度为1字节;
③存在总线监控器MT时间字和块状态字,长度各为2字节,共占4字节;
④数据字/位指定:字的低字节在前,高字节在后,不符合GJB289A-97标准,处理时需要进行高低字节交换;
⑤消息中包括命令字、状态字和数据字,架构设计上没有删掉状态字或剪裁数据字中的部分内容,也没有增加其它附加状态字,符合GJB289A-97标准。
1.1.3 1553B总线数据架构格式三
1553B总线数据架构格式三的消息包格式有两种,分别见表3和表4。
表3 架构格式三1553B消息包格式1Table 3 The 1553B message package format one of frame format three
表4 架构格式三1553B消息包格式2Table 4 The 1553B message package format two of frame format three
编帧时插入的填充特征码为十六进制码0xZZ,未插入其它组特征信息。
架构特点:
①不存在包头特征字;
②不存在数据长度信息;
③不存在总线监控器MT时间字和块状态字;
④数据字/位指定:字的高字节在前,低字节在后,符合GJB289A-97标准;
⑤消息中都包括命令字和数据字,但架构设计上在消息尾附加了错误状态字,并裁掉了部分消息内容中的状态字,在消息解析时必须注意这些差别,这些均不符合GJB289A-97标准;
⑥存在两种1553B消息包格式,这是裁掉了部分消息内容中的状态字所造成的不统一。
1.1.4 1553B总线数据架构格式四
1553B总线数据架构格式四的消息包格式也有两种,分别见表5和表6。
表5 架构格式四1553B消息包格式1Table 5 The 1553B message package format one of frame format four
表6 架构格式四1553B消息包格式2Table 6 The 1553B message package format two of frame format four
编帧时插入的填充特征码为十六进制码0xZZ,插入的其它组特征信息:将1553B总线数据在一个遥测帧中所占的有效长信息插入总线数据在该帧分路波道的第一波道中。
架构特点:
①不存在包头特征字;
②不存在数据长度信息;
③不存在总线监控器MT时间字和块状态字;
④数据字/位指定:字的高字节在前,低字节在后,符合GJB289A-97标准;
⑤消息中都包括命令字和数据字,但架构设计上裁掉了所有消息内容中的状态字,并裁减了部分消息数据字中的内容,在消息解析时必须注意这些差别,这些均不符合GJB289A-97标准。
⑥存在两种1553B消息包格式,这是裁掉了部分消息内容中p字节数据字所造成的不统一。
本节从消息包格式、编帧时插入的填充特征码、插入的其它组特征信息等方面具体梳理分析以上四种常见架构格式的相同与不同之处,对其特点进行归纳总结,并进一步分析格式特点对总线消息解析处理的影响。
①从上述四种架构格式看,在不考虑消息内容具体裁剪情况时,消息包格式最大的不同之处在于它是否存在包头特征字。事实上,包头特征字是消息解析思路的关键要素,它用在对消息包头的识别上。对于不存在包头特征字的总线数据消息解析,为了确定消息头,就需要先确定消息头的标志码,通常使用数据处理文件中列出的各消息的命令字,此时各个需要解析的消息的命令字都成为了包头特征字。
②1553B总线数据在编帧传输时都插入了填充特征码,事实上,上述几种格式的特征码并不完全一致,具体的特征码内容需通过数据分析得出。结尾处是否存在预期的填充特征码是判断消息包是否合理完整的一种依据(还存在别的依据,如结尾处是否为某消息包头特征字等),这是消息解析时必须考虑的因素。只有对1.1.4节编帧时插入了有效长信息的架构格式进行总线数据消息解析例外,因为处理过程中在提取有效数据时已经滤掉了填充特征码,所以判断消息是否合理完整时不再考虑这类标志码。
③某些架构在1553B总线数据编帧传输时插入了其它组特征信息,如1.1.4节编帧时插入了有效长信息,在消息解析时必须先从每帧分路数据中提取出有效数据,然后才能进行下一步的消息解析处理。
④数据字/位指定给出了总线数据中字的高低字节的前后顺序,上述四种架构格式中高低字节前后顺序就不完全相同,数据处理时必须弄清楚数据字/位指定情况,按照GJB289A-97标准要求,字构成时高字节在前、低字节在后,如果总线数据中字的高低字节的前后顺序相反,如架构格式二,解析处理时就需要先将高低字节交换,否则将解析不出符合要求的消息。
⑤消息包格式和内容是架构格式特点的关键,在同一种架构格式下消息包的具体格式也可能存在多种情况(如1.1.3节和1.1.4节),处理时必须考虑这些细节。
⑥从上述四种架构格式看,只有格式一、二的消息内容符合GJB289A-97标准,架构设计上没有裁减或增加其它任何信息,格式三和四都存在裁减或增加情况,这给数据处理带来了很大的复杂度,解析时必须考虑具体情况,因为裁减或增加其它任何信息都会改变消息的长度,同时还要考虑这些改变只针对部分已裁减或已增加的具体消息对象。各种消息包的具体长度在消息解析时相当于步长因子,是必须考虑的重要因素。
在介绍消息解析方法之前,先说明总线数据中常见的消息类型,这里不考虑总线中广播操作产生的消息。
①总线控制消息,当子地址为0或31时,总线进行方式控制,此时总线消息数据中只有命令字和状态字,某些控制方式还带一个数据字,此时的总线数据用作总线方式控制情况分析,不进行第二步消息参数处理。
②常规消息,即远程终端和控制器之间或两个远程终端之间传输的消息,数据处理文件中列出的消息属于常规消息,这些消息解析后需进一步处理为各个参数。
③其他消息,它符合总线消息协议,但是不属于数据处理文件中规定的消息,这些消息数据可用于总线工作情况等后续分析。
④额外数据,是指因失锁等原因造成的不符合总线协议的消息数据以及远程终端处于忙碌状态时的总线数据,这些消息数据可用于总线工作情况等后续分析。
根据第1节关于1553B总线数据架构格式特点及对数据消息解析处理影响的分析,结合多次在试验任务中对总线数据进行消息解析的实践经验总结,提出了1553B总线数据消息解析消息包头特征字识别+步长计算+合理完整消息包结尾标志码判别的三步走方法,具体步骤如下:
①在1553B总线数据中逐两个字节顺序搜索消息包头特征字。
对不存在包头特征字的总线数据作消息解析时,将包头特征字设为各个需要解析消息的命令字,即任一个需要解析消息的命令字都是包头特征字;下文中不再对这两种消息包头特征字进行区分。
②搜索到消息包头特征字后,依据消息包格式的具体形式计算该消息包数据的总长度(不包括包头特征字),简称为步长。
针对架构格式一和二,利用消息包格式中数据长度信息计算步长,步长均为N+4+1。对于不存在数据长度信息的消息包格式,在搜索到包头特征字后,步长计算与以包头特征字为头的消息具体类型密切相关,即依据2.1节对消息类型的介绍,先判断消息类型是常规消息还是额外数据中的置忙消息,再根据消息类型具体计算步长。例如,架构格式三中存在状态字消息的步长为N(常规消息)或6(置忙消息),不存在状态字消息的步长为N-2(常规消息)或4(置忙消息);架构格式四中没有裁减数据字内容消息的步长为N-4(常规消息)或4(置忙消息),裁减了数据字中p字节内容消息的步长为N-p-4(常规消息)或4(置忙消息)。
③获取位于消息包头特征字后再跨步长后的两字节数据,判别这两字节数据是否是合理完整消息包结尾标志码,若是,则表明该消息包头特征字搜索正确,其后步长数据中包含了某条消息,依据消息包格式获取该消息内容,然后在结尾标志码开始处进行下一个消息包头特征字搜索识别,返回步骤①;若不是,直接返回步骤①。重复步骤①~③,直至数据结束。
其中对于填充特征码为0xZZ的总线数据消息解析,合理完整消息包结尾标志码包括0xZZ+0xZZ、消息包头特征字、0xZZ+消息包头特征字高字节0xXX,而不存在填充特征码的合理完整消息包结尾标志码只包括消息包头特征字。
由上述三步法可知,消息解析的关键在于消息包头特征字、步长和合理完整消息包结尾标志码三要素的判别。对于任何新型架构格式的1553B总线数据消息解析,只要从分析架构格式特点上着手,分析和弄清这三要素,即可按三步法合理准确完成消息解析。
在已合理正确分析判别出消息包头特征字、步长和合理完整消息包结尾标志码三要素的前提下,基于1553B总线数据架构特点的消息解析方法实现流程如图2所示。
图2 消息解析方法实现流程Fig.2 The flow chart of the message parsing method
该方法已多次应用于飞行试验任务遥测数据处理中,已合理、准确完成了六种具体架构格式下的1553B总线数据消息解析,应用效果良好,达到了准确解析消息的目的。
但是,在多次消息解析处理中发现,对类似于架构格式三或格式四的总线数据作消息解析时,本文方法存在以下几个方面的不足:
①对于架构格式三或格式四,由于缺少针对各种消息统一的消息包头特征字,所以只能解析出常规消息,即数据处理文件中列出的消息,但当这些消息的命令字存在误码时,消息就无法解析;而对于架构格式一或格式二,这类消息会解析在“其他消息”或“额外数据”中,当对这些数据进行分析时,就能判断出这条消息应该属于命令字出现误码的某条常规消息,在某些特殊情况下,如在某特征时刻进行关键状态分析时,这条消息很可能非常重要。
②可能带来个别条消息解析错误。事实上,这并不是方法的问题,而是缺少包头特征字或状态字给消息解析带来的软件上无法判别而导致的,只有通过人工参与分析数据才可能获取正确的消息。如存在某条消息A的命令字(只有命令字)后跟上某条消息B的一段数据,在消息A的长度大于消息B,且消息A后数据为合理完整消息包结尾标志码时,利用软件会判断这段数据为消息A,事实上,这段数据也可能为关于命令字A的置忙消息(无状态字)和一条消息B,究竟是一条消息A还是关于命令字A的置忙消息(无状态字)和一条消息B,在没有架构格式一或格式二中的消息包头特征字或在状态字省略的情况下,必须通过人工参与分析才能判别出来。
③由于缺少针对各种消息统一的消息包头特征字或各消息中的状态字,所以无法解析出总线控制消息、其他消息和额外数据,虽然这些消息在有些数据处理要求文件中并没有明确指出需要解析,但解析出总线数据中所有可能的消息,对分析系统总线的工作情况,尤其是消息载荷情况,具体掌握和分析总线工作过程都是十分重要的,是不可或缺的数据支撑。
④架构格式的不统一导致解析出来的消息原码在格式上也存在一定的差异,这对数据的利用分析造成一定的困扰,尤其对那些不熟悉架构格式特点的人员,但若要求利用分析数据的人员都熟悉掌握每一种具体的架构格式,也不太实际。
总之,类似架构格式三或格式四的这种缺少对各种消息统一的消息包头特征字和缺少状态字的架构格式,是非常不利于消息解析的,很可能会造成个别条消息解析错误或个别重要消息丢失(在误码情况下),还无法解析出总线控制消息、其他消息和额外数据,造成事后无法分析系统的工作过程和状态。另外,消息内容的随意删减或架构格式中数据字高低字节前后顺序不符合GJB289A-97标准这些细节都给消息解析处理增加了复杂度,所以建议系统总线数据架构格式应更加规范、标准和统一。
本文梳理了当前常见的几种1553B总线数据的架构特点,分析了架构格式对总线消息解析处理的影响,结合多次在试验任务中对总线数据进行消息解析的实践经验总结,提出并实现了基于总线数据架构特点的三步走消息解析方法,着重分析了消息解析的关键三要素:消息包头特征字、步长和合理完整消息包结尾标志码。该方法已多次应用于飞行试验任务数据处理中,效果良好,对其它新型飞行器系统的1553B总线数据处理具有借鉴意义。通过多次消息解析处理实践发现,架构格式设计影响着解析消息结果的准确性和完整性,因此建议架构设计应更规范统一。
[1]熊华钢.1553B总线通信技术的应用与发展[J].电子技术应用,1997,(8):27~28.Xiong Huagang.Application and Development of1553B Bus Communication Technology[J].Application of Electronic Technique,1997,(8):27 ~28.
[2]刘士全,隽 扬,蔡洁明,等.1553B总线应用发展研究[J].电子与封装,2013,13(12):12~15.Liu Shiquan,Juan Yang,Cai Jieming, et al.Research on the Application Development of 1553B Bus[J].Electronics&Packaging,2013,13(12):12 ~15.
[3]张传武,黄勤珍.Mil-Std-1553总线协议分析 [J].西南民族大学学报(自然科学版),2007,33(2):381~383.Zhang Chuanwu,Huang Qinzhen.Protocol Analysis of the Mil-Std-1553 Bus[J].Journal of Southwest University for Nationalities(Natural Science Edition),2007,33(2):381 ~383.
[4]安捷伦科技.MIL-STD-1553B总线简介及测试方法[J].国外电子测量技术,2011,30(2):1~3.Agilent Technologies.Introduction and TestMethod of the MIL-STD-1553B Bus[J].Foreign Electronic Measurement Technology,2011,30(2):1 ~3.
[5]中华人民共和国电子工业部.GJB289A-1997数字式时分制指令、响应型多路传输数据总线[S].北京:中国航空工业总公司,1996.
[6]邵发声.运载火箭遥测系统[M].北京:国防工业出版社,2004.
[7]杨延军.靶场数据处理技术[M].北京:国防工业出版社,2008.
[8]陈以恩.遥测数据处理[M].北京:国防工业出版社,2002.