航电中继系统多通道ARINC429总线故障注入方法

2021-08-23 09:02樊智勇
计算机测量与控制 2021年8期
关键词:航电总线内存

樊智勇,李 季,刘 涛

(1.中国民航大学 工程技术训练中心,天津 300300;2.中国民航大学 电子信息与自动化学院,天津 300300)

0 引言

故障注入技术广泛应用于民用飞机航电系统集成测试,为系统的可靠性研究提供重要依据[1]。当测试数据量较大时,系统可能面临无法满足测试实时性的问题,有必要考虑大数据量和实时性的故障注入方法。航电中继系统可实现不同空间的航电组件或半实物仿真器之间大量总线数据转发,系统稳定运行且易于集中监控[2],可用于集成测试中总线数据的故障注入,系统在兼顾总线数据多通道并行注入的同时,保证故障注入的实时性。

ARINC429数据在航电系统数据交互中应用广泛,针对ARINC429总线的故障注入可以较好地模拟组件在工作过程中出现的故障,从而应用于集成测试,对研究总线的故障注入测试方法具有重要意义[3-4]。在考虑故障覆盖性和多通道故障并行注入的同时,依靠航电中继系统数据转发低延时、数据节点可扩展性强等特点,实现在多设备、多通道进行多种故障类型的低延时注入。

1 航电中继系统故障注入方法及架构设计

1.1 数据交互方式

航电中继系统采用反射内存实现数据交互,系统构型由终端、以太网交换机和反射内存交换机组成,终端和配置管理计算机通过反射内存通信网络实现数据交互,通过以太网交换机加载配置文件。每个终端包含一块ARINC429总线卡、以太网卡和反射内存卡;多个终端之间通过反射内存交换机作为传输中继,实现多个终端之间总线信号的转发及监视功能。

反射内存网络[5-6](reflective memory networks)由反射内存卡和光纤构成,其通讯网络具有传输稳定、低延迟、节点多等特点,常用于解决仿真过程中数据交互的实时性问题。反射内存网络用于集成测试可满足系统对实时性的要求,网络可信度高,基于反射内存建立的实时数据传输网络,可以保证测试数据传输的实时性和准确性,系统测试效果良好,可以满足系统集成测试的要求。

1.2 故障注入方法及架构设计

综合反射内存优点和考虑故障注入对于数据传输实时性的需求,采用反射内存通信网络实现ARINC429总线的故障注入。反射内存通信网络节点由配置管理计算机,故障注入器,反射内存交换机,以太网交换机和终端构成。在通信网络中,配置管理计算机为人机接口层,通过TCI(transmit common interface)传输服务进行数据的传输,终端和故障注入器经由以太网通过FTP(file transfer protocol)协议加载配置管理计算机的配置文件,人机接口层通过光纤和反射内存交换机交换数据,航电中继系统的故障注入反射内存通信网络架构如图1所示。

图1 故障注入反射内存通信网络

在反射内存通信网络中,分别为反射内存终端节点和故障注入器节点划分数据缓存地址,每个终端和故障注入器的数据对应着不同的反射内存地址段,通过反射内存广播的机制,进行数据交互和故障注入。配置管理计算机采用Windows操作系统,读取反射内存数据,用于数据监控,故障注入器为Vxworks实时操作系统,和反射内存交换机通信为实时数据的读取和写入。反射内存网络数据交互过程中,由配置管理计算机向终端和故障注入器发送ICD(input configuration document)配置文件,包含数据内容和源/目的终端信息。其中故障注入器的配置文件包含故障信息,所有的终端均通过故障注入器进行总线数据的故障注入。系统数据流向为:源终端→反射内存交换机→故障注入器→反射内存交换机→目的终端。根据配置文件内容,将源终端中的输入数据转发到故障注入器中,在故障注入器中,由配置文件中的故障信息判断是否进行故障注入,若进行故障注入,则根据故障信息进行设定故障类型的修改,将修改后的数据暂存在故障注入器对应的反射内存地址缓存区中,等待被目的终端读取,实现总线数据故障注入。同时,扩展故障类型只需改变配置文件内容即可实现,采用反射内存通信网络实现故障注入,故障的可扩展性强且易于实现。

