APP下载

基于RFM的机载余度计算机软件快速测试平台

2016-11-23段晓军

计算机测量与控制 2016年5期
关键词:内存软件计算机

牟 鹏,段晓军

(1.中航工业 成都飞机工业集团有限公司技术中心,成都 610091;2.西北工业大学 无人机特种技术重点实验室,西安 710072)

基于RFM的机载余度计算机软件快速测试平台

牟鹏1,段晓军2

(1.中航工业成都飞机工业集团有限公司技术中心,成都610091;2.西北工业大学无人机特种技术重点实验室,西安710072)

为了提升飞控计算机的可靠性,目前普遍采用余度技术构建余度飞控计算机,该计算机由多个通道构成,每个通道有一个CPU,互相构成备份;但是,由于各个通道的机载软件之间相互同步、通信和交叉监控,必须并行调试和测试,这就造成了机载软件调试和测试的滞后,必须等待真实的飞控计算机开发出来之后才能开展工作;文章提出了一种基于RFM(反射内存)的余度计算机快速原型测试平台设计方法;该平台使用商用货架产品构成余度计算机的多个冗余通道,使用RFM模拟多通道间的通信、同步过程,通过对底层驱动封装实现硬件故障模拟和余度功能模拟,方便实现软件调试和从性能、功能测试,大大提高了开发效率,减少了研制周期。

余度计算机软件;RFM;快速测试

0 引言

机载多余度计算机软件测试比较常用的方法是虚拟样机技术。虚拟样机又称为虚拟原型机,它将不同工程领域的开发模型结合在一起,从外观、功能和行为上模拟真实产品,产品在概念设计阶段就可以迅速地分析、比较多种设计方案,可以缩短产品研发周期、提高产品质量[1]。目前国内外关于多余度飞控软件的测试资料比较少,文献[2]中提到了用虚拟样机技术来实现多余度相似与非相似软件的开发与验证平台。该平台使用10台PC结构工控机构筑虚拟的飞控计算机组,选用两种不同类型的处理器芯片,Intel和PowerPC。通道间的数据总线采用以太网,使用ARINC629总线协议进行通讯,实现通道间和通道内输出数据比较的功能。通道内各支路之间由于处理的信息量不大,采用计算机串行接口进行通讯,实现各支路时钟同步、系统状态数据交换等功能以及发送支路禁止或失效告警信号。根据应用需要稍作改变,该平台就可以方便地模拟3×3、4×2等常见多余度配置的软件开发与测试,是目前国内外多余度软件测试中常用的方法。然而,该方法主要侧重于对软件开发成品进行测试,在多余度飞控软件的开发过程中,更多依赖于相关项目经验的累积和软件编码人员的编码质量,并没有方便、易用的测试平台来辅助开发过程,更谈不上从性能和功能两方面进行测试。

反射内存(RFM)是一种高速的实时数据传输技术,它允许采用不同的总线结构和不同的操作系统的计算机以确定的速率分享实时的数据。它与以太网等其他传统网络相比具有更低的数据传输延迟、更快的传输速度,更简单灵活的使用操作,可以满足实时系统快速反应周期的要求[3]。

本文提出了一种基于RFM的飞控软件快速测试平台,它能在软件设计开发过程中随时进行实时性能和逻辑功能的测试,更早、更及时地发现软件错误和漏洞。更为重要的是,在系统软件设计初期,当航电总线仍在采购和调试时,它能利用RFM模拟航电总线的通讯过程,完成系统余度管理流程的测试。

1 测试平台的结构与原理

目标飞机是虚拟飞机,用一台飞行仿真计算机来模拟。飞行仿真机基于RTX实时扩展操作系统,实现了单机Windows环境下的实时仿真。飞控计算机仿真机由N台(N为系统的余度数)具有PowerPC处理器的计算机组成,仿真机内各板卡均基于VME背板总线,每台计算机均配置有VMI5565反射内存卡一块,所有的反射内存卡通过光纤连接至光纤HUB,该计算机组运行VxWorks实时操作系统。系统另配备有飞控计算机上位机一台,上位机用于多余度飞控计算机软件的开发和调试,还兼有故障注入的功能。飞控计算机上位机与仿真机之间通过以太网相连。图1是三余度飞控软件测试平台结构图。

