EtherCAT协议基础知识
EtherCAT协议基础知识
一、EtherCAT概述
1.特性
①开放的技术
EtherCAT全称EtherNet Control Automation Technology,是由德国倍福(Beckhoff)公司提出的一种实时以太网技术。EtherCAT是一种开放但不开源的技术,意味着您可以任意使用这项技术,但若要进行相关设备的开发,则需要向倍福公司获取相关授权。
②快速性

相比传统现场总线,EtherCAT的数据传输速率有了极大的提升,可选10Mbit/s或100Mbit/s,甚至依托补充的EtherCAT G技术,传输速率可达1000Mbit/s;同时EtherCAT基于标准以太网帧传输,单帧数据用容量可达1486 Bytes。这使得在传输数据量方面EtherCAT有无比的优越性。
③拓扑的灵活性

EtherCAT几乎支持所有的拓扑结构:星型、线性、树型、菊花链型等,并支持各类电缆、光纤等多种通信介质,还支持热插拔特性,保证了各设备之间连接的灵活性。同时EtherCAT几乎没有设备容量限制,最大从站设备数可达65535个,使得网络中无需交换机的存在,仅通过设备间的拓扑结构即能使得EtherCAT数据直达每个从站。
④同步的精准性

对于像多个伺服轴执行协同运动等一类应用,其对数据同步性要求甚高。而EtherCAT可选择使用分布式时钟(DC)的方式同步节点,并采用完全基于硬件的时间校准机制,使得整个系统抖动时间远小于1us,能够完全适用于这样的应用之下。如下图所示,300个EtherCAT站点间的信号时间抖动仅有20ns:

⑤高可用性

EtherCAT 可通过简单的措施实现线缆的冗余性。通过将网络中最后一个站点与主站设备中的以太网端口连接,即可将线型拓扑结构扩展为环型冗余拓扑结构。当线缆损坏或站点故障发生时,主站堆栈中的附加软件检测就会检测到,并立刻切到换冗余线路中运行,而各站点无需为此而改变,甚至不会意识到网络通信正在冗余线路中运行。
- ISO/OSI参考模型

EtherCAT仅使用了物理层、链路层、应用层三层协议,与多数传统的现场总线相同,但相比于其它实时以太网协议,如PROFINET、EtherNet/IP等,其协议栈更加精简。这也是EtherCAT协议的实时性优越于其它实时以太网协议的重要原因之一。
3.EtherCAT主从架构

EtherCAT网络采用主从架构,网络组态于PC主机上进行配置,需要使用到相应的EMI(EtherCAT Master Information Files)、ESI(EtherCAT Slave Information Files)文件,经专用配置软件(通常于主站配置软件中集成)进行配置后生成ENI(EtherCAT Network Information Files)文件下载至主站中,主站便依据该文件进行整个网络的识别。
图中关于EtherCAT从站设备的内部组成,即是一个实现EtherCAT协议OSI模型的过程:RJ45网口、PHY物理层芯片用于实现物理层协议;ESC用于实现链路层协议,通常使用倍福官方的ET1100芯片实现;MCU则用于实现应用层协议,需要厂商自行根据相应的协议编写程序代码,或是直接使用协议栈代码实现。
4.报文帧传输方式

EtherCAT报文帧只能由主站进行发送,在一个通讯周期内,主站发送以太网数据帧给各个从站,数据帧到达从站后,每个从站根据寻址从数据帧内提取相应的数据,并把它反馈的数据写入数据帧。当数据帧发送到最后一个从站后返回,并通过第一个从站返回至主站。这种传输方式能够在一个周期内实现数据通讯,还改善了带宽利用率,最大有效数据利用率达90%以上。
这种传输方式有点类似于现实生活中的环型地铁,列车上的人到达自己的目的站点后下车,每个站点的人也会相应上车。
二、EtherCAT物理层和链路层
1.物理层
倍福对EtherCAT协议的物理层实现提供了两种方案:普通方案以及EtherCAT P方案;
①普通方案:采用通用的、低成本的RJ45接口,以及物理层PHY芯片,通信介质可采用TX(双绞线,最大传输距离100m)或FX(光纤,最大传输距离20km)进行传输,另有LVDS形式可供进行电路板级的协议数据传输。

②EtherCAT P方案:EtherCAT P(P = power,电源)是对EtherCAT 标准协议的补充。它不仅传输通信数据,而且通过单根、标准的四线以太网电缆传输外围电压。

2.链路层
EtherCAT链路层的总体特点如下:
①采用IEEE 802.3标准以太网帧结构;
②支持UDP,不支持IP协议;
③报文帧的传输要通过专用硬件(如ET1100)。
其帧结构如下图所示:

EtherCAT报文帧分为基础报文帧和UDP报文帧,区别在于帧结构中是否含有UDP的数据部分,并均支持带上VLAN标签;而由于UDP报文帧因为时延较大,应用较少,因此我们仅以基础报文帧进行介绍,以下为基础报文帧的帧结构:

其中Datagram部分参数含义如下:
Cmd:8bit命令码。具体有RD(读)、WR(写)、RW(读写)等行为,结合下面提到的数种寻址方式(AP、FP、L、B)共同构成命令码部分;

Idx:8bit索引值,表示该帧的索引号,可供主站识别该帧;
Address:32bit寻址方式,又可细分为4种具体的寻址方式:
1)广播寻址(B):表明每个从站都可识别该帧;
2)自增量寻址(AP):从0开始,以负自增的形式,顺序识别每一个从站(0x0000、0xFFFF、0xFFFE……),每经过一个从站,该帧的地址值会自动减1;通常用于主站启动时进行整个网络组态的扫描;

