瑞芯微RK3576 +Preempt-RT實(shí)測(cè),EtherCAT抖動(dòng)低至2.113μs

原創(chuàng) 作者 飛凌嵌入式 2026-01-26 15:25:00 RK3576 rk3576開(kāi)發(fā)板 Preempt RT EtherCAT

在工業(yè)自動(dòng)化領(lǐng)域,如何在通用Linux系統(tǒng)上實(shí)現(xiàn)微秒級(jí)的硬實(shí)時(shí)控制,一直是機(jī)器人、多軸運(yùn)動(dòng)控制等高精度場(chǎng)景落地的關(guān)鍵挑戰(zhàn)。開(kāi)源的IgH EtherCAT Master協(xié)議棧,憑借其卓越的高實(shí)時(shí)性與低抖動(dòng)特性,成為了連接工業(yè)現(xiàn)場(chǎng)總線與上層應(yīng)用的核心橋梁。然而,要釋放其全部潛能,離不開(kāi)Preempt-RT實(shí)時(shí)內(nèi)核的強(qiáng)力加持。

本文將基于飛凌嵌入式OK3576-C開(kāi)發(fā)板,通過(guò)1ms周期同步速度模式與125μs周期同步轉(zhuǎn)矩模式的實(shí)測(cè)對(duì)比,展示在CPU隔離核與滿(mǎn)負(fù)載壓力下,系統(tǒng)如何將通訊抖動(dòng)控制在微秒級(jí),為您呈現(xiàn)一套可落地的高性能實(shí)時(shí)工業(yè)控制完整方案。

實(shí)測(cè)性能表現(xiàn)

周期同步速度模式
周期抖動(dòng)由6.3080μs降低為3.5790μs
周期同步轉(zhuǎn)矩模式
周期抖動(dòng)由50.0470μs降低為2.1130μs

IgH EtherCAT Master是什么?

在解答這個(gè)問(wèn)題之前,先來(lái)看一下什么是EtherCAT?EtherCAT是發(fā)展最快的工業(yè)以太網(wǎng)協(xié)議之一,采用硬件驅(qū)動(dòng)型架構(gòu),具有速度快、傳輸數(shù)據(jù)量大、傳輸距離長(zhǎng)、更新周期小、連接設(shè)備數(shù)量多等多重優(yōu)勢(shì)。
EtherCAT示意圖

EtherCAT工作原理示意圖

IgH EtherCAT則是運(yùn)行于Linux系統(tǒng)的開(kāi)源EtherCAT主站程序,IgH EtherCAT主站通過(guò)構(gòu)建Linux字符設(shè)備,應(yīng)用程序通過(guò)對(duì)字符設(shè)備的訪問(wèn)實(shí)現(xiàn)與EtherCAT主站模塊的通信。

它主要包括以下三部分:

1. Master Module

角色:EtherCAT 主站的"大腦"和內(nèi)核。

功能:負(fù)責(zé)管理 EtherCAT 總線通信,實(shí)現(xiàn)主站與從站間的數(shù)據(jù)交換與同步。它包含主站實(shí)例及供底層驅(qū)動(dòng)和上層應(yīng)用調(diào)用的接口。

2. Device Modules

角色:經(jīng)過(guò)實(shí)時(shí)性?xún)?yōu)化的"網(wǎng)卡驅(qū)動(dòng)"(如瑞芯微RK平臺(tái)的 stmmac)。

功能:作為主站與物理網(wǎng)口的橋梁。它能智能分流:被主站選中的設(shè)備用于收發(fā) EtherCAT 幀;未被選中的設(shè)備則作為普通以太網(wǎng)設(shè)備走常規(guī)協(xié)議棧,實(shí)現(xiàn) EtherCAT 與普通網(wǎng)絡(luò)的并行工作。

3. Application

角色:業(yè)務(wù)邏輯的執(zhí)行者(用戶(hù)編寫(xiě)或生成)。

