APP下载

基于FPGA的EtherCAT从站模块设计

2020-07-26吴超王成群徐伟强朱升宏贾宇波

软件导刊 2020年7期
关键词:通信协议

吴超 王成群 徐伟强 朱升宏 贾宇波

摘 要:EtherCAT作为高性能工业以太网的代表,凭借其低延迟、高速率、高吞吐率等特点在工业自动化领域得到了广泛应用。针对目前EtherCAT从站需要依赖国外专用从站控制器芯片以保证网络性能的问题,提出一种使用FPGA芯片代替专用从站控制器芯片的EtherCAT从站软硬件方案。利用示波器测量EtherCAT从站的各项性能,测试结果表明,该设计方案与其它采用专用控制器芯片的EtherCAT从站方案相比,可提高EtherCAT网络的实時性能,减小通信周期抖动。该方案降低了EtherCAT从站实现成本,且拥有自主知识产权,可满足工业通信高实时性、低时延的要求。

关键词:工业以太网;通信协议;EtherCAT;FPGA

DOI:10. 11907/rjdk. 192575 开放科学(资源服务)标识码(OSID):

中图分类号:TP319文献标识码:A 文章编号:1672-7800(2020)007-0011-04

The Design of EtherCAT Slave Module Based on FPGA

WU Chao1,WANG Cheng-qun1,XU Wei-qiang1,ZHU Sheng-hong2,JIA Yu-bo1

(1. School of Information, Zhejiang Sci-Tech University;2.H3C Co., Ltd., Hangzhou 310018,China)

Abstract: As the representative of high performance industrial ethernet, EtherCAT has been widely used in the field of industrial automation due to its low latency, high speed and high throughput. Aiming at the current situation that EtherCAT slave station needs to rely on foreign special slave controller chips to ensure network performance, this paper proposes a hardware and software scheme of EtherCAT slave station using FPGA chips instead of special slave controller chips. The performance of the EtherCAT slave station is measured by an oscilloscope. The test results show that the design scheme can improve the real-time performance of the EtherCAT network and reduce the jitter of the communication cycle compared with other EtherCAT slave station schemes using dedicated controller chips. This scheme reduces the implementation cost of EtherCAT slave station and has independent intellectual property rights, which meets the requirements of high real-time and low delay in industrial communications.

Key Words: industrial Ethernet; communication protocol; EtherCAT; FPGA

0 引言

随着自动化产业的发展,传统现场总线技术由于带宽及其利用率的问题已无法满足现代工业自动化的需要,因此被称为第二代工业网络的实时以太网受到越来越多的关注。随着工业4.0的提出,以太网与工业自动化结合得更为紧密。目前,实时以太网凭借其成熟的特性已成为工业自动化领域不可或缺的技术[1-3]。

EtherCAT作为高性能工业以太网的代表,以其高速、实时性、低成本、拓扑灵活等优势得到了快速发展,已成为工业控制领域流行的工业以太网解决方案。许多学者针对EtherCAT网络作了大量研究,其中对于EtherCAT从站的研究最为普遍。如参考文献[4]选用德国倍福公司的专用从站控制器芯片ET1100,提出一种基于ARM Cortex-M0微处理器的从站设计方案;参考文献[5]在其基础上提出一种独立的EtherCAT从站模块设计方案,并将其应用于多轴闭环步进电机驱动中;参考文献[6]选用德国倍福公司的专用从站控制器芯片ET1200,提出一种将EBUS接口电路应用于EtherCAT从站模块中的设计方案;参考文献[7]提出一种基于专用从站控制器芯片ET1100与多核DSP的EtherCAT从站方案,该方案相较于现成商用从站的实时性具有较大提升。

