一种高压直流输电快速总线通信故障检测与处理的方法
在接收到对方的确认标记之后,才组织发送新的报文,新的报文内容包括新报文的标记、对接收到对方报文的确认回复标记和有效数据。
若接收不到对方的确认回复报文,则重发上次的报文。该功能要求通信双方都配置了发送和接收功能,即使发送有效数据为空的情况也可以。为兼顾数据的重发和实时更新功能,发送方需要使用双缓存区的内存结构,保证一个缓存区存放上次发送但未收到确认信号的数据,另一缓存区存放最新待发送的数据。
图4 报文握手与报文确认机制流程图
2.3 用户CRC校验功能
用户CRC自校验子域位于整个报文的最后,用户通过编程接口选择使用该功能,在发送前计算发送数据的CRC值,之后再进行发送,接收端在也使能了接收校验的情况下对接收到的数据进行CRC计算并将结果与接收到报文的最后一个数据(即发送端计算的CRC)进行比较,若一致,则报CRC计算正确;反之,则报CRC错误。
当出现CRC错误时,单次CRC故障指示位置1,内部计数器自加2,当CRC正确时,单次CRC故障指示位清零,内部计数器自减1。内部计数器最小值为0,最大值用户可配置(默认为200),若计数器值大于阈值(默认为5),则认为CRC频繁出错,链路故障指示位置1,故障状态下,若计数器值小于阈值,则清除CRC频繁出错标志,并清零链路故障指示位,如图5所示。
图5 CRC故障处理机制流程图
3 设计的应用
设计遵循可靠性、易用性和灵活性的设计准则,将通信协议和处理策略封装在快速总线通信数据帧和相应的功能块中,子功能的使能选择、参数配置、故障诊断结果以功能块输入输出的形式为工程应用人员提供接口。
从传输效率、处理器计算性能方面综合考虑,将链路故障检测与报文防抖功能作为默认功能使用,不可取消,防抖时间参数可设置;通信握手与报文确认功能、用户CRC校验功能作为可选功能由用户根据需求设置。
具体应用中,快速总线通信由一收一发两节点组成,由于通信子板支持双工通信,所以发送方也可以是另一通信链路的接收方。每一个通信子板需要配置初始化功能块以初始化PCI设备、开辟发送、接收缓存区,产生初始化地址。
如图6所示,在发送侧,发送功能块根据初始化地址组织待发送的有效数据,并在每一包数据的活动报文子域填写新的标记;在使用报文确认功能情况下,发送程序根据上次接收到的报文比较报文握手和确认子域,以确定对方是否有效接收了数据,进而判断是重发还是发送新的报文,重发时活动报文依然需要更新;用户CRC发送端使能时,发送程序会根据发送数据的长度计算报文CRC并将其写在有效数据的尾部。发送程序最终通过PCI将全部数据帧写入FPGA的FIFO并启动发送。
图6 发送侧配置图
如图7所示,接收侧,接收程序根据初始化地址读出接收到的有效数据。接收侧可根据具体需求和应用程序配置情况灵活设置链路故障确认防抖时间和链路故障恢复防抖时间,以实现稳定可靠地检测链路故障和故障恢复,并实时指示链路工作状态;用户CRC接收端使能置位的情况下,接收程序将对接收到的有效数据根据长度进行CRC计算,并与发送方的计算值进行比较,比较的结果和硬件本身的CRC校验情况相或,任何一种CRC校验故障均会触发CRC的故障指示。
图7 接收侧配置图
4 结论
本文介绍了基于特高压直流输电系统的快速总线通信的使用场合、工作特性和硬件形式,并遵循可靠性、易用性、灵活性的设计原则,基于HCM3000系统设计了一种快速总线通信故障检测与处理方法,即在用户层数据帧中增加用户故障检测协议域,并将故障处理策略封装在功能块中,从而为用户提供了功能完善、快速灵活的故障检测和处理功能。
该方法易于编程实现,易于移植,实现成本低,造成的系统开销小,目前已在多个特高压直流输电工程中得到成功应用[10]。本设计也适用于对数据传输有高速、高可靠性要求的工业点对点通信应用场合。
责任编辑:售电衡衡