聯(lián)系我們
Contact Us公司總機:020-8998-6280
技術(shù)熱線:020-3893-9734
技術(shù)郵箱:support@tronlong.com
銷售郵箱:sales@tronlong.com
開源IgH EtherCAT主站方案,基于IMX8、ZYNQ、AM335x、T3等平臺
2021/09/17
前 言:創(chuàng)龍科技已基于IMX8、ZYNQ、AM5728、AM5708、AM437x、AM335x、T3/A40i等平臺提供了開源EtherCAT主站IgH案例。本文檔主要演示TLIMX8-EVM評估板基于IgH EtherCAT控制伺服電機方法。如需其他平臺相關(guān)資料,請與我們聯(lián)系。
本文檔適用開發(fā)環(huán)境:
Windows開發(fā)環(huán)境:Windows 7 64bit、Windows 10 64bit
Linux開發(fā)環(huán)境:Ubuntu 18.04.4 64bit
虛擬機:VMware15.1.0
Linux SDK:5.4.70_2.3.0
Kernel:linux-5.4.70-xenomai-g8d94618-v1.0
IgH EtherCAT:ethercat-stable-1.5-gcd0d17d-20210723
Xenomai:xenomai-v3.1.1-g8b2052e
伺服驅(qū)動器:臺達ASD-A2-0121-E
伺服電機:臺達ECMA-C10401GS
硬件平臺:TLIMX8-EVM評估板(NXP i.MX 8M Mini)
(點擊圖片查看產(chǎn)品詳細介紹)
案例詳細說明請掃描下方二維碼或點擊下載鏈接:
http://site.tronlong.com/pfdownload
1、IgH EtherCAT簡介
IgH EtherCAT為運行于Linux系統(tǒng)的免費開源EtherCAT主站程序,框架如下所示,官方文檔:https://www.etherlab.org/download/ethercat/ethercat-1.5.2.pdf。

圖 1
IgH EtherCAT主站通過構(gòu)建Linux字符設備,應用程序通過對字符設備的訪問實現(xiàn)與EtherCAT主站模塊的通信。
IgH EtherCAT開發(fā)包提供EtherCAT工具,該工具提供各種可在Linux用戶層運行的命令,可直接實現(xiàn)對從站的訪問和設置,如設置從站地址、顯示總線配置、顯示PDO數(shù)據(jù)、讀寫SDO參數(shù)等。
IgH EtherCAT官網(wǎng):https://www.etherlab.org/en/ethercat。
2、案例說明
案例功能:控制伺服電機正轉(zhuǎn)和反轉(zhuǎn)。
- 正轉(zhuǎn):伺服電機目標速度從0加速到10000,當達到10000速度后,控制伺服電機減速至0,循環(huán)運行。
- 反轉(zhuǎn):伺服電機目標速度從0加速到-10000,當達到-10000速度后,控制伺服電機減速至0,循環(huán)運行。

圖 2
為便于測試,我司提供已驗證的基于Xenomai編譯生成的內(nèi)核鏡像文件和設備樹鏡像文件,位于案例"igh_ethercat_dc_motor\kernel-xenomai\images\linux-5.4.70-xenomai-g8d94618-v1.0\"目錄下,請?zhí)鎿Q至Linux系統(tǒng)啟動卡BOOT分區(qū)下。同時將linux-5.4.70-xenomai-g8d94618-v1.0目錄下的module驅(qū)動壓縮包5.4.70-g8d94618.tar.gz,解壓至Linux系統(tǒng)啟動卡rootfs分區(qū)"lib/modules/"目錄下。
備注:如需使用由內(nèi)核源碼重新編譯生成的內(nèi)核鏡像文件、設備樹文件和modules驅(qū)動,請參考Linux系統(tǒng)使用手冊將編譯的module驅(qū)動安裝至Linux系統(tǒng)啟動卡中,默認安裝后module驅(qū)動目錄為5.4.70。

圖 3
3、案例測試
請按下圖所示使用網(wǎng)線連接評估板RGMII ETH網(wǎng)口和伺服驅(qū)動器A的IN網(wǎng)口,將伺服驅(qū)動器A的OUT網(wǎng)口使用網(wǎng)線連接至伺服驅(qū)動器B的IN網(wǎng)口。

圖 4

圖 5
為便于測試,我司提供的經(jīng)驗證的IgH EtherCAT主站程序為案例"igh_ethercat_dc_motor\igh_ethercat\images\ethercat-stable-1.5-gcd0d17d-20210723\"目錄下的ethercat-stable-1.5-gcd0d17d-20210723.tar.gz壓縮包,在Ubuntu下解壓即可得到IgH EtherCAT主站程序文件夾。
將IgH EtherCAT主站程序文件夾整個拷貝至評估板文件系統(tǒng),執(zhí)行如下命令查詢評估板網(wǎng)卡物理地址。本次測試將IgH EtherCAT主站程序文件夾命名為__install。
Target# ifconfig