然而,目前几乎所有EtherCAT从站都需要使用国外专用控制器芯片或硬件电路保证网络性能,使用较多的控制器芯片有德国倍福公司的ET1100和ET1200等。针对这种情况,   本文在研究EtherCAT通信协议的基础上,提出一种基于FPGA的EtherCAT从站设计方案,利用FPGA作为主控制器实现专用控制器芯片在EtherCAT通信中的功能。通过自己搭建的EtherCAT主从站测试数据精确度,示波器测试结果表明,主从站设备实时性良好,网络抖动小。本文设计方案拥有自主知识产权,摆脱了对国外专用芯片和技术的依赖,可为将来我国不同工业应用场合搭建低成本EtherCAT主从站提供参考。

1 EtherCAT协议

EtherCAT遵循开放系统互联模型,主要分为物理层、数据链路层和应用层3层。物理层为信号传输提供物理链路,数据链路层为相连设备之间的数据通信提供支持,应用层对数据链路层的请求作出反应。EtherCAT采用标准的IEEE802.3以太网帧,其帧类型0x88A4用于与其它类型数据帧相区分。每个EtherCAT子报文都包含报文头、报文数据和工作计数器3部分[8-12]。工作计数器记录被子报文正确寻址的从站数目,记录规则是读或写成功时,WKC增加1;读写操作成功时,WKC增加3。EtherCAT数据帧结构如图1所示。

EtherCAT采用集总帧的思想,主站发送一个含有多个子报文的数据帧给从站设备后,从站快速取出对应子报文,并将要发送的数据写入报文中,继续转发给下一个从站。最后一个EtherCAT从站发回经处理之后的数据帧,通信结束[13-15]。从站设备处理报文数据过程如图2所示,其中Rx与Tx分别代表从站读取与插入数据帧对应子报文的过程。

2 EtherCAT从站设计

EtherCAT技术之所以成为工业控制领域流行的工业以太网解决方式,与其优异的性能是分不开的。EtherCAT技术采用集束帧技术,采取一种“数据列车”的方式进行设计,以及“边传输、边处理”的方式实现高实时性。目前几乎所有EtherCAT从站都需要使用国外专用从站控制器芯片以保证网络性能,本设计使用FPGA作为控制芯片代替ET1100等专用从站控制器芯片在EtherCAT通信中协议解析中发挥作用。目前常见的EtherCAT从站设计方案与本文提出的EtherCAT从站设计方案比较如图3所示。

如何不依赖于专用芯片实现“飞读飞写”功能,并转发给下一个从站是一大难点。为了解决该问题,本设计将EtherCAT从站控制器功能架构分为:数据帧接收模块、数据帧处理模块、数据帧转发模块3部分。为方便数据帧管理,需要在EtherCAT从站控制器中设计3个FIFO(First Input First Output)模块作为缓冲器,分别取名为Rec_fifo、Local_fifo和Tx_fifo。Rec_fifo主要用来存放接收到EtherCAT数据帧的所有子报文,Local_fifo主要用来接收当前从站对应子报文中的数据,Tx_fifo则用来存放需要转发出去的所有子报文。

(1)数据帧接收模块。EtherCAT从站一旦检测到发送过来的EtherCAT数据帧,即将接收到的数据帧作一个初步解析,将所有子报文存入Rec_fifo中。在接收的同时还需要对数据帧进行校验,一旦校验结果与接收到的FCS不一致,则会舍弃接收到的数据帧。数据帧接收模块还有一个重要作用即暂存所有子报文数量,一旦有一个子报文被读出,则需要动态更新剩余子报文数量。当数据帧接收校验完成后,则等待对子报文的深度解析。

(2)數据帧处理模块。数据帧处理模块对收到的EtherCAT数据帧作深度解析。当数据帧接收完成后,数据帧处理模块从Rec_fifo中取出第一个子报文头,从中提取出一些关键信息,如子报文携带的命令、寻址地址、子报文中的数据长度等。判断寻址地址是否是当前从站,如果是,则根据子报文头中的数据长度从Rec_fifo中读出对应数据存入到Local_fifo中,接着将重组的子报文头和从站待发送的数据存入Tx_fifo中;如果不是,则将重组的子报文头和Rec_fifo中的子报文数据直接送入到Tx_fifo中,其间延时很短。报文头部和数据区处理完成后读出WKC的值。根据上文介绍的WKC记录规则,根据子报文头中的命令对WKC计数值进行处理后存进Tx_fifo中。至此,第一个子报文即解析完成,根据数据帧接收模块中的剩余子报文数量判断是否还有子报文未读出。如果有,则按照上述步骤读取下一个子报文;如果没有,则等待将新的EtherCAT数据帧转发给下一个从站。

