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