EtherCAT 总线初见

EtherCAT 总线初见

EtherCAT 名称的由来是: Ethernet for Control Automation Technology,也就是用于控制自动化技术的以太网,其实也就是工业以太网的一种。EtherCAT是由德国BECKHOFF自动化公司于2003年提出的实时工业以太网技术。它具有高速和高数据有效率的特点,支持多种设备连接拓扑结构。其从站节点使用专用的控制芯片,主站使用标准的以太网控制器。

EtherCAT是一种工业以太网技术,看到的大多数应用场景都是伺服电机。因为是基于以太网的技术,所以EtherCAT相比于CAN总线而言,速率上要快不少。EtherCAT可以达到100M的速率,而CAN只有1M。此外,EtherCAT还具备低延时和精准同步的特点。

在工业总线中,低延时、精准同步是用户的关键需求。试想一下,工厂中某个器件的生产需要A/B/C三个机器协同操作,原本预想的是A先操作期间,然后B把器件传递给C,C再操作。如果,A/B/C不同步,或者操作命令的传达有延时,A还没有操作完器件,B就已经开始进行传递了。这时要么器件损坏,要么就做出来个半成品。而EtherCAT相比于普通的以太网技术就有这两点的优点。

EtherCAT是一个开放架构,以以太网为基础的现场总线系统,其名称的CAT为控制自动化技术(Control Automation Technology)字首的缩写。EtherCAT是确定性的工业以太网,最早是由德国的Beckhoff(倍福)公司研发。

EtherCAT基本原理

倍福官方对EtherCAT的传递机制的命名叫做:ON The Fly。

On The Fly技术可以从两方面来解读,第一个方面是以太帧“时分复用”。一般以太帧里都只包含了一个设备发送的消息,5个设备就会发送5条以太帧。而EtherCAT则是多个从站共享一条以太帧。就像图中的火车,EtherCAT主站发出了“火车”(以太帧),各个从站则从这辆火车的不同的“车厢”(子报文)中提取或插入自己的“乘客”(消息)。这样一来就实现了以太帧的“时分复用”,只用一条以太帧(最大1486byte),就可以让各个从站都收发出自己的消息,大大的降低了通信的延时(这一部分《浅析EtherCAT 总线》里面讲的比较清楚,还没理解的同学可以看看)。

On The Fly影响的另一个方面就是总线仲裁了。所谓总线(例如CAN总线),就是大家都共用一条通道来通信,各个设备都挂载在同一条总线上。所以,当一个总线上的多个设备同时想要发消息的时候,就会产生冲突,所以,就有总线仲裁的机制。控制器决定当前时刻,谁来发消息,谁来“占用”这条总线。而EtherCAT玩了一个花样,EtherCAT的各个设备之间是一种P2P(Point to Point)的连接方式,这些设备根本没有连接在“同一条”总线上。下面是EtherCAT的连接结构。

最左边的是主站,后面的都是从站,各个从站下面还挂载了不同的设备。可以看到主站向从站1发送以太帧,从站1接收、处理完自己的子报文后,再把以太帧发送给从站;从站2接收,处理完自己的子报文后在发送给从站3;如此往返,直到最后一个从站n接收处理完自己的消息,再把这条以太帧返回回去。所以,各个从站之间根本就不会存在总线冲突。EtherCAT只需要预先配置好各个从站占用的子报文位置,也就是On The Fly技术,就可以解决总线总裁这一个老大难的问题,确实是一箭双雕。

当然,这种解决方案也是有它的缺点的。比如,从站数量非常多的时候,最后一个从站就需要等前面的从站一次次转发才能收到消息。当然,我觉得EtherCAT应该也想到了这点,应该也采取了某种机制来避免这种最远设备延迟的缺陷。但是,我还没深挖这个问题,所以,没看到相关的解决机制。如果有了解的同学希望能指教一下。

主站是唯一允许发送帧的节点,子站只能转发帧。数据帧就像火车一样,从主站开出,途经各个子站,把对于子站的数据放下或者带上,最后回到主站。

这种方法有助于确保实时操作并避免延迟。

