基于内存映射的试飞iNET数据快视分析技术

2016-03-15 18:53彭国金
现代电子技术 2016年4期

摘 要: 飞行试验网络化iNET测试系统正逐渐取代传统的PCM测试系统,成为当前飞行试验测试系统的主要架构;试飞网络化测试的单架次iNET试验数据激增,为了满足采用新一代网络化测试系统架构的飞行试验工程对海量试飞测试iNET数据的即时处理需求,针对试验iNET网络数据的特点,采用了基于内存映射的海量试验数据快速存取及定位方法,设计了试飞iNET数据快视分析技术,实现了飞行试验iNET数据的动态快视,解决了海量iNET试验数据即时处理难题,满足了现代飞行试验iNET数据即时处理需求。

关键词: 内存映射; iNET协议; 即时处理; 飞行试验; 测试系统

中图分类号: TN98?34 文献标识码: A 文章编号: 1004?373X(2016)04?0044?04

Abstract: The networked iNET test system for flight test is gradually replacing the traditional PCM test system and becoming the current main architecture of the testing system in flight test. The single sortie iNET test data of networked testing in flight test is increased sharply. To meet the immediate processing requirement of flight test engineering adopting the new generation architecture of networked testing system for iNET data in flight test, a quick access and positioning method (based on memory mapping) for massive flight test data is adopted according to the characteristics of flight test iNET network data to design the quick view analysis technology of the flight test iNET data. The dynamic quick view of flight test iNET data was achieved, and the immediate processing problem of mass iNET test data was solved. The immediate processing requirement of modern flight test iNET data has been satisfied.

Keywords: memory mapping; iNET protocol; immediate processing; flight test; testing system

0 引 言

随着计算机网络技术的飞速发展,网络化测试系统iNET架构技术逐渐取代传统的PCM构架技术,成为新一代飞行试验测试系统架构,同时现代飞机设计采用新技术、新材料、新设备越来越多,飞行试验科目、测试的参数、测试数据种类以及测试数据总量越来越多,试验记录的网络化测试iNET[1?2]数据总量是过去的数十倍,高达上百个GB。在飞行试验工程领域,对飞行试验数据处理从质量、速度以及数据分析的方式等方面提出了很高的要求,对iNET数据的网络采集技术、高效数据处理方法已经成为新一代飞机飞行试验的重要内容之一。

在飞行试验过程中,快视分析即对试验数据进行即时浏览,并可进行快进、后退、实时拖动等操作,即时将工程师关心的试验参数、时间等关键数据进行处理,同时以图、表动态显示,并将该分析的结果数据进行保存。

在飞行试验过程中,测试系统记录的飞行试验全状态的试验数据一直是试飞工程师分析试验科目的依据,如何对试验数据进行高效处理,以便试飞工程师在最短的时间内获得试验结果数据,是飞行试验数据处理专业一直重点研究的方向。在传统的飞行试验测试系统[3]构架中,相对来说因试验数据量小、数据结构简单固定,整架次的试飞数据处理可以很快的完成,所以试飞工程师对试飞数据的即时处理需求不是很强烈。但是现在随着新一代网络化测试系统[4]iNET应用于飞行试验,特别是iNET数据量的激增、数据结构的灵活多变,虽然对iNET数据算法及试飞数据处理模式进行了大量的优化和改善[5?8];但单次试验数据处理难度和耗时越来越长,同时对试验iNET数据处理的要求也越来越高。在数据处理的这种新的形式下,对海量iNET数据进行快视浏览分析,为试飞工程师提供即时数据处理服务,以便试飞工程师即时对接下来的试验安排进行决策就尤为重要。

1 飞行试验iNET数据

1.1 iNET简介

美军在20世纪90年代开始,以空天地一体网络化试验与鉴定为主线,开展了美国国防部的CTEIP 项目之一的基础倡议2010 (FI2010)工程,其中CIA(CTEIP Integrated Architecture)是试验集成结构框架的简称,其核心研究的内容是增强遥测集成网络iNET(integrated Network EnhancedTelemetry)。我国飞行试验长期以来普遍使用的是IRIG106遥测标准的机载测试系统,其测试结果形成标准的PCM数据流传输和记录。随着网络化测试技术在国际先进飞机上的成功应用和我国网络化测试技术的成熟,为了解决飞行试验大容量参数测量问题,在飞行试验中采用了网络化架构的iNET测试系统。

1.2 试飞测试系统iNET数据

