陳 灝,宋 寶,唐小琦
(華中科技大學 機械科學與工程學院,武漢 430074)
EtherCAT精確時鐘同步技術的實現*
陳 灝,宋 寶,唐小琦
(華中科技大學 機械科學與工程學院,武漢 430074)
為了解決工業自動化領域中分布過程的同步動作的問題,首先基于EtherCAT的網絡拓補結構,闡述了工業以太網EtherCAT的時鐘同步機制,設計了分布式時鐘的同步算法、仿真程序及具體實現過程,進行同步誤差仿真分析,然后通過搭建基于ARM和FPGA的硬件平臺對同步效果進行測試,實驗結果證明EtherCAT分布式時鐘能夠達到小于100ns的同步精度,實現了從站之間的同步,從而滿足了高速高精加工的需求。
EtherCAT ;分布式時鐘;同步
隨著數控機床高速高精加工的迅速發展,現場總線技術在數控系統中的運用越來越廣泛。其中,EtherCAT是一種應用于工業自動化領域的實時工業以太網技術,它具有廣泛的適用性,完全符合以太網標準,可以與其他以太網設備及協議并存于同一總線,從而最大化利用以太網寬帶進行用戶數據傳輸[1-2,9-10]。同時,EtherCAT小于100μs數據的刷新周期使其可以用于伺服技術中底層的閉環控制。EtherCAT還具有很好的同步性能,利用“分布時鐘”機制可以實現各從站節點之間小于1μs的時鐘同步精度,這在要求分布系統同時工作的場合顯得極為重要。
EtherCAT充分利用了以太網的全雙工特性,使用主從模式介質訪問控制。如圖1所示,利用單線型的拓補結構,主站發送以太網幀給各從站,從站可以直接處理接收的報文,并從報文中提取或插入相關的用戶數據,然后將該報文傳輸到下一個EtherCAT從站,最后一個EtherCAT從站發回經過完全處理的報文,并由第一個從站作為相應報文將其發送給控制單元。

圖1 EtherCAT運行原理
同一EtherCAT數據幀中可以嵌入多種類型的子報文,達到較高的數據幀利用率。每個子報文有其獨特的命令字和尋址方式。EtherCAT實行動態數據處理機制,從站直接讀取主站數據幀中的數據塊或者改變數據幀中的一部分數據,這樣所引入的總延時小于100ns。
支持分布時鐘的從站稱為DC從站,一般內嵌一個周期10ns的本地時鐘[3]。分布時鐘機制可以使所有EtherCAT設備使用相同的系統時間,從而控制各設備任務的同步執行。從站設備可以根據同步的系統時間產生同步信號,可以為輸入事件產生精確的時間標記,產生同步信號,用于中斷控制或觸發數字量輸入輸出。
分布時鐘機制使所有的從站都同步于一個參考時鐘。主站連接的第一個具有分布時鐘功能的從站作為參考時鐘,以參考時鐘來同步其他設備和主站時鐘。
系統啟動時,各從站的本地時鐘tlocal(n)和參考時鐘tsys_ref(n)之間有一定的差異,稱為時鐘初始偏移量Toffset(n)。在運行過程中,由于各從站使用的晶振等原因,它們的計時周期會有微小差別,稱為時鐘漂移。數據幀在各個從站之間傳播時的延時稱為傳輸延時Tdelay(n),包括物理層和鏈路層的延時。在分布時鐘機制中,這些因素都必須進行補償,使得補償后的本地系統時間tsys_local(n)和系統時間達到同步,從而達到整個系統的同步[1-2]。
EtherCAT時鐘同步算法包含兩個部分,分別是測量和計算傳輸延時和時鐘初始偏移量,以及時鐘同步補償及動態補償[4-5]。
傳輸延時和時鐘初始偏移量的測量原理如圖2所示,假設tlocal(n)>tsys_ref,它們的關系由下式確定:
tlocal(n)=tsys_ref+Toffset(n)
(1)

