APP下载

1553B总线数据高效处理技术研究

2018-04-18常永亮王霖萱常馨蓉

计算机应用与软件 2018年3期
关键词:数据结构数据处理总线

常永亮 王霖萱 常馨蓉

1(中国飞行试验研究院 陕西 西安 710089) 2(贵州大学 贵州 贵阳 550025) 3(榆林学院 陕西 榆林 719000)

0 引 言

MIL-STD-1553数据总线[1]是美国军方专为飞机上设备制定的一种信息传输总线标准,也就是设备间传输的协议。由于它具有双向输出特性、实时性和可靠性高,广泛应用在当代的运输机和相当数量的民航客机以及军用飞机上,航天系统也有广泛的应用。 现代军用飞机将武器、雷达等电子系统通过总线系统交联,实现了飞行控制、智能化地面指挥,使各系统间通信效率增高,修改、扩充和维护简便,大幅度提升军机的作战能力。在飞机试飞领域,主要通过1553B总线数据对武器、雷达、飞机平台等电子系统总线系统数据的准确判读,鉴定各系统性能。在飞行实验中1553B总线数据源于机载记录100%1553B总线数据,将数据准确处理是飞机定型或后续排故的关键环节。

1553B总线数据处理在飞机定型或后续各电子系统交联应用期间占据非常重要的位置,准确、快速地处理更是提高飞机各系统定型的关键环节。目前使用的1553B总线数据处理程序包括两大部分:一是接口控制文件ICD(Interface Control Document)管理数据库ICD_MDb(ICD management database);二是基于ICD数据库处理程序。1553B总线数据处理流程为:先在机载记录盘中卸载相关1553B总线数据,再将数据转换成目前程序要求处理的格式,再按要求处理相关总线消息(每条消息最长由32个字组成,所有的字分为三类:命令字、数据字和状态字)。目前应用的总线处理程序处理每一个消息都要对总线数据遍历一遍查找对应的消息。找到后再在数据库中查找相应消息定义,并按消息中字的定义进行解析输出。处理一个消息用时与飞行时间大体相当,处理用时会随消息多少而增减,处理效率较低。

针对目前1553B总线数据处理用时长、越来越不能满足飞机试飞中客户急切的需求。研究新的1553B总线数据处理模式,缩短总线处理用时,提高总线数据处理效率已成为必然。本文提出新的处理理念:一是重新设计ICD_MDb,减少数据库检索层次、次数;二是基于新ICD_MDb设计程序架构采用并行处理思路;三是精简数据处理环节。通过对上述思路的实现,使1553B总线数据处理用时大幅减少,处理消息越多,处理减少倍数越多,最终达到高效处理1553B总线数据的目的。

1 实例分析

为了更好地阐述本文所关注的问题,通过图表介绍传统1553B总线处理技术的处理效率。在同一处理设备环境、飞行时间、处理时间下,对不同个数消息处理用时结果如表1所示。

表1 1553B总线数据不同消息数处理用时

通过表1可以看出,1553B总线消息处理用时随着消息个数递增,处理用时大约会成倍增加,并且每个PC只能运行一个处理例程,解析1553B消息总体是串行处理。如果处理多个1553B消息要对1553B数据进行多次搜索消息操作,导致1553B总线数据处理用时多、效率较低。

2 1553B数据高效处理关键技术

2.1 设计思路

提高1553B总线数据处理效率、减少数据处理用时。关键技术是将ICD_MDb数据库中表结构进行全新设计,从机载数据源卸载到处理数据减少人工处理环节,减少读写数据与访问ICD_MDb次数,分析消息、字解释都在内存中完成,对消息、字的处理采用并行处理模式,减少输出文件。如图1所示。

图1 1553B总线数据高效处理设计思路框图

2.2 设计实现

2.2.1ICD_MDb表设计

1553B ICD详尽描述了武器各电子设备之间互联的接口信号组成,1553B总线数据正确处理关键之一是对ICD信息合理管理。本着一切从简从易的原则,在此选用Microsoft Office Access。Microsoft Office Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。其最大的优点是易学、数据处理能力强大,满足对ICD信息合理管理的要求。还有一个好处,能同时运行几个程序加载不同或相同ICD_MDb并行处理1553B总线数据,并行处理大幅减少数据处理时间,大大提高对1553B总线数据处理效率。传统处理技术在同一台PC上处理两个起落1553B数据只能是串行处理模式,现在用新的数据库技术可以并行处理两个起落1553B数据而互不影响。ICD_MDb表结构图见图2。

图2 ICD_MDb表结构图

总线消息表:入库、编辑1553B ICD消息的管理。

消息中数据字表:入库、编辑1553B ICD消息中字的解析管理。

处理消息表:要处理消息的增减管理。

消息中命令字表:管理命令字及字地址信息。

2.2.21553B数据处理结构设计

1553B数据高效处理不但要优化、组合处理环节,而且对重要环节重新设计。传统技术要对原始数据进行二次转换处理才能进行1553B消息处理操作。现在,直接对原始数据进行操作,取消中间二次转换环节,这样一来,节约了数据文件转换操作时间。原始数据文件中1553B消息正确搜索,是正确处理的关键,1553B消息搜索算法主要基于以下三种情况:

① BC->RT数据传输;

② RT->BC数据传输;

③ RT->RT数据传输。

1553B数据是由命令字、数据字、状态字组成消息序列,命令字由远程终端地址、发送/接收、子地址、数据字计数组成。通过对命令字、状态字解析,在数据中查找相应的消息,通过查询命令字搜索消息,并按要求将数据字解析输出。

ICD_MDb中的消息、字通过以下3个数据结构进行操作。

(1) 消息数据结构定义:

typedef struct DBTABLE1{

BOOL 总线类型;

Char* 消息名;

BYTE 发送终地址;

BOOL 收/发;

BYTE 子地址;

WORD 参数个数;

Char* 字集合;

}dbTable1;

(2) 字数据结构定义:

typedef struct DBTABLE2{

BOOL 符号位;

Char* 字名;

BYTE 操作类型;

double 系数;

Char* 起始结束位;

Char* 位说明1;

Char* 位说明2;

BYTE 备用1;

Char* 备用2;

}dbTable2;

(3) 数据处理结构定义:

typedef struct DIS1553B_DATA_CONFIG{

BusMsg_1553B 1553B文件数据结构;

dbTable1 表1;

dbTable2 表2;

char* 1553B消息;

}Dis1553B_Data_Config;

通过以上数据结构将ICD_MDb要处理1553B消息组结构化,三个数据结构对应三个数据库表,简化了数据库结构,操作在不影响结果的情况下更加简洁。在数据处理前先将要处理的1553B消息组、相关字解析说明一次读入内存,数据文件中查找要处理1553B消息时不用再访问ICD_MDb中相应1553B消息、字等信息,访问ICD_MDb次数控制将大大减少1553B数据处理时间。

2.2.31553B数据并行处理技术设计

通过简化数据源操作、ICD_MDb数据库设计、数据处理数据结构设计已经大幅减少1553B总线数据处理时间,再对数据处理技术进行全新设计,让1553B数据处理进一步缩短用时提高数据处理效率。在此应用了并行处理技术,并行处理技术是很成熟的技术,充分利用系统资源将串行处理转换成并行处理,节约数据处理时间。

并行处理指操作系统中能同时执行两个或更多个处理的一种计算方法。并行处理可同时工作于同一程序的不同方面。并行处理的主要目的是节省大型和复杂问题的解决时间。将1553B数据中将要处理的每个消息用单独的线程处理,有几个要处理1553B消息就创建几个线程,如图3所示。

图3 1553B数据消息并行处理框图

从理论上讲1553B数据中消息并行处理,在n个并行处理速度可能会是串行处理的速度的n倍。如图4所示。

图4 1553B数据处理流程图

1553B数据处理流程如下:

① 加载正确的1553B原始数据,如果加载失败或没加载则重新加载;

② 加载正确ICD_MDb数据库,如果加载失败或没加载则重新加载;

③ 加载要处理的1553B消息组;

④ 创建处理1553B消息组线程,每个处理线程处理一个1553B消息;

⑤ 创建原始数据中搜索相应消息、消息中字信息提取、与相应消息处理线程进行数据交互等线程;

⑥ 并行同步处理,主要对消息搜索、数据字解析、结果输出的同步处理,如果没有同步处理会有数据丢失现象;

⑦ 搜索到相应1553B消息后对数据字进行解析处理,如果没有1553B消息则输出文件为空;

⑧ 1553B消息、1553B数据字处理结果输出。

3 1553B数据高效处理技术实际应用

新技术通过实践应用才能得到验证,用新1553B数据消息处理技术与传统1553B数据消息处理技术对同一架次1553B总线数据处理用时进行比较。

处理条件:

① 数据记录时间200分钟;

② 处理相同的1553B消息;

③ 全程进行1553B消息分析,输出结果;

④ 比较用时。

表2是两种技术处理不同消息数的用时比较。

表2 两种技术处理不同消息数用时

通过处理用时可以看出,新技术比传统技术数据处理用时大幅减少,新技术结果输出文件只有两个。一个是消息、字解析文件,通过此文件可直观查看结果。另一个是消息中数据字十六进制全部输出文件,通过此文件与相应1553B ICD中消息、字说明可方便查比输出结果是否准确。

4 结 语

本文针对传统1553B总线数据处理方法用时长等缺点,提出新的1553B总线数据处理技术。新的技术针对ICD管理数据库、数据源选用、查询数据源消息方法、消息及字解析等进行技术优化创新,总体将传统串行处理技术改为并行处理技术。使1553B总线数据处理用时大幅减少,提高数据处理效率。经一段时间对飞行数据处理结果表明,高效数据技术用时短,结果准确,ICD_MDb简洁方便。本文提出的1553B总线数据高效处理思路及方法,可应用到其他领域1553B数据处理,也可对其他较复杂数据处理具有一定借鉴与参考意义。

[1] Richter J.Windows核心编程[M].北京:机械工业出版社出版,2008.

[2] 正鸿航科.MIL-STD-1553B总线协议规范[S/OL].2005.

[3] 曹阳,陆乐,齐韡.基于IRIG106 Chapter 10标准的数据记录系统[J].航空电子技术,2014(2):14-17.

[4] 潘巍,李战怀.大数据环境下并行计算模型的研究进展[J].华东师范大学学报(自然科学版),2014,2014(5):43-54.

[5] 舒传华,唐海波,曹赣.1553B总线消息解析方法研究和应用[J].遥测遥控,2015,36(6):57-63.

[6] IRIG-106标准07版,第十章[S].

[7] IRIG-106标准07版,程序员手册[S].

[8] GJB289A-87标准[S].

猜你喜欢

数据结构数据处理总线
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
基于低频功率数据处理的负荷分解方法
无人机测绘数据处理关键技术及运用
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
为什么会有“数据结构”?
高层建筑沉降监测数据处理中多元回归分析方法的应用研究
高层建筑沉降监测数据处理中多元回归分析方法的应用研究
DCOM在混合总线自动测试系统的应用
基于AVR单片机的RS485工业总线开发设计