接前一篇文章:EtherCAT从入门到精通(6)
本文内容参考:
《工业以太网现场总线EtherCAT驱动程序设计与应用》 郇极 刘艳强 编著 北京航空航天大学出版社
工业以太网现场总线 EtherCAT 驱动程序设计及应用学习笔记_ethercat总线-CSDN博客
特此致谢!
三、EtherCAT协议详解
2. EtherCAT数据帧结构
前文书曾经讲过,EtherCAT数据直接使用以太网数据帧传输,数据帧使用帧类型0x88A4 。EtherCAT数据包括2个字节的数据头 和44~1498字节的数据 。数据区由一个或多个EtherCAT子报文 组成,每个子报文对应独立的设备或从站存储区域。如下图所示:

EtherCAT报文嵌入以太网数据帧
EtherCAT数据帧结构定义如下表:
| 名称 | 含义 |
|---|---|
| 目的地址 | 接收方MAC地址 |
| 源地址 | 发送方MAC地址 |
| 帧类型 | 0x88A4 |
| EtherCAT头:长度 | EtherCAT数据区长度,即所有子报文长度总和 |
| EtherCAT头:类型 | 1 --- 表示与从站通信;其余保留 |
| EtherCAT数据 | 各个子报文数据 |
| FCS(Frame Check Sequence) | 帧校验序列 |
EtherCAT子报文结构定义如下表:
| 名称 | 含义 |
|---|---|
| 命令 | 寻址方式及读写方式 |
| 索引 | 帧编码 |
| 地址区 | 从站地址 |
| 长度 | 报文数据区长度 |
| R | 保留位 |
| M | 后续报文标志 |
| 状态位 | 中断到来标志 |
| 数据区 | 子报文数据结构,用户定义 |
| WKC | 工作计数器 |
每个EtherCAT子报文包括子报文头、数据域和相应的工作计数器(WKC,Working Counter)。WKC记录了子报文被从站操作的次数,主站为每个通信服务子报文设置预期的WKC。发送子报文中的工作计数器初值为0,子报文被从站正确处理后,工作计数器的值将增加一个增量,主站比较返回子报文中的WKC和预期WKC来判断子报文是否被正确处理。WKC由ESC在处理数据帧的同时进行处理,不同的通信服务对WKC的增加方式不同。
也可以使用UDP/IP协议格式传输EtherCAT数据,使用UDP端口0x88A4(34980)。具体帧格式如下图所示:

EtherCAT数据帧嵌入UDP数据帧
更多内容请看下回。