2 航电系统故障类型及注入方式

为模拟航电系统的典型故障,从总线结构角度出发设定ARINC429总线故障类型,选取传输总线作为故障注入点,可以较全面覆盖系统的故障问题,提高故障注入效率。

2.1 故障类型

按照总线结构将总线划分为协议层和应用层[7],协议层根据总线协议划分,应用层根据信号在不同组件中的具体应用划分。针对总线故障,将故障类型划分为总线协议层故障和总线应用层故障。

协议层指信号传输协议[8],ARINC429总线数据格式为32位,每一位在传输过程中都有可能出现错误,可能出现的错误有:标识码(label)错误、源/目的识别码(SDI)错误、数据位(data)错误、符号状态位(SSM)错误、奇偶校验位(parity)错误,这些错误可能单独出现,也可能组合出现。

应用层方面,由于应用层是建立在组件功能的基础上,根据组件功能的不同会出现不同类型的故障[9-10]。航电组件可能出现的故障有不符合组件规范的数据,如超出数据的范围、数据本身的错误、应用数据丢失、线路的异常连接导致的信号传输故障。如FMS中出现接收飞行参数的显示异常或者信号丢失,或NAV发送的导航信号中方位角数据错误等,此类信号应用层面的具体故障,在总线上的故障都可以归结为数据丢失或数据错误两类通用故障类型。

2.2 故障实现方式

在反射内存网络中,定义用来缓存板卡读取及待发送数据变量phA429Data;故障缓存变量phFaultData,变量初始值为FFFF FFFF;输出数据缓存区变量phForwardData。故障注入原理如图2所示。

图2 故障注入原理图

在数据转发过程中,组件连接终端板卡接口模拟数据的收发,配置管理计算机下发配置文件将输入数据储存在变量phA429Data中,由反射内存交换机根据配置文件进行转发。若进行故障注入,被转发的数据进入故障注入器中执行故障注入,将变量phA429Data和变量phFaultData中缓存的数据按位取逻辑“与”运算,将运算后的数据储存在变量phForwardData中,写入反射内存对应的缓存区地址中,由反射内存交换机广播到其它节点,终端根据配置文件选择是否执行读取或写入操作,其中变量phFaultData由配置文件中的故障信息决定。若不进行故障注入,直接转发该数据至目的终端,即实现数据正常转发。

2.2.1 协议层故障

协议层故障考虑ARINC429 总线协议所规定的数据格式故障和信号时序故障。根据ARINC429数据协议和硬件板卡传输协议,判断传输信号的内容,读取反射内存全局结构体变量phA429Data中的数据从而实现对ARINC429 总线上传输数据的解码,对解码后的数据按照Parity、SSM、Data、 SDI、Label的顺序进行重新排列。

ARINC429数据协议层数据格式错误故障的实现方式为:对解码并重新排列后的ARINC429数据进行指定占位的替换。执行故障注入时,故障注入器生成故障文件,查找所要替换的数据位置,对变量phFaultData中指定位置数据进行反转,随后和变量phA429Data中缓存的数据按位取逻辑“与”运算,完成变量phA429Data中0和1的替换,实现数据格式错误的故障。

信号时序故障为数据传输中的常见问题,故障内容为改变信号的周期,从而造成信号时序的波动或混乱。通过调整故障注入器发送缓存变量的时间间隔实现,控制变量phFaultData进入反射内存交换机的时序。该故障使用信号触发延迟TaskDelay()函数实现,计量单位为毫秒,若由于周期改变造成的数据堆叠,则将堆叠的数据丢弃即可。

2.2.2 应用层故障

应用层故障类型为组件中出现数据丢失、数据错误等故障。

数据错误是系统预期接收数据的内容和实际接收数据不一致,其考虑的因素是数据内容不符合组件收发数据规定的范围或组件之间互相转发的数据发生混乱,造成数据错误的情况。数据错误故障实现方式为:

