【沁恒 CH32V208 开发板免费试用】2.EtherCat主站移植前准备(一) - RISC-V MCU技术社区 - 电子技术william hill官网 - 广受欢迎的专业电子william hill官网 - 威廉希尔官方网站
分享 收藏 返回

江强 关注 私信
[活动]

【沁恒 CH32V208 开发板免费试用】2.EtherCat主站移植前准备(一)

本次EtherCat主站移植是基于SOEM源码进行移植,收集并整理部分资料作为学习EtherCat通讯参考内容。
一 、T EtherCAT 主站 M SOEM 源码解析 ----M EEPROM 访问

  • 1、ESC EEPROM 访问控制寄存器
    从站控制芯片 ESC EEPROM 控制寄存器如下:
    image.png
  • 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()函数

image.png

  • 4、ecx_readeeprom2()函数

image.png

5、读 VendorID

image.png

使用 Wireshark 监控可以看到对应的 EtherCAT 帧如下

image.png
其中帧 95、96、99 和 100 对应步骤 1,查询 EEPROM 状态。
帧 97/98 对应步骤 2,向 0x0502:0x0503 中写入读命令 0x0100,向
0x0504:0x0507 写入 VendorID 所在的 EEPROM 地址 0x000a。
帧 101/102 从 0x0508:0x050F 读取 VendorID 的值。

EherCat抓包工具,配合Wireshark使用

e90ae3dbe2ba90c1b105c3167f8cc8c.jpg

更多回帖

×
发帖