圖 6
執(zhí)行如下命令,加載驅(qū)動模塊。
Target# insmod /home/root/EtherCAT/__install/modules/ec_master.ko main_devices=ce:bb:9d:3b:d3:6b

圖 7
執(zhí)行如下命令,拷貝EtherCAT主站相關(guān)文件至評估板文件系統(tǒng)。
Target# cp /home/root/EtherCAT/__install/etc/sysconfig/ethercat /etc/sysconfig
Target# cp /home/root/EtherCAT/__install/modules/ec_master.ko /lib/modules/5.4.70-g8d94618 //模塊驅(qū)動名稱可通過"uname -r"查看
Target# depmod //同步模塊依賴關(guān)系

圖 8
執(zhí)行如下命令,啟動EtherCAT主站。
Target# /home/root/EtherCAT/__install/etc/init.d/ethercat start

圖 9
執(zhí)行如下命令,加載ec_generic.ko驅(qū)動文件。
Target# insmod /home/root/EtherCAT/__install/modules/ec_generic.ko

圖 10
執(zhí)行如下命令,添加IgH動態(tài)鏈接庫路徑。
Target# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/root/EtherCAT/__install/lib

圖 11
將案例igh_ethercat_dc_motor可執(zhí)行文件拷貝至評估板文件系統(tǒng),執(zhí)行如下命令查看參數(shù)信息。
Target# ./igh_ethercat_dc_motor --help

圖 12
執(zhí)行如下命令,控制兩臺伺服電機同時正轉(zhuǎn)。
Target# ./igh_ethercat_dc_motor -d 0

圖 13

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

圖 15
執(zhí)行如下命令,控制兩臺伺服電機同時反轉(zhuǎn)。
Target# ./igh_ethercat_dc_motor -d 1

圖 16

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

圖 18
備注:案例設置EtherCAT周期為1.1ms,同時串口循環(huán)打印EtherCAT周期的最小值和最大值。
參數(shù)解析:
- latency:等待喚醒時間。
- period:EtherCAT通訊周期時間。
- exec:接收和發(fā)送EtherCAT數(shù)據(jù)時間。
4、案例編譯
4.1IgH EtherCAT主站程序編譯
IgH EtherCAT主站程序的編譯需依賴于基于Xemomai生成的內(nèi)核,請參考Linux系統(tǒng)使用手冊將案例"igh_ethercat_dc_motor\kernel-xenomai\src\"目錄下的linux-5.4.70-xenomai-g8d94618-v1.0內(nèi)核源碼進行編譯后,再編譯IgH EtherCAT主站程序。
請將案例"igh_ethercat_dc_motor\igh_ethercat\src\"目錄下的IgH EtherCAT主站程序開發(fā)包ethercat-stable-1.5-gcd0d17d-20210723.tar.gz拷貝至Ubuntu工作目錄,執(zhí)行如下命令進行解壓。
Host# mkdir EtherCAT
Host# tar -xvf ethercat-stable-1.5-gcd0d17d-20210723.tar.gz -C EtherCAT/

圖 19
進入解壓目錄,執(zhí)行如下命令生成configure文件。
Host# ./bootstrap

圖 20
執(zhí)行如下命令,加載SDK環(huán)境變量并進行配置。
Host# source /home/tronlong/SDK/environment-setup-aarch64-poky-linux
Host# mkdir __install //創(chuàng)建__install文件夾用于存放生成的文件
Host# ./configure --prefix=/home/tronlong/EtherCAT/__install --with-linux-dir=/home/tronlong/kernel-xenomai/ --enable-8139too=no --enable-generic=yes --host=aarch64-poky-linux
備注:"/home/tronlong/kernel-xenomai/"為案例提供的內(nèi)核源碼目錄。

圖 21

圖 22
執(zhí)行如下命令,進行編譯。
Host# make

圖 23

圖 24
執(zhí)行如下命令,編譯驅(qū)動。
Host# make modules

圖 25

圖 26
執(zhí)行如下命令,將生成的IgH EtherCAT主站程序安裝至指定路徑下。
Host# make install systemdsystemunitdir=/home/tronlong/EtherCAT/__install

圖 27

