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