本次EtherCat主站移植是基于SOEM源码进行移植,收集并整理部分资料作为学习EtherCat通讯参考内容。
一 、T EtherCAT 主站 M SOEM 源码解析 ----M EEPROM 访问
- 1、ESC EEPROM 访问控制寄存器
从站控制芯片 ESC EEPROM 控制寄存器如下:
- 2、读 EEPROM 步骤
读的一般步骤为:
(1) 读取 EEPROM 控制/状态寄存器 0x0502:0x0503 的内容,确认 EEPROM 没有
处于 Busy 状态
(2) 向 0x0502:0x0503 写入读控制命令,写入的值为 0x0100,向
0x0504:0x0507 写入需要读的 EEPROM 地址
(3) 重复步骤(1)
(4) 从寄存器 0x0508:0x050F 中读取对应 EEPROM 地址的内容
读取一次 SOEM 主站需要发送 4 帧数据。
步骤(1)和(2)在 SOEM 源码中对应的实现函数为 ecx_readeeprom1()。
步骤(3)和(4)在 SOEM 源码中对应的实现函数为 ecx_readeeprom2()。
- 3、ecx_readeeprom1()函数
5、读 VendorID
使用 Wireshark 监控可以看到对应的 EtherCAT 帧如下
其中帧 95、96、99 和 100 对应步骤 1,查询 EEPROM 状态。
帧 97/98 对应步骤 2,向 0x0502:0x0503 中写入读命令 0x0100,向
0x0504:0x0507 写入 VendorID 所在的 EEPROM 地址 0x000a。
帧 101/102 从 0x0508:0x050F 读取 VendorID 的值。
EherCat抓包工具,配合Wireshark使用