圖 28
執(zhí)行如下命令,將驅(qū)動文件拷貝至"__install/modules/"目錄下。
Host# mkdir -p __install/modules
Host# cp ./master/ec_master.ko ./__install/modules/
Host# cp ./devices/ec_generic.ko ./__install/modules/

圖 29
4.2igh_ethercat_dc_motor案例編譯
igh_ethercat_dc_motor案例的編譯需基于IgH EtherCAT主站程序,請先編譯IgH EtherCAT主站程序。
請將案例"igh_ethercat_dc_motor\src\"目錄拷貝至Ubuntu工作目錄下,進入src目錄執(zhí)行如下命令修改Makefile相關(guān)內(nèi)容為IgH EtherCAT主站程序?qū)夸洝?/span>
Host# vi Makefile
圖 30

圖 31
然后執(zhí)行如下命令,加載SDK環(huán)境變量并進行編譯。編譯完成后,將在當前目錄下生成可執(zhí)行文件。
Host# source /home/tronlong/SDK/environment-setup-aarch64-poky-linux
Host# make

圖 32
5、關(guān)鍵代碼
- 創(chuàng)建EtherCAT Master。

圖 33
2.創(chuàng)建域。

圖 34
3.配置PDO。

圖 35
4.為域注冊PDO條目。

圖 36
5.激活Master。

圖 37
6.修改當前進程優(yōu)先級。

圖 38
7.進入循環(huán)周期任務。

圖 39
8.在周期任務中設置驅(qū)動器操作模式、加速度和減速度,分別發(fā)送0x6、0x7、0xF使驅(qū)動器處于ON狀態(tài)。

圖 40
9.發(fā)送目標速度,轉(zhuǎn)動電機。

圖 41
6、Xenomai簡介
Xenomai是一個免費開源的Linux平臺實時框架,通過使用與Linux內(nèi)核并行運行的實時協(xié)同內(nèi)核(real-time co-kernel)處理所有對時間要求嚴格的活動,例如處理中斷和調(diào)度實時線程。Cobalt core比原生Linux與RT-Linux內(nèi)核具有更高的優(yōu)先級。

圖 42

圖 43
6.1編譯說明
案例使用的Xenomai版本為3.1.1,開發(fā)包為案例"igh_ethercat_dc_motor\xenomai\src\"目錄下的xenomai-v3.1.1-g8b2052e.tar.gz,將其拷貝至Ubuntu工作目錄下,執(zhí)行如下命令進行解壓。
Host# mkdir Xenomai
Host# tar -xvf xenomai-v3.1.1-g8b2052e.tar.gz -C Xenomai/

圖 44
進入解壓目錄,執(zhí)行如下命令在當前目錄生成configure文件。
Host# ./scripts/bootstrap

圖 45
執(zhí)行如下命令,加載SDK環(huán)境變量并進行配置,請確保已正確安裝交叉編譯工具。
Host# source /home/tronlong/SDK/environment-setup-aarch64-poky-linux
Host# ./configure --build=i686-pc-linux-gnu --host=aarch64-poky-linux --disable-debug --enable-smp --with-core=cobalt

圖 46

圖 47
Host# mkdir __install //創(chuàng)建__install文件夾用于存放生成的文件
Host# make DESTDIR=/home/tronlong/Xenomai/__install install

圖 48
編譯完成后,將在__install目錄下生成usr文件夾。

圖 49
6.2測試說明
為便于測試,我司提供的經(jīng)驗證的Xenomai測試程序為案例"igh_ethercat_dc_motor\xenomai\images\xenomai-v3.1.1-g8b2052e\"目錄下xenomai-v3.1.1-g8b2052e.tar.gz壓縮包,在Ubuntu下解壓即可得到Xenomai測試程序文件夾。
請使用已替換內(nèi)核的Linux系統(tǒng)啟動卡啟動評估板,將Xenomai測試程序文件夾整個拷貝至評估板文件系統(tǒng),執(zhí)行如下命令拷貝Xenomai相關(guān)文件和設置動態(tài)鏈接庫。本次測試將Xenomai測試程序文件夾命名為__install。
Target# cp -r Xenomai/__install/usr/xenomai/ /usr/
Target# export LD_LIBRARY_PATH=/usr/xenomai/lib:$LD_LIBRARY_PATH
圖 50
Xenomai的測試工具均位于"/usr/xenomai/bin/"目錄下,可調(diào)用對應測試工具進行測試。

圖 51
使用Cyclictest工具進行實時性能基準測試。
Target# echo 0 > /proc/xenomai/latency
Target# /usr/xenomai/demo/cyclictest -t5 -p98 -m -n

圖 52
表 1 Cyclictest測試結(jié)果說明


服務熱線

