基于FPGA的RS422总线故障注入系统
2018-03-30刘云飞谢洪森
刘云飞 谢洪森
摘要
介绍一种基于FPGA的可编程RS422总线故障注入系统,分析了系统的功能需求等。
【关键词】RS422 总线故障 注入系统
故障注入是进行产品测试性试验的重要技术手段。目前RS422总线应用广泛,应用RS422总线的系统要进行联试联调,其总线接口的容错能力需要测试。很多软硬件平台的测试都需要模拟出RS422总线系统故障,然后测试软硬件平台对RS422总线系统故障的处理能力和反应速度,但是由于故障种类和类型很多,有些故障又比较复杂,不容易模拟出所有故障,因此需要一种可编程模拟RS422总线接口故障的平台,能够模拟出各式各样的RS422总线接口故障。
1 系统功能
1.1 基本工作模式
当RS422总线故障注入设备接到来自计算机A的第一比特串行数据后,开始对其进行转发,其转发时延低到3时钟周期。进行故障注入时,故障注入设备根据故障用例以及相应计算机的RS422通信协议确定需要发送故障数据的位置,识别到目标位到达后,发送故障位,其处理时延低到3时钟周期。
另外,能够对RS422通信接口的输出数据建立保持时间进行故障模拟,如对于在时钟上升沿数据输出,下降沿采样数据的接口,故障注入设备能够通过高频信号,在邻近时钟下降沿时将数据输出,反之对于上升沿采样数据的接口,也能够在邻近时钟上升沿时将数据输出。
对于秒脉冲信号的向后延时输出,故障输入设备对接收到的秒脉冲信号,向后随即延时一段时间后输出,对于向前提前输出,故障输入设备对接收到的秒脉冲信号,首先直接输出秒脉冲信号,之后延时一段时间后输出;对于更改秒脉冲信号低脉冲信号的宽度,故障输入设备随机增加或者减小秒脉冲信号低电平的持续时间实现故障的注入;对于秒脉冲信号的输出停止,故障输入设备直接将秒脉冲输出端口的信号输出停止,此时输出端口的电平信号可以随机为高电平或者低电平信号,对于正常情况下,输出的秒脉冲信号与输入的秒脉冲信号之间的传输延时小于lus。
对于更改高稳时钟信号的输出频率,故障注入设备可以对高稳时钟信号随机的在1MHz频率的基础上增加或减小一定的频率偏移,对于更改高稳时钟的输出占空比,通过随机的更改高电平持续时间以及低电平输出时间实现,但是高电平输出时间与低电平输出时间之和不能大于一个时钟周期,对于输出停止故障注入,故障注入设备直接关闭高稳时钟信号的输出,此时端口可以随机的处于高电平或低电平。
1.2 同步/异步RS422数据通信接口故障注入
1.2.1 RS422数据转发
包括端到端通信;b)可对每一比特数据进行实时转发;c)较小的转发时延;
1.2.2 RS422故障注入
(1)可对每一比特数据进行实时处理;
(2)较小的处理时延;
(3)故障数据注入;
(4)建立保持时间故障模拟。
1.3 秒脉冲及高穗时钟RS422接口故障注入
1.3.1 秒脉冲接口
(a)采用平衡差分传输;(b)遵循ANSI/TIA/EIA-422标准规范;(c)故障输入方式:随机更改脉冲信号输出的周期、低脉冲信号的宽度、输出停止。
1.3.2 高稳时钟接口
(a)平衡差分传输;(b)遵循ANSI/TIA/EIA-422标准规范;
(c)故障输入方式:随机更改高稳时钟信号的输出频率、占空比、输出停止。
2 硬件设计
RS422总线故障注入系统总体组成如图所1所示,RS422故障注入设备由RS422故障注入功能板,和测试专用主机组成。
2.1 RS422故障注入功能板
采用嵌入式PCI板卡形式,可接收和转发RS422接口数据。以FPGA芯片为核心,实现故障数据的注入算法操作;并提供1个PCI控制器,可接收测试主机发送的管理指令,并向主机提交数据。功能板上同步/异步RS422数据通信接口采用端到端的通信方式,通过高频率工作时钟的FPGA芯片实现较小的转发和处理时延。
RS422故障注入功能板基于Testar2002RS422串口卡实现。Testar 2002 RS422串口卡具有PCI总线,可以实现RS422差分数据转发与处理的串口卡,板上采用Xilinx公司XC6SLX系列FPGA提供数据处理和通信控制功能。PCI-R422板卡可提供1路RS422标准的差分数据输入和1路RS422数据输出功能,并可通过PCI总线进行板卡与主机之间的数据
通信。另外,板卡可接收1PPS时钟信号并可通过FPGA调整其时序。同时板卡可以接收SMA接口的10MHz高精度时钟作为参考时钟。
功能板硬件框图如图2所示。
FPGA工作流程如图3所示。
2.2 测试专用主机
采用具有通用数据总线(PCI)的计算机主机,运行Windows操作系统和应用程序。用于对功能板进行配置和管理,控制功能板的故障注入功能,并对从功能板接收的数据进行分析处理。
3 软件设计
系统软件主要包括2部分,一是Windriver驱动,用于FPGA与RS422数据监视与注入软件之间的通信;二是RS422数据监视与注入软件,用于根据故障注入前端的命令配置FPGA的配置参数和计算出故障参数,将故障参数发送至FPGA,并且接收FPGA故障注入之后的数据,以备比对。
同步/异步RS422数据通信接口转发故障注入原理如图4所示。
RS422数据监视与注入软件的工作流程如图5所示,首先接收故障注入前端的配置参数;再根据该配置参数配置FPGA的各个寄存器,例如:时钟,串口速度等;計算故障参数;然后发送故障参数至FPGA;接收并保存FPGA发送的故障注入前后的数据;根据故障注入参数和故障用例造出理论上的故障注入后的数据;对比理论数据与FPGA实际输出数据;将比对结果反馈至用户界面。
RS422故障用例分为以下三类:
(1)基于RS422协议的上层协议故障注入,这类故障要结合具体的故障注入需求详细说明,明确要求实现多长时间的建立保持时间调整范围,设置好故障注入延迟、是否要求实时转发。
(2)对标准的1PPS时钟进行故障注入,有三种模式:调整周期,调整低电平的占空比,还有输出停止。
(3)对高稳定时钟信号的故障注入需求,三个模式:更改输出频率,占空比,停止输出。
4 实时性分析
为获得预期的测试效果,RS422故障注入设备在正确执行故障注入操作的同时必须保证数据转发、处理所造成的传输延时在可接受范围内,不影响系统的常规和测试使用。
RS422通信速率限制:RS422通信的理论传输速率最大为10Mbps;在传输距离为100米、传输介质为平衡双绞线的实际使用环境中,其传输速率仅为约1Mbps。以10Mbps传输速率计算,其单位比特宽度为l00ns。
FPGA数据处理速度:目前,常用的FPGA芯片(如Xilinx Vertex5)的输入时钟最高也已经达到300?400MHz的水平,即1个时钟周期在5ns以内。
通过上述对比可以看到,FPGA的时钟频率可以达到RS422数据率的20倍以上。在RS422通信中1个比特数据的传输周期内,FPGA可以进行多个时钟周期的数据操作(如图6所示);根据系统软硬件设计方案,FPGA只需根据参数配置对指定的数据位进行0/1翻转,而不需对复杂的应用层通信协议进行处理,这样对FPGA逻辑实现的难度、FPGA的资源消耗以及硬件整体复杂度的要求比较合理,具有较高的可行性;虽然FPGA进行数据转发或进行故障位操作时,可能仍将耗费多个时钟周期,但是在FPGA设计中通过减少大规模的组合逻辑、减少LUT级联的数量、增加约束/流水/切割状态等措施,可以进一步提高FPGA的工作频率、减少寄存器到寄存器的时延,完全可以满足使用要求。
5 故障操作方式
故障操作方式包括2种:手动触发与PCI总线触发。
5.1 手动触发
在故障注入功能板上具有4个故障模式选择开关,通过手动设置开关的状态可对应多种不同的故障模式针对若干种典型的故障用例,在FPGA中预先配置相应的参数信息,FPGA根据选择开关的设置选用预先设定的参数对其所对应的故障位进行处理。手动触发方式操作简便快捷,可以在不依赖专用测试主机和测试软件的条件下对系统进行基本的故障注入。
5.2 PCI总线触发
将故障注入功能板插入专用测试主机,在主机上运行相关设备驱动和测试软件,可以在软件操作界面上根据需要选择相应的配置参数并通过PCI总线发送到FPGA;在故障注入过程中,主机还通过PCI总线获取功能板的运行状态和各类数据,由分析软件进行分析。PCI总线触发方式功能丰富,具有完善的故障模拟、监控、记录、分析功能。
6 结语
基于FPGA的RS422总线故障注入系统,采用可编程器件,能够模拟出各式各样的RS422总线接口故障,从而全面测试软硬件平台RS422总线接口的功能和性能。同时能够检测系统/设备功能设计的缺陷,验证系统/设备故障适应能力,复现系统故障,提供故障解决有效手段,验证系统设计,为系统验证提供强有力手段。
参考文献
[1]岳晓东.一种通用串行总线的故障注入系统设计[J].电子技术与软件工程,2016(05):128.
[2]李妮娜.基于RS485总线的电气故障模拟实验装置的设计[J].上海工程技术大学学报,2008,22(01).
[3]李佳亮.故障注入技术研究与展望[J].机械工程师,2016(08):83-85.
[4]仲廣沛.基于FPGA的故障注入技术的研究[D].哈尔滨工业大学,2015(06h18-42.