日韩精品电影一二区-精品久久久久久亚洲中文字幕-一区二区三区国产美女在线播放-欧美日韩在线观看你懂的-午夜精品一区二区三区的区别-久久精品娱乐亚洲领-欧美在线网站一区二区三区-在线观看91精品国产不卡-国产水滴盗摄一区二区

創(chuàng)龍首頁 >關(guān)于創(chuàng)龍 > 新聞資訊 > 技術(shù)文章

聯(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)品詳細介紹)

圖 2 TLIMX8-EVM評估板



案例詳細說明請掃描下方二維碼或點擊下載鏈接:

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)。

  1. 正轉(zhuǎn):伺服電機目標速度從0加速到10000,當達到10000速度后,控制伺服電機減速至0,循環(huán)運行。
  2. 反轉(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ù)解析:

  1. latency:等待喚醒時間。
  2. period:EtherCAT通訊周期時間。
  3. 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)鍵代碼

  1. 創(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é)果說明



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