EtherCAT网络不需要交换机。每个EtherCAT设备通常有两个以太网端口,第一个端口是接收端口,另一个是发送端口,发送给另一个设备。

EtherCAT系统组成

EtherCAT系统主要就一个主站和若干从站组成。如所示:

EtherCAT一般使用软件的方式来实现主站,包括倍福的TwinCAT,Igh,KingStar等等都是基于一台实时操作系统的PC,通过以太网卡,来实现主站的功能。因为,主站不是我的项目重点,所以,目前了解的还不多。先挖一个坑,后面有时间了研究一下,再来补上。现在我是用TwinCAT的免费版来学习和调试的。TwinCAT本身是收费的,不过,它有试用版,试用版不具备实时功能,调试一下设备还是足够了。

从站的组成如图所示:

从站一般是有3部分器件组成的:物理层器件、EtherCAT从站控制器(EtherCAT Slave Control)和微处理器(MCU)。物理层器件就是以太网的PHY芯片和网口,ESC是实现EtherCAT协议栈的专用ASIC,从站控制微处理器主要实现应用层(如CANopen)和用户自定义的程序。

看到这里没有通信基础知识的通信可能就有点懵逼了。物理层,数据链路层,应用层这些是个啥玩意?这里我就简单说一下,想要深入理解还是可以看看OSI模型,大多数的通信技术都脱离不了这个框架。

OSI中有7层,EtherCAT系统中只用了3层:物理层、数据链路层、应用层。先降维的说一下这几层是啥意思。最基本的通信就是咱们人类说话,我就以我们普通对话来讲解一下这三层的意思。

物理层:人类的语言是通过嘴发声,声波在空气中传播,传递到耳朵,耳朵听音再汇聚到大脑,大脑最终判断出声音中的信息。我们的嘴、耳、声波和空气就是物理层。物理层的重点是信号在介质中的传递表示,不同的字有不同的发音规则,不同的频率和声调,比如“哦”,我们就需要发出“o”这个音,我们听到“o”这个音的时候,才能判断出“哦”这个字。计算机通信的原理和这个也是一样的,信号在光纤、电缆以及空气中传播,计算机需要判断电缆上的电平的高低来判断0,1bit。当然,计算机比人类要傻很多,它不知道“某句话”的“发音”是从什么时候开始的,什么时候结束的,所以,物理层还需要告诉它信号的起始时刻和持续的长度等等。

数据链路层:通过前面的物理层,我们已经具备了基本的发声的手段,通过嘴改变声音的频率、音调、音长等特征(通信系统中,天线或者光模块改变信号的电平高低、信号频率、调制方式等特征),让声音在空气中传播(通信系统中,信号在相应的介质中传播),然后,耳朵识别这些频率、音调、音长等特征(通信系统中,接收端的识别信号的电平高低、频率、调制方式),最终实现口到耳的传播。

但是,光是这样还足够实现通信。试想一下,你和你的几个朋友处在一个嘈杂的环境当中,远处有汽车的轰鸣,旁边还有小孩子在哭闹,你的朋友们每个人在抢着发言,大家七嘴八舌的,根本听不清对方在说什么。所以,你和你的朋友之间想要对话就必须克服两个困难,第一,屏蔽掉耳旁的那些轰鸣声、哭闹声;第二,需要建立一种对话机制,让大家互相可以听清对方的话语。

第一点中描述的那些轰鸣、哭闹声,实际上就是通信系统中的噪声,噪声太大时,我们是无法通信的,因为我们根本听不清旁边的人在说些什么,只能听到轰鸣、哭闹声。最简单克服噪声的办法就是提高信号的发射功率,也就是大声地说话,让自己的声音盖过那些哭闹声,也即是通信系统中的功率控制。还有一种办法就是我们过滤掉一些噪声,虽然,这些声音都会进入我们的耳朵,但是,我们的大脑可以过滤掉一些不关注的声音,专注的去接收那些关注的声音,也即是通信系统中的频率选择。此外,大家七嘴八舌的说话也是一个问题。7,8个人同时在说话,你能听清楚一两个就不错了,其他人在说啥,根本没法听清。所以,我们说话的时候,一般会有一个轮流的机制。每个人说两句,别人说话的时候,别插嘴。或者,两个人说悄悄话,不打扰到别人,自己也听得清。这里的轮流说话机制,就是通信系统中的“时分复用”或者“频分复用”;一个人说7个人听,就是广播;1对1的悄悄话就是单播。数据链路层实际上就是用来解决以上的这些问题。