1)随机生成phFaultData或者手动键入数据对phFaultData进行赋值,随后和变量phA429Data中缓存的数据按位取逻辑“与”运算。运算结果改变phForwardData中的缓存,实现数据错误故障。

2)改变数据转发的目的终端,造成组件接受本不属于该组件的数据,从而导致数据内容错误。每个终端在反射内存交换机中的地址由配置管理计算机进行配置,当地址数据发生改变时,则对应的终端和数据内容均会发生改变。利用反射内存的这一特性,给变量phFaultData赋予一个偏移地址,从而导致由于目的终端被改变而造成的数据内容错误。

数据丢失故障模拟信号在传输过程中,由于线路连接异常等原因导致的数据丢失,故障现象为目的终端无法收到预期的数据。该故障实现方式为:在反射内存中,给变量phFaultData赋予一个较大的偏移地址,造成该数据在反射内存交换机中无法寻址,导致数据无法被转发,从而实现数据丢失故障。

3 故障注入过程逻辑设计

本文选取故障注入点为ARINC429总线,数据交互方式为反射内存通信网络,在系统进行正常数据转发的过程中在总线上进行故障注入。终端在VxWorks操作系统下以系统时钟速率轮询反射内存板卡各通道内存的数据。数据在板卡通道读写任务根据FIFO的不同状态执行,按照先进先出的原则对通道的读写任务进行调度。

系统故障注入执行过程如下:

1)系统创建数据转发任务,并向终端和故障注入器下发配置文件。

2)终端和故障注入器检查板卡各通道的状态,若通道FIFO状态不空,则使能读FIFO (EnableReadFIFO)开始工作,终端和故障注入器接收配置文件,若通道FIFO状态为空,多次查询,任务超时后结束运行。

3)接收数据函数(ReceiveData)执行,源终端接收数据。

4)终端把数据写入反射内存对应的通道地址,广播到反射内存网络中其它节点的相同通道地址中。

5)由配置文件内容决定是否进行故障注入,若进行故障注入,则故障注入器接收该数据,并根据配置文件中的故障信息对数据执行相应的运算,将运算后的结果写入反射内存对应的通道地址,并广播到反射内存网络中其它节点的相同通道地址中;若不进行故障注入,则进行数据的正常转发。

6)终端判断是否转发此数据。若转发,则目标终端读取该数据,将数据写到对应通道反射内存地址中,若不转发,则结束运行。

图3 故障注入流程图

若系统在多次查询后任务为超时状态时,结束运行,防止系统在没有数据转发时程序陷入死循环。

4 验证

4.1 故障注入实验

航电中继系统故障注入实验为配置转发ARINC429数据过程进行故障注入。实验使用长度2 km的光纤,仪器包括:ARINC429总线8通道板卡;ARINC429总线分析仪,以12.5 kb/s的速率传输数据,模拟组件信号的收发。

4.1.1 协议层故障注入

4.1.1.1 数据格式错误

协议层故障注入实验内容为数据格式错误故障。设置不同数据格式的故障类型,部分实验结果如表1所示。

表1 部分故障注入数据结果

在单次实验中,设定标识码和数据字组合错误故障注入实验,得到429总线分析仪中TX显示发送数据201CB0,RX显示接收数据为12000004,本次实验示波器显示结果如图4所示。

图4 示波器显示

图4上方为输入信号波形,下方为输出信号波形,分别和ARINC429总线分析仪TX和RX显示的数据相对应,从图中可看出输入输出信号存在Label和Data中高低电平的差异,其余部分保持不变,和本次故障实验预期取得的结果一致,表明ARINC429总线的协议层对设定的故障注入成功。更改系统转发配置继续进行不同通道的实验,结果均可实现故障注入,记录每次实验故障注入前后的延时。

4.1.1.2 信号时序故障

