創龍首頁 >關于創龍 > 新聞資訊 > 技術文章

聯系我們

Contact Us

公司總機:020-8998-6280

技術熱線:020-3893-9734

技術郵箱:support@tronlong.com

銷售郵箱:sales@tronlong.com

基于全志T507-H的Linux-RT + Igh EtherCAT主站案例分享

2024/03/28

本文將為各位工程師演示全志T507-H工業評估板(TLT507-EVM)基于IgH EtherCAT控制伺服電機方法,生動說明Linux-RT + Igh EtherCAT的強大之處!


同時,我們對于T3/A40i、T113-i、RK3568、RK3588J、AM62x、AM64x、NXP i.MX 8M Plus等平臺也提供了開源EtherCAT主站IgH案例。


Linux-RT系統的優勢

- 內核開源、免費、功能完善。


 

- RT PREEMPT補丁,使Linux內核成為硬實時操作系統,無需完整的內核重寫。


 

- 既有實時性,又有相同的開發生態系統(包括相同工具鏈、文件系統和安裝方法,以及相同的POSIX API等),實現產品快速上市的期望。

 

Linux-RT實時性測試(Cyclictest工具)

Cyclictest常用于實時系統的基準測試,是評估實時系統相對性能的最常用工具之一。Cyclictest反復測量并精確統計線程的實際喚醒時間,以提供有關系統的延遲信息。它可測量由硬件、固件和操作系統引起的實時系統的延遲。


基于全志T507-H(硬件平臺:創龍科技TLT507-EVM評估板),按照創龍科技提供的案例用戶手冊進行操作,使用Cyclictest程序測試系統實時性,得出如下測試結果。




圖1 Linux-RT-4.9.170內核測試結果









圖2 Linux-4.9.170內核測試結果







對比測試數據,可看到基于Linux-RT-4.9.170內核的系統的延時更加穩定,最大延時更低,系統實時性更佳。


Linux-RT性能測試

基于全志T507-H(硬件平臺:創龍科技TLT507-EVM評估板),按照創龍科技提供的案例用戶手冊進行操作,測試分別在CPU空載、滿負荷(運行stress壓力測試工具)、隔離CPU核心的情況下,得出如下測試結果。


備注:測試數據與實際測試環境有關,僅供參考。



圖3 CPU空載狀態


CPU空載狀態測試,CPU0、CPU1核心Max Latencies值最大,為69us,CPU3核心的Max Latencies值最小,為66us。





圖4 CPU滿負荷狀態


 

CPU滿負荷狀態測試,CPU0核心Max Latencies值最大,為88us,CPU3核心的Max Latencies值最小,為64us。



圖5 隔離CPU核心狀態

 

 

隔離CPU核心狀態測試,CPU0核心Max Latencies值最大,為73us,隔離CPU3核心的Max Latencies值最小,為41us。


測試結果如下表所示:


 

Max Latencies

 

最小值

最大值

CPU空載狀態

66us(CPU3)

69us(CPU0、CPU1)

CPU滿負荷狀態

64us(CPU3)

88us(CPU0)

隔離CPU核心狀態

41us(CPU3)

73us(CPU0)


根據CPU空載、CPU滿負荷、隔離CPU核心三種狀態的測試結果可知:當程序指定至隔離的CPU3核心上運行時,Linux系統延遲最低,可有效提高系統實時性。故推薦對實時性要求較高的程序(功能)指定至T507-H隔離的CPU核心運行。


T507-H的典型應用領域

 


圖6 T507-H核心板典型應用領域


基于全志T507-H的Linux-RT + IgH EtherCAT主站演示

文主要介紹基于全志T507-H(硬件平臺:創龍科技TLT507-EVM評估板)案例,按照創龍科技提供的案例用戶手冊進行操作得出測試結果。

本次演示的開發環境:
 

Windows開發環境:Windows 7 64bit、Windows 10 64bit

Linux開發環境:Ubuntu18.04.4 64bit

虛擬機:VMware16.2.5

U-Boot:U-Boot 2018

Kernel:Linux-RT-4.9.170

LinuxSDK:LinuxSDK-[版本號].tar.gz(基于全志官方V2.0_20220618)

IgH EtherCAT:ethercat-stable-1.5-gcd0d17d-20210723

伺服驅動器:臺達ASD-A2-0121-E

伺服電機:臺達ECMA-C10401GS
 

*硬件平臺:TLT507-EVM評估板(基于全志T507-H)


IgH EtherCAT簡介


IgH EtherCAT為運行于Linux系統的免費開源EtherCAT主站程序,框架如下所示,官方文檔:https://www.etherlab.org/download/ethercat/ethercat-1.5.2.pdf。



圖7


IgH EtherCAT主站通過構建Linux字符設備,應用程序通過對字符設備的訪問實現與EtherCAT主站模塊的通信。


IgH EtherCAT開發包提供EtherCAT工具,該工具提供各種可在Linux用戶層運行的命令,可直接實現對從站的訪問和設置,如設置從站地址、顯示總線配置、顯示PDO數據、讀寫SDO參數等。


IgH EtherCAT官網:https://www.etherlab.org/en/ethercat


