<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

KPA EtherCAT主站在Zynq平臺的移植與測試

Xilinx賽靈思官微 ? 來源:djl ? 作者:陳秋苑 謝曉鋒 陳 ? 2019-07-30 09:45 ? 次閱讀

摘 要

EtherCAT 是開放的實時以太網通訊協議,由德國倍福自動化有限公司研發。EtherCAT 具有高性能、低成本、容易使用等特點,目前在工業自動化領域有著廣泛的應用。Zynq-7000 是賽靈思公司(Xilinx)推出的行業第一個全可編程 SoC 產品, 它將雙核 ARM Cortex-A9 處理器,低功耗可編程邏輯以及常用的外設緊密集成在一起。ZedBoard 是基于 XC7Z020 器件的低成本開發板,此板可以運行基于 Linux,Android,WinCE 或其他嵌入式 OS/ RTOS 的設計。

KPA EtherCAT 主站是一套質量穩定、知名度和性價比較高的 EtherCAT 協議棧,有較大參考價值。本文將介紹 KPA EtherCAT 主站在 Zynq 平臺的移植與測試。

目錄

第一節EtherCAT 簡介

第二節KPA EtherCAT 軟件包簡介和使用

第三節KPA EtherCAT 主站簡介和移植

第四節EtherCAT 主站程序測試

第五節EtherCAT 測試程序分析

第六節主站開發包申請試用

1EtherCAT 簡介

EtherCAT(以太網控制自動化技技)是一種用于確定性以太網的高性能工業通信協議,它擴展了 IEEE 802.3 以太網標準,使得數據傳輸中具有可預測性定時及高精度同步等特點。這個開放性標 準作為 IEC 61158 的組成部分,常用于機械設計及運動控制等應用中。EtherCAT 采用標準的 IEEE802-3 以太網幀,幀結構如圖 1。EtherCAT 協議直接用標準以太網的幀格式傳輸數據,并不修改其基本結構。

KPA EtherCAT主站在Zynq平臺的移植與測試

圖 1: EtherCAT 數據幀

EtherCAT 實現了 CANopen 協議,在 CANopen 中周期性的數據通過 PDO(過程數據對象)來傳輸,PDO 優先級較高,可用于實時傳輸。非周期性的數據比如配置參數和對象字典等則通過 SDO(服務數據對象)來傳輸。

每個 PDO 都包含單個或多個從設備的地址,這種數據加地址的結構(附帶用于校驗的傳輸計數位)組成了 EtherCAT 的報文。每個 Ethernet 幀可能包含數個報文,而一個周期中可能需要多幀來傳送所需的所有報文。

傳統的以太網通信解決方案從站先接受以太網數據包,然后解釋和復制過程數據,最后轉發數據。而EtherCAT 以太網幀在特殊的硬件模塊的幫助下可以實現在傳輸的同時被處理。每個從節點都有 FMMU(現場總線存儲管理單元),FMMU 會對經過的數據包進行地址分析,發現是本節點的 數據就會讀取,同時報文轉發給下一個設備。同樣在報文通過的時候也可以插入需要傳輸的數據。讀取/插入/轉發數據的整個過程,報文只有幾納秒的延遲。如圖 2 所示,設想以太網的幀就像行駛中的火車,EtherCAT 報文是每節火車車廂,PDO 數據的比特就是車廂內的乘客,這些數據可以被提取并插入到合適的從設備中。整輛火車不停止地穿越所有從設備,在末端從設備處又掉頭,重新反向穿越所有從設備。(注:EtherCAT不僅支持主從通訊,也支持從從通訊即S2S)

KPA EtherCAT主站在Zynq平臺的移植與測試


圖 2: EtherCAT 數據傳輸

2EtherCAT 主從站軟硬件簡介

2.1KPAEtherCAT主站軟件介紹

KPA EtherCAT主站軟件根據功能不同,提供了Basic,Standard,Premium以及Extension四個版本主站協議棧,因此除了支持ETG1500定義了Class A和Class B兩種主站類型外,KPA還支持一些拓展功能比如:Data- and Frame-Logger(記錄數據和報文)、Access Rights(設置不同的訪問權限)Multi Master(多主站,冗余)、Cable Redundancy (線纜冗余)、Hot-Connect(熱插拔)、其他。

提供了基于多種不同硬件平臺和OS的現成開發包,支持SoC(ARM+FPGA)/ARM/X86 /PowerPC等主流硬件平臺,支持Linux(Xenomai/RT-preempt)/ Windows(INtime/RTX)/ QNX/ Ucos/ Vxworks等。幾乎滿足目前所有用戶主站開發要求的一款主站方案。

