EtherCAT主站需要运行在实时操作系统上以保证任务在规定的时间内完成不会被其他低优先级任务打断,所以需要对普通Linux操作系统进行实时化处理。
目前常见的实时系统产品有VxWorks、u C/OS-II以及RT-Linux,价格昂贵,结构简单。为了方便对Linux内核的开发和利用,方案利用实时内核扩展Linux系统内核,扩展方案有Xenomai、RTAI以及Preempt-RT等。
RTAI直接给Linux内核打补丁并改善大部分耗时的中断处理任务,除此之外,用户的实时线程需要编译成内核模块,在内核态调用。
rt-preempt也是一个Linux的实时扩展,其功能交RTAI较弱,专注于改进内核的实时性能,但是不提供任何的用户API,其实时性能也相对RTAI和Xenomai差。
嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!
无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。加微信领取资料
Xenomai性能非常接近RTAI,需要专门的API来开发实时任务代码,不运行在内核态,同时Xenomai对Linux内核的改动较小,对ARM架构支持的版本保持更新。
综上所述,Linux操作系统实时性扩展改造选择Xenomai实时内核。
本文采用基于AM3358微处理器的BeagleBoneBlack(BBB)硬件作为EtherCAT主站平台,如图所示。
据方案设计介绍,主站的实现主要基于两大要求:一是Linux系统,另一个则是具有标准的以太网口。
相较于PC平台上实现EtherCAT模块,Beagle Bone具有价格便宜、轻便小巧的特点,是一个性价比较高的嵌入式产品。
BeagleBoneBlack相较于其他的开源嵌入式平台,支持更多的编程语言以及本地编辑、编译代码文件。
AM3358芯片集成MAC控制器,MAC控制器完成以太网七层网络协议中数据链路层的任务,AM3358通过MII接口与PHY芯片LAN8710A连接,LAN8710A负责数据的收发。
此外,AM3358还扩展了USB接口,连接鼠标键盘;扩展了LCD接口以及串口等。