数据链路层会将待传输的消息组成一个帧,如图所示:

这个帧里就会包含目的地址、源地址、帧数据、帧校验位等。通过目的地址就可以确定帧传递的对象,通过源地址接收方也可以知道是谁发送了这条帧。在数据帧之外的地方,一般还会存在一个控制器(比如EtherCAT主站),这个控制器会决定,其他的从站什么时候传输数据,数据可以占用多少的资源。在其他的一些更复杂的通信系统中,数据链路层还会根据当前的信道条件(噪声情况),来决定各个设备的发射功率,调制方式等。

应用层:说完了数据链路层,我们还需要继续了解一下应用层。首先需要明确的一点,这里的应用层和我们手机、电脑上的应用程序不是一个东西。最为常见的应用层协议就是HTTP。简单来说,应用层是对数据的一种格式约定。这里还是用人类的对话来打个比方。你和一个老外,大家都有口有耳,也都是文明人,知道等对方说完自己再说。但是,你不懂英文,他不懂中文,你们还是无法交流。他说了“double”,你以为是“打包”;他说“You need cry deal”,你以为是“有你的快递”。这实际上就是你们的应用层协议不对等,他安装的是“英语”应用层协议,你安装的是“中文”应用层协议,大家说话牛头不对马嘴,根本无法交流。再夸张一点,我和你都是中国人,我们都听得懂中文,当时我是学通信的,你是学自动化的,我说PRACH信道,信道检查与估计,匹配滤波这些词的时候,你能明白每一个字的意思,但是连着一起是啥就不知道了。这就是因为你确实“通信系统”这个应用层协议。应用层协议最终的目的,就是让消息的收发双方知道这一串“1010101010”代表的是什么意思。

【转载】https://zhuanlan.zhihu.com/p/259825073

EtherCAT 特性

①开放的技术

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协议的实时性优越于其它实时以太网协议的重要原因之一。

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则用于实现应用层协议,需要厂商自行根据相应的协议编写程序代码,或是直接使用协议栈代码实现。

【参考】https://zhuanlan.zhihu.com/p/264356961

EtherCAT 运行机制

EtherCAT的关键在于每个节点对以太网数据帧进行处理。在通信过程中,每个从站从主站发送过来的数据帧中读取数据,与此同时,将自身产生的数据插入到该数据帧中,然后转发到下一个从站。这种传输方式提高了带宽的利用率,通常一个数据帧就可以完成一个周期的通信。

EtherCAT 的拓扑结构

EtherCAT支持多种拓扑结构:线形、树形、菊花链形等等。由于EtherCAT基于传统以太网,因此可以使用标准以太网电缆或光缆进行连接,使用100Base-TX电缆时,每个站之间距离可达100米,整个网络最多可以连接65535个设备。不仅如此,EtherCAT还支持热连接、热插拔、冗余、安全等功能。

EtherCAT 的使用成本

使用EtherCAT的成本非常低廉,任何带有以太网控制器的控制单元都可以作为EtherCAT主站,从站可以使用多家供应商提供的产品,也可以使用ETG提供的从站源码进行开发。

EtherCAT 的性能

控制1000个开关量输入和输出的刷新时间大约为30us。单个以太网帧最多可以容纳1486字节的过程数据,相当于12000位开关量数字输入和输出,刷新时间大约为300us。控制100台伺服电机的数据通信周期约为100us。

由于EtherCAT使用分布式时钟,因此也具有良好的实时性能。每个具有分布式时钟的从站周期性地与参考时钟进行同步,消除误差,各从站时间误差小于1us

EtherCAT 帧结构

因为EtherCAT采用了 IEEE 802.3 作为其标准以太网帧,只是对 IEEE 802.3 Ethernet 规格进行扩充,并未对基本结构进行任何变更,因此可以转送标准的 Ethernet 帧内的数据,同时可以使用标准的以太网控制器,无需单独设计硬件。