KPA主站協議棧采用模塊化的架構,可以實現每個特殊的項目應用。它使得主站可以自由擴展以適應不同大小的應用程序、可以移植不同的操作系統和各種各樣的硬件平臺。每個模塊可以單獨定制化或者二次開發,而且不會破壞其他模塊的完整性。主站結構如圖3

KPA EtherCAT主站在Zynq平臺的移植與測試

圖 3: KPA EtherCAT主站構架

KPA主要功能模塊為:

1) 應用層:應用層負責與各種不同的編程/配置環境交互,負責與不同的應用或設備交互。確保在應用或過程任務端順利訪問主站功能函數;與主站通過Remote Procedure Calls服務交互,提供了TCP/IP以及UDP連接,比如:通過UDP與從站設備進行mailbox相關的通訊

2) Mailbox Module:EtherCAT主站核心mailbox模塊利用不同的協議處理服務數據對象(SDP),數據傳輸以及數據交換。支持CoE,FoE,EoE,SoE,VoE,AoE等郵箱服務。

3) Process Image Module過程映像模塊:Process Image簡稱PI,它的地址是由EtherCAT network information (ENI) 文件提出的,ENI文件可由配置工具KPA Studio自動生成。從控制/過程任務訪問過程映像是由主站接口執行的。

4) Distribution Clock分布時鐘模塊:使得所有的EtherCAT設備(包括主站和從站)總是能夠共享相同的EtherCAT系統時間。這是通過補償編譯和漂移時間來實現的。

5) Frame Schedule Module幀調度模塊:不同PDO采用不同的掃描周期。在配置工具KPA Studio里,用戶可以單獨定義每個從站的掃描速率。幀調度表模塊管理EtherCAT幀速率,轉發它們到EtherCAT網絡驅動。

6) OSAL操作系統抽象層模塊:包含與操作系統相關的功能函數的包裝,比如處理線程、計時器、互斥量等;包括網絡適配驅動器模塊:從底層的網絡實現提取主站堆棧的core核心

2.2KPA EtherCAT 主站硬件介紹

主站硬件主要由三部分組成見圖4:PC端、Zedboard主站開發板以及外擴的FMC網卡。PC通過串口終端來實現操作系統指令輸入,PC端上的EtherCAT網絡診斷配置工具KPA EtherCAT Studio通過RPC服務連接Zedboard主站板,可以實現對主站和從站的配置,掃描生成網絡配置文件。Zedboard作為EtherCAT主站板具體可參考http://zedboard.org/product/zedboard。

KPA EtherCAT主站在Zynq平臺的移植與測試

圖 4:硬件架構圖

KPA EtherCAT主站在Zynq平臺的移植與測試

圖 5:硬件內部架構

另外,KPA利用主站板的FPGA資源,獨立外擴網卡,而不是使用主站板ARM上的網卡驅動,主站開發包中提供的Timer IP Core和NIC IPCore,利用邏輯單元PL,構建針對EtherCAT優化的MAC,提供了針對EtherCAT優化的NIC驅動,IP Core提供了Shift Sending Time設置,從端口降低有操作系統引起的數據幀抖動,從而優化了數據在收發時的抖動的問題。

KPA EtherCAT主站在Zynq平臺的移植與測試

3KPA EtherCAT 主站移植

本方案基于Zynq平臺的EtherCAT主站實現,系統采用改進后的實時linux系統,即在標準的linux操作系統內核中嵌套進一個微小、實時內核,改造成具有雙內核的異構系統,所有實時任務都運行在微內核上,非實時的Linux 則作為實時內核的一項優先級最低的任務來托管所有的非實時任務,采用Linux3.8.13和Xenomai2.6.3,下面介紹怎么搭建Zedboard主站

3.1Vivado 與 Xilinx SDK 工具安裝

我們主要用到SDK里的交叉編譯器,以及用它來生成FSBL與BOOT.BIN文件。

我分別在ubuntu和windows上都安裝了xilinx的SDK。其中windows上的xilinx SDK不需要單獨安裝,等在安裝Vivado的時候勾選下就可以了。 Ubuntu上的xilinx SDK安裝文件網址是http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/embedded-design-tools.html

KPA EtherCAT主站在Zynq平臺的移植與測試

3.2Vivado 的下載安裝

Vivado主要是用來配置xilinx的FPGA外設的,后面生成bitstream文件時需要用,以及我們更改SOC里的外設引腳配置以及配置管腳等等時是需要用到。Vivado的下載地址

