杨晓鸿
摘要:本文总结了EtherCAT协议的特点,分析EtherCAT在工业应用中的优势,最后简要分析了EtherCAT在实际应用中的实现方法。
关键字:EtherCAT;现场总线;以太网;实时系统
一、引言
工业以太网通过把原有的工业现场总线协议应用到以太网上,兼容现场总线的工业应用特性以及以太网的通用性。本文先介绍了EtherCAT协议的特点及其在工业领域中应用的优势;最后简单介绍EtherCAT的实现方法。
二、EtherCAT
EtherCAT协议是德国倍福自动化有限公司(Beckhoff Automation GmbH)于2003年提出,并于2005年被定为IEC标准62407;2007年,IEC把EtherCAT协议加到工业现场总线标准61158。
1.协议概述
为提高通信效率以及实时性,EtherCAT协议的主要思想有两方面。简化协议,协议兼容以太网的MAC层协议,并由纯硬件完成解析,提高处理速度;而其他协议由软件解析上层协议,由于CPU的负载在不同时段的不确定性导致相应的处理时间偏差加大,而纯硬件的方式能在确定的时间内完成处理,使时间更加精确。EtherCAT协议考虑到工业应用中每次通信的数据量小和对实时要求高的特点,在以太网数据包的基础上加了自己的协议,把一个以太网数据包分成若干个EtherCAT数据包加以充分利用,并给了主站控制各从站提供了更大的灵活性。
EtherCAT网络由一个主站(Master)和最大可能为216次个从站(Slave)组成,支持以太网的所有拓扑结构(星型/总线型/环型等),其工作原理如下:EtherCAT网络就象是一列运行的火车,主站是火车的起点和终点,火车把车上的乘客(数据包)送(写操作)到任何指定的站点(从站),也能在所有它经过的站点上接收新的乘客(读操作),它是工业领域中飞速传输的以太网。
下图为典型的EtherCAT网络结构,图中的黄色的连线表示网线,数据包从左上角的主站出发,经过所有的从站,再返回到主站,EtherCAT从站至少要有两个网络接口。
典型的EtherCAT網络结构
2.EtherCAT关键技术
(1)帧结构。EtherCAT在以太网帧结构的基础上加入新的协议,数据的最外层是以太网数据帧;在以太网数据帧的数据部分中实现EtherCAT协议,由EtherCAT协议头开始,后跟若干个数据包。数据包由包头和数据组成,最后跟WKC以判断每次操作是否正确。
(2)寻址方式。EtherCAT主站通过特定的寻址方式选择从站,当整个EtherCAT网络中有路由器时,主站先通过网段间寻址(segment addressing)找到子网,网段寻址通过以太网数据帧中的目标地址(Destination Address)找到目标网段,而这个DA是目标网段内第一个EtherCAT从站的MAC地址。当EtherCAT数据包经过第一个子网络后,从站把DA和SA(Source Address)互换,因为数据经过全部从站后,要返回到主站。
EtherCAT网段内寻址包括设备寻址(Device addressing)和逻辑寻址(Logical addressing),设备寻址分两种寻址方式,位置寻址(position addressing)和节点寻址(Node addressing)。位置寻址的地址由从站在网段中的位置决定,一般上电后主站通过位置寻址统计网段内的从站总数;节点寻址通过给每个从站配一个各不相同的节点地址,主站通过节点地址选择从站。逻辑寻址由主站发一个32位的逻辑地址,从站通过现场总线内存管理单元(FMMU)的配置确定是否被选中以及要访问的从站内寄存器地址,这种寻址方式最灵活,在一个数据包管理多个从站的应用中作用明显。
(3)FMMU。FMMU(FieldBus Memory Management Unit)类似CPU中的MMU,系统上电后通过EEPROM或主站对每个从站的FMMU(每个从站最多16个FMMU条目)配置逻辑地址和物理地址的映射关系,每个条目包含一对映射关系。主站发出32位逻辑地址,从站查找FMMU的条目,如果某一个条目中的逻辑地址与接收到的逻辑地址相等,且当前条目的配置有效,则当前从站被选中。
(4)SyncManager。EtherCAT从站的同步管理单元(SyncManager)用于同步主站和从站间的数据操作,它可以把从站中的操作对象(寄存器和存储单元)配置成实时操作的buffer模式和握手方式的Mailbox模式。当从站接收到数据或请求后,同步管理单元也会向从站外接的设备发出中断或请求信号,以快速完成主站的请求。
(5)操作命令。每个数据包由一个命令(Command)确定功能,用于告诉从站主站的寻址方式和操作请求。主站对从站主要有读/写/读写三种操作方式,所以相应的命令有位置寻址读/写/读写命令、节点寻址读/写/读写、逻辑寻址读/写/读写命令,此之外还有广播模式下的读/写/读写命令。
三、应用实现
EtherCAT网络由主站和从站组成,目前从站主要由Beckhoff公司提供的芯片。EtherCAT主站在硬件上只要求以太网接口,市场上常见的应用处理器(Application Processor),都可以作为EtherCAT的主站。
由于通用的Linux是非实时的,作用主站的Linux必须加实时补丁,工业上常用Adeos+Xenomai作用Linux上的实时补丁。Adeos在中断控制器硬件和Linux中断处理程序中间提供了中断处理的中间层,在系统运行过程中做到不关闭硬件中断,所以可以快速响应一些实时要求高的应用,如EtherCAT驱动;Xenomai是在adeos上的Linux实时补丁,是一个独立的实时内核。通过对Adeos和Xenomai可以满足EtherCAT实时应用的要求。