0 工具准备
1.EtherCAT从站EEPROM数据(本文使用DE3E-556步进电机驱动器)
1 字0-字7ESC寄存器配置区组成信息详解
1.1 ESC寄存器配置区组成规范
对于EtherCAT从站来说,EEPROM的字0-字7组成的ESC寄存器配置区决定了从站上电后ESC能否正常工作,因此十分关键。
关于这8个字的定义EtherCAT规范如下:
也就是:
1.2 实例分析
图上红框标记处就是DM3E-556步进电机驱动器的字0-7的SII数据。根据规范拆解如下:
字0(PDI控制):0x3C00
字1(PDI配置):0x0000
字2(SYNC信号脉冲宽度):0x0064
字3(扩展PDI配置):0x0000
字4(站点别名):0x0000
字5(保留,应为0):0x0000
字6(保留,应为0):0x0000
字7(字0-6的校验和):0x0091
1.2.1 字0:PDI控制
DM3E-556的PDI控制字为0x3C00,用于设置0x140-0x141PDI控制寄存器,PDI控制寄存器定义如下:
注:由于不知道DM3E-556使用的ESC具体型号,该部分寄存器说明仅供参考。
1.2.2 字1:PDI配置
DM3E-556的PDI配置字为0x0000,用于设置0x150-0x151PDI配置寄存器,PDI配置寄存器定义如下:
注:由于不知道DM3E-556使用的ESC具体型号,该部分寄存器说明(LAN9252的说明)仅供参考。
1.2.3 字2:SYNC信号脉冲宽度
DM3E-556的PDI配置字为0x0064,用于设置0x982-0x983SYNC信号脉宽寄存器初值,SYNC信号脉宽寄存器定义如下:
这里DM3E-556的设置值是0x64,也就是100*10ns=1000ns。如果MCU使用ESC的SYNC信号作为中断触发信号,SYNC信号脉冲宽度需要特别留意,避免因脉冲宽度过窄无法触发中断。
1.2.4 字3:扩展PDI配置
DM3E-556的扩展PDI配置字为0x0000,用于设置0x152-0x153扩展PDI配置寄存器初值,扩展PDI配置寄存器定义如下:
注:由于不知道DM3E-556使用的ESC具体型号,该部分寄存器说明(LAN9252的说明)仅供参考。
1.2.5 字4:站点别名
DM3E-556的站点别名为0x0000,用于设置0x12-0x13站点别名配置寄存器初值,站点别名配置寄存器定义如下:
站点别名可以作为从站的身份标识,使用别名寻址从站时可以避免因网络拓扑改变带来的影响,确保使用同一寻址地址操作的是同一个从站。
1.2.6 字5-6:保留
DM3E-556的字5-6均为0x0000,按照EtherCAT规范字5-6保留,应该设置为0。
1.2.6 字7:校验和
根据EtherCAT对于字7校验和的定义:
我们需要设置循环冗余校验初值0xff、多项式0x07、结果异或值为0x00:
最后得出的结果是0x91,将该值作为字7的低字节数据即可。因此,DM3E-556字7的值为0x0091。这个校验和要特别注意,如果校验和错误会导致ESC初始化失败,导致从站无法使用!
2 总结
(1)从站SII的字0-6关系到从站能否正常使用,对于ESC来说非常关键。
(2)从站SII的字7是SII前14Byte数据的初值为0xff的CRC8校验和,如果校验和错误会导致ESC初始化失败,导致从站无法使用!
(3)可以通过设置SII的字4,为每个从站设置唯一身份标识,将别名作为配置寻址地址。这样操作以后,无论从站拓扑怎样改变,使用相同的站点别名都可以操作同一个从站。