Ethercat的从站节点地址,首先再看一下 EtherCAT 帧结构
因为EtherCAT采用了 IEEE 802.3 作为其标准以太网帧,只是对 IEEE 802.3 Ethernet 规格进行扩充,
并未对基本结构进行任何变更,因此可以转送标准的 Ethernet 帧内的数据,
同时可以使用标准的以太网控制器,无需单独设计硬件。
以太网帧分为以太网头、以太网数据和帧校验序列几个部分。
EtherCAT在标准以太网帧的基础上进行了一定的修改:
- 以太网头:EtherType为EtherCAT保留,设为 0x88A4 ,以与其它以太网帧相区别。
- 以太网数据:以太网数据分为EtherCAT头与 1 个以上的 EtherCAT 子报文两个部分。 细分ETC Header,前 11bit 表示子报文的长度,范围为44~1498字节;中间 1bit 保留,最后4bit Type = 1,表示从站通信。
一个EtherCAT报文由数个子报文组成,总长度在44~1498字节之间。每个子报文分为10字节的报文头、0~1486字节的数据和2字节的工作计数器三个部分。
- Cmd:表示EtherCAT指令类型,即应当如何处理后面的数据。
- Idx:表示帧的索引号,用来帮助主站对报文进行识别。
- Address:表示从站地址,有三种寻址模式,分别为位置寻址、节点寻址、逻辑寻址。
- Len:表示报文数据的长度。
- R:表示保留位。
- C:为帧循环标志。
- M:表示后续报文标志,0表示当前为最后一个报文,1表示EtherCAT随后将提供更多报文。
- IRQ:表示中断请求寄存器。
- Data:表示数据区
- WKC:表示工作计数器。
在EtherCAT的每个子报文中,有32位空间用于对EtherCAT设备进行寻址。
寻址方式有三种,分别为:顺序位置寻址\节点寻址\逻辑寻址
/********************顺序位置寻址*********************/
顺序位置寻址方式是根据从站的连接顺序,即物理位置实现的。
在报文头的32bit地址中,前16bit的Position用于存放地址值,Offset用于存放ESC逻辑寄存器或者内存地址。
报文每经过一个从站设备,其Position中的地址值加1。
当一个从站接收到EtherCAT报文后,如果报文中的地址值为0,则该报文就是这个从站要要接收的报文。
举例:汇川AM600设置节点地址(http://www.yanjuntech.cn/mybook/am600_use/export/_book/si_3001_zong_xian_yun_dong_kong_zhi_ff1a/ethercatcong_zhan_di_zhi_she_zhi_fang_fa.html)
在下面的图中,如果需要总线上第8个设备响应报文,则主站将报文的地址设为0xFFF9,
当报文经过第1个从站时,地址为0xFFF9,不等于0,第1个从站不会响应报文,报文地址加1,变为0xFFFA。
当报文经过第2个从站时,地址为0XFFFA,不等于0,第2个从站不会响应该报文,报文地址加1,变为0xFFFB。
以此类推,当报文到达第8个从站时,此时地址值为0x0000,当前从站将接收报文。
以上是EtherCAT的位置寻址方式。
1.在启动过程中,使用顺序寻址方式为从站分配节点地址,
2.然后通过节点寻址的方式配置从站寄存器,将逻辑地址与从站的物理地址进行映射,之后使用逻辑寻址的方式进行过程数据交换。
3.sdo邮箱通信,一般是用节点寻址的。
4.pdo是通过逻辑寻址进行过程数据交换。
步进电机驱动器节点地址可以设置
--------------------------- STM32 && FPGA ÐERCAT技术交流 -------------------------------
QQ技术交流群:530405666
微信:zjwyaonuli
私人邮箱:ainidejiawei@foxmail.com