基於乙太網MAC IP核的IEEE1588協議的設計與實現

為了滿足網絡設備對時間同步精度越來越高的要求,通過對IEEE 1588協議標準和當前以太網時間同步方案的研究,提出了一種採用FPGA硬件來實現時鐘同步的方法。基於FPGA與ARM開發平臺,自主設計實現了支持IEEE 1588標準的主從時鐘同步系統,該系統具有成本低廉,移植性強的特點。通過在該平臺上對千兆以太網環境中的時間精度進行測試,標記精度優於50ns。


面對日益複雜的應用環境,以太網存在的一些缺點逐漸顯現出來,主要體現在確定性和實時性方面。精確時間同步協議[1](Precision Time Protocol,通常簡寫為PTP)的出現為其提供了實時性方面的保證。

精確時間同步協議能夠提供亞微秒級的時間同步精度,它最初是由IEEE 1588-2002[1] 標準定義,是用於採用多播技術的網絡和總線,佔用網絡帶寬小,對系統資源要求低,在局域網中如若採用物理層硬件輔助時間標記技術和邊界時鐘等技術,其時間同步精度可達亞微秒數量級,網絡中主時鐘節點(簡稱主時鐘)的時間和時鐘頻率信息都是通過報文傳遞到從時鐘節點(簡稱從時鐘)的,主從時鐘通過週期性的交換帶有時間標記的時鐘同步報文來測算出節點間的時間偏差和頻率偏差,並採用適當的算法調整從節點的時間和頻率,從而達到時鐘的同步。筆者首先對IEEE 1588在國內的研究現狀進行了調研,綜合前人的研究成果,得出以下結論:

(1) 採用軟件生成時間戳[2]的方式,精度遠不如採用硬件輔助方式產生的高,其同步精度大致在百微秒量級[3],而使用硬件輔助打時間戳,精度可達百納秒。

(2) 採用硬件生成時間戳[4]的方式,需要以太網工作在百兆模式(MII接口)[5]下,並且使用專用ASIC芯片來實現1588報文的識別以及時間戳的生成,以中斷的方式通知CPU來處理時間戳[6],在這種模式下,系統各芯片之間的連接關係複雜,系統可移植性很差,並且不便於後期對協議進行升級和維護。除此之外,使用中斷有一個很嚴重的缺點,當網絡在某段時間出現擁堵然後又恢復後,系統可能會收到多個1588同步報文,此時很可能頻繁觸發中斷使得CPU無法及時處理上一次中斷,造成同步報文和到達時間戳不能正確對應。

(3) 在FPGA上使用軟核來模擬CPU[7],這樣做雖然硬件成本低,但是用FPGA實現了CPU然後再運行C代碼甚至操作系統的話,速度會比真實的CPU慢很多,並且佔用邏輯資源較大,如果後期想要加入新的功能會很不方便,比如簡單網絡管理協議(simple network manage protocol,SNMP)。

(4) 在主從同步校準過程中,如果直接將時間偏差值作為從時鐘的修正量,那麼無論同步精度如何提高,由於主從時鐘本地晶振固有的偏差,經過一段時間的累積後,主從時鐘系統之間仍會存在一個較大的時間偏差,並且隨著同步間隔的增加,該偏差也逐漸增加。文獻[8]對該偏差進行分析之後,引入了晶振頻偏的概念,並從理論上提出了一種動態糾偏的方法,將補償後的時間偏差值作為從時鐘的修正量,但最終只在matlab上進行了仿真,沒有應用到實際的同步系統中。

綜上,為了獲得更為精準的時鐘同步效果,本文提出了一種採用FPGA硬件來實現時鐘同步的方法。最後在硬件平臺進行驗證,使得同步精度控制在50ns以內。

一、主從模式

1.1 功能概述

IEEE1588時鐘主從模式用來實現主時鐘與從時鐘的時間校準,在一個同步週期之內實現主從時間的同步。同步流程如圖1.1所示:

基於以太網MAC IP核的IEEE1588協議的設計與實現

圖1.1主從時鐘完成一次時間同步過程

根據獲取的t1、t2、t3、t4,通過計算出主從時鐘的時間偏差,從而實現時鐘同步。

1.2 連接關係

主從模式下時鐘同步系統的連接關係如圖1.2所示:

基於以太網MAC IP核的IEEE1588協議的設計與實現

圖1.2主從模式下時鐘同步系統連接關係圖

主從模式下時鐘同步系統的實物連接關係如圖1.3所示:

基於以太網MAC IP核的IEEE1588協議的設計與實現