以太网帧分为以太网头、以太网数据和帧校验序列几个部分。EtherCAT在标准以太网帧的基础上进行了一定的修改:

  • 以太网头:EtherType为EtherCAT保留,设为 0x88A4 ,以与其它以太网帧相区别。
  • 以太网数据:以太网数据分为EtherCAT头与 1 个以上的 EtherCAT 子报文两个部分。 细分ETC Header,前 11bit 表示子报文的长度,范围为44~1498字节;中间 1bit 保留,最后4bit Type = 1,表示从站通信。

一个EtherCAT报文由数个子报文组成,总长度在44~1498字节之间。每个子报文分为10字节的报文头、0~1486字节的数据和2字节的工作计数器三个部分。

  • Cmd:表示EtherCAT指令类型,即应当如何处理后面的数据。
  • Idx:表示帧的索引号,用来帮助主站对报文进行识别。
  • Address:表示从站地址,有三种寻址模式,分别为位置寻址、节点寻址、逻辑寻址。
  • Len:表示报文数据的长度。
  • R:表示保留位。
  • M:表示后续报文标志,0表示当前为最后一个报文,1表示EtherCAT随后将提供更多报文。
  • IRQ:表示中断请求寄存器。
  • Data:表示数据区
  • WKC:表示工作计数器。

EtherCAT设备寻址方式

 

在EtherCAT的每个子报文中,有32位空间用于对EtherCAT设备进行寻址。寻址方式有三种,分别为:

  • 位置寻址
  • 节点寻址
  • 逻辑寻址

位置寻址

位置寻址方式是根据从站的连接顺序,即物理位置实现的。在报文头的32bit地址中,前16bit的Position用于存放地址值,Offset用于存放ESC逻辑寄存器或者内存地址。报文每经过一个从站设备,其Position中的地址值加1。当一个从站接收到EtherCAT报文后,如果报文中的地址值为0,则该报文就是这个从站要要接收的报文。

在上图中,如果需要总线上第8个设备响应报文,则主站需要将报文的地址设为0xFFF9,当报文经过第1个从站时,地址为0xFFF9,不等于0,第1个从站不会响应报文,报文地址加1,变为0xFFFA。当报文经过第2个从站时,地址为0XFFFA,不等于0,第2个从站不会响应该报文,报文地址加1,变为0xFFFB。以此类推,当报文到达第8个从站时,此时地址值为0x0000,当前从站将接收报文。

节点寻址

在报文中,报文头的32bit地址,前16bit的Address用于存放站点地址值,Offset用于存放ESC逻辑寄存器或者内存地址。在每个从站中站点地址保存在寄存器(0x0010) 中。顺序寻址时,主站可以对每个从站的站点地址进行设置,也可以直接读取每个从站的的站点地址。

节点寻址方式的优点是,每个从站的地址与其在总线中的位置无关。在添加/删除从站,甚至是改变总线拓扑结构的时候都能对从站进行正确的访问。

上图是节点寻址方式的示意图。8个从站的地址与其在总线中的位置并没有关系。出于直观的目的,4台伺服驱动器的地址被设置为连续的,4个I/O模块的地址被设置为连续的,在实际中并没有这样的要求。

逻辑寻址

 

EtherCAT的第三种寻址方式是逻辑寻址,首先需要了解的是FMMU。

FMMU:FMMU称为总线内存管理单元,它存在与从站芯片ESC中,负责对从站物理地址与主站逻辑地址进行翻译并建立映射关系。主站在总线启动过程中对FMMU进行配置,内容包括:

  • 逻辑地址的起始地址
  • 数据长度(按跨字节数计算)
  • 逻辑地址的起始位
  • 逻辑地址的终止位
  • 从站物理地址的起始地址
  • 从站物理地址的起始位
  • 操作类型(只读、只写、读写)
  • 使能

在报文中,使用报文头的32bit地址的全部,用来表示大小为4GB的逻辑地址空间。

