APP下载

一种双网络总线接口模块故障实时检测的硬件设计与实现

2021-04-20武坚朱志强冯思桐

电脑知识与技术 2021年7期
关键词:CAN总线故障检测

武坚 朱志强 冯思桐

摘要:现有的机载单总线接口模块当网络总线通信故障时,主机系统无法获取模块及交联电路的状态信息,模块表面上看起来就像黑匣子一样无法访问,给主机系统带来了潜在的安全隐患,因此双网络总线接口模块的设计对于机载产品的故障检测具有重要的意义。该文设计了一种基于FC(Fibre Channel,光纤通道)和CAN的双网络总线接口模块,能够有效地完成接口模块的故障实时检测,提升了系统的测试性和维修性。

关键词:FC总线;CAN总线;故障检测

中图分类号:TP393        文献标识码:A

文章编号:1009-3044(2021)07-0052-02

1 介绍

基于FPGA的嵌入式接口模块具有灵活度高、集成性高等优点,可以支持150Mbps至6.5Gbps多种通信速率[1],实现不同的接口功能。但当硬件功能电路出现异常时,故障往往难以进行迅速定位和排查。尤其在接口模块通信功能故障时,上层主机系统此时完全无法访问接口模块,无法精准定位故障位置,对于故障排查和设备维修造成了极大不便。本文提出的双网络总线接口模块围绕FPGA设计实现,采用双路网络总线设计,通过FC总线及CAN总线同时将产品状态进行上报,能够对模块自身硬件状态进行有效的实时检测。模块中双路网络总线的设计可以确保在FC总线或CAN总线通信失效时,上层主机仍能通过另一路总线获取当前的状态信息,极大提升了产品的测试性和维修性。

2 故障实时检测机制

本文设计的故障实时检测机制,检测的主要对象为接口模块自身硬件的状态信息,包括FPGA内CPU的运行情况,SRAM、NVRAM和FLASH的写读状态,以及FC总线的链路状态信息。CPU每两秒进行一次自检测,检测后在NVRAM读写正常的前提下将结果记录在NVRAM中,并将表示状态信息的8字节状态码,通过FC总线上报至主机后端的中央维护系统,同时通过CAN总线上报至主机前端的傳感器系统。部分关键字节状态码见表1。

接口模块使用FPGA提供的高速串行I/O,能够满足FC网络总线要求的2.125Gbps的速率要求,通过FPGA内嵌的PowerPC处理器硬核及FLASH存储器完成维护软件及应用处理软件的执行,模块的逻辑内部通过接口控制器、存储器管理器实现对串行接口和存储器的管理,PowerPC处理器运行Vxworks操作系统,负责完成双路网络总线的接口控制及初始化、中断处理、数据转换与组帧和传输管理等工作。通过串行接口实现对相关接口参数的配置,包括FC的端口ID配置,FC消息ID配置、CAN总线速率、CAN消息号等。最终软硬件组合共同工作完成FC-ASM[2]协议处理及CAN接口通信管理,实现双网络总线的对外通信及故障检测功能。

3 双网络总线接口硬件设计实现

在接口模块硬件设计中,围绕FPGA,搭建电源、时钟、存储和光电转换等功能电路,总体结构框图见图1。

模块使用Master SelectMAP模式对FPGA进行配置,并对FPGA内部高速串行I/O管脚的供电进行了滤波设计,每路都增加了一个指定的电容和磁珠以确保良好的纹波特性。为了确保FC及CAN双路总线的正常通信,产品使用40MHz、212.5MHz以及16MHz三种时钟,分别为系统时钟、FC工作时钟以及CAN接口工作时钟,由三个晶体振荡器提供,所有晶体振荡器布局均靠近所用芯片,并采用LC电路进行供电设计,以提高时钟品质。在FPGA外围搭建了存储电路,包括SRAM等FLASH芯片存储维护程序、应用固件等信息,NVRAM用于存储故障信息或其他系统要求的关键信息,便于系统综合过程中的故障排查。产品配置硬件离散量1个,为地面调试使能信号,用于切换模块运行模式。该信号经过驱动器隔离后引入FPGA,PowerPC启动对应的应用程序前读取该信号状态,以确定工作模式,并启动相应的应用程序。GSE为低时,为维护测试状态;GSE为高时,运行应用程序。FC电信号与光信号的转换则通过光电收发器件实现,通过FPGA的高速串行接口,使用交流耦合方式,连接到光电收发器,转换为光信号之后,通过MT接口形式引出到接口模块外。

其中FC总线接口的MAC部分功能使用自研的IP核实现,支持FC-1和FC-2部分功能,支持点到点和交换结构[3],包括FC端口状态机、可选的缓冲区到缓冲区信用管理。对上提供应用逻辑的数据收发接口,对下提供用于连接光电收发器或电连接器的高速差分信号,可提供线速的数据发送能力。基于FPGA外围电路中MGT实现FC接口信号的串/并转换、8B/10B编码、时钟恢复以及CRC校验等工作。FC网络总线对外通信的具体流程如图2。

接口模块的CAN接口用于和传感器控制模块之间进行数据交互,通信速率1Mbps,兼容ISO 11898标准,使用CAN协议芯片以及收发器芯片实现该接口[4],数据帧格式采用CAN2.0B标准帧格式,具备高层协议标识和数据校验能力,并且能够对数据进行分段传输。接口电路使用专用光电耦合器件进行隔离保护,在实现可靠数据通信的前提下,对电路进行有效保护,硬件设计框图如图3所示。

CAN总线接口通过CAN驱动器对外提供电信号,CAN协议处理单元实现对CAN报文信息的解析和封装。CAN控制逻辑负责维护CAN总线状态机,将报文信息发送至CAN总线,同时将从CAN总线接收到的报文信息写入CAN的接收缓冲区,并将CAN接收中断上报处理器。PowerPC处理器通过一系列CAN管理寄存器实现对CAN总线链路控制及CAN报文信息收/发管理的操作,最终实现CAN总线的对外通信及故障实时检测。

4 结束语

本文提出了一种双网络总线接口模块故障实时检测的硬件设计和实现方法,通过围绕FPGA搭建硬件电路,实现了FC和CAN的双路网络总线通信功能,能够对模块自身的CPU、SRAM、NVRAM、FC链路等硬件信息进行实时检测和获取,并能通过双路网络总线进行实时上报。对于上级主机系统而言,一旦发现故障,能够迅速定位并进行故障排查,大大提升了系统的测试性、安全性和维修性。

参考文献:

[1] 刘召庆,康婷颋,惠进,等.基于FPGA的FC总线通讯板的设计与验证[J].电子设计工程,2018,26(8):97-101.

[2] INCITS TR 31-20020, Information Technology-Fibre Channel Avionics Environment-Anonymous Subscriber Messaging (FC-AE-ASM)[S].2008.

[3] 武华,石海洋,杨媛媛.CAN与光纤通道网关的设计与实现[J].电脑知识与技术,2015,11(12):49-51.

[4] 冯源,豆海利,闫海明.基于CPLD的DSP与CAN控制器的接口设计与实现[J].现代电子技术,2015,38(8):66-69.

【通联编辑:代影】

猜你喜欢

CAN总线故障检测
基于嵌入式的汽车辅助制动系统研究
优化网络设备维护提高数据通信传输质量