EtherCAT主站写从站EEPROM抓包分析

0 工具准备

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

1 抓包分析

1.1 报文总览

本文主站设置从站1字地址为0的EEPROM数据为0x3C00(设置完毕后请还原字0的EEPROM数据),使用Wireshark抓取到的报文如下:
EtherCAT主站写从站EEPROM抓包分析_第1张图片

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

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

1.3 EEPROM写入阶段2:等待EEPROM接口空闲

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

1.4 EEPROM写入阶段3:将数据写入到EEPROM数据寄存器

在这里插入图片描述
这一阶段涉及的寄存器是0x0508:
EtherCAT主站写从站EEPROM抓包分析_第5张图片
主站通过FPWR设置写报文设置0x0508EEPROM数据寄存器值为0x3C00:
EtherCAT主站写从站EEPROM抓包分析_第6张图片

1.4 EEPROM写入阶段4:发送写入EEPROM命令(包括写入地址)

在这里插入图片描述
这一阶段涉及的寄存器为0x0502的bit0、bit9以及0x0504-0x0507寄存器:
在这里插入图片描述
EtherCAT主站写从站EEPROM抓包分析_第7张图片
在这里插入图片描述
主站通过FPWR配置写报文设置0x0502.0=1、0x0502.9=1,这2位必须由一个数据帧写完成,表示主站要进行写操作。设置寄存器0x0504-0x0507为0x0表示EEPROM要写入的字地址为0x0:
EtherCAT主站写从站EEPROM抓包分析_第8张图片

1.6 EEPROM读取阶段5:等待EEPROM接口空闲(等待ESC完成EEPROM写入操作)

在这里插入图片描述
这一阶段涉及的寄存器为0x0502的bit13、bit15:
在这里插入图片描述

在这里插入图片描述
主站不断发送FPRD配置读报文,读取0x0502寄存器bit15查看EEPROM接口是否空闲,等待ESC完成EEPROM数据写入工作:
EtherCAT主站写从站EEPROM抓包分析_第9张图片
当EEPROM接口空闲时主站会检查0x0502寄存器bit13是否为置位,如果置位则表示EEPROM无应答或命令无效,否则表示写入成功。

2 总结

EtherCAT主站写从站EEPROM数据可以分为以下5个步骤:
(1)主站夺取EEPROM访问控制权
(2)等待EEPROM接口空闲
(3)将数据写入到EEPROM数据寄存器
(4)发送写入EEPROM命令(包括写入地址)
(5)等待EEPROM接口空闲(等待ESC完成EEPROM写入操作)

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