目标飞机(飞行仿真计算机)模拟飞机的飞行状况并周期地通过UDP协议向飞控计算机仿真机发送飞行数据。飞控计算机仿真机每小帧周期(该时间根据系统设计需要确定)运行一次余度管理任务,包括:同步、数据采集、交叉传输、数据监控、数据表决等环节。RFM及其光纤网络用于实现通道间的通讯。例如,在每个小帧周期的起始,飞控计算机组都要进行一次同步,其目的是保证N个通道之间保持步调一致的工作,在“某一时刻”同时完成同一任务的某个基本动作。这样,容错系统的表决过程才有意义,才能保证系统中冗余模块的多数一致的原则。另外,RFM还用于通道间大量的数据交叉传输,这是系统冗余设计的最根本目的,当一个通道数据发生错误时,可以共享其它数据正确通道的数据,交叉传输次数根据余度管理设计需要来确定。飞控计算机上位机通过TCP/IP协议不定期地向飞控计算机组发送控制指令及故障注入数据,并实现飞控计算机组工作状态与重要数据的实时监控。

图1 三余度软件测试平台构成

2 飞控计算机软件层次架构

飞控计算机仿真机是余度软件运行的环境,需要逼真的模拟出余度管理软件的运行环境。为了实现这个目的,飞控计算机仿真机底层运行余度功能模拟层软件,包括:硬件驱动API、余度功能模拟API。具体系统软件层次架构如下图2所示。

图2 软件层次架构

可以看出,硬件驱动API的目的是为了在获取真正硬件数据的基础上,可以根据系统测试的需要注入特定的故障数据。对应用层而言,是没有办法区分是真正的硬件故障还是注入的故障,就可以方便的测试各种硬件故障情况下系统的处理流程是否能按照多余度管理策略进行。而余度功能模拟API的内部不仅调用上述驱动API,而且还根据故障注入信息对采集和输出的数据进行处理,进而实现诸如同步、交叉传输等余度特性的模拟。同样,在故障注入情况下可以测试系统的失步处理过程及交叉传输失败等故障处理流程。余度特性模拟API的内部工作流程见图3。

图3 余度特性模拟API工作流程

3 测试平台实现

3.1多余度任务调度

测试平台搭建完成后,就可以在该平台下开发和测试多余度飞控软件了。首先,将N台PowerPC计算机配置和引导为Vx Works实时操作系统环境,在上位机的Tonado开发环境下配置目标机服务器。目标机启动后,将编写好的代码编译链接后download至目标机,利用Tornado的Shell工具在就可以查看代码运行的结果。接着根据系统任务调度流程,设置任务调度方式及任务的优先级。设置系统时钟周期为1 ms,并设置每小帧周期执行一次中断处理程序。将余度管理任务挂接到中断处理程序中。根据余度管理的流程,逐步开发和测试同步、交叉传输、监控表决等模块。在初次同步过程中,由于N个通道任务启动时间存在先后差异,应设置较长的同步等待时间,一般为500 ms左右。

3.2RFM模拟多通道间通讯

为了模拟多通道间的通讯过程,使用VMI5565反射内存卡来实现,VMI5565具有1 MB的板上存储器。当应用程序成功打开反射内存板后,程序会映射反射内存板上的内存空间到应用程序的虚拟内存空间,应用程序处理反射内存板上的内存就像处理普通内存一样。如果打开成功,一个句柄将返回到应用程序,这个句柄将用于应用程序中所有与反射内存板有关的I/O操作。结束一个与反射内存网有关的应用程序时,必须关闭设备句柄,此时应用程序中和反射内存网有关的功能都将关闭,应用程序将不能访问反射内存板上的资源。

反射内存卡操作简单,只需要简单的几条语句就可以直接访问反射内存板上的内存。下面是在VxWorks下操作反射内存卡的相关函数。

首先需要在对应的.c文件下添加:

include"rfm2g_api.h"

define RFM2G_VXWORKS

定义RFM操作句柄:

RFM2GHANDLE Handle

RFM初始化:

RFM2gInit();

RFM打开:

RFM2gOpen("RFM2G_0",&Handle);//打开设备,返回句柄

RFM读写函数:

RFM2g Write(rh,offset,buf,sizeof(buf));//向反射内存写数据

RFM2gRead(rh,offset,buf,sizeof(buf));//从反射内存读数据

这里要注意的是,虽然RFM的传输速率可达25.9 Mbps,但是每次读写函数的内存操作大小不应大于256 Bit,在实际应用中,当内存操作大于256 Bit时,会带来意想不到的时间延迟,严重影响系统的实时性能。因此在多通道通讯过程中,若通讯数据较多时,应分批传送。

3.3故障注入模块