功能:通過(guò)應(yīng)用接口向主站申請(qǐng)總線控制權(quán)。一旦獲準(zhǔn),即可配置總線并進(jìn)行周期性的過(guò)程數(shù)據(jù)交換。應(yīng)用程序既可以是內(nèi)核模塊,也可以是通過(guò)庫(kù)(EtherCAT/RTDM)調(diào)用的用戶(hù)空間程序。

應(yīng)用層架構(gòu)示意圖

重要資源:點(diǎn)擊左側(cè)在線,即可獲得IgH EtherCAT Master官方源碼及技術(shù)手冊(cè)的下載方式。

實(shí)時(shí)內(nèi)核Preempt-RT

1. 獨(dú)具優(yōu)勢(shì):

IgH EtherCAT Master要保證高實(shí)時(shí)性,需要在實(shí)時(shí)操作系統(tǒng)上運(yùn)行。Preempt-RT是一種針對(duì)實(shí)時(shí)性能進(jìn)行了優(yōu)化的Linux內(nèi)核,與普通的Linux內(nèi)核相比,Preempt-RT的優(yōu)勢(shì)很明顯:

  • 硬實(shí)時(shí)保障:具備硬實(shí)時(shí)能力,能確保關(guān)鍵任務(wù)在嚴(yán)格規(guī)定的時(shí)限內(nèi)完成,不受其他任務(wù)干擾,滿(mǎn)足工業(yè)自動(dòng)化、航空航天等對(duì)時(shí)間精度極高的場(chǎng)景需求。
  • 高效調(diào)度與低延遲:采用基于優(yōu)先級(jí)的搶占式調(diào)度算法,高優(yōu)先級(jí)任務(wù)可立即搶占低優(yōu)先級(jí)任務(wù);同時(shí)深度優(yōu)化中斷處理機(jī)制,大幅縮短響應(yīng)時(shí)間,消除系統(tǒng)抖動(dòng)。
  • 高精度定時(shí):提供微秒級(jí)的內(nèi)核定時(shí)器精度,配合實(shí)時(shí)擴(kuò)展機(jī)制,支持用戶(hù)對(duì)內(nèi)核進(jìn)行定制,精準(zhǔn)滿(mǎn)足EtherCAT通信的周期性數(shù)據(jù)交換需求。

2. 實(shí)時(shí)性測(cè)試

本次測(cè)試參考Rockchip RealTime Linux Performance Test Report,分為空載測(cè)試和壓力測(cè)試。測(cè)試的環(huán)境如下:

  • 工具:cyclictest
  • 硬件平臺(tái):OK3576-C開(kāi)發(fā)板
  • 內(nèi)核版本:6.1.118-rt36
  • Path:SDK/docs/rk35xx/Patches/Real-Time-Performance/PREEMPT_RT/kernel-6.1/kernel-6.1.118

a. 配置Preempt-RT內(nèi)核,可以參考用戶(hù)資料:/1-手冊(cè)/OK35xx-Linux6.1.118-配置實(shí)時(shí)內(nèi)核方法.pdf

b. 不同硬件平臺(tái)的實(shí)時(shí)性測(cè)試結(jié)果,可以參考用戶(hù)資料:/1-手冊(cè)/OK35xx-Linux6.1.118-實(shí)時(shí)性測(cè)試.pdf

空載測(cè)試:

cyclictest -c 0 -m -t 8 -p99 -D12H

參數(shù)介紹:

  • -c 0:選擇時(shí)鐘源為CLOCK_MONOTONIC
  • -m:鎖定內(nèi)存,防止內(nèi)存頁(yè)交換到磁盤(pán)
  • -t 8:創(chuàng)建8個(gè)測(cè)試線程
  • -p 99:設(shè)置線程的優(yōu)先級(jí)為99
  • -D 12h:設(shè)置測(cè)試持續(xù)時(shí)間為12h

空載測(cè)試結(jié)果示意圖

壓力測(cè)試:

stress-ng -c8 --io 8 --cpu-load 100 -vm 4 --vm-bytes 512M --timeout 10000000s &