圖2 傳輸延時和時鐘初始偏移量測量原理
主站發送一個廣播寫命令數據幀,數據幀到達每個從站后每個從站設備保存每個端口接收到以太網幀前導符的第一位的時刻。數據幀到達參考時鐘從站時tsys_ref為T1時刻,到達從站n時從時鐘本地時鐘時刻為T2(n),可以建立如下關系:
Toffset(n)=T2(n)-T1-Tdelay(n)
(2)
數據幀經過所有的從站后返回,到達從站n時本地時鐘時刻為T3(n),到達參考時鐘從站tsys_ref的時刻為T4;假設線纜延時均勻,所有從站設備的處理和轉發的延時一樣,則得出從站n到參考時鐘的傳輸延時:
在冬天與春天之間那些含混不清的日子里,亂雨遷延著冬日的寒意。母親死后,一杭情緒一直比較低落。如果不是為了所謂的真相,也許他不會離開病中的母親,母親可能就不會出事。而自己拼命得到的,原來是一個錯誤的真相。核桃臉被人收買了。而這個人不是夏冰,夏冰恰恰是被他誣陷的對象。所以,夏冰才想殺他。一定還有一個人,躲在暗中,操縱一切。
Tdelay(n)=[(T4-T1)-(T3(n)-T2(n))]/2
(3)
主站讀取各個從站所保存的數據幀到達的時刻,根據式(3)計算各個從站的傳輸延時Tdelay(n),并寫入到各個從站中;為了得到準確的傳輸延時,主站可以多次測量,然后求平均值;在初始化后的周期運行過程中也可以隨時測量傳輸延時,以補償環境變化對傳輸延時的影響。
保持本地時鐘的自由運行,從站利用Toffset(n)實現時鐘同步。每個DC從站使用自己的本地時間tlocal(n)和本地偏移量Toffset(n)通過公式(4)計算本地系統時間,用來產生同步信號和鎖存信號時間標記,供從站微處理器使用。
tsys_local(n)=tlocal(n)-Toffset(n)
(4)
在測得傳輸延時和時鐘偏移量后,主站發送數據報文從參考時鐘從站讀取系統時間tsys_ref并寫入之后的每個從站設備中。從站根據得到的tsys_ref和之前保存于每個從站中的Toffset(n)和Tdelay(n),計算出本地時鐘漂移量Δt:
Δt=tsys_local(n)-Tdelay(n)-tsys_ref
=tlocal(n)-Toffset(n)-Tdelay(n)-tsys_ref
(5)
從站根據Δt的正負來調整本地時鐘,如果Δt大于0,表示本地時鐘運行比參考時鐘快,必須減慢運行,則ESC控制本地時間每10ns增加9;如果Δt小于0,表示本地時鐘運行比參考時鐘慢,必須加快運行,則ESC控制本地時間每10ns增加11,以實現時鐘漂移補償[1,4,6]。

圖3 EtherCAT分布時鐘實施步驟
分布時鐘的功能通過讀寫寄存器來實現[7]。如圖3所示,在發送從站初始化命令前,主站首先發送順序尋址命令APRD讀所有從站的特征信息寄存器0x0008~0x0009,以此確定哪些從站支持分布時鐘,然后讀取數據鏈路狀態寄存器0x0110~0x0111,根據其中的端口狀態判斷正在使用的端口,從而獲得網絡拓補結構。主站發送廣播寫命令BWR,寫所有的從站端口0的接收時間寄存器,每個從站在接收到數據幀第一個前導位時,保存本地時鐘時刻到寄存器0x0900~0x090F,主站在下一個通信周期讀取這些值。
假設只使用端口0和端口1,則參考時鐘從站寄存器0x0900~0x0903中保存了數據幀到達端口0時的參考時鐘的時刻T1,0x0904~0x0907中保存了數據幀返回時到達端口1時的參考時鐘的時刻T4;從站n的寄存器0x0900~0x0903中保存了數據幀到達從站n端口0時的參考時鐘的時刻T2(n),0x0904 ~0x0907中保存了數據幀到達從站n端口1時的參考時鐘的時刻T3(n)。

圖4 分布時鐘的漂移補償步驟
為了驗證EtherCAT分布式時鐘的同步效果,本文設計了一個總線式的數控系統,它基于嵌入式x86工控機實現,主要包括EtherCAT主站系統、EtherCAT從站和人機交互系統三大部分[2]。其硬件體系結構如圖5所示,嵌入式 x86 工業 PC,實現數控系統的各項功能,并負責對整個系統進行管理,實現友好的人機交互功能。EtherCAT主站協議卡通過 PCI 總線與嵌入式 x86 工業 PC 進行數據交互。

圖5 EtherCAT硬件體系結構
EtherCAT主站協議卡使用ARM來實現EtherCAT通信的所有功能,如EtherCAT數據幀的封裝和解包、狀態機轉換和時鐘同步等。為實現ARM與工控機之間的數據交換,利用FPGA實現PCI總線接口和一個雙口RAM。FPGA還實現了SPI總線接口的功能,使得主站和控制面板進行通信。EtherCAT從站使用STM32+FPGA的方式來實現EtherCAT從站通信的所有功能,其中FPGA實現EtherCAT鏈路層協議,ARM一方面實現總線驅動功能以及EtherCAT從站的應用層協議,另一方面實現運動控制功能。
本文的測試平臺使用了1個主站和4個從站,如圖6所示,主站連接的第一個從站(1號從站)為參考時鐘,各個從站以規定的周期同步輸出中斷信號。用雙通道示波器的兩個通道同時捕捉1號從站和4號從站的中斷輸出信號,從而得出各軸間的同步性能。

