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

编程入门 行业动态 更新时间:2024-10-18 08:38:26

EtherCAT<a href=https://www.elefans.com/category/jswz/34/1721321.html style=主站读取从站EEPROM抓包分析"/>

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

0 工具准备

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

1 抓包分析

1.1 报文总览

本文让主站去读取从站1字地址为0的EEPROM数据内容,主站读取从站EEPROM数据内容使用Wireshark抓包如下:

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


这一阶段涉及的寄存器包括0x0500、0x0501,有关这2个寄存器的描述如下:

将EEPROM访问控制权设置为主站的操作分为2步:
(1)强制PDI释放EEPROM访问控制权

通过APWR自动增量写报文设置0x0500.1为1,该位设置为1时将复位0x0501.0为0。这一操作可以强制清除0x0501.0为0,从PDI手中夺取EEPROM访问控制权。
(2)主站接管EEPROM访问控制权

通过APWR自动增量写报文设置0x0500.0为0,由主站接管EEPROM的控制权。

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


这一阶段涉及的寄存器为0x0502:

主站通过APRD自动增量读报文读取0x0502寄存器获取EEPROM状态,返回的数据为0x0060,表明EEPROM支持读取的字节数为8字节,也就是每次读取每个字地址时都会返回以字地址开头的8字节数据。

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


这一阶段涉及的寄存器为0x0502的bit15:

主站不断发送APRD自动增量读报文查看0x0502的bit15状态,一直等到EEPROM接口空闲。

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

这一阶段涉及的寄存器为0x0502的bit8以及0x0504-0x0507寄存器:

主站通过APWR自动增量写报文设置0x0502寄存器的bit8为1,表示主站要开始进行读操作,设置寄存器0x504-0x507为0x0表示EEPROM的读取字地址为0x0:

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

这一阶段涉及的寄存器为0x0502的bit15:

主站不断发送APRD自动增量读报文,读取0x0502寄存器bit15查看EEPROM接口是否空闲:

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


这一阶段涉及的寄存器为0x0508:

主站发送APRD自动增量读报文读取0x0508寄存器内容,长度为8,也就是前文获取到的读取字节数:

至此,主站读取从站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抓包分析

本文发布于:2023-11-16 15:38:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1627192.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:主站   EtherCAT   EEPROM

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!