付强 陈溦
摘要
机载软件仿真验证环境是机载软件前期验证过程中非常有效且常用的发现软件问题和设计问题的手段。通过分析接口控制文档(ICD)对应的配置文件,并结合数据激励和数据监控功能模块的需求,提出了一种能够自动生成仿真验证环境中数据激励和数据监控的方法,实现了根据配置文件自动完成应用层数据和底层网络数据的双向转换,并在此功能基础上生成对应的数据激励和数据监控功能模块,有效地支持了仿真验证环境的构建。
【关键词】ICD 数据激励 数据监控 自动化生成
在机载软件前期研制过程中,为了能够发现软件设计和开发阶段存在的问题,经常会搭建仿真验证环境预先验证软件功能的正确性,为后期基于机载硬件平台的系统级交联试验提供功能级的保证,并降低系统交联过程中功能性问题的验证成本,提高系统验证效率。而数据激励和数据监控功能作为仿真验证环境的关键功能,为了能够支持应用软件的功能验证,往往需要根据现有的接口控制文档(ICD)开发对应的数据激励器和数据监控工具,为仿真验证环境的构建增加了工作时间。此外,ICD的变更会导致数据激励器和数据监控工具的更改,也增加了仿真验证环境维护成本。
本文在充分分析现有ICD配置文件的基础上,提出了一种能够自动生成仿真验证环境中数据激励和数据监控功能模块的方法。
1 ICD应用数据自动转换
ICD数据与应用数据转换功能主要实现底层ICD格式数据与应用数据的相互转换,自动完成数据块、信号量、数据位域的解析。数据激励模块中的发送数据转换功能、数据监控模块中的接收数据转换功能,都需要依赖于该功能库。如图1所示。
初始化过程中根据ICD配置信息,在内存中创建对应ICD配置的数据结构。数据结构定义如图1所示,ICD列表数据结构中,每一条ICD数据块包含标识号、ICD的描述信息和待转换类型的描述信息,每个数据块描述包含若干条信号量描述,每条信号量描述包含若干位域描述。如图2所示,参考机载网络中ICD定义的消息块、信号量、数据域的层级定义方式,在对消息块的解析过程中,创建多级缓存,按照非结构化数据格式配置文件中定义的数据条目顺序,顺次解析条目化的数据配置信息项,解析过程中同步更新解析完成的数据格式缓存区,并在应用层内存中创建与非结构化数据格式配置对应的结构化数据格式。
ICD数据到应用数据的转换过程:接收到外部消息后,根据消息块ID号查找结构表,找出对应的ICD描述信息,遍历解析每一条信号量及对应的每一个位域。根据位域类型信息(浮点型、整型、字符串型),调用类型对应的数据处理流程完成数据解析,每一条解析后的数据都顺次填入到待解析应用层数据块的内存区域中,完成一条数据块的解析后,将完成解析的内存区域中对应的数据拷贝给上层应用程序。其中ICD定义结构和上层应用的数据结构是——对应的。
应用数据到ICD数据的转换过程:根据待转换的数据块ID,根据消息块ID号查找结构表,找出对应的ICD描述信息,遍历并解析应用层数据结构中每一条数据信息。根据应用层ICD与网络层ICD的配置对应关系,按照位域类型(浮点型、整型、字符串型),调用类型对应的数据处理流程完成逆向数据解析,解析后的数据顺次填入待解析ICD数据块的内存区域中,完成一条数据块的解析后,将完成解析的内存区域中对应的数据拷贝给底层通信驱动,并调用总线数据发送接口完成消息发送。
2 数据激励自动生成
数据激励功能模块作为仿真验证环境中的数据源,可以向应用软件发送激励数据,驱动应用软件的测试和验证。
图3描述了数据激励功能实现的原理与流程。数据激励功能模块通过读取ICD配置文件,自动生成对应的数据设置界面,包括对周期型数据和事件型数据的设置。对于周期型数据,能够设置发送周期和是否激活待发送数据,开始数据发送后,每条激活的周期型数据将按照设置的发送周期向目标节点发送激励数据。对于事件型数据,通过对应的发送按钮来触发发送时机,每次发送一个对应的数据包。数据内容采用逐层设置的方式,分别对应数据块、信号量和数据位域。完成数据激励设置后,能够将当前的设置以文件的形式保存为一个副本,并支持后续以加载的形式恢复当前设置的数据内容和参数信息。数据激励节点内部通过ICD数据与应用数据的转换库将应用数据转换为ICD格式的数据,并通过底层以太网以UDP数据包的形式将数据发送到目标节点。封装的数据包格式与仿真验证环境中其他节点间交互采用的通信协议保持一致。
3 数据监控功能自动生成
数据监控功能模块用于监控虚拟化节点间的数据交互,模拟真实目标机环境下的总线监控器,包括选择待监控数据块,启动和停止监控操作,历史数据缓存、遍历和查看。数据内容采用逐层显示的方式,分别对应数据块、信号量和数据位域。
图4描述了数据监控节点实现的原理与流程。底层通过以太网以UDP数据包的形式接收,数据包格式的解析逻辑与虚拟仿真节点采用的通信协议保持一致。数据监控节点内部通过ICD数据与应用数据的转换库,根据需要设置的待监控数据,将需要监控的ICD数据转换为应用数据格式,并存储在对应的数据缓存中。显示界面部分根据当前的显示视图驱动监控界面的显示样式,以及人工操作选择的历史数据,在对应数据块的数据位域中显示数据信息。
4 结束语
本文首先针对接口控制文档(ICD)对应的配置文件格式进行分析,并结合机载软件仿真验证环境中数据激励和数据监控功能模块的需求,设计ICD数据和应用数据间的双向自动转换方法,创建ICD数据转换功能库,并以ICD数据转换功能库为核心子功能,构建了数据激励功能模块和数据监控功能模块的自动化生成。通过自动生成机载软件仿真验证环境中数据激励和数据监控功能模块,能够有效降低仿真验证环境的开发工作量和维护成本。
参考文獻
[1]李骁丹,殷永峰,张弛.综合模块化航电系统软件技术研究[J].航空计算技术,2013(03).
[2]刘畅,刘斌,蒋崇武.嵌入式软件仿真测试环境实时数据处理研究[J].计算机工程与设计,2009(07).
[3]殷永峰,刘斌,王志.基于虚拟机的嵌入式软件仿真测试环境[J].沈阳工业大学学报,2011(04).