http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/embedded-design-tools.html

KPA EtherCAT主站在Zynq平臺的移植與測試

3.3給 Linux 內核代碼打 Xenomai 實時補丁

zedboard上運行的linux內核可不是普通的linux內核源碼,而是打了xenomai補丁的實時嵌入式操作系統。需要先給linux源碼打上xenomai補丁后方可編譯

Linux源碼下載:https://github.com/Xilinx/linux-xlnx.git

Xenomai安裝包下載:http://download.gna.org/xenomai/stable/xenomai-2.6.3.tar.bz2

給linux內核代碼打xenomai實時補丁,可以參看xilinx的官方文檔《Xenomai for Zynq》:http://www.wiki.xilinx.com/Xenomai+for+Zynq

3.4Linux 內核編譯

當xenomai補丁打好后,即可開始編譯linux內核

KPA EtherCAT主站在Zynq平臺的移植與測試

圖 6:Uboot編譯

3.5下載源代碼

3.6編譯 U-Boot

命令是$make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- zynq_zed

可以看看u-boot源碼文件夾目錄下的boards.cfg文件。里面有各種平臺的配置表。將編譯好的u-boot文件改名為u-boot.elf文件。我們生存boot.bin時要用它

3.7文件系統編譯

現在直接用的xilinx和KPA官方提供給我的文件系統“uramdisk.image.gz”。

從xilinx網上下載arm_ramdisk.image.gz文件。

這個文件是xilinx提供給我們做模板用的??梢园阉鈮洪_,然后在它基礎上改改,再打包,就能用的。

3.8設備樹編譯

設備樹的編譯方法參考文檔。

3.9KPA NIC 模塊

直接用的KPA的“kpa_mac.ko文件”。

KPA這部分不用去動,現在也不用改,這部分文件放在我們SD卡的第二分區了即可。然后設備樹上加上mac的配置部分即可。

3.10Vivado 生成 bitstream 文件

基于kpa給的Vivado工程“zedboard_redundancy”和兩個ipcore,來產生bitstream文件。

KPA EtherCAT主站在Zynq平臺的移植與測試

圖 7:生成bitstream文件

3.11Xilinx SDK 生成 FSBL

KPA EtherCAT主站在Zynq平臺的移植與測試

圖 8:生成的FSBL

3.12制作 BOOT.BIN 文件

利用xilinx SDK,看到,BOOT.BIN文件其實是將U-boot,Vivado生成的Bitstream文件,SDK生成的FSBL文件以及SDK自動生成的的boot.bif四合一打包生成的一個啟動文件。BOOT.BIN下一節會放到SD卡中,作用主要是初始化zedboard硬件和加載linux內核。

KPA EtherCAT主站在Zynq平臺的移植與測試

圖 9:生成BOOT.BIN文件

3.13燒錄 SD 卡

在ubuntu環境下,將一張4G的SD卡格式化為兩分區,第一分區1.1G為FAT格式;第二分區為2.9G為Ext4格式。

KPA EtherCAT主站在Zynq平臺的移植與測試

圖 10:SD卡分區

然后將前面準備的BOOT.BIN文件,設備樹文件devicetree.dtb,文件系統文件uramdisk.image.gz文件,linux內核鏡像uImage這四個文件拷貝到第一分區。不難看出第一分區全部是和操作系統相關的文件。第二分區里則是三個文件,全由KPA提供Master: KPA的EtherCat主站相關的所有文件;

KPA EtherCAT主站在Zynq平臺的移植與測試

圖 11:SD卡中Master內容

Xenomai:xenomai依賴的一些庫文件,這個可以官網下載xenomai對應的版本如2.6.3。然后在根目錄下make后會生成這個庫文件。

Mod:該文件夾下則主要是kpa_mac.ko,也就是KPA提供的那個網卡驅動。

如下圖:

KPA EtherCAT主站在Zynq平臺的移植與測試

圖 12:SD卡中Xenomai文件

到此SD卡也做成了。SD卡插到板子上既可以運行了。

4 EtherCAT 主站程序測試

實驗平臺包括三個組成部分:待測試的EtherCAT系統、實時數據獲取單元和離線的實驗數據分析單元,如下圖所示。主站為構建的嵌入式實時EtherCAT 主站,從站為兩套松下交流伺服驅動器MADHT系列。測試的內容為在周期時間為250us下,帶DC功能和不帶DC功能的測試數據對比。

4.1實時數據獲取單元

