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

聯系我們

Contact Us

公司總機:020-8998-6280

技術熱線:020-3893-9734

技術郵箱:support@tronlong.com

銷售郵箱:sales@tronlong.com

基于TI Sitara AM3352/54/58/59 處理器的EtherCAT主站開發案例

2021/07/21


本文主要基于TI Sitara處理器 AM3352/54/58/59芯片的工業板卡,給大家分享如何在德國Acontis公司EtherCAT主站協議棧控制伺服電機的具體方法。


其中試用到的案例板卡為Tronlong創龍科技的TL335x-EVM-S評估板。創龍TL335x-EVM是一款基于TI Sitara系列AM3352/AM3354/AM3358/AM3359 ARM Cortex-A8高性能低功耗處理器設計的評估板,由核心板和底板組成。



評估板正面圖


核心板經過專業的PCB Layout和高低溫測試驗證,穩定可靠,可滿足各種工業應用環境。評估板接口資源豐富,引出雙路千兆網口、HDMI、GPMC、CAN等接口,方便用戶快速進行產品方案評估與技術預研。

本文適用開發環境:


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


Kernel:Linux-RT-4.9.65


Acontis EtherCAT主站協議棧開發包:EC-Master-V2.9-Linux_armv6-vfp-eabihf-Eval.tar.zip


Acontis EtherCAT網絡信息配置工具:EC-Engineer


伺服驅動器:SANYO RS2A03A0KA4W00


伺服電機:SANYO R2AA08075FXH00W


1 EC-Master、EC-Engineer簡介


圖 1 EtherCAT系統架構


EtherCAT(以太網控制自動化技術)是一個開放架構,以以太網為基礎的現場總線系統,其名稱的CAT為控制自動化技術(Control Automation Technology)字首的縮寫。EtherCAT是確定性的工業以太網。自動化對通訊一般會要求較短的資料更新時間(或稱為周期時間)、資料同步時的通訊抖動量低,而且硬件的成本要低,EtherCAT開發的目的就是讓以太網可以運用在自動化應用中。


德國Acontis公司是EtherCAT技術協會資深會員,Acontis圍繞EtherCAT協議開發的EtherCAT主站協議棧EC-Master、EtherCAT網絡信息配置工具EC-Engineer和Windows操作系統實時擴展核EC-Win等產品已經在眾多國際知名機器人(如KUKA)及自動化公司的產品中得到多方驗證,其產品的可靠性和性能得到業界公認和推崇。


如下為EC-Master和EC-Engineer簡介。如需了解更多介紹信息,可訪問Acontis中國總代理北京盟通科技有限公司官網:www.motrotech.com,或查看Acontis EtherCAT主站協議棧開發包中的Doc目錄下的EC-Master_ClassB.pdf文件。


1.1 EC-Master簡介


Acontis EtherCAT主站協議棧EC-Master包含:


(1) EtherCAT-Master-Core:EtherCAT主站的主要功能都在Core層中實現。所有協議的處理也都在這里執行,例如過程數據傳輸和郵箱協議(CoE,EoE,FoE,SoE,AoE)。


(2) EtherCAT-Link-Layer:主從站的數據交換,將零拷貝(Zero Copy)和輪詢(Polling)技術與Core層配合使用,實現最好的實時性性能和最大限度減少CPU負載。


(3) OS層:操作系統的調用被封裝在OS層。為了能夠實現最好的性能,絕大多數功能使用簡單的C語言宏編寫。




圖 2 EC-Master框架

1.2 EC-Engineer簡介


EtherCAT網絡信息配置工具EC-Engineer是由Acontis開發的一個功能強大用于EtherCAT網絡配置和診斷的軟件工具,可幫助用戶快速而舒適地處理工程和診斷任務。清晰且直觀的用戶界面確保了用戶在EtherCAT網絡診斷和配置方面獲得流暢的體驗。



圖 3


圖 4


1 EtherCAT主站開發案例測試


請通過網線將伺服驅動器CN0 EtherCAT(IN)網口連接到評估板RGMII1 ETH千兆網口(ETH0)。如果需要使用RGMII2 ETH網口(ETH1)來控制電機,請通過網線將伺服驅動器CN0 EtherCAT(IN)網口連接到評估板RGMII2 ETH千兆網口。并連接好伺服電機,硬件連接如下所示。



圖 5

將產品資料“4-軟件資料\Demo\tl_EcMasterDemoDCmotor\bin\”目錄下的eni_SANYO_motor.xml、tl_EcMasterDemoDcMotor和“4-軟件資料\Demo\tl_EcMasterDemoDCmotor\lib\”目錄下的libemllCPSW.so文件拷貝到評估板文件系統同一個目錄下。


伺服驅動器上電啟動運行。評估板上電啟動進入文件系統執行如下命令卸載ti_cpsw千兆網口驅動。執行ifconfig命令可查看到千兆網口對應的eth0、eth1網卡已被卸載。


Target# rmmod ti_cpsw




圖 6

執行如下命令加載EtherCAT主站網口驅動,可通過lsmod命令查看驅動是否加載成功。

Target# modprobe atemsys




圖 7

在可執行程序tl_EcMasterDemoDcMotor文件所在路徑下,執行如下命令查看可執行程序的使用說明和參數解析。

Target# ./tl_EcMasterDemoDcMotor --help




圖 8

CPU頻率調節模式默認配置為ondemand(初始頻率為300MHz),此時系統會定期檢查負載,根據負載來調節頻率。由于EtherCAT對CPU頻率要求較高,因此需執行如下命令將CPU頻率調節模式配置為performance,此時系統會將CPU頻率固定為800MHz。

Target# echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor

Target# cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_cur_freq




圖 9


