在工业自动化领域,如何在通用Linux系统上实现微秒级的硬实时控制,一直是机器人、多轴运动控制等高精度场景落地的关键挑战。开源的IgH EtherCAT Master协议栈,凭借其卓越的高实时性与低抖动特性,成为了连接工业现场总线与上层应用的核心桥梁。然而,要释放其全部潜能,离不开Preempt-RT实时内核的强力加持。
本文将基于飞凌嵌入式OK3576-C开发板,通过1ms周期同步速度模式与125μs周期同步转矩模式的实测对比,展示在CPU隔离核与满负载压力下,系统如何将通讯抖动控制在微秒级,为您呈现一套可落地的高性能实时工业控制完整方案。
先说结论,表现很强悍!
周期同步速度模式,周期抖动由6.3080μs降低为3.5790μs;
周期同步转矩模式,周期抖动由50.0470μs降低为2.1130μs!
1、IgH EtherCAT Master是什么?
在解答这个问题之前,先来看一下什么是EtherCAT ?EtherCAT是发展最快的工业以太网协议之一,采用硬件驱动型架构,具有速度快、传输数据量大、传输距离长、更新周期小、连接设备数量多等多重优势。

IgH EtherCAT则是运行于Linux系统的开源EtherCAT主站程序,IgH EtherCAT主站通过构建Linux字符设备,应用程序通过对字符设备的访问实现与EtherCAT主站模块的通信。

它主要包括以下三部分:
1. Master Module
角色:EtherCAT 主站的“大脑”和内核。
功能:负责管理 EtherCAT 总线通信,实现主站与从站间的数据交换与同步。它包含主站实例及供底层驱动和上层应用调用的接口。
2. Device Modules
角色:经过实时性优化的“网卡驱动”(如瑞芯微RK平台的 stmmac)。
功能:作为主站与物理网口的桥梁。它能智能分流:被主站选中的设备用于收发 EtherCAT 帧;未被选中的设备则作为普通以太网设备走常规协议栈,实现 EtherCAT 与普通网络的并行工作。

3. Application
角色:业务逻辑的执行者(用户编写或生成)。
功能:通过应用接口向主站申请总线控制权。一旦获准,即可配置总线并进行周期性的过程数据交换。应用程序既可以是内核模块,也可以是通过库(EtherCAT/RTDM)调用的用户空间程序。

评论区留言【资料】,即可获得IgH EtherCAT Master官方源码及技术手册的下载方式。
2、实时内核Preempt-RT
1. 独具优势:
IgH EtherCAT Master要保证高实时性,需要在实时操作系统上运行。Preempt-RT是一种针对实时性能进行了优化的Linux内核,与普通的Linux内核相比,Preempt-RT的优势很明显:
① 硬实时保障:
具备硬实时能力,能确保关键任务在严格规定的时限内完成,不受其他任务干扰,满足工业自动化、航空航天等对时间精度极高的场景需求。
② 高效调度与低延迟:
采用基于优先级的抢占式调度算法,高优先级任务可立即抢占低优先级任务;同时深度优化中断处理机制,大幅缩短响应时间,消除系统抖动。
③ 高精度定时:
提供微秒级的内核定时器精度,配合实时扩展机制,支持用户对内核进行定制,精准满足EtherCAT通信的周期性数据交换需求。
2. 实时性测试
本次测试参考Rockchip RealTime Linux Performance Test Report,分为空载测试和压力测试。测试的环境如下:
① 工具:cyclictest
② 硬件平台:OK3576-C开发板
③ 内核版本:6.1.118-rt36
④ Path:SDK/docs/rk35xx/Patches/Real-Time-Performance/PREEMPT_RT/kernel-6.1/kernel-6.1.118
a. 配置Preempt-RT内核,可以参考用户资料:/1-手册/OK35xx-Linux6.1.118-配置实时内核方法.pdf
b. 不同硬件平台的实时性测试结果,可以参考用户资料:/1-手册/OK35xx-Linux6.1.118-实时性测试.pdf
空载测试:
cyclictest -c 0 -m -t 8 -p99 -D12H
参数介绍:
评论区
登录后即可参与讨论
立即登录