圖6 分布時鐘測試平臺
同步前后時鐘偏差如圖7所示,可以看出,4號從站和1號從站同步前時鐘偏差為400ns,同步后為60ns。經過測試和對比可以得出結論,EtherCAT分布時鐘的同步精度達到或超過了IEEE 1588實施水平。在高速加工時,100ns同步誤差的加工誤差僅為0.3μm左右,滿足了高速高精的加工要求。


圖7 中斷信號的示波器輸出(前圖為同步前,后圖為同步后)
本文在基于ARM和FPGA的硬件平臺上,采用了EtherCAT的分布時鐘同步算法,在主站初始化階段測量并計算出參考時鐘從站到各個DC從站的時間延時和初始時鐘偏移量,并將這兩個參數寫入各個從站的寄存器中,然后在下一個周期里,讀取參考時鐘的系統時間并寫入其他DC從站的相應寄存器中,各個DC從站根據參考時鐘的系統時間、從站延時和初始時鐘偏移量來計算本地時鐘誤差,并根據其大小對本地系統時間進行調整,從而保證本地系統時間和參考時鐘系統時間的同步,達到各個從站之間較好的同步性能。
[1] 郇極,劉艷強.工業以太網現場總線EtherCAT驅動程序設計及應用[M].北京航空航天大學出版社,2010.
[2] 張勇.EtherCAT總線接口在數控系統中的實現[D].武漢:華中科技大學,2011.
[3] Gianluca Cena,Adriano Valenzano. Evaluation of EtherCAT Distributed Clock Performance[J]. IEEE TRANSACTIONS INDUSTRIAL INFORMATICS,2012,8(1):20-29.
[4] G. Cena, I. C. Bertolotti, S. Scanzio, A. Valenzano. On the Accuracy of the Distributed Clock Mechanism in EtherCAT[C]. IEEE International Workshop on Factory Communication Systems, 2010:43-52.
[5] Jae Chol Lee, Seong Jin, Yong Han Jeon, Jae Wook Jeon. Dynamic drift compensation for the Distributed Clock in EtherCAT[C]. International Conference on Robotics and Biomimetics, 2009:1872-1876.
[6] 劉明哲,徐皚冬,趙偉.基于IEEE1588的時鐘同步算法軟件實現[J].儀器儀表學報,2006,27(6):2009-2011.
[7] ETG,EtherCAT_Introduction[EB/OL].http://www.ethercat.org.cn/pdf/cn/EtherCAT_Introduction.pdf, 2007.2:5.
[8] 汪雅楠,譚南林.EtherCAT時鐘同步的誤差仿真分析[J].計算機應用,2011,7(30) :22-26.
[9] 鄭慧寧.現場總線技術[J].寧夏機械,2005(12):4-6.
[10] 吳瑞金,齊然,劉海偉.現場總線的現狀及發展[J].通用機械,2005(2):39-43.
(編輯 李秀敏)
Implementation of EtherCAT Precise Clock Synchronization
CHEN Hao,SONG Bao,TANG Xiao-qi
(School of Mechanical Science and Engineering, HuaZhong University of Science and Technology, Wuhan 430074, China)
To solve the synchronization action of the distributed process in the field of industrial automation, based on the topology structure of EtherCAT, this paper firstly elaborates the mechanism of the EtherCAT clock synchronization, and designs the clock synchronization algorithm, the simulation program and the specific realization process of the distributed clock, in order to carry on simulation and analysis of the synchronization error. Furthermore, a platform constituted by ARM and FPGA was built to assess the synchronization effect. The experimental results show that the EtherCAT distributed clock can achieve an accuracy of less than one hundred nanosecond, which realizes the synchronization between the slave sites and meets the need of high speed and high precision in machining.
EtherCAT; distributed clock; synchronization
1001-2265(2014)05-0069-04
10.13462/j.cnki.mmtamt.2014.05.018
2013-09-02
"高檔數控機床與基礎制造裝備"科技重大專項(2012ZX04001012);"高檔數控機床與基礎制造裝備"科技重大專項(2012ZX04001041);高等學校博士學科點專項科研基金(20090142120035)
陳灝(1989—),男,湖北隨州人,華中科技大學碩士研究生,主要研究方向為數控技術、現場總線技術,(E-mail)chenhaosjy@163.com。
TH165;TG65
A