執行如下命令,通過EtherCAT主站協議??刂扑欧姍C進行正反轉動作,設置主站通訊周期為1000us,串口終端打印如下相關信息。


Target# ./tl_EcMasterDemoDcMotor -f eni_SANYO_motor.xml -auxclk 1000 -v 2 -t 30000 -perf -cpsw 1 1 1 m custom am33XX 0 1 0


參數說明:


-f eni_SANYO_motor.xml //加載網絡配置eni.xml文件


-auxclk 1000 //cycle time,即主站通訊周期為1000us


-v 2 //信息打印級別為2


-t 30000 //持續時間


-perf //打印性能參數


-cpsw 1 1 1 m custom am33XX 0 1 0 //網口類型為TI的CPSW,“1 1 1”表示port1,Polling模式,high priority,“m”表示Master。


如需使用RGMII ETH2網口來控制電機,需要執行如下命令。


Target# ./tl_EcMasterDemoDcMotor -f eni_SANYO_motor.xml -auxclk 1000 -v 2 -t 30000 -perf -cpsw 2 1 1 m custom am33XX 1 1 0





圖 10




圖 11

由上圖得知,主站通訊周期平均值約為997.8us,最大值為1054.2us。主站的通訊周期最大抖動值為1054.2us-1000us=54.2us。

tl_EcMasterDemoDcMotor程序會自動檢測與加載EtherCAT主站協議棧license。如無license,程序運行60min后將自動停止,提示信息如下圖所示。




圖 12

若已購買license,在tl_EcMasterDemoDcMotor文件同一目錄下創建license文件,并將license密匙添加到此文本文件中。

備注:以下提供基于我司TL570x-EVM評估板添加license的測試截圖作為參考。




圖 13

重新運行tl_EcMasterDemoDcMotor程序,若成功讀取有效license,程序將可長時間穩定運行。同時,串口終端將會打印如下類似信息。


圖 14

2 EtherCAT主站開發案例編譯

將tl_EcMasterDemoDcMotor文件夾整個復制到Ubuntu,并進入EC_Master_SDK目錄,執行如下命令將該目錄下的開發包EC-Master-V2.9-Linux_armv6-vfp-eabihf-Eval.tar.zip解壓到當前路徑下。

Host# cd tl_EcMasterDemoDcMotor/EC_Master_SDK/

Host# unzip EC-Master-V2.9-Linux_armv6-vfp-eabihf-Eval.tar.zip



圖 15

開發包解壓完成后在當前目錄生成EC-Master-V2.9-Linux_armv6-vfp-eabihf-Eval.tar文件夾,目錄結構如下圖所示。案例編譯需依賴此開發包的庫文件。如需了解更多EcMaster EtherCAT案例,請查看開發包的Examples目錄。


圖 16

進入tl_EcMasterDemoDcMotor的src源碼目錄,在Makefile文件中指定平臺Linux Processor SDK交叉編譯工具鏈的實際路徑。

Host# cd ../src/

Host# vim Makefile



圖 17

CROSS_COMPILE ?= /home/tronlong/ti-processor-sdk-linux-rt-am335x-evm-04.03.00.05/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-linux-gnueabihf- //交叉編譯工具鏈路徑



圖 18

修改完成后保存退出,執行make命令編譯生成可執行程序tl_EcMasterDemoDcMotor文件。

Host# make


圖 19



圖 20

3 EC-Engineer配置ENI文件方法

本章節主要說明通過Acontis EtherCAT網絡信息配置工具EC-Engineer工具配置ENI(EtherCAT Network Information Format)文件的方法。ENI文件主要描述EtherCAT總線拓撲結構等信息。

將產品資料“4-軟件資料\Tools\Windows\”目錄下的EC-Engineer_Eval_[版本號].zip在Windows下解壓與安裝。

確保PC機可正常連接互聯網,雙擊打開EC-Engineer工具。系統將會通過網絡檢測EC-Engineer的license是否過期,如無法訪問互聯網將會導致打開失敗。將伺服驅動器通過網線與PC機直連(此時PC機可斷開與互聯網的連接),在EC-Engineer選中Device Editor界面的Class A工程選項,如下圖所示。



圖 21

點擊“File -> ESI Manager”,打開ESI Manager界面。



圖 22

添加SANYO伺服驅動器配套的.xml文件,該文件由伺服驅動器廠家提供。



圖 23


圖 24




圖 25



圖 26

Cycle Time選擇1000us,在Network Adapter選項欄里選擇從站連接的網卡,按Select進行連接,連接后按鈕變為

。Cycle Time的大小可能會影響伺服電機的抖動,具體根據伺服電機的實際情況進行設置,此處使用1000us。



圖 27

點擊“Network -> Scan EtherCAT Network”掃描伺服設備。



圖 28



圖 29

成功掃描出伺服設備后,將其選中(本次操作為SANYO伺服)。點擊“Exports ENI”按鈕重新生成伺服設備.xml格式的ENI文件。文件名可自擬,此處文件名設定為eni_SANYO_motor,選擇“Diagnosis Mode”選項可觀察伺服設備信息。



圖 30



圖 31

此時會在當前路徑生成eni_SANYO_motor.xml配置文件,該文件記錄了從站的配置信息,文件配置的Cycle Time為1000us。


以上便是本次開發案例分享的所有內容,感興趣的用戶歡迎下方評論點贊,謝謝關注,后面還將分享更多嵌入式相關的知識匯總與開發案例。

注:由于EtherCAT主站協議棧對系統實時性要求較高,因此使用Linux-RT實時內核進行測試。資料中提供的EC-Engineer為免費試用版,需定期更新,如已過期可溝通提供新版。


創龍官方微信公眾號

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