實時數據獲取單元采用的是虹科的網絡分析儀Profishark 100M或Profishark 1G,兩個網口為標準的100M/1Gbps 以太網接口。支持單獨捕獲上行和下行數據,并且可以將捕獲的數據包供Wireshark /Profishark Manager等軟件進行數據分析。此外,它捕獲數據包時間戳的分辨率可以達到5ns,保證了實驗數據的精確性,如下圖:

KPA EtherCAT主站在Zynq平臺的移植與測試

圖 13:實時數據單元示意圖

4.2離線數據分析單元

離線數據分析單元是由PC 機運行開源軟件Wireshark 實現的,在實驗的最后,所有捕獲的的實驗數據都會交給離線數據單元進行處理和分析。

圖 14:EtherCAT網絡實驗圖

利用wireshark分別抓取數據(帶DC)

KPA EtherCAT主站在Zynq平臺的移植與測試

圖 15:基于Wireshark的EtherCAT數據幀(含DC)

利用wireshark分別抓取數據(不帶DC):

KPA EtherCAT主站在Zynq平臺的移植與測試

圖 16:基于Wireshark的EtherCAT數據幀(含DC)

KPA EtherCAT主站在Zynq平臺的移植與測試


表 1:EtherCAT數據測試結果 單位:us(統計至個位)

總結:

可以看出,基于Zynq平臺的主站設計方案circle time完全可以做到250us級別,帶兩軸從站的情況下加DC功能,基本沒有抖動存在,但是不帶DC的話,周期時間不穩定,抖動也相對較大。

5 EtherCAT 測試程序分析

KPA EtherCAT主站協議棧提供了多種功能的程序模板如下,包括ETG協議規定的幾種模式,寫應用時,可以在這些代碼模板上進行編程測試,本文作者基于01異步模式進行測試程序的分析

KPA EtherCAT主站在Zynq平臺的移植與測試

圖 17:KPA開發包的功能模塊(部分)

5.1利用 KPA Studio 掃描網絡

先掃描從站信息,利用KPA Studio導出從從站信息的頭文件,定義了從站地址,數據長度。

KPA EtherCAT主站在Zynq平臺的移植與測試

圖 18:KPA Studio掃描從站頭文件

5.2Main 函數重要部分介紹

(1)main函數里面,首先主站初始化。包括獲取網卡,指定網絡配置文件路徑,設置周期時間,等操作

KPA EtherCAT主站在Zynq平臺的移植與測試

圖 19:Main函數中的主站初始化部分

(2)加載PRC服務功能,方便利用KPA Studio進行調試

KPA EtherCAT主站在Zynq平臺的移植與測試

圖 20:加載RPC遠程調試功能

(3)切換主站狀態

KPA EtherCAT主站在Zynq平臺的移植與測試

圖 21:切換主站狀態

(4)設置控制字,進行PI數據的讀寫,從而控制從站

KPA EtherCAT主站在Zynq平臺的移植與測試

KPA EtherCAT主站在Zynq平臺的移植與測試

圖 22:讀寫PI

其中數據的讀取都要遵循先調用EcatStartReadInputs/EcatDoneWriteOutputs 函數,獲取輸入輸出PI,中間再調用EcatSetVariable進行數據的交互,最后再調用EcatDoneWriteOutputs獲取數據讀寫的應答,結束讀寫。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 以太網通信
    +關注

    關注

    2

    文章

    50

    瀏覽量

    10918
  • 設備
    +關注

    關注

    2

    文章

    4217

    瀏覽量

    69617
  • Vivado
    +關注

    關注

    18

    文章

    791

    瀏覽量

    65378