圖1.3主從模式下時鐘同步系統的實物連接圖

1.3 實驗數據

主從模式下時間同步過程主要分為兩個部分:初始過程和穩定過程。初始過程一開始時間偏差較大,然後慢慢減小,最後趨於平穩。如圖1.4所示。

基於以太網MAC IP核的IEEE1588協議的設計與實現

圖1.4主從模式下初始過程

經歷初始過程後,時間同步過程進入穩定狀態,主從時間偏差大約在-20~20ns之間。如圖1.5所示。

基於以太網MAC IP核的IEEE1588協議的設計與實現

圖1.5主從模式下穩定狀態

二、透明模式

2.1 功能概述

IEEE1588時鐘透明模式依然是用來實現主時鐘與從時鐘的時間校準,但是主從時鐘之間加入了透明交換機,消除IEEE 1588事件幀在交換機中的駐留時間,從而修正主從時間偏差。由於計算主從時鐘時間偏差時,直接去除了駐留時間的影響,因此交換機對於主從時鐘來說是透明的,被稱為“透明交換機。”

2.2 連接關係

透明模式下時鐘同步系統的連接關係如圖2.1所示:

基於以太網MAC IP核的IEEE1588協議的設計與實現

圖2.1透明模式下時鐘同步系統連接關係圖

透明模式下時鐘同步系統的實物連接關係如圖2.2所示:

基於以太網MAC IP核的IEEE1588協議的設計與實現

圖2.2透明模式下時鐘同步系統的實物連接圖

2.3 實驗數據

透明模式下時間同步過程主要分為兩個部分:初始過程和穩定過程。初始過程一開始時間偏差較大,然後慢慢減小,最後趨於平穩。如圖2.3所示。

基於以太網MAC IP核的IEEE1588協議的設計與實現

圖2.3透明模式下初始過程

經歷初始過程後,時間同步過程進入穩定狀態,主從時間偏差大約在-40~40ns之間。如圖2.4所示。

基於以太網MAC IP核的IEEE1588協議的設計與實現

圖2.4透明模式下穩定狀態

三、遇到的問題

3.1 上板驗證出現的問題

在實際上板驗證過程中,由於最初未考慮頻率同步的影響,直接設置了主從時鐘的計時週期為8納秒(FPGA工作在125MHz),遇到了三個問題:

1.即使每一次同步之後,算出了主從時鐘之間的時間偏差也對其進行了修正,但是到下一次同步時,又會產生一個新的偏差offset,該差值較大且每一次幾乎都穩定在同一個值。增大兩次同步之間的時間間隔,該差值也會相應增大。

2.解決掉上述問題之後,每一次同步之後的時間偏差基本穩定,大致在100納秒左右。但是一旦有人在該同步系統一定距離內走動,或使用風扇對該系統降溫時,該偏差值會大幅度波動。

3.解決掉問題1和問題2之後,系統的同步精度和穩定度已經得到了很大的改善,同步後時間偏差的波動範圍在正負30納秒之間。但是經過修改時間同步及頻率同步算法、嘗試新的本地時間修改方法以後,同步精度始終無法再次提升。

3.2 影響同步精度的因素

針對問題1,本文按以下步驟進行了多次實驗:

1.根據PTP協議建議,每完成一次2.3.1所述的同步過程以後,應該等待2秒後再進行下一次同步,根據每次同步計算得到時間偏差並對其進行修正後,新產生的時間偏差如圖3.1藍色折線所示,其均值在330納秒左右。改變兩次同步之間的時間間隔,新產生的時間偏差也隨之改變。

基於以太網MAC IP核的IEEE1588協議的設計與實現

圖3.1不同時間同步間隔產生的時間偏差結果

2.設定同步間隔為1秒,只進行時間偏差的計算,但不對其做出修正,結果如圖3.2所示。

基於以太網MAC IP核的IEEE1588協議的設計與實現

圖3.2同步間隔固定為1s時的時間偏差結果

假設主從時鐘之間不存在頻率偏差,那麼圖3.2應該是一條平行的直線,所表示的物理意義是,在初始時刻,兩個時鐘之間的偏差為offset,在以後的對時過程中,該偏差恆定。從圖中看出該偏差並不恆定,並且相鄰兩次對時時刻所累積的時間偏差的增量幾乎相等。

由此得出,問題1的出現是由於主從時鐘所使用的晶振之間存在頻率差,並根據以上數據計算得到了準確的頻率差值。

針對問題2,按以下步驟進行試驗:

1.對問題1所述的晶振之間的頻差進行補償,得出圖3.3所示數據。可以看出時間偏差已經基本恆定(此時沒有修改時間偏差)。

基於以太網MAC IP核的IEEE1588協議的設計與實現

圖3.3修正晶振之間的頻差後的時鐘偏差結果

2.對同步系統使用風扇進行降溫,得到的數據如圖3.4所示。在圖中紅色箭頭處進行降溫,時間偏差急劇改變。

基於以太網MAC IP核的IEEE1588協議的設計與實現

圖3.4降溫時的時間偏差結果

由此得出,晶振本身的溫度漂移對同步精度的影響很大,在本系統中成為影響時間偏差的主導因素。

針對問題3,筆者與導師多次探討了同步過程中可能出現的種種問題,嘗試了新的同步方法並參考了他人的研究成果以及技術文檔,得出以下結論:PHY芯片貢獻了很大一部分傳輸時延,並且該時延抖動在10納秒量級。支持這一論述的依據是:

1.PHY芯片中存在編解碼、字節對齊和速率匹配、數據的串並轉換等相關功能,這些模塊引入的延遲值是不固定的[33]。

2.PHY芯片在接收數據時需要使用FIFO進行緩衝處理,這一過程會引入一定程度的時延抖動[34]。

本次實現選擇在MAC層和PHY層之間打時間戳,那麼PHY層引入的延遲被認為是鏈路延遲,如圖3.5所示,該延遲的波動導致了最終同步精度無法進一步提高;同時,當同步鏈路中存在透傳時鐘時,該波動進一步累積,導致精度變差。

基於以太網MAC IP核的IEEE1588協議的設計與實現

圖3.5路徑延遲分析

另外,根據本方案打時間戳的方式,以太網數據幀有效信號和系統採樣時鐘之間存在如圖3.6所示的相位關係。當以太網數據幀到來時,有效信號的上升沿可能剛好處於時間戳生成模塊採樣時鐘的兩個上升沿之間,即圖中的標號2,經過採樣,系統會在圖中標號3的位置產生時間戳,不能真實的反映PTP幀到達的時間,兩者之間存在誤差為τ。τ的取值跟採樣時鐘的頻率有關,由於本系統採樣頻率為125MHz,所以τ的取值在0~8納秒之間。

基於以太網MAC IP核的IEEE1588協議的設計與實現

圖3.6採樣時鐘對打時間戳精度的影響示意圖

一個PTP事件幀在主從時鐘同步的過程中會經過兩次RGMII接口,被採樣兩次,系統完成一次同步需要發送一對事件幀,進行四次採樣,所以這裡引入的時間誤差在0~32納秒之間。

3.3 問題總結及解決後上板驗證

根據前文所述,影響同步精度的四個主要因素是:

1.不同晶振之間的固有頻率差值;

2.同一個晶振不同溫度下的頻率漂移;

3.上下行同步鏈路之間延遲的不對等性;

4.採樣時鐘與以太網數據有效信號之間存在相位差。

對於1、2兩點,採用了卡爾曼濾波器對晶振頻率進行實時的估計,使得同步精度達到了正負20納秒以內,並且溫度漂移特性得到了補償,其測試結果如圖3.7和圖3.8所示。

基於以太網MAC IP核的IEEE1588協議的設計與實現

圖3.7使用風扇降溫時的同步結果圖

基於以太網MAC IP核的IEEE1588協議的設計與實現

圖3.8撤走風扇後的同步結果圖

圖中紅色箭頭表示使用風扇進行降溫或者移走風扇,當環境溫度發生劇烈變化時,系統的同步精度受到極大的影響,但是當外界溫度恆定後,同步系統也逐漸恢復穩定。

對於第3點因素,理論上選擇打時間戳的位置越接近底層,鏈路延遲帶來的抖動影響越小。但由於本文旨在設計一個通用的同步系統,該系統要求對硬件特性的依賴較小,所以只能選擇在RGMII接口處打時間戳;對於第4點因素,理論上系統的採樣頻率越高,由該因素導致的時間誤差越小,而本系統固定工作在125MHz,所以這一誤差不可避免。這也意味著目前該同步系統正負20納秒的同步精度能提升的空間已接近於0。

四、結束語

如今,不管是控制系統還是通信網絡,對時間同步的要求都越來越苛刻。一方面,對GPS系統的過度依賴使得緊急狀況下整個網絡可能因失步而癱瘓;另一方面,IP化是未來網絡業務的發展趨勢,各個電信運營商都在緊鑼密鼓的部署地面有線傳輸鏈路的高精度時間同步方案。因此,基於IP網絡的精密時間同步協議在未來的時間同步方案中將會佔據越來越大的比重。

