总线故障测试研究

时间:2022-05-29 06:40:34

总线故障测试研究

二十世纪90年代以来,1553B总线因其具有高可靠性、实时性好、开放性和容错性强等优点[1],超出了航空领域方面的应用,逐渐深入到人造卫星、导弹、运载火箭、航天飞机等有高可靠性要求的系统中,成为一种国际标准。要保证总线系统的高可靠性,总线测试必不可少。传统的1553B总线测试有两种途径:一是通过各子系统的测试接口及加装部分传感器的方法,从底层直接采集数据,进行对系统的测试及诊断;二是可直接通过综合电子系统采集数据,把测试系统通过耦合器接入到综合电子系统,就可以从总线上直接读取各子系统的数据。总线测试平台如美国Condor公司的BusTools-1553测试系统,ALTA公司开发的AltaRTValRTValidationTool和AltaViewBusAnalyzer[2]测试系统等均是采用这种方式应用于1553B总线测试中的。其中BusTools-1553软件也有部分的故障注入功能,但仅是局限于仿真BC或RT设备进行的故障注入,无法进行真实设备间的故障注入测试。尽管这种测试方法被众多测试平台应用,但不够灵活的故障注入功能使得大部分总线测试仍旧摆脱不了正向测试的模式,针对输入的激励,测试输出的响应,而实际总线运行中会面对各种各样的状态及环境变化,当实际运行中的激励为异常状态时,便无法预料到总线的响应和在极端条件下总线数据传输的能力。为了提升测试覆盖性,本文提出了具有故障注入功能的1553B总线测试方法。文中阐释了总线故障注入测试方法,分析故障模式,选取几个典型的测试用例,提出实现方案并进行故障注入的实验验证。1故障注入测试方法故障注入是指按照事先选定的故障模型,采用某种策略人为地将故障引入目标系统中,通过观察和分析系统在被注入故障情况下的行为,可以为试验者提供所需的定性、定量的评价结果[3]。故障注入一般有两种途径:软件故障注入和硬件故障注入。软件故障注入方法采用修改内存或者寄存器的内容来注入故障[4],或者采用修改程序实现,易于控制,成本低,但不能真实地反映系统实际运行过程中所发生的硬件故障。硬件故障注入使用物理的方法实现系统的故障注入,是模拟硬件在实际运行过程中发生的故障。为此我们采用基于硬件的故障注入方法,更真实的模拟总线测试环境。本文论述的故障注入测试方法是指在不改变提供激励源的测试设备与被测设备信号的前提下,通过挂接在总线系统中的故障注入单元来进行所需故障模式的配置,改变通信信号,实现在总线设备正常通信中实时加入各种故障的功能,如图1。备与被测设备的软硬件,且不改变原总线连接的拓扑结构,加装方便,适合在大多数总线系统中应用。

2故障注入模式及实现方案

根据1553B总线的有关理论和经验,预计总线测试中将要出现的故障和难点,分析所需的故障模式[5],总结出1553B总线故障模式分为3个层面:物理层故障注入,电气层故障注入和协议层故障注入。考虑到系统级总线的挂接设备多,总线长度长,面临的环境复杂、恶劣,物理层故障模式包括通断控制、短路控制、串行阻抗控制、并行阻抗控制,用以模拟总线上会出现的各种线路问题;电气层故障模式包括输出幅度调节、占空比调节、上升下降沿调节、信号延迟等项目来模拟测试设备输出端输出异常信号的情况;协议层故障模式包括:命令字、数据字、状态字奇偶校验,同步头反向,数据字计数故障用来验证1553B总线对不符合协议的命令字或数据字的辨识能力。为保证故障注入测试及仿真分析系统能够灵活、快速的对1553B总线进行故障注入,且对总线系统造成的物理损害小[6],提高故障注入的安全性,测试系统的故障注入单元采用嵌入式故障注入方法。系统采用ARM9处理器,运行VxWorks操作系统,通过100Mbps以太网和工控机进行通信。工控机通过在Windows操作系统中软件下发的命令下传至VxWorks操作系统,再驱动ARM9处理器转发给FPGA,FPGA解析命令,执行故障注入或数据采集。

2.1物理层故障注入总线信号由总线端进入故障注入设备,故障注入设备中的ADC进行信号的采样,交由FPGA进行处理,FPGA通过ARM下达的物理层指令控制继电器矩阵和电阻网络,输出到设备端,实现1553B总线信号的通断、短路和阻抗控制的故障模拟,如图2。