信号时序故障注入实验使用TaskDelay()函数设置任务时序延时,在数据转发过程中改变信号发送间隔,实验设置发送端信号数据周期为100 ms,TaskDelay()设置为100 ms,进行故障注入实验。预期获得的实验结果为:信号发送周期变为200 ms。使用示波器测量故障注入前后信号的波形如图5所示,在多个周期间隔内,上方的波形的传输周期和下方波形周期存在明显差异,示波器测量结果表明输入信号和输出信号波形存在100 ms的相位差,输出信号的周期变为200 ms,和预期实验结果一致,表明信号时序故障注入成功。更改TaskDelay()函数继续进行多次实验,结果均可实现故障注入。

图5 示波器显示

4.1.2 应用层故障注入

应用层故障以数据内容错误故障和数据丢失故障为例进行实验。以多组件数据交互为例给出系统终端配置如表2所示。

表2 终端配置表

表中终端配置信息含义以实验编号1为例:配置终端1的通道1向终端3的通道8转发数据52D8A5E5。根据实验配置表实现组件应用层方面的连接关系,来模拟真实组件的总线数据的传输。

4.1.2.1 数据内容错误故障

数据内容错误故障实验中,ARINC429总线分析仪中TX和RX分别连接信号发送端和信号接收端。按表2终端配置,进行数据丢内容错误的故障注入实验,实验结果如表3所示。

表3 数据内容错误故障

以实验编号1和4为例,组件输入数据分别为52D8A5E5和A5C2BB96,将两组实验中的目的终端互换,造成原来的目的终端输出数据内容的改变,从而导致数据内容故障错误。实验结果为编号1收到的输出数据为A5C2BB96,编号4收到的输出数据为52D8A5E5,表明对数据内容错误故障注入成功。同理,更改系统转发配置进行多次实验,均可实现故障注入。

4.1.2.2 数据丢失故障

数据丢失故障实验预期结果为:输出数据为空。按照表2终端配置,进行数据丢失的故障注入实验,实验结果见表4。

表4 数据丢失故障

更改系统转发配置分别进行不同通道、不同终端多次故障注入实验,故障注入功能运行稳定,表明航电中继系统的多通道ARINC429总线故障注入方法真实有效,且故障注入功能的增加仍保证航电中继系统稳定运行,并记录故障注入前后系统的延时。

4.2 延时分析

将多次故障注入实验中系统的延时和正常状态下数据转发延时进行对比,计算多终端、多个通道在故障注入前后延迟时间的差值。分别进行配置两组不同数据量故障注入和正常数据转发的对比实验:

1)多终端、单通道转发:终端1的8个通道分别转发至终端2~6的8个通道;

2)多终端、多通道转发:终端1的8个通道同时转发给终端2~6的共40个通道;

测量并记录正常数据转发的系统延时和故障注入后系统的延迟,得到多组对比实验的延迟差值,如图6所示。

图6 故障注入前后延时对比

由各组实验的延时对比,可得在多终端、单通道故障注入前后系统的最大延时差别约为0.05 ms,多终端、多通道数据的故障注入前后系统的最大延时差别约为0.08 ms。故障注入对系统的延时来源为故障注入器和终端数据的交互,故障注入器内部运算的时间。航电中继系统可实现在多通道总线故障的低延时注入。

5 结束语

本文通过分析航电中继系统的数据交互方式,研究反射内存通信网络节点、总线的故障类型、实现方法及故障注入逻辑设计,实现航电中继系统多通道ARINC429总线故障的低延时注入。通过搭建故障注入实验测试环境,验证故障注入功能可实现多终端,多通道数据转发过程中的故障注入。进行多次不同故障类型的注入实验,和预期取得故障注入结果均一致。故障注入对系统的延时影响小,可实现多通道、低延时的故障注入,满足系统的实时性需求,故障类型的可扩展性强,也可应用于其他类型总线,为航电系统的测试及故障诊断提供一种可行性方法。

猜你喜欢
航电总线内存
时间触发通信总线监控技术研究
关于CAN总线的地铁屏蔽门控制思路论述
民用飞机综合模块化航电系统资源状态监控技术研究
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
民用飞机航电系统虚拟教学资源建设
基于CAN/LIN总线的LED车灯控制研究
基于模型的航电系统集成验证技术研究
航道发展需解决“航电”矛盾
内存搭配DDR4、DDR3L还是DDR3?