工业以太网EtherCat学习

一. 简单介绍          

              EtherCAT是由德国Beckhoff公司提出的实时以太网解决方案,它是国际现场总线标准的组成部分。在现场总线级的高速I/O控制和高速运动控制方面有突出的表现。EtherCAT使用标准的以太网卡作为主站,利用标准以太网物理层。

EtherCAT是一种直达I/O级的实时以太网,它已经被纳入IEC61784、IEC61158以及ISO15745-4等国际标准。EtherCAT突破了其他实时以太网的解决方案,它在以太网物理层作了改进,增加了实时通道传输数据。EtherCAT数据帧的处理方式与其他的实时以太网所用方法大为不同,它借鉴了“集总帧”的通讯机制,可以将多个从站的过程数据整合到一个以太网帧中,使得EtherCAT的带宽利用率可以达到90%以上;当EtherCAT帧通过每个从站时,从站控制器查看是否有与本机寻址相关的数据,根据FMMU机制的寻址范围提取本机相关的数据,并将要传输给主站的数据插入到上行报文的相应位置。这个过程由EtherCAT从站ASIC芯片处理,整个过程的处理延迟很短,大大低于处理数据时问为微秒级的现场总线设备。EtherCAT采用了基于IEEE1588的时钟同步机制,网络中的数据帧在交换过程中会打上时间戳,这一过程完全是基于硬件完成的;主站能精确地测量各个从站的延迟偏移,各从站的分布时钟能基于主时钟来调整,在整个网络范围内可以使主从时钟达到微妙级同步。EtherCAT在应用层上扩展了CANopen和SERCOS的伺服控制协议,可以与其他协议设备的互通和互操作。

EtherCAT物理介质可以是 100Base-TX 电缆或者光缆,整个网络可同时挂接 65535 个设备。

        EtherCat运行原理:




二. EtherCat数据帧结构

             EtherCAT数据采用标准的 IEEE802.3 以太网帧传输,使用保留的以太网帧类型0x88A4,因此其它类型的以太网帧也可以在 EtherCAT 网段内透明传输而不会被从站处理一个标准 EtherCAT 帧包括 2 个字节的 EtherCAT 头和 44~1498 个字节的数据。EtherCAT 数据区可以包含多个子报文,每个子报文对应所要寻址的节点数据。EtherCAT 数据帧的结构如图 2.6 所示。

            EtherCat帧格式定义:  

                                             

            EtherCat子报文结构定义:

                                    

           EtherCAT子报文由子报文头、数据域和 WKC(Working Counter)组成。WKC用来记录子报文是否被相应的从站正确处理。主站首先为每个通信子报文设定一个预期的 WKC 值,发送的子报文中 WKC 的初值为 0,从站根据识别出的命令处理子报文后,WKC 会增加一个值。主站通过比较返回的子报文的 WKC 值是否与预期的WKC 值一致,来判断子报文是否被从站正确处理。

           在 EtherCAT 协议中,非周期性数据称为邮箱数据,邮箱通信是 EtherCAT 子报文的一种特殊形式,它存在于子报文数据区中,但是以特定的数据格式来组织数据,其具体帧结构如图 2.6 所示。邮箱数据帧包括三部分:邮箱数据头部、命令、命令相关数据

                  EtherCat邮箱数据帧结构:

                          

                 邮箱数据头定义:

                  

三. EtherCat报文寻址方式

           一个 EtherCAT 网段相当于一个以太网设备,主站首先根据以太网帧头寻址到相应的网段,然后根据子报文头中的 32 位地址来寻址网段内的设备。段内寻址方式有两种:设备寻址和逻辑寻址。设备寻址模式下,子报文头中的 32 位地址分为 16 位的从站设备地址和 16 的设备内物理存储地址,每个报文只能寻址唯一的一个从站设备。设备寻址又有两种寻址机制:顺序寻址和设置寻址。顺序寻址时,从站地址根据从站在网段内的连接位置,用一个负数来表示。每个从站设备收到顺序寻址子报文后都将其顺序地址加 1,如果接受的子报文的顺序地址为 0 就寻址到了自己的报文。设置寻址时,从站的地址可以是从站自身的配置值或者由主站在初始化阶段进行配置。逻辑寻址模式下,子报文头中的 32 位地址作为整体的数据逻辑地址来对设备进行逻辑寻址。逻辑寻址方式由 FMMU(Fieldbus Memory Management Unit,现场总线内存管理单元)实现,每个 EtherCAT 从站控制器内部的 FMMU 单元将本站的物理地址映射成网段内的逻辑地址。主站在初始化阶段配置每个从站的 FMMU 单元。每个从站接受到逻辑寻址子报文后,检查自己的 FMMU 单元地址是否和子报文中的逻辑地址匹配。如果匹配,则对子报文的数据区进行相应的数据操作。

           EtherCAT 通信由主站发送 EtherCAT 数据帧读写从站的内存来实现数据交互,在此过程中有多种寻址方式可供使用。主站首先用网段寻址方式寻址到网段,每个网段都有一个MAC 地址,然后使用段内寻址方式找到段内从站设备;段内寻址可以采用两种方式:设备寻址和逻辑寻址。设备寻址针对某个从站进行读写操作,逻辑寻址面向过程数据,同一个子报文可以读写多个从站设备的内存。

(一) EtherCAT网段寻址

           EtherCAT 网段寻址是通过以太网数据帧头部的 MAC 地址寻址到网段的。根据主站和从站的连接方式不同可以分为两种方式:直连模式和开放模式。直连模式是将一个网段直接和主站的网口相连,主站使用广播 MAC 地址发送数据。

            开放模式中 EtherCAT 网段是连接到标准的以太网交换机上的,此时一个网段需要一个MAC 地址,主站发送EtherCAT 数据帧中的目的地址就是它所控制的网段的 MAC地址。EtherCAT 网段内的第一个从站设备的 MAC 地址代表了整个从站,通讯时就是本网段的地址。

(二) 设备寻址

          在设备寻址过程中,EtherCAT 子报文头部的 32 位地址包括设备地址和从站物理内存地址,这两种地址各占 16 位。设备寻址只允许每个子报文寻址一个从站,它有两种寻址机制:顺序寻址和设置寻址,这两种方式的地址组成如图 2.10 所示。

                                 

(三) 逻辑寻址和 FMMU

             在逻辑寻址过程中,主站可以使用 4GB 逻辑地址空间来映射多个从站的物理内存,一个报文内的数据可以分布于多个从站中。逻辑寻址方式由 FMMU 来实现,FMMU 功能位于每个从站内部,将其物理地址映射到网段的逻辑地址上来,从站部分的 FMMU 寻址功能集成到 ASIC 芯片内部,它为每个从站提供逻辑寻址功能。当主站通过 FMMU 方式发送数据到从站时,只须把数据插入到帧的相应位置上,当 EtherCAT 帧经过从站时,从站控制器通过 FMMU 进行寻址分析,找出与本站相关的数据并提取出来,这时如果从站有数据要发送给主站,只须把数据插入到帧的相应空间中,FMMU 允许一个子报文寻址多个从站设备,就是把多个从站的物理内存映射到一个子报文中。

          FMMU 数据映射由主站来配置,在预运行阶段发送给从站,一般 FMMU 需要配置以下信息:数据长度、数据逻辑位起始地址、数据逻辑起始位、数据逻辑终止位、从站物理内存起始地址、物理内存起始位、操作类型、使能。

四. 分布时钟原理:

        这里首先介绍 EtherCAT 分布时钟涉及的一些约定概念。参考时钟是指主站连接的第一个具有分布时钟功能的从站的时钟,其它从站的时钟称为从时钟。主站时钟是指 EtherCAT 主站的时钟。系统时钟是指分布时钟使用的系统及时,使用 64 位二进制表示,单位为 ns。每个具有分布时钟功能从站的本地时钟都是独立运行的,系统启动时参考时钟和从站的本地时钟的差值称为时钟初始偏移量。由于参考时钟和从时钟使用的都是各自的时钟源,它们的计时周期存在漂移,导致时钟运行不同步,本地时钟产生漂移。本地系统时间是指经过补偿和同步之后的本地时钟。传输延时是指从站之间数据传输时产生的延时。EtherCAT 采用 IEEE1588 网络测量和控制系统的精密时钟同步协议标准机制来实现分布时钟,使所有的 EtherCAT 设备都同步于一个参考时钟,从而控制各设备同步执行相应的任务,EtherCAT 各站设备可以达到小于 1 微秒的时钟同步精度。

EtherCAT 的通信模式有两种,时间关键的周期性过程数据通信和非时间关键的邮箱数据通信。周期性过程数据通信通常使用 FMMU 进行逻辑寻址,所以一个报文可以寻址多个从站。EtherCAT 的非周期性数据通信称为邮箱通信,邮箱通信一般使用设备寻址模式,所以一个报文只能寻址一个设备。邮箱数据报文的结构如图 2.5 所示。

                                

五.应用层协议:

         EtherCAT 协议模型只包含三层:物理层、数据链路层和应用层。应用层为控制程序提供服务和访问网络环境提供手段,是 EtherCAT 协议最高的一个功能层。应用层不包括控制程序,它只是定义控制程序与网络的接口,如图 2.6 所示。EtherCAT协议在应用层支持 CANopen 协议、SERCOS 协议、HTTP 协议等其它许多协议。

                            














你可能感兴趣的:(EtherCat)