收藏 人收藏

    評論

    相關推薦

    基于全志T507-H的Igh EtherCAT站案例分享

    基于全志T507-H的Linux-RT + IgH EtherCAT站演示 下文主要介紹基于全志T507-H(硬件平臺:創龍科技TLT507-EVM評估板)案例,按照創龍科技提供的案例用戶手冊進行
    發表于 06-03 09:59

    基于EtherCAT站通信控制器設計

    基于EtherCAT站通信控制器設計
    發表于 09-20 16:05

    EtherCAT站代碼和方案-含ZedBoard測試數據對比

    EtherCAT站代碼和方案-含ZedBoard測試數據對比
    發表于 09-20 16:09

    EtherCAT通信開發平臺包括應用手冊

    描述該開發平臺面向 EtherCAT 從屬設備通信,使設計人員能夠在多個工業自動化設備中實施實時 EtherCAT 通信標準。它可以實現具有極少外部組件和一流低功耗性能的低占用空間設計。主要特色經
    發表于 10-30 10:56

    基于Sitara AM57x千兆位以太網EtherCAT接口解決方案

    可用于基于 EtherCAT 的 PLC 或運動控制應用。EtherCAT 站在 AM572x 處理器的千兆位以太網和(...)主要特色提供在千兆位開關 (CPSW) 和 PRU-I
    發表于 12-26 14:40

    基于TI Sitara處理器的EtherCAT站開發案例

    直觀的用戶界面確保了用戶在EtherCAT網絡診斷和配置方面獲得流暢的體驗。圖 3圖 41 EtherCAT站開發案例測試請通過網線將伺服驅動器CN0
    發表于 07-30 09:25

    開源IgH EtherCAT站方案,基于IMX8、ZYNQ、AM335x、T3等平臺

    平臺提供了開源EtherCAT站IgH案例。本文檔主要演示TLIMX8-EVM評估板基于IgH EtherCAT控制伺服電機方法。如需其他平臺
    發表于 09-17 17:14

    開源!ZYNQ IgH EtherCAT站方案分享

    前 言:創龍科技已基于IMX8、ZYNQ、AM5728、AM5708、AM437x、AM335x、T3/A40i等平臺提供了開源EtherCAT站IgH案例。本文主要演示
    發表于 10-29 11:17

    如何移植鴻蒙系統到xilinx zynq平臺

    想把鴻蒙系統移植zynq7000和zynqMP平臺上,網上沒有找到一點資料,對于一直一頭霧水,不知道怎么入手。請問大家,有做過移植嗎?
    發表于 10-20 17:02

    【沁恒 CH32V208 開發板免費試用】2.EtherCat移植前準備(一)

    本次EtherCat移植是基于SOEM源碼進行移植,收集并整理部分資料作為學習EtherCat通訊參考內容。一 、T
    發表于 04-17 10:29

    Vitis下Zynq硬件平臺測試

    Zynq開發時,在Vivado中新建Zynq硬件平臺,加入DMA、AXI接口模塊,在進行構建軟件系統之前,通常需要對硬件平臺進行驗證,檢測模塊新建過程中是否存在問題。下面對這一過程進
    的頭像 發表于 02-16 16:21 ?2378次閱讀
    Vitis下<b class='flag-5'>Zynq</b>硬件<b class='flag-5'>平臺</b>的<b class='flag-5'>測試</b>

    KPA EtherCAT主站軟件如何做移植測試

    到不同的操作系統,可適配到各種硬件平臺、并且可通過基礎(Class B)、標準(Class A)和超值包進行縮放。本篇文章將介紹虹科KPA EtherCAT主站軟件如何基于Xilinx ZYN
    的頭像 發表于 05-18 15:54 ?3371次閱讀

    虹科干貨 | 虹科KPA EtherCAT主站軟件在Xilinx ZYNQ UltraScale+上移植測試

    虹科KPAEtherCAT主站是一款協議棧產品,能夠使用戶快速利用EtherCAT技術的所有好處,例如實時操作、極短的循環時間、以及最低成本的最高性能。該協議棧的先進架構專注于可移植到不同的操作系統
    的頭像 發表于 05-20 09:46 ?950次閱讀
    虹科干貨 | 虹科<b class='flag-5'>KPA</b> <b class='flag-5'>EtherCAT</b>主站軟件在Xilinx <b class='flag-5'>ZYNQ</b> UltraScale+上<b class='flag-5'>移植</b><b class='flag-5'>測試</b>

    虹科干貨 | 虹科KPA EtherCAT主站軟件在Xilinx ZYNQ UltraScale+上移植測試

    虹科KPAEtherCAT主站是一款協議棧產品,能夠使用戶快速利用EtherCAT技術的所有好處,例如實時操作、極短的循環時間、以及最低成本的最高性能。該協議棧的先進架構專注于可移植到不同的操作系統
    的頭像 發表于 05-20 09:44 ?778次閱讀
    虹科干貨 | 虹科<b class='flag-5'>KPA</b> <b class='flag-5'>EtherCAT</b>主站軟件在Xilinx <b class='flag-5'>ZYNQ</b> UltraScale+上<b class='flag-5'>移植</b><b class='flag-5'>測試</b>

    基于Zynq UltraScale+MPSoC高性能EtherCAT主站方案

    本文將介紹KPA EtherCAT站在ZCU102平臺移植測試
    的頭像 發表于 07-07 14:15 ?1186次閱讀
    基于<b class='flag-5'>Zynq</b> UltraScale+MPSoC高性能<b class='flag-5'>EtherCAT</b>主站方案
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>