3)定点寻址(FP):表明该帧识别特定从站种的特定数据,包括16bit节点地址与16bit偏移量;意味着固定寻址最多带动65536(216)个从站,且每个从站的数据最多也为65536(216)个:

4)逻辑寻址(L):主站配备4G(232)的内存空间用于逻辑地址的存储,而逻辑地址依据各从站中的FMMU管理机制,映射至所有从站中的所有数据;主站在帧中只需携带某个逻辑地址,即可寻址到任意从站中的任意数据:

Len:11bit数据段长度,与后面Data段长度对应;
R:3bit保留位;
C:1bit帧循环标志;
M:1bit后续报文标志,0表示当前报文为最后一个报文,1表示后续会提供更多报文;
IRQ:16bit中断请求标志;
Data:报文帧数据段,可为0-1486 Bytes;
FMMU管理机制:

FMMU管理机制用于每个从站的每个数据进行自身物理地址与通信逻辑地址的映射。对于主站而言,相同一个逻辑地址可以对应多个从站的物理地址,从而能够实现1条报文访问多个从站的特定数据。
WKC自增计数器:

自增计数器,用于校检报文帧的命令是否正确的运行。报文帧的命令码得到正确执行后,相应的WKC会自增相应的值,在该报文从发出到返回主站时,主站会依据报文帧WKC内的值,与发送时计算得出的正确执行命令时应该接收到的值作对比,从而判断该报文帧有无正确执行。
三、EtherCAT应用层
1.特性

EtherCAT应用层支持多种设备行规以实现邮箱通讯,包括CANopen、SERCOS、HTTP等,基于EtherCAT的应用层行规被称为xoE协议(xxx over EtherCAT)。设备开发中,从站设备无需支持所有行规,根据其应用选择最合适的一种即可。下面将以应用最为广泛的CoE协议举例描述。
2.CoE协议

CoE全称CAN application protocol over EtherCAT,是EtherCAT应用层协议实现的一种,其特点是根据CiA402协议编写,使用对象和对象字典的功能实现邮箱通讯。
CANopen协议已经有成熟且大规模的应用,使用CoE协议,相关设备只需要经过少量的更改即可应用于EtherCAT协议上,大部分CANopen的固件也可以得到重复利用。
3.站点状态机

EtherCAT对于站点所处的状态与运行功能进行了规范,如上图所示,各状态功能简介如下:
Init:初始化状态,站点在此状态下将检查数据链路是否正确,与应用层无数据交互。
Pre-Op:预操作状态(POP),站点在此状态下仅进行邮箱通信,不进行过程数据交互。
Safe-Op:安全运行(SOP),站点在此状态下可进行邮箱通信,并允许过程数据输入,不可输出。
OP:操作状态,站点可进行完全的数据通信,处于正常的工作状态。
Bootstrap:引导模式,仅适用于FoE的邮箱通信,用于固件的更新
4.同步模式及工作原理
EtherCAT存在三种同步的模式:Free RUN、SM同步(Sync Manager,同步管理器)、DC同步(Distributed Clock,分布式时钟),下面将简要介绍三种同步模式及其工作的原理。
①Free RUN

Free RUN模式表示网络中各站点运行于异步的状态下,不进行同步。
从站应用程序完全按照从站自身时钟的时间片进行触发与运行,与报文帧的收发无关。Free RUN模式分离了主站与从站的时间关系,当主从站时钟频率差别较大时,可能会出现丢帧等状况。该模式适用于完全没有同步性要求的应用。
②SM同步

SM同步模式依赖于EtherCAT主站发送的同步帧,各从站依据收到的同步帧的数量进行自身应用程序的触发,如某从站收到两次EtherCAT同步帧,就进入一次中断服务函数进行相应的处理。
SM同步模式的同步精度受多种因素的影响,如:主站自身的时间抖动,从而影响同步帧的发送;报文帧的物理传输时延决定了每个从站收到同步帧的时间一定有差异,在整个网络比较大时这个时间差也会放大。因此该模式比较适用于同步性要求一般的应用。
③DC同步

DC同步模式的形式与SM同步类似,都是依据于中断触发信号来进行自身应用程序的触发,不同在于SM同步依据的是同步帧,而DC同步依据的是各站点内ESC进行产生的SYNC信号。
EtherCAT制定了一套完整的机制以保证DC同步能够精确运行,其运行流程总体可分为两个阶段:初始化阶段和动态补偿阶段,如下图所示:

初始化阶段将网络中各设备在上电时紊乱的触发时间修正到可以容忍的水平,其过程是:
1)主站启动后发送广播帧扫描整个网络,各从站计算该报文环回自己一次的时间戳值,并将该值写入本地的寄存器中,差值计算从而得到报文帧的传输延时,如下图所示。后续再将该传输延时补偿到SYNC信号的发送过程中,从而消除物理传输延时的影响。

2)以从站中第一个具有DC单元的从站的时钟作为参考时钟,发送大量的ARMW报文将读取参考值并发送至各个从站当中去,使得每个从站本地的时钟都调整到接近参考时钟的值。如下图所示:

而由于存在时钟源不同,晶振频率抖动等等不可控因素,网络还需要进入动态补偿阶段,使所有站点的同步时间抖动能够长时间的维持在一个较低的水平,其过程如下:

主站的每个发送周期都会发送ARMW报文,将参考时钟值发送至所有站点,各站点对比该参考值与本地时钟值(结合传输延时)后,进行本地时钟值的更新(ESC硬件的加速或减速)。从而实现整个网络长时间低水平的时间抖动。