[color=rgba(0, 0, 0, 0.9)]本文將為各位工程師演示 全志T507-H工業(yè)評估板(TLT507-EVM)基于IgH EtherCAT控制伺服電機方法,生動說明 Linux-RT + Igh EtherCAT的強大之處! [color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]同時,我們對于 T3/A40i、T113-i、RK3568、RK3588J、AM62x、AM64x、NXP i.MX 8M Plus等平臺也提供了開源EtherCAT主站IgH案例。 [color=rgba(0, 0, 0, 0.9)]
Linux-RT系統的優(yōu)勢 [color=rgba(0, 0, 0, 0.9)]- 內核開源、免費、功能完善。 [color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]- RT PREEMPT補丁,使Linux內核成為硬實時操作系統,無需完整的內核重寫。 [color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]- 既有實時性,又有相同的開發(fā)生態(tài)系統(包括相同工具鏈、文件系統和安裝方法,以及相同的POSIX API等),實現產品快速上市的期望。
Linux-RT實時性測試(Cyclictest工具) [color=rgba(0, 0, 0, 0.9)]Cyclictest常用于實時系統的基準測試,是評估實時系統相對性能的最常用工具之一。Cyclictest反復測量并精確統計線程的實際喚醒時間,以提供有關系統的延遲信息。它可測量由硬件、固件和操作系統引起的實時系統的延遲。 [color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]基于全志T507-H(硬件平臺:創(chuàng)龍科技TLT507-EVM評估板),按照創(chuàng)龍科技提供的案例用戶手冊進行操作,使用Cyclictest程序測試系統實時性,得出如下測試結果。
圖1 Linux-RT-4.9.170內核測試結果
[color=rgba(0, 0, 0, 0.9)]
圖2 Linux-4.9.170內核測試結果
[color=rgba(0, 0, 0, 0.9)]對比測試數據,可看到基于Linux-RT-4.9.170內核的系統的延時更加穩(wěn)定,最大延時更低,系統實時性更佳。
Linux-RT性能測試 [color=rgba(0, 0, 0, 0.9)]基于全志T507-H(硬件平臺:創(chuàng)龍科技TLT507-EVM評估板),按照創(chuàng)龍科技提供的案例用戶手冊進行操作,測試分別在CPU空載、滿負荷(運行stress壓力測試工具)、隔離CPU核心的情況下,得出如下測試結果。 [color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]備注:測試數據與實際測試環(huán)境有關,僅供參考。 [color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]
圖3 CPU空載狀態(tài)
[color=rgba(0, 0, 0, 0.9)]CPU空載狀態(tài)測試,CPU0、CPU1核心Max Latencies值最大,為69us,CPU3核心的Max Latencies值最小,為66us。 [color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]圖4 CPU滿負荷狀態(tài) [color=rgba(0, 0, 0, 0.9)]CPU滿負荷狀態(tài)測試,CPU0核心Max Latencies值最大,為88us,CPU3核心的Max Latencies值最小,為64us。 [color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]圖5 隔離CPU核心狀態(tài)
[color=rgba(0, 0, 0, 0.9)]隔離CPU核心狀態(tài)測試,CPU0核心Max Latencies值最大,為73us,隔離CPU3核心的Max Latencies值最小,為41us。 [color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]測試結果如下表所示:
| 最小值 | CPU空載狀態(tài) | 69us(CPU0、CPU1) | 64us(CPU3) | 隔離CPU核心狀態(tài) | 73us(CPU0) |
[color=rgba(0, 0, 0, 0.9)]根據CPU空載、CPU滿負荷、隔離CPU核心三種狀態(tài)的測試結果可知:當程序指定至隔離的CPU3核心上運行時,Linux系統延遲最低,可有效提高系統實時性。故推薦對實時性要求較高的程序(功能)指定至T507-H隔離的CPU核心運行。
T507-H的典型應用領域 [color=rgba(0, 0, 0, 0.9)]
圖6 T507-H核心板典型應用領域
基于全志T507-H的Linux-RT + IgH EtherCAT主站演示
Linux開發(fā)環(huán)境:Ubuntu18.04.4 64bit U-Boot:U-Boot 2018 LinuxSDK:LinuxSDK-[版本號].tar.gz(基于全志官方V2.0_20220618) 伺服驅動器:臺達ASD-A2-0121-E
圖7 IgH EtherCAT主站通過構建Linux字符設備,應用程序通過對字符設備的訪問實現與EtherCAT主站模塊的通信。 IgH EtherCAT開發(fā)包提供EtherCAT工具,該工具提供各種可在Linux用戶層運行的命令,可直接實現對從站的訪問和設置,如設置從站地址、顯示總線配置、顯示PDO數據、讀寫SDO參數等。 IgH EtherCAT官網:https://www.etherlab.org/en/ethercat。 [color=rgba(0, 0, 0, 0.9)]
(1)正轉:伺服電機目標速度從0加速到10000,當達到10000速度后,控制伺服電機減速至0,循環(huán)運行。(2)反轉:伺服電機目標速度從0加速到-10000,當達到-10000速度后,控制伺服電機減速至0,循環(huán)運行。圖8
Target#tar -zxf 4.9.170-rt129-g4c65c66.tar.gz [color=rgba(0, 0, 0, 0.9)]
執(zhí)行如下命令替換內核鏡像和內核模塊,評估板重啟生效。
備注:mmcblk1為Micro SD對應的設備節(jié)點,如需固化至eMMC,請將設備節(jié)點修改為mmcblk0。 Target#dd if=boot.fex of=/dev/mmcblk1p3 conv=fsync Target#cp $(uname -r) /lib/modules/ -r Target#reboo[color=rgba(0, 0, 0, 0.9)]t [color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]圖10 [color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]圖11
[color=rgba(0, 0, 0, 0.9)]圖12 [color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]圖13
圖14 執(zhí)行如下命令,并查詢評估板網卡物理地址。 Target#ifconfig 執(zhí)行如下命令,加載驅動模塊。 Target#insmod -f /root/_install/modules/ec_master.ko main_devices=46:99:F6:AB:1F:19
Target#cp /root/_install/etc/sysconfig/ethercat /etc/sysconfig Target#cp ./_install/modules/ec_master.ko /lib/modules/$(uname -r)
圖17
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]圖18
圖19
|