2.2电气层故障注入在电气层故障注入中,数据采集由采样速率65MSPS,12bit转换精度的ADC完成,对应1Mb/s的1553B传输速率,可以算出在1553B总线消息中的每一位要采样65次,12位AD转换后,最大模拟信号电平值为0xFFF(212-1=4095),最小模拟信号电平值为0x000,我们将每一位的高、低电平各采样27个点,中间过渡过程采样11个点,如图3。当进行电气层故障注入时,FPGA对需要进行故障注入的数据位采集点的电压值进行修改,再将处理后的数据送至高速DAC输出,形成故障注入后的波形。输出信号的延迟可以通过对ADC采样数据进行缓存的方式来实现。当FPGA收到信号延迟故障注入命令以后,启动延时定时器,同时将采样数据存储到先进先出的FIFO中,定时器达到阙值,数据开始从FIFO的另一端输出至DAC,由DAC恢复波形,这样就实现了总线信号的延迟,如图6。例如电气层中的输出电压幅度调节可以通过DAC和运算放大器实现的,如图4所示。只要FP-GA端输出给DAC的数字信号按比例缩放,输出的1553B信号的电压幅度也会按比例缩放,这样就完成了电压幅度的调节。输出信号占空比调节可以通过故障注入设备中FPGA控制DAC的输出来实现。在每一位ADC采集的65个点中,FPGA根据占空比的设定条件不同输出不同个点的0xFFF和0x000给DAC,控制DAC分别产生高电平和低电平,而高低电平过渡段的点数不变,且仍然持均匀下降的趋势。DAC输出的高低电平的宽度不一样,在1553B信号输出端产生的1553B信号的占空比也不一样,0xFFF和0x000的点数比例决定了每一位占空比的比值,如图5。

2.3协议层故障注入协议层故障注入的实现基于1553B总线协议,通过判断ADC采样数据的大小和持续时间来实现,由于同步头位占1个半比特位,明显比消息位和奇偶校验位宽,因此可判断出同步头位,包括命令字的同步位和数据字的同步位,进而判断出之后的消息位和奇偶校验位,从而实现整个1553B总线上传输数据的解析。解析出数据后,即可根据用户设置的故障注入条件,对解析出的数据注入响应的故障,并经过DAC产生出注入故障后的波形。例如在命令字奇偶校验故障中,FPGA先判断出消息的同步头位,分析ADC采集到的同步头是否为由高到低的命令字同步头,再向后16位到达奇偶校验位,将奇偶校验位上的65个采集点的数据全部反转,即变0xfff为0x000,变0x000为0xFFF,中间过渡段的数值由0xFFF减去当前点的数值即可得到,再由DAC输出,最终达到改变奇偶校验位,实现命令字奇偶校验故障的注入。

3实验验证

通过以上故障注入测试方法的研究,故障模式的需求分析以及探索故障注入的实现方案,搭建起了一套故障注入测试平台,并在其中加入了示波器来检测故障注入前后的波形,以便进行故障注入的实验验证,如图7。实验中将故障注入单元中对应的故障模式执行后,用示波器测量故障注入单元的输出端,可得到经故障注入单元注入故障后的波形。当故障注入设备不加入故障时,监测到的波形便是正常的波形。

3.1电压幅度调节示波器显示的波形如图8,电压幅度的峰峰值从6.0V经过3.8V逐渐降到了1V左右,实现了电压幅度调节的故障注入功能。根据GJB5186.1的规定,远程终端RT的输入电压在0.86~6V时,RT响应CS(净状态),0.86V以下,RT响应CS或NR。在故障注入测试中,当电压幅度调制到1V左右时,RT还能够正常响应。但当电压幅度再向下调节时,示波器不能再抓取到波通过示波器的x轴测量,可以测出在占空比6:4波形下,高电平时间约为420ns,低电平时间约为270ns,高低电平持续时间比值为1.56,接近于6:4的占空比值;在占空比7:3的情况下,高电平时间约为490ns,低电平时间约为200ns,高低电平持续时间比值为2.45,接近于7:3的占空比值,完成了占空比的故障注入。

3.3命令字同步头反向故障实验中由测试设备发送一条带一个命令字和一个数据字的消息,命令字为0x0821。由图10可以看到命令字的同步头已经由正常的先高后低变为了先低后高,完成了命令字同步头反向故障的实现。将故障注入单元输出端与被测设备相连后,使用BusTools软件观察RT对于此错误指令的响应,会发现产生IS(InvertedSync,同步头反向错误),也验证了该故障注入的实现。

4结论

本文研究的1553B总线故障注入测试方法,能够克服以往传统总线测试中测试覆盖性不全的缺陷,尽可能全面的覆盖1553B总线出现的各种故障模式。文中通过对故障注入测试方法、故障模式、故障实现、拓扑结构的论述,论证了此方法应用于1553B总线测试的可行性与实用性。又通过实验验证了故障后的波形结果,符合故障注入的预期。基于本文提出的故障注入测试方法可以实现大部分物理层、电气层和协议层的故障模拟。这种嵌入式的故障注入方法使得系统具有良好的扩展性,以便对新加入的故障模式进行实现,不断完善1553B总线的测试覆盖性,确保总线安全可靠运行。

上一篇:板材企业竞争力分析 下一篇:复合材料甲烷风洞烧蚀功能