本文由RT-Thread论坛用户@lg28870983原创发布:https://club.rt-thread.org/ask/article/160414965e80294e.html
1.背景
最近计划DIY一个EtherCAT控制器,一直在看资料和选型,初步定了NUC980的方案,主要是看中NUC980的RAM比较大,采购还算方便(最近缺芯,大家都懂)。
选定硬件之后,NUC980跑什么系统呢?从以往经验来看,ARM9一般跑linux比较多,资源也好找,同时官方提供BSP。但这次任务有点特殊,EtherCAT对实时性要求比较高,linux不是最合适的。结合MCU开发经验,就准备上个RTOS,以前M3和M4的芯片,主要用FreeRTOS,最近也开始用RT-Thread。新唐官方也推出了NUC980的RT-Thread版BSP,对开发者非常友好,最终决定了NUC980+RT-Thread的方案。
刚好最近官方有个DIY项目官方活动,就报了名。
2.EtherCAT主站软件方案
EtherCAT本身还是比较复杂的,我们就不自己造轮子了,考虑用开源方案,毕竟硬件成本这么低,商用方案是真的用不起啊!
现在开源主站主要就两种,SOEM和IGH(相关的资料网上很多,这儿就不展开了),IGH只支持linux,所以只能选SOME,最新版本是SOEM1.4,本次移植就基于该版本。
3. 移植过程
3.1 RT-Thread 下载
本次移植基于最新发布的release4.1.0, 这个可以到github下载,最近Gitee也更新了。移植EtherCAT之前,首先把Nuvoton的BSP跑起来。这个参考官方的文档就可以了。
3.2 Some移植
下载soem-1.4.0,将整个目录放在rt-thread项目里,下图是我的目录,供参考
在some-1.4.0及其子目录中需要手工编辑SConscript脚本,这儿就不
NUC980+RT-Thread实现EtherCAT主站:移植与测试

本文详细介绍了使用NUC980微控制器和RT-Thread实时操作系统实现EtherCAT主站的过程。作者在Linux环境下选择开源方案SOEM1.4进行移植,主要涉及osal.c、oshw.c和nicdrv.c的修改,以及net_hook.c的实现,以确保EtherCAT数据帧的正确收发。通过测试,实现了对汇川IS620N驱动器的控制,为后续运动控制打下基础。
最低0.47元/天 解锁文章
8116

被折叠的 条评论
为什么被折叠?