案例說明


案例功能:EtherCAT通訊周期時間為1ms,控制伺服電機正轉和反轉,并通過串口循環打印EtherCAT通訊周期時間的最大值和最小值。

 

(1)正轉:伺服電機目標速度從0加速到10000,當達到10000速度后,控制伺服電機減速至0,循環運行。

(2)反轉:伺服電機目標速度從0加速到-10000,當達到-10000速度后,控制伺服電機減速至0,循環運行。



圖8


為便于測試,我司提供已驗證的基于Linux-RT編譯生成的內核鏡像文件和內核模塊,位于產品資料“4-軟件資料\Linux\Kernel\image\linux-4.9.170-[版本號]-[Git系列號]\”目錄下。


請將Linux-RT內核鏡像boot-rt.fex和Linux-RT內核配套的內核模塊modules-rt目錄下4.9.170-[版本號]-[Git系列號].tar.gz壓縮包的拷貝至評估板文件系統目錄下。


執行如下命令,將boot-rt.fex重命名為boot.fex,同時將內核模塊壓縮包解壓。


Target#mv boot-rt.fex boot.fex

Target#tar -zxf 4.9.170-rt129-g4c65c66.tar.gz



圖9



執行如下命令替換內核鏡像和內核模塊,評估板重啟生效。


備注:mmcblk1為Micro SD對應的設備節點,如需固化至eMMC,請將設備節點修改為mmcblk0。


Target#dd if=boot.fex of=/dev/mmcblk1p3 conv=fsync

Target#rm /lib/modules/* -rf

Target#cp $(uname -r) /lib/modules/ -r

Target#sync

Target#reboot




圖10





圖11


案例測試

請按下圖所示使用網線連接評估板ETH0 RGMII網口和伺服驅動器A的IN網口,將伺服驅動器A的OUT網口使用網線連接至伺服驅動器B的IN網口。



圖12


 


圖13

 

為便于測試,我司提供的經驗證的IgH EtherCAT主站程序為案例"igh_ethercat\images\"目錄下的ethercat-stable-1.5-gcd0d17d.tar.gz壓縮包,將其拷貝至評估板文件系統任意目錄下。


執行如下命令,解壓ethercat-stable-1.5-gcd0d17d.tar.gz壓縮包將會得到_install文件夾。


Target#tar -zxf ethercat-stable-1.5-gcd0d17d.tar.gz



圖14


 

執行如下命令,并查詢評估板網卡物理地址。


Target#ifconfig




圖15


執行如下命令,加載驅動模塊。


Target#insmod -f /root/_install/modules/ec_master.ko main_devices=46:99:F6:AB:1F:19


 


圖16


 

執行如下命令,拷貝EtherCAT主站相關文件至評估板文件系統。


Target#mkdir /etc/sysconfig

Target#cp /root/_install/etc/sysconfig/ethercat /etc/sysconfig

Target#ls /lib/modules/$(uname -r)//查看是否已創建modules目錄

Target#cp ./_install/modules/ec_master.ko /lib/modules/$(uname -r)

Target#depmod -a //同步模塊依賴關系,同步過程中打印警告請忽略



圖17

 

執行如下命令,啟動EtherCAT主站。


Target#/root/_install/etc/init.d/ethercat start



圖18


執行如下命令,加載ec_generic.ko驅動文件。


Target#insmod -f /root/_install/modules/ec_generic.ko


 

圖19


 

執行如下命令,添加IgH動態鏈接庫路徑。


Target#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/_install/lib



圖20


將案例bin目錄下的igh_ethercat_dc_motor可執行文件拷貝至評估板文件系統,執行如下命令查看參數信息。


Target#./igh_ethercat_dc_motor --help



圖21


執行如下命令,控制兩臺伺服電機同時正轉。


Target#./igh_ethercat_dc_motor -d 0



圖22


 


圖23

 

按下"Ctrl + C",停止運行程序。



圖24


 

執行如下命令,控制兩臺伺服電機同時反轉。


Target#./igh_ethercat_dc_motor -d 1



圖25

 


圖26
 


 

按下"Ctrl + C",停止運行程序。



圖27

 

測試結果如下表所示:

 

工程環境

控制算法

點對點控制 x 2軸

循環周期

1ms

測試結果

測試項

Min(us)

Max(us)

EtherCAT

任務調度抖動(period)

-186

184

測試數據

EtherCAT任務調度抖動的區間為[-186us,184us]

 

參數解析:

 

(1)latency:等待喚醒時間(ns)。

(2)period:EtherCAT通訊周期時間(ns)。

(3)exec:接收和發送EtherCAT數據時間(ns)。


如需選購T507-H工業核心板,歡迎登錄創龍科技天貓旗艦店:tronlong.tmall.com

T507-H技術交流群:535860770,歡迎加入!

更多T507-H工業核心板產品資料

可長按二維碼識別下載


 

亦可添加如下客服微信進行咨詢

 


(即刻添加,馬上咨詢)



創龍官方微信公眾號

Copyright © 2013~2025 廣州創龍電子科技有限公司 All Rights Reserved  | 粵ICP備15055271號