随着网络化测试系统的应用,试飞测试能力大幅提升,试验数据呈数十倍增长,单架次数据量高达120 GB。网络化系统将测量结果形成iNET结构的网络数据包进行传输和记录,iNET网络数据包的结构与传统的符合遥测标准的PCM数据流截然不同,具有完全不同的数据结构,同时具有数据量大、参数多、数据包分散、数据包灵活等显著特点,iNET网络数据包结构如图1所示。

2 内存映射技术

内存映射是由一个文件到一块内存的映射,将不必再对文件执行I/O操作,取消了将文件数据加载到内存、数据从内存到文件的回写以及释放内存块等步骤。在飞行试验网络化测试系统的构架下,采集的iNET试验数据激增,特别是对于非结构化的试飞测试数据来说,频繁的操作是试飞数据分析的一个特点。传统的试飞数据处理中采用的读取技术在这种情况下,其处理速度不能适应在新的形势下现代飞行试验工程对数据处理的要求,其效率不能让试飞工程师满意。而使用内存映射文件在处理大数据量的文件时能起到相当重要的作用,可以解决传统试飞数据处理不能解决的难题。

内存映射文件实现主要使用了以下5个API函数:CreateFile(),CreateFileMapping(),MapViewOfFile(),UnmapViewOfFile(),CloseHandle()。

随着网络化测试的试验数据量激增,内存映射技术为海量试验数据的快视读取提供了解决方案。

3 飞行试验快视分析

在飞行试验中对试飞测试系统技术负责人来说,特别是在一架新的试验机测试系统运行初期,测试系统和试验机子系统的交联,加装的测试传感器和试验环境的交联,往往会出现参数测量误差等问题。这时飞行试验数据的快视分析是试飞工程师定位并排除测试故障的重要工具。同时在试验后,试飞数据的快视分析也一直是试飞工程师快速做出决策的重要辅助手段之一。

3.1 传统PCM快视分析

在传统的PCM构架技术的飞行试验测试系统中,由于试验的数据量较小,同时PCM结构相对iNET结构来说较为简单,通常对PCM试验数据做长周、短周的分析就可以满足试飞工程师即时数据分析需求。因数据量较小,全程试验数据处理耗时不多,故无需在快视分析中单独对PCM试验数据进行关键时间处理,也无需在快视分析时对试验数据进行实时拖动、快进、后退等复杂操作,对关键参数的曲线也没有要求。

3.2 新形势下iNET快视分析

在采用了iNET网络化测试系统之后,iNET数据结构较为复杂;同时试验测试参数量、数据量激增,试飞工程师进行快视分析时,要求可以对iNET试验数据进行关键时间处理,对iNET试验数据进行实时拖动、快进、后退等操作;同时对关键参数的曲线绘制也有要求,所以iNET试验数据快视分析必须解决这些问题,满足试飞工程师的即时处理需求。

4 飞行试验iNET数据快视分析的关键技术

4.1 海量iNET数据快速读取和定位技术

在处理飞行试验海量iNET网络数据时,需进行大量的I/O文件操作。如果按照传统的文件指针模式去提取iNET数据,在数据处理效率上有可能不能满足飞行试验海量iNET数据处理的需求。针对快速读取海量原始iNET数据,内存映射文件模式避免频繁的对文件执行I/O操作,快速地将试验原始iNET数据读取到内存。结合iNET试验数据的特点,采用内存映射文件技术,实现海量iNET试验数据快速地读取和定位,其实现流程如图2所示。当试飞工程师对试飞iNET数据软件界面操作时,利用界面的进度条进行信息交换。在试飞工程师操作后,设定界面进度条的百分比是Per,同时设定试验数据大小为DaSize,需定位的位置为PoSize可得:

4.2 iNET完整帧分析技术

通过文件快速定位之后,将文件指针移动到试飞工程师指定的文件位置,通常该指定位置不是一个完整试验数据iNET的包头第一个字节处,需要进行iNET完整帧分析,快速找到iNET网络数据包的第一个字节。

结合图1的iNET数据包结构,使用多重关键字段进行完整帧分析,其算法如下:

(1) 从当前的PointSize处开始,取16 B的数据,并与struct pcaprec_hdr_s进行比对。因为如果iNET数据包是完整的,那么该数据包保存在文件中的长度就会等于在网络上传输的长度,所以判断条件是:[pcaprec_hdr_s.incl_len==pcaprec_hdr_s. orig_len] (2)

(2) 如果式(2)中判断的值相等则第一层PCAP协议判断通过,如果不相等则说明PointSize处不是一个完整的iNET的开始,则使用式(3)对起始位置进行后移:

[PointSize=PointSize+1] (3)