本文通過對以太網MAC IP核和IEEE 1588時鐘同步標準的深入研究,設計了一種基於FPGA+CPU的時間同步系統,包括主從時鐘模型以及透明傳輸時鐘模型,並對其進行了仿真和上板驗證,符合最初的設計需求;對設計和測試過程中設計的每一個細節,本文不能一一列舉,僅重點分析了本方案中的PTP報文檢測模塊和硬件時間戳模塊的工作原理、影響同步精度的主要因素以及頻率同步方法。綜合協議標準及已有的研究論文來看,其同步精確度大都在百納秒級別,而本文所涉及的時鐘系統的同步精度達到十納秒量級,取得了長足的進步。由於PTP時鐘系統同步精度高、應用範圍廣、配置簡單且安裝和維護的成本低,利用協議報文傳遞同步信息,可廣泛應用於電信、測量和工業控制領域的同步。

目前設計完成的時鐘同步系統,FPGA實現部分基於實驗室已有的MACIP核,在其基礎上添加了PTP打時間戳的功能、完整的AXI接口信號以及中斷信號控制邏輯,在實現透明傳輸時鐘的過程中還實現了將當前發送幀的時間戳實時的插入到幀內容中的功能,為實現IEEE 1588第二版提出的“一步式”同步功能奠定了基礎,本課題的後續工作將朝著這一方向展開。

在同步系統的測試過程中,筆者發現不同測試板所使用的晶振之間存在固有頻偏,並且同一晶振其溫度漂移相對於納秒級的同步精度來說特別明顯,對同步後的精度和穩定度都造成了極大的影響,後續研究工作中將考慮自主設計測試板,使用恆溫晶振來代替普通晶振,理論上能獲得比現有測試結果更高、更穩定的同步精度。

另外,鑑於FPGA上板測試過程中對波形的觀察分析極為不便,而仿真測試平臺所使用的是Verilog硬件描述語言,該語言對於仿真來說靈活性和測試覆蓋率都受到了較大的限制,因此僅對關鍵模塊進行了仿真與驗證,其餘的功能模塊雖然功能正確,但性能方面可能略有欠缺。因此,使用更合適的仿真語言(例如SystemVerilog)和仿真工具(例如UVM平臺),也是後期工作中的一個研究方向。

綜上,本文設計和實現了支持IEEE 1588協議的時鐘同步系統,仿真和板級驗證結果符合設計需求,可用於實際科研項目。但依然存在著一些性能上的問題,需要後續研究中進一步改進。

[1] Jahja R H, Dahal S, Suk-SeungH, et al. Improving IEEE 1588v2 time synchronization performance with phaselocked loop[C]// Signals, Systems and Computers, 2014, Asilomar Conference on.IEEE, 2015:252-257.

[2] Zhao B, Wang N. Theimplementation of IEEE 1588 clock synchronization system based onFPGA[C]//Intelligent Control and Information Processing (ICICIP), 2014 FifthInternational Conference on. IEEE, 2014: 216-220.

[3] Eidson J, Lee K. IEEE 1588 standardfor a precision clock synchronization protocol for networked measurement andcontrol systems[C]//Sensors for Industry Conference, 2002. 2nd ISA/IEEE. IEEE,2002: 98-105.

[4] Ch. Kutschera, Ch. Veigl, R.Höller, P. Rössler, N. Kerö, Ch. Weiss, A. Gröblinger, H. Muhr, G. Cadek,"Background IEEE 1588 Clock Synchronization over IEEE 802.3/Ethernet", Cyber-Enabled Distributed Computing and Knowledge DiscoveryConference, pp. 205-209, Oct. 2008

[5] Eidson J, Kang L. IEEE Standardfor a Precision Clock Synchronization Protocol for Networked Measurement andControl Systems[C]// IEEE Std. IEEE, 2008:1-300.

[6] Correll K, Barendt N. DesignConsiderations for Software Only Implementations of the IEEE 1588 PrecisionTime Protocol[C]// Conference on IEEE 1588 Standard for A Precision ClockSynchronization Protocol for Networked Measurement and Control Systems. IEEE,2006.

[7] Ouellette M, Ji K, Liu S, etal. Using IEEE 1588 and boundary clocks for clock synchronization in telecomnetworks[J]. Communications Magazine IEEE, 2011, 49(2):164-171.

[8] http://zedboard.org/product/zedboard.


分享到:


相關文章: