EtherCAT主站读取从站EEPROM抓包分析

0 工具准备

1.EtherCAT主站
2.EtherCAT从站(本文使用步进电机驱动器)
3.Wireshark

1 抓包分析

1.1 报文总览

本文让主站去读取从站1字地址为0的EEPROM数据内容,主站读取从站EEPROM数据内容使用Wireshark抓包如下:
EtherCAT主站读取从站EEPROM抓包分析_第1张图片

1.2 EEPROM读取阶段1:将EEPROM访问控制权设置为主站

在这里插入图片描述
这一阶段涉及的寄存器包括0x0500、0x0501,有关这2个寄存器的描述如下:
EtherCAT主站读取从站EEPROM抓包分析_第2张图片
将EEPROM访问控制权设置为主站的操作分为2步:
(1)强制PDI释放EEPROM访问控制权
EtherCAT主站读取从站EEPROM抓包分析_第3张图片
通过APWR自动增量写报文设置0x0500.1为1,该位设置为1时将复位0x0501.0为0。这一操作可以强制清除0x0501.0为0,从PDI手中夺取EEPROM访问控制权。
(2)主站接管EEPROM访问控制权
EtherCAT主站读取从站EEPROM抓包分析_第4张图片
通过APWR自动增量写报文设置0x0500.0为0,由主站接管EEPROM的控制权。

1.3 EEPROM读取阶段2:读取EEPROM支持读字节数

在这里插入图片描述
这一阶段涉及的寄存器为0x0502:
EtherCAT主站读取从站EEPROM抓包分析_第5张图片
主站通过APRD自动增量读报文读取0x0502寄存器获取EEPROM状态,返回的数据为0x0060,表明EEPROM支持读取的字节数为8字节,也就是每次读取每个字地址时都会返回以字地址开头的8字节数据。
EtherCAT主站读取从站EEPROM抓包分析_第6张图片

1.4 EEPROM读取阶段3:等待EEPROM接口空闲

在这里插入图片描述
这一阶段涉及的寄存器为0x0502的bit15:
在这里插入图片描述
主站不断发送APRD自动增量读报文查看0x0502的bit15状态,一直等到EEPROM接口空闲。
EtherCAT主站读取从站EEPROM抓包分析_第7张图片

1.5 EEPROM读取阶段4:发送读取EEPROM命令

在这里插入图片描述

这一阶段涉及的寄存器为0x0502的bit8以及0x0504-0x0507寄存器:
EtherCAT主站读取从站EEPROM抓包分析_第8张图片在这里插入图片描述

主站通过APWR自动增量写报文设置0x0502寄存器的bit8为1,表示主站要开始进行读操作,设置寄存器0x504-0x507为0x0表示EEPROM的读取字地址为0x0:
EtherCAT主站读取从站EEPROM抓包分析_第9张图片

1.6 EEPROM读取阶段5:等待EEPROM接口空闲

在这里插入图片描述

这一阶段涉及的寄存器为0x0502的bit15:
在这里插入图片描述
主站不断发送APRD自动增量读报文,读取0x0502寄存器bit15查看EEPROM接口是否空闲:
EtherCAT主站读取从站EEPROM抓包分析_第10张图片

1.7 EEPROM读取阶段6:读取EEPROM数据

在这里插入图片描述
这一阶段涉及的寄存器为0x0508:
EtherCAT主站读取从站EEPROM抓包分析_第11张图片
主站发送APRD自动增量读报文读取0x0508寄存器内容,长度为8,也就是前文获取到的读取字节数:
EtherCAT主站读取从站EEPROM抓包分析_第12张图片
至此,主站读取从站EEPROM工作结束,获取到的以字地址0开头的EEPROM 8字节数据为:00 3C 00 00 00 64 00 00。

2 总结

主站读取从站EEPROM数据可以分为以下6个步骤:
(1)主站夺取EEPROM访问控制权
(2)获取从站EEPROM支持的读字节数
(3)等待从站EEPROM接口空闲
(4)发送读取EEPROM命令(包括读取地址)
(5)等待从站EEPROM接口空闲
(6)读取EEPROM数据

你可能感兴趣的:(工业以太网,EtherCAT,EEPROM,SII,EtherCAT主站,EtherCAT从站)