以上图为例,FMMU将逻辑地址中0x00012345第2位开始的,到0x00012346以第2位终止的区域,与从站物理地址中0x0010第0位开始的区域进行映射。

当从站收到来自主站的报文时,会检查报文中的地址是否与FMMU中的地址相符,如果有,将根据操作类型进行读写操作。

这种寻址方式的优点是,在主站想对每个从站进行访问的时候,只需要对逻辑空间中的地址进行操作,而无须关心该地址对应的从站物理地址,减轻了主站的负担。

总结

EtherCAT使用三种方式对设备进行寻址,在启动过程中,使用顺序寻址方式为从站分配节点地址,然后通过节点寻址方式配置从站寄存器,将逻辑地址与从站物理地址进行映射,之后就可以使用逻辑寻址方式进行过程数据交换了。

EtherCAT同步管理器

EtherCAT从站芯片ESC可以用于主站于从站之间的数据交换,但是它有一些弱点:

  • 数据的完整性不能保证(必须由软件实现协同数据交换)
  • 数据安全不能保证(必须由软件实现安全机制)
  • 主站和从站都必须轮询存储器,直到一方确认访问完成。

EtherCAT使用同步管理器SM进行主站与从站间的数据交换,并产生改变通知中断,发送给双方。SM由主站配置,并且使用一个缓冲区用于数据交换。缓冲区的访问由SM硬件控制,而且必须首先访问起始地址,否则将拒绝访问。在起始地址被访问之后,整个缓冲区都可以进行访问,当访问到结束地址时,缓冲区状态将改变,产生中断。如果设置了看门狗,则看门狗也可以触发中断。

SM支持两种通信模式:

  • 缓存模式

缓存模式支持任意时刻访问主站和从站上的通信缓冲区。接受方总可以读取发送方最新写的缓冲区数据,发送方总可以更新缓冲区的值。如果写缓冲区比读缓冲区速度快,旧数据将会丢失。缓冲模式通常用于PDO的TXPDO和RXPDO通信。

  • 邮箱模式

由于使用了握手机制,在邮箱模式数据不会丢失,。主站和从站都可以访问缓冲区,但前提是另一方已经结束访问。首先,发送方写入缓冲区,然后写操作被锁定,直到接收方读取完数据。邮箱模式通常同于应用层的非周期性数据交换。

EtherCAT物理层和链路层

物理层

倍福对EtherCAT协议的物理层实现提供了两种方案:普通方案以及EtherCAT P方案;

①普通方案:采用通用的、低成本的RJ45接口,以及物理层PHY芯片,通信介质可采用TX(双绞线,最大传输距离100m)或FX(光纤,最大传输距离20km)进行传输,另有LVDS形式可供进行电路板级的协议数据传输。

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

链路层

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内的值,与发送时计算得出的正确执行命令时应该接收到的值作对比,从而判断该报文帧有无正确执行。

【转载】https://zhuanlan.zhihu.com/p/265007539

EtherCAT应用层

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

CoE协议

CoE全称CAN application protocol over EtherCAT,是EtherCAT应用层协议实现的一种,其特点是根据CiA402协议编写,使用对象和对象字典的功能实现邮箱通讯。

CANopen协议已经有成熟且大规模的应用,使用CoE协议,相关设备只需要经过少量的更改即可应用于EtherCAT协议上,大部分CANopen的固件也可以得到重复利用。

站点状态机

EtherCAT对于站点所处的状态与运行功能进行了规范,如上图所示,各状态功能简介如下:

Init:初始化状态,站点在此状态下将检查数据链路是否正确,与应用层无数据交互。

Pre-Op:预操作状态(POP),站点在此状态下仅进行邮箱通信,不进行过程数据交互。

Safe-Op:安全运行(SOP),站点在此状态下可进行邮箱通信,并允许过程数据输入,不可输出。

OP:操作状态,站点可进行完全的数据通信,处于正常的工作状态。

Bootstrap:引导模式,仅适用于FoE的邮箱通信,用于固件的更新

同步模式及工作原理

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硬件的加速或减速)。从而实现整个网络长时间低水平的时间抖动。

【转载】https://zhuanlan.zhihu.com/p/265124581

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值