基于FPGA的EtherCAT链路冗余原理及其设计与验证

摘 要: EtherCAT是一种实时工业以太网协议,使用链路冗余技术是实现链路稳定性和可靠性的重要手段 。介绍了基于FPGA的EtherCAT链路冗余原理,设计通过FPGA实现主站与从站、从站与从站之间的通信链路与冗余链路的自动切换,从而实现EtherCAT的链路冗余 。通过测试验证了此方法的可行性,增加了EtherCAT系统的可靠性与可维护性 。
0 引言【基于FPGA的EtherCAT链路冗余原理及其设计与验证】 EtherCAT最初是由德国的倍福公司基于标准以太网技术提出的工业以太网,是一种具有灵活网络拓扑结构的技术[1] 。EtherCAT技术具有速度快、同步性能好、支持多种拓扑结构、采用标准以太网帧、带宽利用率高等优点[2] 。工业以太网中冗余技术是提高以太网系统可靠性和可维护性最有效的手段之一[3] 。链路冗余是应对网口故障(包括主站网卡本身故障和连接)及链路故障(指从站节点之间的链路存在断开情况,如网线断开)的补救措施 。通常在对系统稳定运行要求比较高的情况下,就需要应用链路冗余技术 。链路冗余是一种单一容错机制,即如果链路在某一处发生故障,依然可以与各个从站保持数据的传输 。当通信恢复时主要的通信方向也会恢复 。如果不止一个地方发生通信中断,所有的必须在发生另一个错误之前恢复 。文献[4]中介绍了一种工业以太网EtherCAT冗余和热插拔技术,此种方法采用环型冗余结构,将最后一个 ESC节点连接到主站,此种方法虽然可以解决单点故障,但是在故障修理时需要断电,且不能解决多点故障 。为了解决此问题,本文通过介绍基于FPGA的EtherCAT的链路冗余原理,设计通过FPGA实现主站与从站、从站与从站之间的通信链路与冗余链路的自动切换,从而实现EtherCAT的链路冗余,增加了EtherCAT 系统的可靠性与可维护性。
1 EtherCAT原理 EtherCAT是一种实时工业以太网技术,采用主从站结构,如图1所示 。主站发送以太网帧给各从站,从站通过寻址从数据帧中抽取对应的数据或将数据插入数据帧,然后将该数据帧传输到下一个EtherCAT从站 。最后一个EtherCAT从站发回经过完全处理的报文,并由第1个从站作为响应报文发送给主站 。主站使用标准的以太网接口卡或具有以太网接口的嵌入式工业控制计算机,EtherCAT从站使用专用的从站控制芯片ESC,采取接收转发机制,以太网帧可以双向通行,但只有以太网帧由下行电报方向进入时,相应的报文才能得到处理,如果指定转发的网口未连接,ESC自动将以太网帧沿原入口返回 。
EtherCAT数据直接使用以太网数据帧,使用的帧类型为0x88A4 。EtherCAT数据包括2 B的数据头和44 B~1 498 B的数据 。数据区由一个或多个EtherCAT子报文组成,每个子报文对应独立的设备和从站存储区 。每个EtherCAT 子报文包括子报文头、数据域和相应的工作计数器(Working Counter,WKC),子报文寻址到从站节点并交换数据后,工作计数器将被增加,用以记录该子报文的处理状态 。子报文头中,8 bit命令字节指定了子报文类型(读写类型,寻址类型);8 bit索引号给出子报文编码 。32 bit的子报文地址指定了对从站的操作地址,寻址类型定义了寻址方式;8 bit长度用以指示报文数据区的字节数;R为4 bit的保留位;4 bit M表示本报文是否为最后一个报文;16 bit中断目前保留 。
2 基于FPGA的链路冗余原理 在EtherCAT通信链路运行过程中,可能会存在如下几种故障:
(1)网口故障,包括主站网卡本身故障和连接 。
(2)链路故障,指从站节点之间的链路存在断开情况,比如网线断开 。
为了能够增加EtherCAT系统的可靠性及可维护性,在EtherCAT主站与从站的链路之间通过FPGA增加了冗余功能,每一条链路都有对应的冗余链路作为备用 。链路1出现故障时,可以通过FPGA自动切到冗余链路1;链路2出现故障时,通过FPGA自动切到冗余链路2 。这样如果链路在某一处发生故障,依然可以与各个从站保持数据的传输 。当通信恢复时主要的通信方向也会恢复,极大地增强了系统的稳定性和可维护性 。
如图2所示,EtherCAT主从站网络构成框图中,冗余卡为基于FPGA的链路冗余卡,通过通信链路1与主机冗余型CPU连接,冗余链路1与备机冗余型CPU连接,实现主从站之间的主备切换冗余 。通过通信链路2与下一级冗余卡的链路1连接,冗余链路2与下一级冗余卡的冗余链路1连接,实现EtherCAT的链路冗余 。
3 链路冗余的FPGA实现方法 FPGA实现主站与从站、从站与从站之间的通信链路与冗余链路的自动切换功能 。

    推荐阅读