故障注入模块应在所有基本模块开发完成后实现。故障注入作为一个独立模块周期运行,其周期约为1/4个小帧周期,其优先级高于余度管理任务的优先级,故障注入模块周期读取上位机传送的故障注入信息,并及时将该信息传送至驱动API和余度功能模拟API,驱动API和余度功能模拟API根据故障注入信息修改对应的执行结果,模拟多余度飞控系统的各种故障情况,测试多余度系统的容错处理逻辑和容错能力。

4 平台应用与分析

设计3*1余度管理系统,其工作过程如下:飞行仿真机每5 ms发送一次飞行仿真数据,飞控计算机仿真机每20 ms采集一次飞行仿真机的传感器数据(只读取最新数据)。读到数据后,对输入的数据在N个通道之间进行交叉传输,并对交叉传输结果进行数据监控表决,将“最合适”的数据送到控制律计算模块供控制律计算使用。控制律计算模块将结果输出,并对输出数据再次进行交叉传输,对第二次交叉传输结果同样进行监控、表决,然后将表决所得到的舵控指令通过以太网输出给目标飞机。飞行仿真计算机按照一定的表决算法对三组输入进行选择,并将结果输出到舵机实现飞机主飞控系统的增稳与控制任务。在该平台下开发3*1余度管理软件,首先,分模块完成通道间同步、交叉传输、数据监控、数据表决模块的开发和测试,然后根据余度管理流程将模块任务融入20 ms小帧任务中,进行余度流程测试。图4是三余度测试平台实物图。

5 结论

图4 三余度测试平台实物

在该测试平台下,可以运行实时程序,统计实时任务执行时间,测试多余度策略管理逻辑,并及时纠正软件书写BUG和逻辑BUG。在各种系统航电总线存在差异的情况下,利用RFM代替航电总线,虽然其读写通道数据的时间和实际航电总线的通讯时间之间仍存在差异,但是这点差异相对小帧周期而言,是微乎其微的。因此,RFM能较为逼真地模拟多通道间通讯过程。软件测试完成后,还可以根据航电总线的设计加入相应的驱动模块并修改对应函数,就能快速完成飞控系统多余度软件的开发工作。

[1]王仲涛,刘增明,刘晶晶.弹载飞控软件开发调试与实时仿真平台研究[J].航空兵器,2010(6):38

[2]陈宗基,孙晓哲,秦旭东.民机飞控计算机系统虚拟样机验证平台研究[J].系统仿真学报,2008(8):112

[3]顾颖彦,反射内存网实时通信技术的研究[J].计算机工程,2002(7):143

[4]宋龙,张文山,靳凌,任章.空空导弹飞控软件研制中的虚拟样机应用[J].计算机仿真,2005(5):19-24.

[5]Naidu A.Case study.Airbus A340 flight control system[D].University of Virginia,2002:1-12.

[6]Yeh Y C.Triple-Triple Redundant 777 Primary Flight Computer[A].Aerospace Applications Conference[C].Aspen,Co.1996(1):293-307.

[7]Briere D,Traverse P.Airbus A320/A330/A340 Electrical Flight Control-A family of fault-tolerant systems[A].The Twenty-Third International Symposium.Aerospatiale[C].316,route de Bayonne,31060 Toulouse,France.June,1993:616-623.

A Rapid Testing Platform of Redundant Computer Software

Mou Peng1,Duan Xiaojun2
(1.AVIC Chengdu Aircraft Industry,Chengdu610091,China;2.State key Laboratory of UAV Special Technology,Northwestern Polytechnical University,Xi'an710072,China)

Aimed at the difficulties in associated debugging and long testing period and complex conditions in the simulation and testing of the redundant computer software,a kind of rapid prototype test platform based on RFM is proposed.The platform simulates the communication process between multi-channels by the RFM(Reflective Memory).The hardware fault simulation and the redundancy functional module fault simulation are implemented by encapsulating the underlying drivers and redundancy function modules.Under the platform,the redundant software could be tested from both performance and functionality in developing process.

redundant computer software;RFM;rapid test

1671-4598(2016)05-0012-02

10.16526/j.cnki.11-4762/tp.2016.05.004

TP311

A

2015-05-28;

2016-01-04。

航天科技创新基金(N2014KC0026)。

牟鹏(1982),四川遂宁人,主要从事无人机飞行控制系统设计、机载软件开发等方向的研究。

猜你喜欢

内存软件计算机
禅宗软件
计算机操作系统
基于计算机自然语言处理的机器翻译技术应用与简介
计算机多媒体技术应用初探
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
软件对对碰
信息系统审计中计算机审计的应用
即时通讯软件WhatsApp
内存搭配DDR4、DDR3L还是DDR3?