(3)数据帧转发模块。数据帧转发模块功能主要是校验转发,一旦数据帧深度解析完成后,则将Tx_fifo中所有子报文组成标准的EtherCAT数据帧重新进行校验,并转发给下一个从站。

基于FPGA的EtherCAT从站软件结构如图4所示,其中RxData表示接收的数据,LocalData表示从站本地存储的数据,TxData表示发送出去的数据。根据上述设计,每个EtherCAT从站只需判断每个子报文中的地址与自己是否匹配。如果匹配,则取出对应报文数据,并将需要发送的数据插入报文中;如果不匹配,则快速读出数据放入发送缓冲区中。通过以上设计,再加上FPGA优异的性能,可以大大提高EtherCAT从站对数据帧的处理速度,具有较强的网络实时性。

为了验证基于FPGA的EtherCAT从站性能,本文设计的EtherCAT从站硬件架构如图5所示。该硬件平台既可作为EtherCAT的从站,也可作为EtherCAT主站使用。硬件平台包含FPGA主芯片、百兆以太网收发器RTL8201、千兆以太网收发器RTL8211、网络变压器、RJ45接口、EEPROM及FLASH存储器等。

在本文设计的EtherCAT从站硬件结构中,采用FPGA芯片代替了国外专用从站控制器芯片,FPGA选用Altera公司CycloneIV系列芯片EP4CE6E22C8N,晶振频率为50M。百兆以太网的晶振频率为25M,千兆以太网晶振频率为125M。FPGA与百兆以太网之间采用MII接口协议,FPGA与千兆以太网之间采用GMII接口协议。本设计中对EtherCAT从站一些固有参数的配置则是通过IIC协议写入EEPROM中。本文设计的基于FPGA的EtherCAT从站硬件实物如图6所示。

3 EtherCAT从站性能分析与验证

最小通信周期及抖动是衡量网络系统实时性能的重要指标,为了测试本文设计的基于FPGA的EtherCAT从站性能,通过示波器测量基于FPGA的EtherCAT主从站最小通信周期及抖动。具体做法为EtherCAT主站发送两个16-bit数据给单个从站,EtherCAT从站在接收完数据后,在报文中插入4个16-bit的数据返回给主站。示波器只要测量从EtherCAT主站发送数据帧到接收到从站返回数据帧之间的时间间隔,即可得出网络最小通信周期。一次测量结果如图7所示。为了避免单次测量的偶然性,又进行了30次测量,30次测量结果如表1所示。经过计算,一主一从的最小通信周期平均值为21.6931μs,通信周期抖动最大值为61.1ns。实验结果表明,在该实验方案中,整个EtherCAT网络实时性强,通信抖动小。

为验证本文设计的基于FPGA的EtherCAT从站的稳定性和可靠性,进行单个主站和3个从站的通信测试,具体做法为主站发送一个含有4个子报文的数据帧,每个子报文携带两个16-bit数据,每个从站取出属于自己的子报文,并在数据帧中插入4个16-bit数据转发给下一个从站,最后一个从站返回实验结果给主站。一次一主三从的最小通信周期测试结果如图8所示。为了避免单次测量的偶然性,也进行了30次测量,30次测量结果如表2所示。经过计算,最小通信周期平均值为67.3977μs,通信周期抖动最大值为79.9ns,测量结果符合预期设计要求。

4 结语

目前几乎所有的EtherCAT从站都需要使用国外专用控制器以保证网络性能,本文提出一种基于FPGA的从站软硬件设计方案,利用FPGA芯片代替专用控制器芯片实现对EtherCAT数据帧的“飞读飞写”功能。实验结果表明,该设计方案不仅可以大幅降低成本,而且与基于专用控制器芯片搭建的EtherCAT从站相比,实时性更强,可靠性更高,为将来我国摆脱对国外专用芯片的依赖,搭建低成本EtnerCAT从站提供了参考依据。

参考文献:

[1] DANIELIS P, SKODZIK J, ALTMANN V, et al. Survey on real-time communication via ethernet in industrial automation environments[C]. Proceedings of the 2014 IEEE Emerging Technology and Factory Automation (ETFA), 2014: 1-8.

[2] SOMMER J, GUNREBEN S, FELLER F, et al. Ethernet–a survey on its fields of application[J].  IEEE Communications Surveys & Tutorials, 2010, 12(2): 263-284.

[3] GAJ P,JASPERNEITE J,FELSER M. Computer communication within industrial distributed environment—a survey[J].  IEEE Transactions on Industrial Informatics, 2013, 9(1):182-189.

[4] HUANG Y W,WU C H. Design and implementation of EtherCAT slave based on ARM cortex-M0[C]. Proceedings of the 2nd International Conference on Intelligent Technologies and Engineering Systems, 2014: 741-747.

[5] NGUYEN Q V,KIM T W, MOON J Y, et al. Development of independent EtherCAT slave module and application to closed loop step motor drive with multi-axis[C]. 2016 International Conference on Computing, Communication and Automation (ICCCA), 2016: 912-917.

[6] KANG C,PANG Y, MA C, et al. Design of EtherCAT slave module[C]. 2011 IEEE International Conference on Mechatronics and Automation, 2011: 1600-1604.

[7] PARK S M, KIM H W, CHO H M, et al. Development of EtherCAT slave based on multi-core DSP[C]. 2018 15th International Conference on Control, Automation, Robotics and Vision (ICARCV).  IEEE, 2018: 157-161.

[8] ZHOU C,XU J, YAO J, et al. Design of servo drive slaves based on EtherCAT[C]. The 27th Chinese Control and Decision Conference, 2015: 5999-6004.

[9] LIU J, CHEN S, ZHANG G, et al. The development of a novel servo motor controller based on EtherCAT and FPGA[C]. 2016 Chinese Control and Decision Conference, 2016: 3174-3179.

[10] 蒲婉玲. EtherCAT 主站與从站设计与实现[D].  成都:电子科技大学, 2018.

[11] 杨勇军. 基于EtherCAT工业以太网协议主从站设计[D].  湘潭:湘潭大学,2017.

[12] DELGADO R, KIM S Y, YOU B J, et al. An EtherCAT-based real-time motion control system in mobile robot application[C].  2016 13th International Conference on Ubiquitous Robots and Ambient Intelligence: 710-715.

[13] KNEZIC M, DOKIC B, IVANOVIC Z. Topology aspects in EtherCAT networks[C].  Proceedings of 14th International Power Electronics and Motion Control Conference EPE-PEMC, 2010.

[14] JUNG I K, LIM S. An EtherCAT based control system for human-robot cooperation[C]. 2011 16th International Conference on Methods & Models in Automation & Robotics,2011: 341-344.

[15] KIM J H, JEON J W, LEE J H, et al. Migration from RS-485 to EtherCAT for closed loop step motor drive[C]. 2014 IEEE International Conference on Industrial Technology, 2014: 701-706.

(责任编辑:黄 健)

猜你喜欢

通信协议
DCS本地总线通信协议与FFH1设备互操作技术研究与实现
电子计算机联锁系统通信协议设计和应用
基于Z-Stack通信协议栈的红外地温采集电路设计
基于DMX512通信协议的多路转发器设计与研究
基于NS-3的PLC多频通信协议仿真平台设计与实现
RSSP-I、RSSP-Ⅱ及SAHARA三种安全通信协议实现技术简介