循环判断直到式(2)值相等,PCAP协议判断通过。

(3) 从PointSize处开始,读取数据长度为pcaprec_hdr_s.incl_len字节,结合图1的iNET数据包结构中的PacketLength进行包长判断,判断条件是:

[pcaprec_hdr_s.incl_len==PacketLength+16] (4)

(4) 如果式(4)中判断的值相等则第二层iNET协议通过;如果不相等则回到式(1)中PointSize+1处重复第(1)步,从新开始完整帧分析,直到通过第二层iNET协议判断。

(5) 图1的iNET数据包结构中的EndField为一个特定的值,在飞行试验中通常设定其为0xFFFF,所以最后一步在当前读取到内存中的数据判断其最后2 B是否为设定的特定值。

(6) 如果第(5)步中的判断没有通过,回到式(1)中PointSize+1处重复第(1)步,重新开始完整帧分析,直到通过判断,获得一个完整的iNET数据包。

4.3 试验数据动态分析技术

经过iNET完整帧分析,可以获得完整的iNET数据包,对iNET数据包需要按试飞工程师的选择进行分析,需满足关键时间处理源码显示、参数提取并保存结果、动态曲线显示等,为了获得最高的效率和最优的处理,采用了多线程并行处理技术,源码显示和参数提取为一个处理线程,动态曲线为一个处理线程,算法如下:

(1) 创建2个线程Thread1和Thread2;

(2) 将完整的iNET数据包的数据分别传递给线程Thread1和Thread2;

(3) 线程Thread1对iNET数据进行界面实时刷新显示,同时按照试飞工程师提取的参数对iNET数据进行处理,并按要求进行输出保存;

(4) 线程Thread2对iNET数据按试飞工程师关心的参数进行实时刷新绘图显示;

(5) 线程Thread1和Thread2进行同步分析,直到试飞工程师的下一个指令或者试验数据结尾。

5 设计实现与测试

使用C++语言开发了iNET数据快视分析软件[9],分析软件实现界面如图3所示。应用该软件对某试验机测试的iNET数据进行快视分析,并计算试验机的气压高度,其计算结果见图4。同时,对该试验iNET数据进行了试验科目[10?11]的参数快视分析,对该试验进行即时处理,快速响应试飞工程师的数据处理需求,实时地将科目参数进行处理并保存成结果工程量文件,满足了试飞工程师对海量iNET试验数据快视分析的需求。iNET快视分析结果表明:采用基于内存映射的iNET快视分析算法正确,数据结果处理准确。基于以上算法开发的飞行试验iNET试验数据快视分析软件已在多个型号试飞中推广使用。

6 结 语

本文介绍了在现代飞行试验中海量网络化测试iNET数据快视分析面临的难题,分析了传统PCM快视分析、iNET数据结构特点、PCAP数据结构特点,采用内存映射技术,解决了iNET数据快视的关键问题,并设计实现了iNET数据快视分析软件,解决了现代飞行试验iNET数据的快速浏览、即时处理的难题。经某试验机试飞实际验证,该软件满足了试飞工程师的快视分析需求,为现代飞行试验提供了技术保障。

参考文献

[1] Anon. iNET system architecture [M]. [S.l.: s.n.], 2007.

[2] NIKKER I. iNET?X summary [EB/OL]. [2010?03?11]. http://www.acracontrol.com.

[3] Kam500数据采集系统[EB/OL].[2005 ?07?01].http://www.yorkinstrument.com.

[4] 刘明.新一代试飞测试系统架构及其应用[J].计算机测量与控制,2014,22(6):1729?1731.

[5] 袁炳南,霍朝晖,白效贤.飞行试验大数据技术发展及展望[J].计算机测量与控制,2015,23(6):1844?1847.

[6] 党怀义.典型大数据仓库:飞行试验数据仓库设计[J].计算机测量与控制,2015,23(4):1407?1409.

[7] 王建军,党怀义.基于Web的分布式试飞数据处理系统结构设计[J].计算机测量与控制,2010,18(6):1452?1454.

[8] 彭国金,刘嫚婷.非结构化海量网络数据处理技术研究[J].现代电子技术,2011,34(14):121?123.

[9] 霍建华,刘丹,郭世伟.遥测PCM数据加密技术研究[J].现代电子技术,2015,38(3):66?68.

[10] 胡汇洋,李扬,许应康.多试飞数据流文件的融合处理[J].现代电子技术,2015,38(8):47?49.

[11] 徐武军,侯玉宏,段亚.序贯概率比检验法在导航精度试飞中的应用[J].现代电子技术,2014,37(11):124?128.