山 寿 王 鹏
科学评价
网络化遥测数据实时处理软件设计
山 寿 王 鹏
本文针对C波段网络化遥测中新增的下行网络数据传输方式,提出了采用多协议融合、多线程并发处理、自动丢包控制的实时数据处理软件设计方案。为新一代网络化遥测飞行试验提供了技术支持。
如付诸现实将改变现有的飞行试验实时监控体系,极大程度的节省了频谱资源,并节省了高昂的同步板卡花费。
C波段网络化遥测在遥测网络系统中新增了双向、宽带射频网络数据链路(rfNET),大幅提高了飞行试验数据下行传输能力。针对C波段遥测网络数据处理中遇到的多数据流、多网络格式、多总线协议等特点,本文采用了数据分流处理、协议整合、数据包拥错控制以及多线程等方式,并结合某飞行试验平台,实现并验证了该网络化遥测数据实时处理软件的正确性和可靠性,为新一代网络化遥测飞行试验提供了技术支持。
遥测数据的实时处理是飞行试验工程中试飞监控的重要环节,对飞行试验的安全性和有效性有着重要影响。近年来,随着试飞技术的不断发展,监控需求的参数不断增加,航空机载设备的复杂程度不断增加,传统PCM流的传输方式已经不能满足当前飞行试验地面监控的需求。当前,C波段网络化遥测已经逐步进行小规模的试验验证,网络化遥测数据的实时处理势必成为未来我国飞行试验工程的重要组成部分。
本文通过结合某型号网络化遥测验证试验,详细地介绍了网络化遥测实时处理软件的解析过程、架构以及设计逻辑,并有效地解决了网络数据包丢包错序、视频与参数数据同步回放等问题。
结合网络化遥测数据的特点,并有效的利用机载网络格式格栅,定义主要包含参数结构与协议解析信息的HEA文件,实现参数数据与视频数据的有效分流、参数数据的提取以及参数数据与真实物理量的实时转换,最终实现遥测网络数据的实时接收处理功能与回放数据功能。
参数结构定义
网络化遥测数据是由机载测试采集系统对测试参数数据与视频数据同步进行采集与分发,采集的数据填充至多个网络数据包中,而网络数据包的格式又直接依赖于采集器的记录格式,结合飞行试验的特征,具体有如下特点。
1)多种数据包协议——由于网络化测试系统存在多种采集器,目前主要存在IENA与XNET/INET网络数据包格式。
2)参数多样分布——机载采集的参数的受制于机载采集设备与协议的定义,具体的参数数据由于字长的不同在数据包中的分布方式也有可能不同,存在机载设备将一个64位的字拆分为4个16位字填充到4个不同的网络数据包中这样的可能性。
3)参数数据与视频数据并存——网络化遥测机载设备将视频数据与参数数据同时分布于数据包中,因此在网络数据包的实时处理过程中必须考虑到视频数据与参数数据的分流与差异处理。
4)多总线多采样性——机载设备总线标准众多,涵盖了429总线、422总线、CAN总线、1394总线、FC总线以及其他航空机载总线,另外参数的采样率也不尽相同。
根据网络数据包的格式以及参数在数据包中的具体位置,并考虑到参数的字长、取位、校准类型以及采样率等特性,结合网络化遥测数据的特征,定义参数的具体结构为:
协议解析定义
目前网络数据包虽然大小不能固定,但其格式主要按照IENA与XNET/INET两种协议进行数据填充,协议不同其解析的方式也就不同,因此在提取数据时必须同时考虑两种标准的异同,提取出两种标准的共同点,方便软件的设计与实现。
表1 IENA协议数据包格式
表2 XNET/INET协议数据包格式
从表1与表2我们可以看出虽然两种协议的控制头不相同,但均具有区别包类型的区别字(KEY,MessageDefineID),包长(SIZE,MessageLength),包序(SEQ_NUM,MessageDefineSequenceNumber) 与时 间 信息(TIME,MessageTimestamp),因此一旦包结构确定我们就能确定当前数据包是参数数据还是视频数据,以及具体数据的提取方式。
另外,考虑到最大程度的利用数据传输带宽,网络化遥测数据采用组播的方式进行数据传输,实时遥测数据可由多个服务器进行分流实时处理,结合IENA与XNET/ INET两种协议的特点,定义数据包的格式为:
总体框架
通过机载网络格栅以及相应的XML接口,结合两种协议的特点转换为原始的HEA文件,并在此基础上添加参数处理、数据提取方式等信息从而最终形成实时处理所需的HEA文件。通过此HEA文件可以知晓当前网络数据包的协议、参数数量、参数具体解析信息、视频数据等内容,继而实现网络数据包准确的转换为实时监控所需的数据。HEA文件的定义确保了数据解析的准确性,但在数据处理过程中需要考虑到数据的接收、提取、分发等过程,同时处理好的参数数据与视频数据要实时的传送到实时监控软件客户端,保证试验飞行安全,本文采用UDP组播的传输方式,将参数名列表、参数数据、视频数据分路传输到局域网中,由于组播地址与端口固定,客户端监控软件可以采用统一的设计逻辑,极大的缩短了监控软件的设计周期,同时由于机载测试数据也是通过组播的方式进行传输,并且网络数据包占用带宽过高,为避免产生网络拥塞,通过使用双网卡实现数据的物理隔离。整体框架结构如图1所示。
软件结构
网络遥测实时处理软件要同时考虑到实时处理与回放处理两个功能模块的设计,尽可能实现代码的共用,而实时处理与回放处理最大的区别仅限于原始数据是来源于网络获取还是文件读取,因此在数据获取过程中仅需要通过条件选择判断数据源即可。网络遥测数据实时处理要考虑到数据的接收、解析、分发、处理等过程,通过分析整个处理过程,采用多线程共享内存的设计方式,具体设计为HEA与配置信息处理线程、数据接收线程、数据处理线程、视频数据发送线程、参数数据发送线程以及参数名发送线程等六个线程,主窗体在打开实时处理HEA文件后,开启HEA与配置信息处理线程,获取当前飞机参数处理信息与发送配置信息,转化为相应的全局信息,关闭当前线程后开启其他几个线程,各个线程通过HEA与配置信息处理线程生成的全局信息进行初始化,线程间的交互和处理过程如图2所示。
关键技术
数据包拥错控制与同步处理
机载测试采集系统每秒可向外发送数千个数据包,由于受到飞机位置、地面干扰、网络拥塞、连接中断等因素,会产生一定程度的数据丢包错序现象, IENA与XNET/ INET协议在整合数据包的过程中,均会按照数据包的生成顺序在数据包头添加包号,其包号在有效范围具有连续性的特征,数据处理线程针对于数据接收线程分发视频和参数数据包,首先按照时间戳进行快速粗略划分,然后再按照数据包内KEY字进行快速精准排序,与此同时在参数数据包按照KEY字排序的过程中,对相同时间戳的数据包个数进行统计,如果某个时间戳内数据包个数少于HEA文件预估的个数,则将这个时间戳下的数据包抛弃,这主要是因为存在参数的高低字分布于不同的数据包中,如果一个丢失某个参数数据包可能导致提取出的部分参数变化过大,影响指挥人员实时监控决策,而针对于视频数据包采取与参数数据包相同的处理措施,与之不同的是视频数据包发生丢包时,并不丢弃整个这个时间戳内的数据,采用在视频实时解析客户端处理丢包问题。具体处理逻辑如图3所示。
参数数据与视频数据同步回放
图1 总体框架图
传统的参数数据与视频数据由于存储在不同的文件中,而视频中添加的时码信息无法通过图像识别有效获取,也就不能同步回放,网络化遥测的参数数据与视频数据采用相同的协议填充,通过将实时接收到的两种数据进行拥错控制之后存储在一个数据文件中,在文件读取时,建立标识链表,首先进行预读取操作,每当查找到的数据包key字与HEA文件中包序为1的key字相同时,记录当前文件指针信息并保存到标识链表之中,在数据回放时,首先确定拖动的进度条位置,进而确定文件读取指针的当前大致位置,然后查询标识链表,查找到与拖动进度条后确定的文件位置最接近的标识位置,更新为当前文件读取指针的实际位置,继而实现了参数与视频的同步回放。预读取过程如图4所示。
图2 软件内部线程处理流程图
图3 拥错控制处理流程图
图4 预读取处理流程图
图5 软件运行效果图
参数名列表扩充机制
理论上IP数据报的最大长度为65535个字节,剔除IP协议与UDP协议数据报文定义,最大仅能支持65507字节,而当前飞行试验中测试参数已经可以达到上万个,参数名的定义也越来越复杂,每个参数名即可占用30~40个字节,这种情况下单个IP数据报仅能支持1500~2000个参数名的同时发送,针对参数名列表总长度超过限制的情况,采用分批发送的方式,每个IP数据报最大发送40000个字节,每个参数名占用41个字节,不足时填充字符’#’,定义包含总发送次数与当前发送顺序的参数列表,截取参数列表的方式采用以上一个IP数据报中发送的最后一个参数名的结束开始,直至最接近40000字节的那个参数结束,并在分批发送的每个网络包中添加当前发送的分段列表在真实参数名列表中参数起始顺序和结束顺序。分批发送参数名列表的结构定义如表3所示。
表3 分批发送参数名列表的结构
软件运行界面
本软件在某网络化遥测试验平台上得以验证,界面主要分为基本配置信息、实时处理、数据回放三个部分,试验结果表明该软件能够实时准确的处理网络化遥测数据,满足当前试验飞行监控的需求,实时处理阶段的运行状态如图5所示。
该网络化遥测实时处理软件目前已在多个型号的试飞中得到验证,成功确保了多个试飞科目的顺利进行,运行结果表明已经可以确保每秒2200个遥测网络数据包、5000个参数的实时处理,满足当前网络化遥测试飞监控需求,为新一代网络化遥测的发展提供了宝贵的经验。
山 寿 王 鹏
中国飞行试验研究院
山寿(1987-)男,陕西省西安市人,助理工程师,硕士。研究方向:遥测数据处理、计算机应用。
10.3969/j.issn.1001-8972.2016.11.026
国防基础科研项目(A0520132031)