前言

EtherCATE作为一项高性能、低成本、应用简易、拓扑灵活的工业以太网技术正被越来越多的个人和企业使用。在对其的理论学习中,理解其数据帧的结构是很重要的一环。本文通Wireshark对EtherCAT的数据包进行抓取并验证。

一、EtherCAT简介

EtherCAT(用于控制自动化技术的以太网)是Beckhoff 在2003年开发的实时以太网网络。它基于CANOPEN协议和以太网,但是与Internet通信或网络通信不同之处在于,它专门针对工业自动化控制进行了优化。其可以支持主从站之间的通信,可以挂载多个从站。

1.运行机制

EtherCAT总线最高可以达到100Mbit/s的数据传输速率,而这样的性能得益于其独特的数据帧处理方式:如下图所示,数据帧就如同我们乘坐的高铁,到达每个从站时,对应地址的数据插入数据帧,从站也读取相应的数据,且整个数据在站点间的传输是在硬件中进行的。而不再接收以太网数据包并对其解释、处理、复制。这样的处理方式使得EtherCAT有极高的带宽利用率和极低的延迟。
在这里插入图片描述

2.OSI模型

EtherCAT通过以太网传递数据,而不同于普遍使用的OSI七层模型,EtherCAT主要分为三层模型:物理层、数据链路层、应用层。
在这里插入图片描述
压缩过的OSI三层模型如下图所示。
在这里插入图片描述
物理层利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。它定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。
数据链路层负责通信基础设施,链接物理层和应用层,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。在EtherCAT中包括连接控制、寻址、同步管理、分布时钟等内容。
应用层是用户、各种应用和网络的接口,是模型的最高层,在EtherCAT中包括状态机管理、邮箱通讯、COE协议、EOE协议、FOE协议等。

3.灵活的拓扑结构

在逻辑上,EthrCAT网段内丛站设备的布置构成-一个开口的环型总线。在开口的一端,主站设备直接或者通过标准以太网交换机插入以太网数据帧,并在另一端接收经过处理的数据帧。所有的数据帧都被从第一个丛站设备转发到后续的节点。最后一个丛站设备将数据帧返回到主站。
EtherCAT从站通信控制器芯片ESC负责处理EtherCAT数据帧,ESC具有四个数据收发端口,每个端口都可以收发以太网数据帧。数据帧在ESC内部的传输顺序是固定的,如下图所示。通常,数据从端口0进入ESC,然后按照端口3端口1端口2端口0的顺序依次传输。如果ESC检测到某个端口没有外部链接,则自动闭合此端口,数据将自动回环并转发到下一端口。 一个EtherCAT 从站设备至少使用两个数据端口,使用多个数据端口可以构成多种物理拓扑结构。

在这里插入图片描述

EtherCAT丛站的数据帧处理机制允许在EtherCAT网段内的任一位置使用分支结构,同时不打破逻辑环路。分支结构可以构成各种物理拓扑(如线形、树形、星形,菊花链形)以及各种拓扑结构的组合,从而使设备连接布线非常灵活方便。如下图,主站发出数据帧后的传输顺序如图中数字标号所示,其中从站8使用了ESC的全部四个端口,构成星型拓扑。
在这里插入图片描述

二、EtherCAT数据帧分析

1.数据帧结构

EtherCAT数据帧包括EtherCAT帧头、数据和帧校验序列。
在这里插入图片描述
在这里插入图片描述
其各部分定义如下表所示:

名称 含义
目的地址 接收方MAC地址
源地址 发送方MAC地址
帧类型 0x88A4
EtherCAT头:长度 所有子报文长度总和
EtherCAT头:类型 1:表示与从站通信,其余保留
FCS 帧校验序列

每个EtherCAT子报文包括子报文头、数据域和相应的工作计数器(WKC,WorkingCounter)。WKC记录了子报文被从站操作的次数,主站为每个通信服务子报文设置预期的WKC。发送子报文中的工作计数器初值为0,子报文被从站正确处理后,工作计数器的值将增加一个增量,主站比较返回子报文中的WKC和预期WKC来判断子报文是否被正确处理。WKC由ESC在处理数据帧的同时进行处理,不同的通信服务对WKC的增加方式不同。下表给出了EtherCAT子报文的结构定义。

名称 含义
命令 寻址方式及读写方式
索引 帧编码
地址区 从站地址
长度 报文数据区长度
R 保留位
M 后续报文标志
状态位 中断到来标志
数据区 子报文数据结构,用户定义
WKC 工作计数器

2.Wireshark抓取数据包验证

Wireshark是一款高效免费的抓包软件,可以帮助捕获和分析实时网络中的数据,而EtherCAT通过标准以太网传输数据,使用Wireshark可以帮助进行数据帧的分析。
下图是使用Wireshark抓取的EtherCAT的数据帧。
在这里插入图片描述
可以看出,其实际传输的数据帧很好的匹配了图片和表格中的内容,验证了数据传输的有效性。
使用Wireshark还可以分析数据的抖动情况,如果大家对这方面感兴趣,后续可以出详细教程。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