文獻標識碼: A
文章編號: 0258-7998(2014)04-0048-04
隨著數字化變電站的發展以及分布式網絡的廣泛應用,對于系統的時間同步精度和穩定性要求越來越高[1-2]。本文設計實現了時鐘對時同步的系統方案和軟件實現過程,其基于ADI公司的BF518高性能DSP,包含支持IEEE-1588協議的模塊以及具有硬件時間戳功能的TSYNC模塊[3-4]。
基于IEEE-1588協議的主從時鐘通過周期性地交互帶有時間戳的報文計算出時間偏差和頻率偏差,并采用適當的方法調整時鐘的時間和頻率,從而達到時鐘同步的目的。其中報文攜帶的時間戳的精度是決定時鐘對時精度的一個重要因素[5]。
1 系統模塊方案
圖1所示是一個建立在ADSP_BF518處理器中的完整的兼容IEEE-1588 2008版本的系統。處理器的TSYNC模塊探測傳入和傳出的IEEE-1588消息以及使用硬件標記事件消息的時間戳。IEEE-1588協議棧完成標準要求的消息交換。TSYNC驅動負責讀寫和調整TSYNC時鐘,以及使用MAC控制器驅動發送和接收以太網MAC層(開放式系統互聯的第二層)消息。同時也完成控制律和過濾P2P延時測量。以太網PHY芯片采用美國國家半導體的DP83848,因為它具有低的延時抖動特性。采用處理器50 MHz系統時鐘作為TSYNC模塊的時鐘源。
2 ADSP_BF518處理器的TSYNC模塊
ADSP_BF518擁有一個內置的EMAC模塊,具有支持由額外的TSYNC模塊擴展的包含在IEEE-1588標準協議內的EMAC功能的能力;同時額外的特性是支持以太網中廣泛的IEEE-1588應用。圖2所示是TSYNC模塊的框圖。
ADSP_BF518處理器具有如下特性:
(1)包探測:ADSP_BF518處理器能夠探測和提供硬件時間戳給所有的IEEE-1588事件消息,包括傳入和傳出包。IEEE-1588系統的精度主要依賴于事件消息的時間戳精度和時間戳標記的時機,因為這些影響了路徑延時對稱和不變的前提要求。TSYNC模塊一直監視MAC控制器與以太網PHY之間的硬件接口(即MII層接口),并為任何時候探測到的事件消息生成硬件時間戳。由于物理層對報文傳輸的延時很小且幾乎無延時波動,因而可以得到很高的時間標記精度[6]。事件消息的探測被設計為可編程的,基本可配置為支持IEEE-1558 2002版本或IEEE-1588 2008版本。此外,此種可編程特性允許支持IEEE-1588將來的版本,也可以支持需要時間戳的通用協議,包括配置打入時間戳到進入或傳出的每個以太網包。
(2)靈活的時鐘源:本地時鐘的屬性對于IEEE-1588系統的性能至關重要。為滿足各種應用的需求,ADSP_BF518處理器允許本地時鐘源有3個選項:系統時鐘、外部時鐘、以太網時鐘。如果應用程序有特定的時鐘要求,可選擇外部時鐘以提供定制的時鐘源。以太網時鐘的選擇可以提供很好的精度,如果主從設備連接在同一個回路,因為參考時鐘來自以太網線,所以兩個設備運行相同的時鐘。通常的應用可以選擇系統時鐘作為時鐘源。被選的時鐘源也是由TSYNC模塊驅動,并通過特定的ClockOut引腳作為處理器的一個輸出,被系統的其他部分用來獲取本地時間信息。
(3)可調時鐘:TSYNC模塊的可調時鐘是基于加數器的時鐘。如圖3所示,輸入固定的時鐘信號,輸出一個脈沖變少了的輸入信號:每一次輸入時鐘,加數器的值會被加到累加器,每次累加器的溢出產生的進位會驅動本地時間計數器,時間計數器是以脈沖的數目表征本地時間信息。可以通過改變加數器的值來調整本地時鐘的頻率,因為加數器決定累加器溢出的頻率,從而決定本地時鐘計數器增加的頻率,因而可達到調整本地時鐘的目的。如式(1)所示,Fin是輸入時鐘的頻率,A是加數器的值,Fout是本地時鐘頻率。
3 影響時鐘同步精度的因素
在IEEE1588精確時鐘協議進行主從時鐘同步的過程中,由主時鐘先發送同步報文。從時鐘收到同步報文時,根據同步報文中的時間戳和線路延時計算出與主時鐘的偏差,對本地時鐘進行調整。
在同步過程中,要滿足一些基本的前提條件。其中包括:同步系統子網內的主從時鐘通信傳輸延時須對稱,如不對稱不可忽略,則必須做出補償;時鐘內的晶體振蕩器應具有足夠好的固有穩定性。同步計算方式如下:
式中:D為主從時鐘線路的平均延時(D的存在是因為從時鐘得到的時間是主時鐘發出包的時間戳,Tmk-Tsk是主從時間差),在系統啟動時設為默認值0;Ok為第k次同步時從時鐘計算出的與主時鐘的偏差;Tmk和Tsk分別為第k次同步時,主時鐘和從時鐘在底層記錄的時間戳;T為本次同步修改系統時鐘前的PTP系統時間,T為本次同步后的PTP系統時間[7]。
主從時鐘通過交換時間消息的方式達到同步,存在如下局限性:
(1)主時鐘發送攜帶時間信息的廣播報文的時間間隔不能無限大。因為從時鐘將使用自身精度低的振蕩器打入時間戳到接收到的廣播報文,如果報文的時間間隔過大,會導致主從時鐘隨著時間的推移偏差逐漸增大。如式(1)主從時鐘振蕩器的特點不同引起的偏差Ok,如果時鐘內的晶體振蕩器的固有穩定性不夠好,那么偏差Ok會更大,間隔時間內產生的同步誤差就更大。
(2)如式(1)所示,主從時鐘的線路延時存在一定的誤差D,增加了額外的偏移值,間隔時間內產生的同步誤差也就相應地增加。
(3)如果路徑平均延時D在主從時鐘間不對稱,即無法通過平均值計算得到D,那么隨著D的準確度降低,將進一步導致主從時鐘間的同步精度降低。
4 主從時鐘延時計算和調整從時鐘時間的實現
如式(2)中Ok=Tmk+D-Tsk所示,Tmk和Tsk分別為第k次同步時,主時鐘和從時鐘記錄的時間戳,為已知的時間信息。因此只要計算出平均路徑延時D,就可以得出Ok,從而最終算出同步后的從時鐘時間T。
主從時鐘的振蕩器越相似,則平均路徑延時D越準確,那么從時鐘同步時間的精度就越高。IEEE-1588協議提供以下方法提高平均路徑延時D的準確度:
(1)由于主從時鐘設備對同步報文的協議棧處理和操作系統調度存在不確定的延時抖動,造成平均路徑延時D變化大,準確度降低,從而降低了同步精度。IEEE-1588提出越往底層打上時間戳,精度越高。從而消除了軟件處理帶來的不確定性延時抖動,提高了同步精度。
(2)在IEEE-1588第二版本引入的對等時鐘中,對不對稱的路徑延時必須做出修正,提高了平均路徑延時D的準確度,從而提高了同步精度。
更新版本的IEEE-1588 2008進一步引入了對等時鐘延時機制,同時增加了3個額外的事件消息,分別為PdelayReq、PdelayRespFollowUp和PdelayResp。圖4所示包括對等時鐘的事件消息交互過程以及時間戳產生的時刻和過程。
如圖4所示,可以把延時計算分為兩個過程:主時鐘到從時鐘的延時和從時鐘到主時鐘的延時。
4.1 主時鐘到從時鐘的延時計算過程
SYNC和FollowUp消息是由主時鐘發出,從時鐘對消息作出響應并計算出主時鐘到從時鐘的傳輸延時[8]。
主時鐘設備讀取軟件時間戳Tm1,插入到SYNC消息中,然后發送此消息。接著在SYNC消息離開設備時,主時鐘設備物理層會自動在SYNC消息中的相應字段打上硬件時間戳。SYNC消息到達從時鐘時,從時鐘物理層打上硬件時間戳T,隨后被從時鐘軟件接收,標記軟件時間戳Ts1。從時鐘軟件讀取接收硬件時間戳T,以便計算主時鐘到從時鐘的傳輸延時。如果沒有傳輸延時,則Ts1′=Tm1′+Tms成立,其中Tms是主從時鐘間的時間差。1588 協議的最終目標就是要補償該時間差。
SYNC發送完成后,主時鐘設備軟件讀取SYNC消息時間戳單元的離開時間T,并把T插入到FollowUp消息中,然后在軟件時間戳Tm2發送FollowUp消息。FollowUp消息在從時鐘設備的軟件時間戳Ts2收到。此時,從時鐘設備軟件有兩個時間點T和T,分別為SYNC到達時間戳和SYNC離開時間戳。主從時鐘路徑延時Tmsd:
4.2 從時鐘到主時鐘的延時計算過程
PDlayReq消息由從時鐘設備發送,主時鐘接收到PDlayReq消息后,發送PDlayResp消息作為回應。通過此過程,從時鐘設備可以計算出從時鐘到主時鐘的傳輸路徑延時。
如圖4所示,在時刻Ts3,從時鐘設備軟件讀取當前的系統時間Ts3,并插入到PDlayReq消息中,然后發送出去。發送完成后,從時鐘設備軟件讀取消息離開設備的硬件時間戳T,并等待主時鐘設備的回應。
隨后PDlayReq消息到達主時鐘設備,物理層標記硬件時間戳T,且在軟件時間戳Tm3時刻被主時鐘設備軟件處理。軟件讀取PDlayReq消息到達主時鐘設備的硬件時間戳T,并插入到PDlayResp消息中,然后在軟件時間戳Tm4時刻發送給從時鐘。當從時鐘設備軟件在軟件時間戳Ts4接收到PDlayReq消息時,從時鐘設備軟件讀取該消息硬件時間戳T。此時,從時鐘設備軟件具有兩個已知時間戳T,可以得出從時鐘到主時鐘的延時計算公式:
在式(3)、式(4)中,有一個未知量即主從時鐘間的時間差Tms,所以不可能求解出Tmsd或Tsmd。然而IEEE-1588協議的一個重要的假設為“傳輸路徑是對稱的”,即Tmsd=Tsmd=Td。那么可以得出平均路徑延時Td:
從時鐘需同步于主時鐘的時間,以上所有的計算由從時鐘完成。從時鐘從主時鐘設備的FollowUp消息中得到T,接收FollowUp消息后得到自身的接收硬件時間戳T,發送PDlayReq消息得到自身的發送硬件時間戳T以及從主時鐘設備PDlayResp消息中抽取的硬件時間戳T。
4.3 從時鐘時間調整
計算出從主時鐘之間的時延后,需對從時鐘作出時間調整。這里包括兩方面:(1)需加上與主時鐘的絕對偏差以調整自身的絕對時間;(2)調整自身的時鐘頻率與主時鐘同步。
如圖5所示,調整從時鐘的控制律,從時鐘與主時鐘之間的差別驅動了可調時鐘的運行。可調時鐘分兩個步驟進行,使得從時鐘的時間增長不產生向前跳躍或向后折回:(1)當時間差大于1 s時,從時鐘采用絕對時間調整;(2)當時間差在1 s內時,從時鐘采用頻率調節。
5 試驗測試結果
測試環境是采用兩塊時鐘板卡直接連接進行主從時鐘的對時,主從時鐘輸出的PPS通過示波器保存處理。圖6所示是實驗測試數據,橫坐標為對時次數,縱坐標為主從時延,單位為ns。
正值處理后的主從時鐘對時數據如表1所示。實驗數據表明,主從時鐘對時精度在100 ns之內,且有90.26%的數據在50 ns內。
由實驗測試數據可知,對時精度滿足電力系統應用的要求。可以得出結論:(1)通過本文介紹的在MII層標記硬件時間戳的方式,可以消除操作系統和協議棧處理產生的延時,更精確地標記硬件時間戳,從而提高了對時精度;(2)以太網PHY芯片采用美國國家半導體DP83848,因為它具有低的延時抖動特性,百兆網速的點對點主從對時產生的物理層延時抖動非常微小。
參考文獻
[1] IEC 61850.Communication networks and systems in substa-tions[S].2003.
[2] 國家電網公司.智能變電站技術導則[Z].2009.
[3] 王水魚,魏傳均.基于IEEE 1588的智能變電站時鐘同步技術研究[J].微型機與應用,2012,31(23):78-81.
[4] 黃健,劉鵬,楊瑞民.IEEE 1588精確時鐘同步協議從時鐘設計[J].電子技術應用,2010,36(7):91-97,108.
[5] 魏豐,孫文杰.IEEE-1588協議時鐘同步報文的精確時間標記方法研究[J].儀器儀表學報,2009,30(1):162-169.
[6] 胡永春,張雪松,許偉國,等.IEEE-1588時鐘同步系統誤差分析及其檢測方法[J].電力系統自動化,2010,34(21):107-110.
[7] 陳炯聰.IEEE 1588同步技術在電力系統中的應用[M].北京:中國電力出版社,2012.
[8] IEEE Std.1588-2008.1588 IEEE standard for a precision clock synchronization protocol for networked measurement and control systems[S].2008.