徐 健,唐小琦,宋 寶
(華中科技大學 機械科學與工程學院,武漢 430074)
基于ARM+FPGA的EtherCAT主站設計及實現*
徐健,唐小琦,宋寶
(華中科技大學 機械科學與工程學院,武漢430074)
摘要:為解決實時工業以太網協議EtherCAT應用于嵌入式主站控制器所產生的實時性和穩定性等問題,首先研究了EtherCAT主站控制器在EtherCAT網絡控制系統中的功能需求,分析并提出了實現嵌入式EtherCAT主站的架構,然后針對上述架構設計了基于ARM+FPGA的EtherCAT主站實現的硬件方案,并設計了基于Xenomai補丁的實時Linux操作系統的軟件實現方案,最后搭建了互聯互通的互操作性測試平臺,實驗結果表明,該主站控制器具有EtherCAT標準協議的兼容性、極高的實時性以及穩定性。
關鍵詞:EtherCAT主站;FPGA;ARM
0引言
實時工業以太網技術是在常規以太網技術上發展起來的,由于傳統以太網采用CSMA/CD機制,應用于工業自動化控制系統時會產生實時性和穩定性問題[1-3]。因此,在傳統以太網的通信模型基礎之上進行修改來實現強實時性和穩定性的工業以太網,如EtherCAT、SERCOS等協議[4-5],不僅能夠實現大數據量的高帶寬傳輸,而且可以方便接入以太網網段,實現以太網直達現場級控制設備[6-7]。
EtherCAT由于其具有較為優良的性能而廣泛應用于各類自動化控制系統當中。EtherCAT主站的實現大部分基于普通的網卡設備,利用系統軟件的實時性來保證EtherCAT主站的實時性,可以實現微秒級別的實時性;其次,主站也可以利用專用硬件來實現,利用硬件的實時特性可以達到納秒級別的實時性,同時具有較高的穩定性[8-9]。
本文針對實時工業以太網EtherCAT主站的實現進行了深入的研究,并設計和實現了基于嵌入式ARM處理器外掛主站專用硬件FPGA的軟硬件實現方案,解決了EtherCAT主站控制器所要求的協議兼容一致性、強實時性和高的穩定性等技術問題。
1EtherCAT主站控制系統
1.1EtherCAT控制系統
將EtherCAT協議應用于工業自動化控制系統當中,其控制系統結構如圖1所示。EtherCAT工業以太網的控制系統屬于一主多從的控制體系架構[10],其中主站屬于整個網絡控制系統的核心,用來調度整個網絡的數據通信;而從站作為EtherCAT控制系統的執行部件,分布于整個控制系統當中,其類型可以包括I/O端子、伺服設備等。

圖1 EtherCAT控制系統
EtherCAT主站發送集總幀數據幀依次經過各個從站,從站經過非常低延時的數據上傳和下載操作后返回主站,主站根據相應子報文的響應來判別從站的狀態,作為網絡信息管理的輸入迭代進行下一周期的通信數據準備。同時,EtherCAT主站作為系統上位機的調用接口,也為各種不同種類的自動控制應用提供了不同的API函數調用接口。
1.2EtherCAT主站控制器架構
根據EtherCAT主站置于EtherCAT控制系統中的作用可知,一方面EtherCAT主站負責EtherCAT網絡信息的管理任務,而另一方面要負責與應用程序交互數據的API(Application Programming Interface)接口。

圖2 EtherCAT主站控制器架構
因此,基于EtherCAT的主站控制器架構如圖2所示,EtherCAT主站通過網口接入EtherCAT網絡中,網口通過硬件接口層將網絡中的差分信號進行處理生成能夠被處理的數據幀流,數據幀到達EtherCAT數據幀接口層經過校驗之后到達應用層協議處理單元,其按照EtherCAT協議來處理相對于的數據服務,例如周期性過程數據、非周期性的郵箱數據等,對于相應的數據服務則產生相應的應用程序API來直接調用有效數據。
2基于ARM+FPGA的EtherCAT主站硬件
設計
針對嵌入式處理器ARM外掛專用硬件FPGA實現的EtherCAT主站方案,其硬件設計框圖如圖3所示。本文采用的嵌入式ARM處理器為TI公司基于Cortex-A8的處理器AM335x,FPGA為Altera公司Cyclone IV系列的EP4CE10F17I8N。
其中,網絡接口和PHY芯片等硬件部分主要完成與網絡信號與處理數據信號的交互,負責EtherCAT通信參考模型的物理層部分;FPGA主要完成數據幀的解析和驗算等過程,負責數據鏈路層部分;ARM主要完成EtherCAT協議驅動,負責應用層部分。通過這三部分的硬件設計可以完成EtherCAT主站控制功能。

