航电系统通用总线监控软件的设计与实现
收稿日期:2011-04-08
作者简介:叶中脉(1986—),男,四川成都人,硕士研究生,主要从事分布式测控技术与计算机仿真应用等方面的研究。
航电系统通用总线监控软件的设计与实现
叶中脉,秦开宇,陈华伟,李志强
(电子科技大学空天科学技术研究院,四川成都611731)
摘要:针对传统航电系统总线监控软件功能单一、可扩展性差、重复开发多等问题,提出了一种支持多种
总线协议、
多通道数据采集的通用总线监控软件的设计与实现方案。通过分层开放式架构与模块化设计,提高了软件的可扩展性与可重用性,为通用性的实现提供保障。在采用多线程动态创建技术保证监控实时性的基础上,结合面向对象与通用总线接口控制文档的设计思想,实现了软件的通用性。关键词:通用监控软件;分层开放式架构;航空电子总线;接口控制文档;多线程中图分类号:TP319文献标识码:A 文章编号:1000-8829(2012)03-0094-04
Design and Implementation of Monitor Software for Universal Avionics Bus
YE Zhong-mai,QIN Kai-yu,CHEN Hua-wei,LI Zhi-qiang
(Institute of Astronautics &Aeronautics,University of Electronic Science and Technology of China,Chengdu 611731,China)
Abstract:The traditional monitor software for avionics bus is only applicable to a particular avionics bus and poor in scalability.In order to solve this problem,a method to design and implement the universal software is provided,which can monitor the information for multiple kinds of avionics bus.The design of modularization and layered open architecture is used to improve the scalability and reusability of the software.Based on the technology of object-oriented and dynamic creation of multithread,the software is universal and real-time.Com-pared with the traditional software,the software which is based on this architecture has more maintainability and functions,and it is a feasible proposal.
Key words:universal monitor software;layered open architecture;avionics bus;interface control document;multithread
航空总线作为航电系统的重要组成部分,相当于飞机的神经网络,各航电子系统通过航空总线实现信息的交换与共享。
作为辅助航电系统开发、测试的重要工具,总线监控软件大量应用于半实物仿真、实物仿真以及系统联调中,实时监控航空总线上的数据信号,验证航电系统的可靠性。
由于应用领域、技术发展等原因,目前航空总线领域存在着一系列标准和规范:如民机的ARINC429与ARINC629总线标准;军机的1553B 总线协议。在航电仿真系统中,存在使用RS422/485总线与以太网采用UDP 协议传输数据的应用实例。随着航电系统的结构向先进综合式方向发展,未来还将涌现出更多新型航空总线标准。
各总线标准之间的差异性导致传统方法设计的总线监控软件具有极强的专用性,通常针对某一型号的航电系统进行定制开发,难以在新型号航电系统中继续使用。为了适应航电系统的发展需求,提高开发效率和使用效能,国外针对通用航空总线测试技术进行
了研究,
支持多种总线协议并具有完备总线测试仿真功能的总线监控仿真系统已在国外市场上占有航电仿
真系统中70%以上的市场份额[1]
,总线监控软件的通用化已成为发展趋势。而在国内,由于各总线电气特
征与传输格式互不兼容,
使得不同型号航电系统的接口控制文档(ICD )与相关总线监控软件的硬件驱动模
块不具备通用性。因此,
在实际应用中,此类软件还停留在对单一总线进行数据监控的层面上[2]
,重复开发
问题严重[5]
,对于通用总线监控软件尚在技术讨论
阶段
[1-3]
。国内外研究现状表明:开发功能完善、易于扩展、稳定可靠并且支持多种总线协议、多通道数据采集的通用总线监控软件对于更好地支持航电系统的开发、
仿真、测试具有积极作用,是发展的必然趋势。
1
通用总线监控软件的设计
1.1
通用总线监控软件的主要功能
传统航电系统总线监控软件的主要功能为:在接收、
监控总线通道上的数据信号的同时,对各信号进行从二进制码到物理意义的解析,从而验证航电系统的可靠性。
基于传统总线监控软件的功能任务,并考虑实际
应用中对监控数据进行离线分析的需求,
通用总线监控软件应具备以下主要功能:
①通用性:能够同时支持多种总线协议,实时对多通道进行数据采集;
②解析功能:根据接口控制文档(interface control document ),实时对各种总线上的信号进行从二进制码到物理意义的实时解析;
③记录及回放功能:在进行监控的同时,以“帧”为单位,实时记录数据,监控结束后,可依据记录文件进行离线回放;
④图形绘制功能:对于指定信号,在监控与回放时支持动态曲线的显示,在回放时可绘制数据分析曲线。
1.2通用总线监控软件架构的设计
为了实现软件的通用性与可扩展性,软件的设计
采用分层开放式架构,
将底层硬件资源与上层软件完全分离。只需在驱动层开发可同时支持多种总线协议
的硬件驱动模块,
软件就可以依靠配置文件对硬件资源进行访问与获取,从而实现软件对多种总线协议的支持。通用总线监控系统软件结构框图如图1所示
图1通用总线监控软件结构框图
由图1可知,分层开放式架构将整个系统分为软
件层与硬件层,软件层按照层次架构又分为驱动层、功能层和交互层3个层次。
驱动层中的硬件驱动模块是实现软件通用性的核心,
主要提供对各类总线接口的初始化以及数据采集的功能,通过封装各类总线的驱动函数,给上层软件提供一个统一友好的数据接口。
功能层由信号解析模块、记录回放模块以及绘图模块构成。信号解析模块根据接口控制文档(ICD )中的相关信息进行从二进制码到物理意义的解析工作;记录回放模块在监控时进行实时记录,在进行离线数据分析时,用户可通过加载记录文件实现监控数据的回放;绘图模块提供信号的实时动态绘制以及离线数据分析曲线的绘制功能。
交互层提供一系列人机交互接口,可对软件各种参数进行设置,控制软件的运行模式,并在特定模式下与功能层中的各个模块进行交互,从而完成各项工作。
在分层开放式架构中,为了保证各个层次之间的相互独立,便于各功能模块的独立开发,必须尽量简洁
统一地设计各层数据接口,
以避免多层之间的连锁调用。在设计过程中,明确各功能模块之间的相互关系,
采用面向对象设计思想,以支持1553B 、
ARINC429及RS422总线监控的软件为例,绘制通用总线监控软件
的UML 类图,
如图2所示
。图2通用总线监控软件UML 类图
在图2的基础上,根据实际需求,可对该架构中的
各个功能模块进行细化设计,
保证软件的功能性。以硬件驱动模块为例,该模块通过设计一个具有统一接
口的通用总线管理父类,提供对软件所支持的各种总线监控的管理与设置功能,在其中将各总线驱动子
类进行独立封装,从而实现软件对多种总线协议进行数据采集的支持。由于进行多通道数据采集时,工作量大,实时性要求高,故该模块还应采用多线程动态创建技术,将各通道进行的数据采集工作创建为一个独立线程,开启多线程工作模式,保证各通道数据采集的实时性。
由图1与图2可知,在分层开放式架构下,硬件驱动模块的数据接口单一,输入为待监控消息块的总线配置信息,输出为在特定通道进行数据采集后所获取的数据帧。该模块只需要实现支持多种总线协议、多通道的数据采集功能。
分层开放式的架构设计使得软件开发人员可在已有模块的基础上,根据用户需求,灵活定制各功能模块。若用户需要增加软件所能支持的总线类型,开发人员无需关注其余功能模块的运作方式,只需编写新的总线驱动子类,正确定义数据接口,并在总线配置文件中引入新类型的标识即可。分层式开放性架构不仅为软件提供了良好的可扩展性,也为软件通用性的实现提供了便利。
2关键技术及其实现
2.1通用数据结构的设计
合理设计数据结构是降低系统各功能模块的实现难度,提高系统构造质量,实现软件通用性,避免重复开发的重要保障。
本软件的数据结构是基于ICD进行设计的。ICD 是航空总线测试系统的基础,主要提供的是“航电子系统—消息块—信号—离散域”4级层次信息,定义了总线数据传输中的各数据帧的实际意义。ICD在航电系统中是各子系统收发数据帧的接口规范,而在总线监控软件中则作为解析数据帧的依据。
虽然不同飞机型号、不同总线类型的ICD定义并不完全相同,但其中必然包含用于数据帧解析的“航电子系统—消息块—信号—离散域”的4级层次结构。结合通用ICD的设计思路[4]并且考虑与通用ICD 兼容,可剥离出ICD中关于总线电气特征与传输格式的信息,写入总线配置文件(以RS422总线为例,文件中应包括:消息块名、通道号、波特率、数据位、停止位、奇偶校验位等),而仅针对其中与解析相关的层次结构进行数据结构的设计。
由于监控软件中所获得数据帧是以消息块为单位进行解析的,因此可将子系统单独列表,通过消息块名查询该表,获得子系统的相关信息。而将“消息块—信号—离散域”设计为3层数据结构,消息块层中包含消息块的相关信息及其所包含的信号信息,信号层包含信号的相关信息及其所包含的离散域信息,离散域层中仅包含信号下各离散域的相关信息。虽然各类总线的专用ICD各不相同,但在此层次数据结构中,只需将ICD中的对应信息加载到本数据结构中的对应位置,同时根据软件需求,在对应层次中进行数据结构的增减(如需要增加信号的单位变换功能,则在信号层中增加与单位变换相关的数据结构),即可完成软件整体数据结构的设计。
通用数据结构保证了当消息块的总线传输类型不同时,软件可根据总线配置文件获取异构ICD中各消息块的总线配置信息,而无需改变层次结构中与解析相关的数据结构。当ICD发生变化时,开发者只需在配置文件加载模块中进行修改,即可适应新型号ICD 的设计,提高软件的开发效率与通用性。
2.2通用性的实现
本软件的通用性体现在支持多种总线协议、多通道总线监控。实现软件通用性的最大障碍在于各个数据总线的电气特征以及数据传输格式互不兼容,无法采用单一的法则进行数据监控。
由于各类总线中传输的数据是以消息块为单位进行解析的(即只有当总线传输的数据是ICD中所定义的消息块数据时,才是需要监控的有效数据),所以可赋予消息块一种新的属性,用于表征传输该消息块的总线类型,该属性在初始化时通过读取总线配置文件中该消息块的总线类型信息即可获取。当软件工作在监控状态时,根据用户选中的待监控消息块的总线配置信息,确定需监控的消息块在当前系统中数据传输的总线类型以及相关的通道信息,以此为依据,将消息块进行分类,实例化各数据采集对象,从而实现对多种总线进行数据采集的支持。
如2.1中所述,为了保证数据结构的可重用性,已将与总线相关的信息均写入总线配置文件中。用户可以通过该配置文件灵活配置各消息块的传输总线类型及通道号等相关信息。软件则根据该配置信息为各消息块加载ICD中与总线数据传输相关的信息。
在监控启动时,根据用户选择的待监控消息块的总线配置信息,区分其总线类型,创建监控对象,进行多种总线类型、多通道总线的监控。以1553B、ARINC429、RS422总线与网线(UDP协议)传输为例,硬件驱动模块监控对象创建的流程图如图3所示。
由图2和图3可知,本软件通过消息块的总线配置信息,获取其总线类型,以一个特定的数据传输通道(如消息块的总线类型为RS422总线时,通过串口号确定该消息块的数据传输通道)为单位,通过接口统一的通用总线管理父类进行待监控消息块的总线配置
信息的整理、分类以及各数据监控对象的实例化工作。当软件运行在监控模式时,通过各实例化对象所对应
的总线驱动子类中的驱动函数,进行数据采集工作,从
而实现软件的通用性
图3硬件驱动模块监控对象创建流程图
2.3
监控实时性的保障
总线监控软件对实时性的要求非常高,在实现通用性的同时必须考虑其可能对实时性产生的影响。由于总线实时监控的数据量大,数据帧发送周期短,同时在监控时需要执行解析、记录、实时动态曲线绘图等一系列操作,故提高以上模块的执行效率是确保软件实时性符合要求的关键所在。具体的实现方式如下:
①动态监控:根据用户所选中的待监控消息块或信号进行监控对象的创建,确保每次创建的监控对象均是用户关注的待监控消息块;
②动态创建多线程:在编写各总线监控类时均引入多线程动态创建技术,优化线程机制,在确保特定总
线的特定数据通道中的每个监控对象都运行在一个独
立线程的前提条件下,确保开启的线程数目是最少的,从而提高数据采集的效率;
③时间驱动与事件驱动并存:对于界面刷新采用时间驱动机制,定时刷新界面;而对于各通道中的数据帧,采用事件驱动机制,每当监控通道中采集到一帧数据时,产生一个事件等待程序进行实时响应;
④优化监控模块的相关算法:优化数据采集算法,提高解析算法的效率,减少时间开销;
⑤实时记录数据帧:为了验证航电系统的可靠性,对记录文件中数据帧接收时间的准确性有较高要求;
由于写硬盘操作会带来较大的时间开销,大量数据的记录工作会影响数据采集的实时性,故当接收到一帧数据时,便实时记录数据帧至指定文件;
监控系统软件⑥图形绘制采用双缓冲技术:将数据信息与绘图
事件分离,减少实时绘制的系统开销,提高执行效率。
3结束语
本文提出了一种支持多种总线协议、多通道总线数据采集的通用总线监控软件的设计与实现方案。该方案采用分层开放式架构与模块化思想进行设计,结合面向对象及多线程动态创建技术,实现了软件的通用性、实时性及可扩展性。目前,依此方案设计的监控软件已应用于某型无人机航电仿真系统中,使用效果证明其功能与性能均满足实际需求。参考文献:
[1]宁伟.通用航空总线实时测试与分析技术研究[D ].西
安:西北工业大学,
2006.[2]周精华,翟正军.航电1553B 总线监控系统的设计与实现
[J ].测控技术,2009,28(1):58-61.
[3]朱良,杜承烈.通用航空总线测试与分析软件的设计和实
现[
J ].微电子学与计算机,2007,24(7):125-127.[4]张光宇,杜承烈.通用航空总线接口控制文档设计[J ]
.测控技术,
2007,26(7):48-52.[5]赵文俊,蒋国峰.飞机航电系统1553B 总线信息监控器的
软件设计[
J ].兵工自动化,2009,28(7):12-13.[6]Beveridge J ,Wiener R.Win32多线程程序设计[M ].侯
捷,译.武汉:华中科技大学出版社,
2002.[7]Eckel B.C ++编程思想[M ].第2版.刘宗田,袁兆山,潘
秋菱,等译.北京:机械工业出版社,
2003.□

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。