虹科KPA EtherCAT主站是一款協議棧產品,能夠使用戶快速利用EtherCAT技術的所有好處,例如實時操作、極短的循環時間、以及最低成本的最高性能。該協議棧的先進架構專注于可移植到不同的操作系統,可適配到各種硬件平臺、并且可通過基礎(Class B)、標準(Class A)和超值包進行縮放。本篇文章將介紹虹科KPA EtherCAT主站軟件如何基于Xilinx ZYNQ UltraScale+做移植測試。
# Description
開發環境
# 硬件開發板:Xilinx HW-Z1-ZCU102 revision1.1
# EtherCAT主站軟件開發包:
MDK_xilinx-2018.3_freertos_a53_trial_v2.4.48714.0-release.zip
HW_SAMPLE_xilinx-2018.3_freertos_a53_trial_v2.4.48714.0-release.zip
備注:由于前期軟件開發包是基于revision1.0的硬件以及vivado2018.3移植測試的,導致該軟件包在vivado2018.3和新版本硬件移植測試出現問題,具體問題是制作完boot.bin后,上電沒法啟動運行;查了一下xilinx官網,說是新版本硬件需要使用vivado2019.1及其以上版本,后來在vivado 2019.1重新創建IPcore硬件工程,工程文件是zcu102_freeRTOS,重新生成bit文件(zcu102_freertosproject_1project_1.sdkdesign_1_wrapper_hw_platform_0)和fsbl.elf文件(zcu102_freertosproject_1project_1.sdkfsblRelease)覆蓋軟件包原路徑(\externalsoot)的bit文件和fsbl.elf,問題解決;
Step1 軟件安裝
1. 安裝KPA studio軟件,Studio_v1.12.417.0_x86.zip;2. 安裝基于windows的主站插件,MRT_WIN32_TRIAL_v1.6.44171.0.msi;3. 安裝cmake環境,可到cmake官網下載exe安裝,安裝后查詢到cmake版本如下:
參考《KPA Studio簡易操作手冊.pdf》使用EtherCAT配置軟件,導出網絡配置文件/ENI文件,可命名為master.xml或者其他名字,需與mkpa_config.h中命名保持一致,導出的ENI文件,格式一定要選擇null-terminated格式。
Step2 軟件編譯
MDK_xilinx-2018.3_freertos_a53_trial_v2.4.48714.0-release.zip解壓到mdk_a53文件夾下
進入mdk_a53samples路徑下修改對應樣例程序,此處每個不同的樣例程序包含不同的API,具有不同的功能,此處以24_DriveRotationCiA402為例,這是一個簡單運行單軸伺服的樣例程序,為了適配邁信伺服驅動器,需保持C文件中的描述和ENI文件描述一致,修改后保存
進入mdk_a53下,打開build.bat,修改編譯器路徑,路徑是xilinx SDK安裝路徑
運行cmd,進入該路徑下,運行build.bat,編譯所有樣例代碼,包括編譯24樣例,在uildsamples路徑下生成24_DriveRotationCiA402.elf文件
Step3 創建和運行boot.bin
進入mdk_a53externalsoot路徑,根據readme文件以及24_DriveRotationCiA402.bif文件;
拷貝zcu102_freeRTOS內vivado工程生成的design_1_wrapper.bit()文件到該路徑下,覆蓋原來bit文件;
zcu102_freertosproject_1project_1.sdkfsblRelease下的fsbl.elf拷貝到該路徑下,覆蓋原來fsbl.elf文件;
拷貝uildsamples路徑下生成的24_DriveRotationCiA402.elf到該路徑下;
拷貝生成的ENI文件(master.xml)文件到該路徑下
打開Xilinx XSCT tool進入到externalsoot路徑下,生成boot.bin
將boot.bin文件拷貝到SD卡中,設置開發板SD卡啟動,上電運行
Step4 性能測試
一般情況下EtherCAT主站性能測試會關注主站通訊周期,circle time是否穩定,抖動多少,因此可以設置在不同的circle time,比如2ms,1ms,500us,250us,125us等條件下測試抖動,可以采用第三方的抓包工具+wireshark進行報文分析,不同主站周期,需要修改代碼以及ENI文件的circle time,此處以1ms主站周期,郵箱任務周期是5ms(主站周期的5倍)
抓包方式,主站和從站直接接入第三方的抓包工具,連接方式如下示意圖,可以先運行主站,待主從通訊穩定后,再進行數據抓包,這樣抓出來的數據包就是pdo數據/過程數據,也可以主站啟動前,開始抓包,這樣就可以把整個啟動過程的數據抓取出來,但是過濾時,op前的報文數據就不是我們需要分析的數據了。
對Wireshark數據包進行針對性分析,設置時間顯示格式如下:
使用ecat.ado == 0x130命令,過濾出從站在第幾條報文處進入op狀態的,這里是33900,意味著33900前的報文不能用于分析circle time,因為pdo數據/周期性數據只在從站進入op后才被發送
分析周期性報文,注意到每個周期性報文包含三個子報文(邏輯尋址)以及一個DC相關的ARMW命令
過濾出周期性報文,使用該指令ecat.sub1.cmd == LRD && ecat.sub1.cnt == 0,過濾出子報文1為LRD且計算器值為0(表示從主站發出,未經過從站)的周期性報文,選擇三角進行報文排序,可以是從小到大,或者從大到小
最小周期是999.496us
最大周期1000.536us
結論:可以看出1ms主站周期下,基于zcu102開發板,測試出來的主站周期的抖動是ns級別,實際在500us和250us,125us條件下,抖動都是在ns級別。
原文標題:虹科干貨 | 虹科KPA EtherCAT主站軟件在Xilinx ZYNQ UltraScale+上移植測試
文章出處:【微信公眾號:廣州虹科電子科技有限公司】歡迎添加關注!文章轉載請注明出處。
-
Xilinx
+關注
關注
71文章
2163瀏覽量
121010 -
ethercat
+關注
關注
18文章
653瀏覽量
38605 -
移植測試
+關注
關注
0文章
2瀏覽量
1698
原文標題:虹科干貨 | 虹科KPA EtherCAT主站軟件在Xilinx ZYNQ UltraScale+上移植測試
文章出處:【微信號:Hongketeam,微信公眾號:廣州虹科電子科技有限公司】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論