基于FPGA硬件设备数据传输接口的故障检测技术

2023-09-13 03:43曹元将
雷达与对抗 2023年1期
关键词:高电平门限时钟

吴 卫,曹元将

(中国船舶集团有限公司第八研究院,南京 211153)

0 引 言

随着各种硬件设备的性能指标不断提升,其接口数据传输设计也越来越复杂,因此硬件设备数据传输接口的故障检测变得越来越重要,采用先进的故障检测技术能大大提高硬件设备的维修效率和故障隔离率,一旦正在工作的数据传输通道出现故障,系统BIT能够立即检测到该故障,快速进行故障定位,缩短了维修时间,因此硬件设备数据传输接口的良好可测试性对于获得高任务可靠性具有重要意义[1-3]。

1 硬件平台构成及工作原理

本系统硬件平台主要由同在一个VPX机箱中的多块FPGA处理板和一块故检接口板组成,各FPGA处理板与故检接口板通过背板的I2C总线连接。FPGA处理板搭载一片FPGA芯片和ARM芯片;故检接口板搭载一片ARM芯片。数据传输接口故障检验工作流程如图1所示。各FPGA处理板上的FPGA芯片对传输接口进行故障检测,并将故检结果通过UART串口送往本板ARM芯片,各FPGA处理板上的ARM芯片收到故检信息后都通过背板的I2C总线送往故检接口板上的ARM芯片,再由故检接口板上的ARM芯片通过千兆网将故检信息传输到上位机进行后续汇总处理及故障显示。

图1 数据传输接口故障检测数据流示意

2 传输接口故障检测功能

FPGA硬件接口主要有RS422、RocketIO以及RapidIO等接口形式。

2.1 RS422传输接口故障检测功能

RS422信号有效性检测只能结合具体使用功能进行接口有效性监测,这里针对RS422传输匿影通道控制脉冲功能进行故障检测设计。

在匿影功能中,通道高电平有效比例过高通常会过度抑制输出,或通道没有高电平信号导致电磁兼容屏蔽功能失效,本文采用定时统计高电平点数的方式有效监测RS422。

2.1.1 统计计算方法

统计T时间内RS422接口中高电平点数,即根据板卡时钟读取T时间内高电平次数总和。在监测周期到来时,根据占空比门限、计数器是否溢出判断RS422接口是否异常,流程如图2所示。

图2 RS422接口异常判断软件流程

高电平次数总和采用26位计数器,在每个时钟下时间计数器加1:当高电平时,高电平计数器加1;当时间计数器为0x3FFFFFF时,比较高电平计数值的高8位与占空比门限,以此判定通路是否正常,并且利用功能监测输出高电平计数值的高8位。

这时在50 M时钟下,时间计数器从0计到0x3FFFFFF的时间约为1.34 s。高8位输出有效值在[0,255],量纲为0.004,即输出8位信息表示高电平有效占比,占比可从0到1,按照0.004的间隔精度表示。

2.1.2 参数化设计

可配置参数建议:高电平计数门限上限、高电平计数门限下限和输出位数(默认为8位,可以根据实际情况灵活修改)。

当板卡启动初始化时,必须配置占空比上限、占空比下限和输出位数3个变量。

默认高电平计数门限上限204(对应占空比0.8),高电平计数门限下限0(对应占空比0);当高电平计数高8位大于204或小于0时,输出RS422传输异常。计数门限默认值可以根据实际情况灵活修改。

2.1.3 监测输出信息

根据系统应用情况,定义多个字节用于在RS422接口监测结果输出。每个字节最多可以表示8路RS422状态,每路RS422信息监测结果按位定义输出,1表示RS422稳定,0表示RS422故障。该状态用ARM监测输出。

2.2 RocketIO传输接口故障检测功能

通过检测rxnotintable的状态变化次数判定当前光纤链路状态。当光纤链路稳定时,valid=1,表明当前接收数据有效;当光纤链路不稳定时,valid=0,表明当前接收数据可能存在误码,建议丢弃当前数据包。

光纤链路监测是在监测周期内(秒级)统计valid状态在多次时钟周期下的变化次数,共有3种状态:

当链路不通时,变化次数为0,且最近时钟周期下valid状态为0;

当链路不稳定时,变化次数>0,最近时钟周期下valid状态不确定;

当链路稳定时,变化次数=0,最近时钟周期下valid状态为1。

2.2.1 统计计算方法

在每个时钟周期下,RocketIO链路状态按图3状态机执行。

图3 RocketIO链路异常判断状态机

在光纤监测周期内统计valid变化次数。在监测结果发送时钟周期,获取valid变化次数及当前valid状态,判断光纤链路状态并输出,具体如图4所示。

图4 RocketIO链路异常判断软件流程

2.2.2 参数化设计

光纤状态检测涉及的参数包括:

(1)监测时间间隔,建议1 s;

(2)在监测时间间隔内,依据valid状态变化次数判定光纤接口不稳定的门限值,通常设置为0,即valid有变化就判定为链路不稳定;该门限参数越大,表示对链路不稳定的容忍度越大;

(3)在IDLE状态中,监测rxnotintable状态的时钟计数器门限,建议256或512;该参数影响传输链路从不稳定到稳定状态转换的严格程度,数值越大,表明对链路不稳定的容忍度越差,丢弃的数据越多。在IDLE状态下,通常后续处理的数据不进行输出,因此这个门限对应的时间通常不超过数据包周期;