參數(shù)介紹:

  • -c 8:模擬8個(gè)CPU邏輯核心滿(mǎn)負(fù)荷運(yùn)行
  • --io 8:模擬磁盤(pán)I/O壓力
  • --cpu-load 100:設(shè)定 CPU 的目標(biāo)負(fù)載為 100%
  • -vm 4 --vm-bytes 512M:模擬內(nèi)存壓力
  • --timeout 10000000s:設(shè)置測(cè)試持續(xù)時(shí)間為10000000秒

壓力測(cè)試結(jié)果示意圖

演示案例

本節(jié)的演示選取周期同步速度模式(通訊周期時(shí)間為1ms)與周期同步轉(zhuǎn)矩模式(通訊周期時(shí)間為125μs)驅(qū)動(dòng)伺服電機(jī)轉(zhuǎn)動(dòng)。

1. 環(huán)境介紹

開(kāi)發(fā)環(huán)境

  • Kernel:6.1.118-rt36
  • IgH EtherCAT Master:IgH EtherCAT master 1.6.0-rc1
  • EtherCAT主站:OK3576-C
  • EtherCAT從站:
    • (1)EtherCAT耦合器EK1100
    • (2)數(shù)字量輸出模塊EL2008
    • (3)伺服驅(qū)動(dòng)器IS620NS1R6I + 伺服電機(jī)MS1H1-10B30CB A330Z

拓?fù)浣Y(jié)構(gòu)圖:

系統(tǒng)拓?fù)浣Y(jié)構(gòu)圖

主站通過(guò)網(wǎng)線連接EtherCAT耦合器EK1100,EK1100通過(guò)E-Bus連接數(shù)字量輸出模塊EL2008、通過(guò)網(wǎng)線連接伺服驅(qū)動(dòng)器IS620N,交流伺服電機(jī)MS1H1-10B30CB通過(guò)動(dòng)力線和編碼線與伺服驅(qū)動(dòng)器IS620N相連。

使用EtherCat調(diào)試工具輸出識(shí)別到的從站:

從站識(shí)別

使用EtherCat調(diào)試工具輸出總線拓?fù)洌?

總線拓?fù)?/em>

2. 伺服模式

IS620N 支持 7 種伺服模式,分別為輪廓位置模式(PP)、輪廓速度模式(PV)、輪廓轉(zhuǎn)矩模式(PT)、回零模式(HM)、周期同步位置模式(CSP)、周期同步速度模式(CSV)、周期同步轉(zhuǎn)矩模式(CST)。

不同模式支持的通訊周期不同,如下所示:

伺服模式通訊周期表

3. 主站性能測(cè)試方法

以下定義參考:Definitions of Jitter and Latency

抖動(dòng)和延遲定義

參考官方示例代碼:examples/dc_user/main.c · stable-1.5 · EtherLab / EtherCAT Master · GitLab

里面有實(shí)現(xiàn)統(tǒng)計(jì)一個(gè)通訊周期的所花費(fèi)的最大值和最小值。以1s為周期循環(huán)打印該區(qū)間EtherCAT通訊周期時(shí)間的最大值和最小值。

示例代碼

代碼示意圖

演示一:周期同步速度模式(1ms)

周期同步速度模式下,上位控制器將計(jì)算好的目標(biāo)速度 60FF 周期性同步發(fā)送給伺服驅(qū)動(dòng)器,速度、轉(zhuǎn)矩調(diào)節(jié)由伺服內(nèi)部執(zhí)行。

基本配置:

周期同步速度模式基本配置

使用EtherCat調(diào)試工具輸出的pdo信息:

周期同步速度模式PDO信息

操作步驟:

步驟1:設(shè)定模式,OD 6060h = 09h,周期同步速度模式。

步驟2:設(shè)定目標(biāo)速度,OD 60FFh = 0。由于速度模式下,一旦切至 Servo On (步驟 3),伺服電機(jī)就會(huì)開(kāi)始運(yùn)轉(zhuǎn),因此設(shè)定 0 是確保在 Servo On 時(shí)先保持 0 rpm 而不作動(dòng)。