圖3 EtherCAT主站硬件總體方案
對于外掛專用硬件FPGA的設計,其設計框圖如圖4所示。FPGA中存在兩個發送數據幀緩存區sBuf1、sBuf2和兩個接收緩存區rBuf1、rBuf2,分別用來存放周期性數據幀和非周期性數據幀。利用中斷脈沖產生序列能產生硬件等時中斷,同時以硬件中斷脈沖為基準產生數據幀發送脈沖序列用來發送數據幀,從而保證了EtherCAT主站的實時性。在產生發送時刻脈沖序列后,發送數據流控制模塊根據ARM配置的本周期的發送配置寄存器發送緩沖區內相應的數據幀,同時并行硬件計算CRC32后將數據流發送至PHY芯片。對于PHY芯片數據接收而言,數據幀在一個周期內產生相應的接收標志寄存器供ARM進行讀取從而操作相應的接收緩沖數據幀。

圖4 FPGA設計鏈路層框圖

圖5 數據幀接口層設計
ARM與FPGA交互的數據層接口設計如圖5所示,分為三個部分,分別為配置數據幀發送緩存區、數據幀接收反饋緩存區和收發的數據幀緩存區。其中,配置數據幀發送緩存區為ARM寫入區域,作為上位機配置FPGA操作的寄存器接口;數據幀接收反饋緩存區作為FPGA接收數據的狀態寄存器,作為ARM獲取狀態的接口;收發的數據幀緩存區作為ARM和FPGA交互有效數據幀區域。
3基于ARM+FPGA的EtherCAT主站軟件
設計
本文采用基于Xenomai的補丁構建的實時Linux操作系統,其主站軟件架構如圖6所示。其中,EtherCAT主站模塊被是一個內核空間的模塊加載在Linux內核中,相比較用戶空間的代碼有更好的實時性和更短的硬件操作特性。主站軟件的功能主要完成EtherCAT協議驅動、基于FPGA的網卡設備驅動和應用程序接口模塊,同時還包含了標準以太網卡的驅動,以便實現EtherCAT主站對普通網卡的兼容。

圖6 EtherCAT主站軟件架構
EtherCAT主站軟件的三個模塊之間的數據流如圖7所示,用戶直接通過應用程序接口(包括實時設備接口和字符設備接口)發送不同的指令數據給主站模塊,主站模塊根據EtherCAT網絡狀態信息將用戶的指令數據進行封裝打包成EtherCAT數據幀發送給網卡設備,網卡設備將數據幀處理后在發送在EtherCAT網絡中實現用戶層到底層設備的通信過程;反之接收數據的過程類似。

圖7 EtherCAT主站的頂層數據流
在嵌入式處理器ARM外掛專用硬件FPGA的軟件實現的方案中,最關鍵的技術就是基于FPGA的硬件實時網卡驅動的調度設計。以單純的處理器加Xenomai補丁運行Linux操作系統的軟件實時調度為例,如圖8所示。用戶的實時任務通過周期調用實時控制函數來確保實時性,但是這種方式的實時性主要由Xenomai補丁的實時特性保證,當系統的負載過大或者存在多個實時任務調度的時候就會難以確保實時性的穩定。
在外掛FPGA后,EtherCAT主站的實時性由FPGA和Xenomai實時補丁來共同保證,如圖9所示。其中,實時任務不停地在執行三個函數,而在內核中等待中斷同步信號函數的線程設為中斷觸發模式,等待FPGA產生的等時中斷信號后喚醒該實時線程。實時任務負責與FPGA中的緩存區進行數據幀的交互,只要在FPGA內設定的中斷至發送數據幀之間的時間范圍內抖動都是可以接受的,而實際的數據幀發送時刻是以FPGA的時鐘來精確保證的,確保了硬實時的任務調度。

圖8 基于Xenomai的軟實時任務調度

