领导安排下来EtherCAT从站的开发,所以最近在忙乎这个事,以前没接触过,所以很珍惜这个机会。
最开始接触的时候,被大量的代码和参考资料吓到了,根本无从下手。Canopen、Cia402协议也是看不过来的内容。庆叔有个学习的特点,先从最简单的程序开始做,再往上面一层一层的加入。于是乎就有了现在的一些小收获,与大家分享,当然,对于EtherCAT庆叔也是刚入手,因此肯定会有理解错的地方,我就相当于抛砖引玉了。
EtherCAT进入中国差不多十一年了,由于其开放性,实时性以及扩容性表现很不错,逐渐被国内工业自动化领域接受并开始大量采用,国家已经认可其推荐组网协议,并有了规范和标准,伺服驱动领域的产商也开始支持其从站组网,可能会是未来以太网在工业自动化领域主要的通讯协议。
EtherCAT组网最关键的就是ESC(EtherCAT Slave Controller)从站控制芯片,目前市场上主要是LAN8595和ET1100。这两块芯片的特点是,前者相当便宜,其SPI可支持最高80Mhz的时钟(但受限于MCU的时钟),而HPI接口兼容性不是很好,用于STM32来作MCU还是可以,但TI C2000由于没有复用寻址,可能不太适用,且由于是复用寻址,并不见得会比SPI来得快。后者支持异步同步并口和SPI,用C2000的话还是这块芯片比较合适,并口速率就比SPI快多了。
EtherCAT本身就是通讯协议,上文提到的CanOpen和Cia402其实只是支援协议,也就是说不用它,也是可以完成EtherCAT的通讯的,因为我们接触到的CoE是第七层的应用协议,Can over EtherCat这句英语就可以看出,它是EtherCat披上了CAN的外衣,是为了与Canopen设备标准接口的,目的是为了将以前的Canopen协议开发的程序能顺利移植到EtherCat上,MCU是不参与具体通讯的编码与解码,有关通讯所有的工作全由ESC完成了,这也是为什么EtherCAT能快速完成通讯。
当我们抛开CoE来看EtherCAT本身的话,其实是非常简单的,就是对ESC寄存器的操作。所以只要掌握了一种与ESC寄存器交互的方法(SPI、HPI、并口)就掌握了其底层通讯办法的实现,剩下的就是改个读写寄存器的方法而已。然后就XML文件的编写,这个文件的编写,我一直没找到相关的参考资料,估计要成为倍福的会员,才有可能下载得到,现在都是摸出来的。
然后就是TwinCAT了,庆叔目前卡在了这里,自己通过理解的写的祼机程序(不带CoE,Cia402)从站可以通过TwinCAT启停,调位置和速度,但就是过不了运动控制模块,卡在了PreOP2PreOP中,现在估计在这个阶段从机可能需要返回状态信息,还要测试过才知道。所以提醒大家,在TwinCAT上调试成功,并不代表这个从机能跑其它的控制器主站,这也意味着开发的从站通过培福“一致性测试”的重要性。
举报/反馈

星蝶偶成阁

42获赞 85粉丝
嵌入式开发路上的偶成
关注
0
0
收藏
分享