最近两月的周末,本人将SOEM主站移植到了STM32上,在free run模式下运行正常,可以驱动倍福的io从站;在DC模式下存在一些bug,只能驱动一部分的伺服驱动器。
准备在博客上记录一些移植过程,和大家分享一下,肯定会有一些说的不对的地方,欢迎大家批评指正。
整个移植过程其实和将lwip移植到stm32上的方法类似,SOEM主站在设计时就采用了硬件抽象层、操作系统抽象层的架构,因此改一下osal、oshw、nicdrv这几部分的代码就可以了。
当然了,移植过程中参考了许多网上资料(不限于以下几个)。在此,谢谢这些大佬了。
lwip移植:
这部分资料参考了原子、野火的stm32教程以及stm32参考手册,把以太网相关的部分看一下就行了。
相关论文:
王惠娇同志的硕士论文《基于嵌入式平台的EtherCAT主站实现研究》
这篇文章很关键,基本上把详细的移植过程都阐述了一遍,大家可以仔细研读一下。
成功案例:
一些网友已经在stm32上移植成功了,我在此转发一下。
EasyCAT,这是一个国外大佬做的一个项目,也是基于stm32的。
阿莫电子论坛的《基于stm32和soem的EtherCAT主站代码分享》
以及github上的一些开源代码
我移植好的soem主站,基于原子的stm32f767开发板。
点击相关文字就可以转到超链接的网站
我先去吃饭啦,有空再写。