步驟3:設(shè)定控制指令 OD 6040h,請(qǐng)依照以下步驟操作。步驟 3.1 與 3.2 是為了使驅(qū)動(dòng)器的狀態(tài)機(jī) (state machine) 進(jìn)入準(zhǔn)備狀態(tài)。

控制指令設(shè)置步驟

步驟4:設(shè)定目標(biāo)速度 OD 60FFh。

性能指標(biāo):

① 壓力測(cè)試
stress -c 4 --io 2 --vm 1 --vm-bytes 256M --timeout 1000000s&
./igh_ethercat_motor_csv

壓力測(cè)試結(jié)果

② 隔離測(cè)試+隔離核
stress -c 4 --io 2 --vm 1 --vm-bytes 256M --timeout 1000000s &
taskset -c 7 ./igh_ethercat_motor_csv

隔離測(cè)試結(jié)果

演示二:周期同步轉(zhuǎn)矩模式(125μs)

此模式下,上位控制器將計(jì)算好的目標(biāo)轉(zhuǎn)矩 6071h 周期性同步的發(fā)送給伺服驅(qū)動(dòng)器,轉(zhuǎn)矩調(diào)節(jié)由伺服內(nèi)部執(zhí)行。當(dāng)速度達(dá)到限幅值后將進(jìn)入調(diào)速階段。

基本配置:

周期同步轉(zhuǎn)矩模式基本配置

使用EtherCat調(diào)試工具輸出的pdo信息:

周期同步轉(zhuǎn)矩模式PDO信息

操作步驟:

步驟1:設(shè)定模式,OD 6060h = 0Ah,周期同步轉(zhuǎn)矩模式。

步驟2:設(shè)定目標(biāo)扭矩,OD 6071h = 0。由于扭矩模式下,一旦切至Servo On (步驟 3),伺服目標(biāo)扭矩即作用,因此先設(shè)定 0,以確保安全。

步驟3:設(shè)定控制指令,OD 6040h,請(qǐng)依照以下步驟操作。步驟 3.1 與 3.2 是為了使驅(qū)動(dòng)器的狀態(tài)機(jī) (state machine) 進(jìn)入準(zhǔn)備狀態(tài)。

轉(zhuǎn)矩模式控制指令設(shè)置

步驟4:設(shè)定目標(biāo)扭矩 OD 6071h。

性能指標(biāo):

① 壓力測(cè)試
stress -c 4 --io 2 --vm 1 --vm-bytes 256M --timeout 1000000s&
./igh_ethercat_motor_cst

轉(zhuǎn)矩模式壓力測(cè)試結(jié)果

② 壓力測(cè)試+隔離核
stress -c 4 --io 2 --vm 1 --vm-bytes 256M --timeout 1000000s &
taskset -c 7 ./igh_ethercat_motor_cst

轉(zhuǎn)矩模式隔離測(cè)試結(jié)果

測(cè)試說(shuō)明:以上測(cè)試對(duì)未及時(shí)收回來(lái)的數(shù)據(jù)幀時(shí)統(tǒng)計(jì)的周期樣本進(jìn)行剔除,在跑125μs周期,幀未及時(shí)收回來(lái)的情況會(huì)更加頻繁。

兩種演示的性能測(cè)試,應(yīng)用程序都采用FIFO調(diào)度+內(nèi)存鎖定;在采取隔離核策略時(shí),系統(tǒng)的周期抖動(dòng)降低。

周期同步速度模式,周期抖動(dòng)由6.3080μs降低為3.5790μs。

周期同步轉(zhuǎn)矩模式,周期抖動(dòng)由50.0470μs降低為2.1130μs。

方案展示:

完整方案展示

完整的軟硬件生態(tài)系統(tǒng)

飛凌嵌入式提供從硬件到軟件的全棧解決方案,確保您的工業(yè)自動(dòng)化項(xiàng)目快速落地

RT

實(shí)時(shí)內(nèi)核優(yōu)化

深度優(yōu)化的Preempt-RT實(shí)時(shí)內(nèi)核,確保微秒級(jí)硬實(shí)時(shí)性能,滿(mǎn)足高精度運(yùn)動(dòng)控制需求