圖9 基于Xenomai的FPGA硬實時任務調度
4系統集成測試及結果
本文所搭建的互聯互通的互操作性實驗平臺采用的主站是基于ARM+FPGA的EtherCAT主站,從站采用SANYO DENKI公司生產的RS2系列伺服驅動器、Panasonic公司生產的A5B系列伺服驅動器和自制伺服驅動器,搭建了一個上位機運行數控系統G代碼的三軸測試平臺,如圖10所示。
實驗結果測試表明,該三軸控制系統能夠在數控系統G代碼下長時間運行,表明該系統具有很好的協議兼容性和具有穩定性。
最后,對專用外掛硬件FPGA方案的實時性進行了測試,以FPGA產生的定時中斷脈沖信號為觸發基準,測量發送數據幀使能時刻的信號抖動,測量結果如圖11所示。由圖中可以看出,在每個中斷定時周期內,數據幀發送的時刻幾乎維持不變,達到了納秒級別的精度,遠遠高于傳統網卡的方案,對于實時性要求高的控制系統來說具有很重要的意義。

圖10 系統實驗測試平臺

圖11 實時性測試結果
5結束語
本文在深入分析和研究了EtherCAT主站控制器的體系架構之上,對比了基于通用網卡方案和專用硬件FPGA方案的優缺點,提出了基于嵌入式處理器ARM外掛專用硬件FPGA實現的軟硬件方案,實現了EtherCAT
主站控制器功能,實驗達到了令人滿意的效果,并且具有良好的協議兼容性、穩定性和較高的實時性。
[參考文獻]
[1] 單春榮, 劉艷強, 郇極. 工業以太網現場總線EtherCAT及驅動程序設計[J].制造業自動化,2007 (11):79-82.
[2] 張少勛. 基于嵌入式數控平臺的 EtherCAT 主站實現[D]. 廣州:華南理工大學, 2013.
[3] 張磊. 基于 EtherCAT 的主站通信控制器設計[D]. 廣州:廣東工業大學, 2013.
[4] 李曉曦. 基于 EtherCAT 工業以太網嵌入式主站研究[D]. 廣州:華南理工大學, 2014.
[5] 楊林. 基于 EtherCAT 工業以太網的現場控制系統主站設計與應用研究[D]. 南京:南京理工大學, 2014.
[6] Cereia M, Bertolotti I C, Scanzio S. Performance of a real-time EtherCAT master under Linux[J]. Industrial Informatics, IEEE Transactions on, 2011, 7(4): 679-687.
[7] 馬春敏, 康存鋒, 黃旭東, 等. 基于 Linux 的 EtherCAT 主站的研究[J]. 制造業自動化, 2011, 33(4): 78-82.
[8] Moon Y, Ko N Y, Lee K, et al. Real-time EtherCAT master implementation on Xenomai for a robot system[J]. International Journal of Fuzzy Logic and Intelligent Systems, 2009, 9(3): 244-248.
[9] Cereia M, Scanzio S. A user space EtherCAT master architecture for hard real-time control systems[C]//Emerging Technologies & Factory Automation (ETFA), 2012 IEEE 17th Conference on. IEEE, 2012: 1-8.
[10] 徐健, 宋寶, 唐小琦. EtherCAT 與 Modbus 協議轉換網關的設計及實現[J]. 組合機床與自動化加工技術, 2015(4): 71-73.
(編輯趙蓉)
Design and Implementation of EtherCAT Master Based on ARM+FPGA
XU Jian, TANG Xiao-qi, SONG Bao
(School of Mechanical Science and Engineering, HuaZhong University of Science and Technology, Wuhan 430074, China)
Abstract:In order to solve real-time industrial Ethernet protocol EtherCAT applied to embedded master controller producing real-time, stability and other issues, first study EtherCAT master controller in the network control system functional requirements, analyze and propose architecture of embedded EtherCAT master, then for the above architecture design EtherCAT master hardware solution based on ARM + FPGA and software solution based on real-time Xenomai patch the Linux operating system, and finally build a interoperability testing platform, the experimental results show that the EtherCAT master controller has standard protocol’s compatibility, high real-time performance and stability.
Key words:EtherCAT master;FPGA;ARM
文章編號:1001-2265(2016)06-0084-04
DOI:10.13462/j.cnki.mmtamt.2016.06.022
收稿日期:2015-07-10
*基金項目:國家自然科學基金(51475185);"高檔數控機床與基礎制造裝備"科技重大專項(2013ZX04007-021)
作者簡介:徐健(1992—),男,江西宜春人,華中科技大學碩士研究生,研究方向為數控技術、現場總線及網絡,(E-mail)xujian0935@163.com。
中圖分類號:TH166;TG506
文獻標識碼:A