(4)SYNC1状态转IDLE状态,监测rxnotintable=1统计次数门限,建议3~5之间;该参数影响传输链路从稳定到不稳定状态转换的严格程度,数值越大,表明对链路不稳定的容忍度越好,链路导致的异常数据不会对系统影响太大;

(5)SYNC1状态转SYNC状态,监测状态的时钟计数器门限,建议256或512。

注意事项:建议同时长时间(连续开机大于1 h)统计rxnotintable=1的次数,该次数用来表征光纤总体的稳定情况,例如通常情况下连续开机12 h,rxnotintable=1的总次数为50左右,若出现该次数统计为500,发生明显变化,说明链路状态有变化,须关注,这一点可作为健康管理中的监测项目。

2.2.3 监测输出信息

根据系统应用情况,定义多个字节用来在光纤接口监测结果输出,每个字节最多可以表示8路光纤状态,每路光纤信息监测结果按位定义输出,1表示光纤稳定,0表示光纤故障。该状态用ARM监测输出。

针对详细的接口监测信息、每路光纤valid变化次数及当前时钟周期下valid状态,用4位输出状态信息。输出4位信息填充方式如图5所示(当状态次数变化统计值大于7时,低3位填写7)。

图5 4位信息填充方式

2.3 RapidIO传输接口故障检测功能

在RapidIO初始化及通信过程中对3个状态量进行监测,以判断链路稳定性情况:

(1)port_initialized,链路两端物理链路是否通,port_initialized=1表示成功;

(2)link_initialized,链路两端通信协议是否一致,link_initialized=1表示协议一致;

(3)port_error,在通信过程中对误码、丢包等信息综合后的判定状态,port_error=1表示通讯过程中的链路故障。

在之前关于RapidIO链路的故障排查中,当初始化正常后,通信过程中port_initialized和link_initialized一般不会出现问题,但建议在通讯过程中保持监测,并根据状态判断链路稳定性。

2.3.1 统计计算方法

在监测时段内,根据RapidIO内核中port_initialized、link_initialized和port_error的状态统计,实现RapidIO链路监测。

当传输链路稳定时,在秒级宏观统计下,port_initialized、link_initialized和port_error状态变化次数为0,且当前时钟周期下port_initialized、link_initialized状态为1,port_error状态为0。

其他均为链路不稳定。

在RapidIO监测周期内,统计port_initialized、link_initialized和port_error变化次数。在达到监测周期时,根据状态变化次数及当前状态判别链路稳定性,并发送监测结果。具体流程如图6所示。

图6 RapidIO链路监测软件流程

RapidIO链路稳定性判断(流程如图7所示):

图7 RapidIO链路稳定性判断软件流程

链路稳定:port_initialized、link_initialized和port_error状态变化次数为0,且最近时钟周期下port_ini-tialized和link_initialized状态为1,port_error状态为0;链路不稳定:不满足上述RapidIO链路稳定判定条件的,满足下面任一条件,即为链路不稳定:

(1)port_initialized状态变化次数大于0;

(2)link_initialized状态变化次数大于0;

(3)port_error状态变化次数大于0;

(4)port_initialized状态变化次数都为0,且最近时钟周期下port_initialized状态为0;

(5)link_initialized状态变化次数都为0,且最近时钟周期下link_initialized状态为0;

(6)port_error状态变化次数都为0,且最近时钟周期下port_error状态为1。

2.3.2 参数化设计

RapidIO状态检测涉及的参数包括监测时间间隔,建议1 s。

在监测时间间隔内,port_initialized、link_initialized和port_error变化次数门限不建议参数化,通常状态发生变化就可以判断为链路不稳定。

2.3.3 监测输出信息

根据系统应用情况,定义多个字节用来监测RapidIO接口,每个字节最多可以表示8路RapidIO状态,每路RapidIO信息监测结果按位定义输出,1表示RapidIO接口稳定,0表示RapidIO接口故障。该状态用ARM监测输出。

port_initialized、link_initialized和port_error变化次数及当前时钟周期下的状态用状态监测通道输出。每路RapidIO接口用两个字节输出详细状态检测信息,port_initialized、link_initialized和port_error分别用4位输出状态信息,剩余4位保留。输出4位信息填充方式如图5所示(当状态次数变化统计值大于7时,低3位填写7)。

3 结束语

随着硬件设备日益复杂和用户对设备全周期综合保障需求的提高,硬件设备数据传输接口故障检测变得越来越重要。本文根据目前硬件平台故障检测技术发展状况,给出了数据传输接口的故障检测设计方法,该设计能够在各硬件平台中实现,并为设备故障定位,为维修保障提供有力的技术支撑。

猜你喜欢
高电平门限时钟
基于规则的HEV逻辑门限控制策略
一种基于FPGA的PWM防错输出控制电路
地方债对经济增长的门限效应及地区差异研究
别样的“时钟”
古代的时钟
随机失效门限下指数退化轨道模型的分析与应用
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
有趣的时钟
DM 50KW中波广播发射机欠推动故障分析
PDM 1kW中波广播发射机保护电路分析