ME

技術(shù)咨詢(xún)服務(wù)

我們的技術(shù)專(zhuān)家團(tuán)隊(duì)可為您提供從方案選型到產(chǎn)品落地的全程技術(shù)支持,幫助您快速實(shí)現(xiàn)產(chǎn)品開(kāi)發(fā)

SDK

全面開(kāi)發(fā)支持

提供完整的BSP、驅(qū)動(dòng)、示例代碼和技術(shù)文檔,大幅縮短開(kāi)發(fā)周期

以上就是基于飛凌嵌入式RK3576開(kāi)發(fā)板的Preempt-RT+IgH EtherCAT Master演示案例,希望能夠?qū)δ兴鶐椭?

RK3576核心板

相關(guān)產(chǎn)品 >

  • FET3568-C核心板

    RK3568性能強(qiáng)而穩(wěn) 國(guó)產(chǎn)芯|飛凌嵌入式RK3568系列核心板,采用瑞芯微國(guó)產(chǎn)高性能AI處理器RK3568設(shè)計(jì)生產(chǎn),RK3568兼具CPU、GPU、NPU、VPU于一身,RK3568 性能、性?xún)r(jià)比在同類(lèi)產(chǎn)品中具有較高優(yōu)勢(shì),RK3568處理器是一款定位中高端的通用型SoC, 飛凌RK3568核心板主要面向工業(yè)互聯(lián)網(wǎng)、HMI、NVR存儲(chǔ)、車(chē)載中控、工業(yè)網(wǎng)關(guān)等領(lǐng)域。目前RK3568系列已經(jīng)批量穩(wěn)定出貨

    了解詳情
    FET3568-C核心板
  • FET3588-C核心板

    RK3588芯片系列是Rockchip推出的旗艦級(jí)工業(yè)級(jí)產(chǎn)品,采用先進(jìn)的8nm制程工藝,集成4核Cortex-A76+4核Cortex-A55架構(gòu),A76主頻高達(dá)2.4GHz,A55核主頻高達(dá)1.8GHz,能夠提供強(qiáng)大的性能支撐。飛凌FET3588-C核心板經(jīng)過(guò)了嚴(yán)苛的環(huán)境溫度測(cè)試和壓力測(cè)試,確保在高端應(yīng)用中能夠穩(wěn)定運(yùn)行。您可以通過(guò)飛凌提供的rk3588開(kāi)發(fā)套件充分評(píng)估和驗(yàn)證其性能。

    了解詳情
    FET3588-C核心板
  • FET3576-C核心板

    飛凌嵌入式RK3576核心板集成了強(qiáng)大的處理器和豐富的接口,提供出色的計(jì)算能力和擴(kuò)展性。RK3576核心板以其卓越的性能、低功耗和穩(wěn)定性,成為工業(yè)、AIoT、邊緣計(jì)算、智能移動(dòng)終端等領(lǐng)域的理想選擇。無(wú)論是數(shù)據(jù)處理還是邊緣計(jì)算,RK3576都能為項(xiàng)目提供強(qiáng)大的硬件支持。核心板推薦選擇飛凌嵌入式瑞芯微系列RK3576J業(yè)級(jí)核心板、RK3576高性能核心板。 了解詳情
    FET3576-C核心板
  • FET3562J-C核心板

    RK3562核心板,采用高性能低功耗工業(yè)級(jí)芯片RK3562J設(shè)計(jì),RK3562J是瑞芯微專(zhuān)為工業(yè)自動(dòng)化及消費(fèi)類(lèi)電子設(shè)備打造的一款高性能、低功耗國(guó)產(chǎn)化應(yīng)用處理器,集成了4個(gè)ARM Cortex-A53高性能核,主頻高達(dá)1.8GHz。RK3562核心板采用3組80Pin板對(duì)板連接器,可插拔式設(shè)計(jì)便于產(chǎn)品的安裝與維護(hù)。 了解詳情
    FET3562J-C核心板

推薦閱讀 換一批 換一批