文獻標識碼: A
文章編號: 0258-7998(2010)07-0094-04
在分布式網絡中,由于網絡傳輸時延的不確定性,導致采用網絡命令觸發(fā)的同步精度差;同時,由于分布式網絡各節(jié)點位置的分散性,不適合采用硬件同步提供高精度的同步觸發(fā)?;跁r間信息的同步觸發(fā)方式特別適合于分布式遠距離同步系統(tǒng),其觸發(fā)方式靈活,不受距離的限制[1]。
IEEE 1588 的基本功能是使分布式網絡內的所有時鐘與最精確時鐘保持同步,它定義了一種精確時間協(xié)議PTP(Precision Time Protocol),用于對標準以太網或其他采用多播技術的分布式總線系統(tǒng)中的傳感器、執(zhí)行器以及其他終端設備中的時鐘進行亞微秒級同步[2]。IEEE 1588可以以純軟件的方式實現(xiàn),也可以用能夠提供更精確的時間同步的專門的硬件實現(xiàn)。時間的精度和不確定性主要依模塊和IEEE 1588執(zhí)行的情況而定,一般期望在幾十納秒到幾十亞微秒間。IEEE 1588用于需要時間精度比NTP高的局域分布系統(tǒng),也用于一些不能接受GPS高成本或者不能接收到GPS信號的應用場合。
1 同步機制
PTP協(xié)議通過最佳主時鐘算法建立主從時鐘結構后,使用UDP通信協(xié)議,每個從時鐘通過與主時鐘交換同步報文而與主時鐘達到同步[2]。同步過程分為兩個階段,偏移測量階段和延遲測量階段,如圖1所示。
1.1 偏移測量階段
偏移測量階段是指測量主時鐘與從時鐘之間的時間偏移量,并在從時鐘上消除這些偏移。主時鐘每隔2 s向從時鐘發(fā)送一個同步報文Sync,并記下它發(fā)出的準確時刻t1。當從時鐘接收到Sync報文時立刻把當前時刻t2記下。由于偏移量的計算是在從時鐘處進行,在此過程中需要用到時標t1,因此,必須在Sync報文發(fā)出后用一個跟隨報文(Follow up)把時標t1裝入并發(fā)送給從時鐘。
1.2 延遲測量階段
延遲測量階段用于確定主時鐘與從時鐘之間報文傳輸的延時。當從時鐘需要測量網絡傳輸延遲時,它就向主時鐘發(fā)送一個延時請求報文Delay_Req,并在報文發(fā)出的同時記下當前時刻t3,在主時鐘接收到延時請求報文的時刻立即打上時標t4。由于傳輸延時的計算也是在從時鐘處進行,需要用到時標t4,因此,需要用一個延時響應報文Delay_Resp裝上時標t4并由主時鐘發(fā)送給從時鐘。從時鐘在得到t3與t4之后,可得到下列公式:
2 報文內部延時分析和時間檢測點的選擇
從PTP協(xié)議的同步原理可以知道,要實現(xiàn)高精度的同步,必須有高準確度的時間測量,即準確地獲取同步報文發(fā)送和接收的時間。在一個IEEE 1588應用系統(tǒng)中,報文發(fā)出一般依次經過應用程序、操作系統(tǒng)、網絡協(xié)議棧和以太網控制器,最后通過網絡發(fā)送到接收端。報文到達接收端后,依次通過以太網控制器、網絡協(xié)議棧和操作系統(tǒng),最后通過操作系統(tǒng)達到應用程序,如圖2所示。
為了消除操作系統(tǒng)和網絡協(xié)議棧帶來的波動,達到高的準確度和精確度,對傳輸報文的時間打標越靠近物理層越好[3]。在IEEE 1588中定義了兩種時間打標的方法,一種是沒有帶硬件輔助;另一種是帶硬件輔助。
沒有帶硬件輔助的方法是在軟件層對發(fā)送和接收報文的時間做標記。帶硬件輔助的方法是在連接介質訪問控制層(MAC)和物理層(PHY)的介質獨立接口(MII)接口處安裝一個特殊的時鐘同步包檢測器和時間標記單元,如使用FPGA或ASIC實現(xiàn),對發(fā)出或接收到的每個特殊報文(如:Sync和Delay_Req)打上時標。由于在網絡中發(fā)送和接收的包都要經過硬件層,而硬件層的延時都是固定的,所以這種方法的精確度是最高的。典型的從時鐘設計如圖3所示。
3 IEEE 1588從時鐘設計
3.1 可調時鐘的硬件設計
時鐘是IEEE 1588設備的核心單元,為了達到設計的精度,一般使用基于硬件的時鐘模塊。在時鐘的設計中有三個重要的模塊需要設計,一是時鐘本身,二是驅動時鐘的時鐘,三是時鐘速率調節(jié)電路。
時間由兩個32位的二進制數表示,其中32位無符號的整形寄存器組成秒單位,30位無符號的整形亞秒寄存器和2位無符號的整形分數亞秒寄存器組成了秒以下的單位。如圖4所示,速率計數寄存器和速率調節(jié)都是32位的,高2位用于表示分數亞秒時間,系統(tǒng)時鐘是50 MHz[4]。
每個從時鐘在每個同步間隙必須利用計算的時間偏移調整本地時鐘,無限地逼近主時鐘,使這個時間偏移減小到最小。在目前的PTP協(xié)議中并沒有說明從時鐘如何利用這個偏移,而這個時間調整在同步中十分重要,參考文獻[3,5-6]都描述了一些如何減少主從誤差的方法,如使用對偏移數據預濾波和PI控制環(huán)的方法。
3.2 時鐘數據濾波處理
對主從時鐘偏移的數據進行濾波處理,可以減少因為網絡的原因造成的偏移數據抖動、跳變以及晶體震蕩器的方差造成的時鐘的擺動,同時減小控制器的輸入噪聲,最終使從時鐘的抖動減小[5]。實現(xiàn)采用將時鐘偏移和網絡延時分別濾波,其原理框圖如圖5所示。
對偏移數據的濾波使用有限沖擊響應(FIR)的濾波器,該濾波器采用常見的求和平均:
S一般取整數,S越大,濾波器的截止頻率越小。系統(tǒng)剛開始時,取S=1,隨著時間增加網絡延時逐漸固定起來,接著在每隔延時測量周期將S增大,直到達到最大值。
3.3 從時鐘伺服控制模型
對從時鐘逼近主時鐘的時鐘同步模型對應的伺服模型如圖6所示。系統(tǒng)包括一個控制器、采樣保持和代表從時鐘的被控目標。誤差信號e(t)表示本地時鐘的時間與遠端主時鐘的時間的時間差,也就是濾波算法中計算得到的時間偏移offset。誤差信號在每過一個時間被采樣,代表同步的時間間隔[6]。所以整個控制模型是一個離散的控制系統(tǒng)。
在整個系統(tǒng)控制模型中,時鐘伺服的性能好壞取決于PI控制器的常數大小。首先必須保證控制器的閉環(huán)是穩(wěn)定的,其次是要保證控制器的響應滿足系統(tǒng)同步時鐘需求,下面分析如何選擇控制器的參數[6]。
PI控制器的微分方程如下:
當取P=0.7和I=0.1,P=0.7和I=0.3,對應的閉環(huán)響應曲線如圖8所示,采樣時間是2 s。
從仿真圖可以看出,積分常數越大,系統(tǒng)的響應震蕩和過沖越大,但是響應的平均幅度很快接近1,也就是同步過程很快。所以在實際系統(tǒng)選取時,可以折中考慮,取P=0.7和I=0.2,既可以防止過沖又可以滿足快速同步的要求,如圖9中m=0所示。
考慮計算延時不為0的情況時,根據式(16)可以畫出相應系統(tǒng)的單位階躍響應曲線。從曲線圖9可以看出,即使在m≠0的情況,系統(tǒng)的響應也是穩(wěn)定的。
IEEE1588時鐘同步協(xié)議是LXI A類和B類設備中基于時間的同步觸發(fā)方式。時鐘同步算法直接影響到分布式系統(tǒng)的運算準確性和控制穩(wěn)定性。本文在FPGA中設計了從時鐘的硬件結構,并采用數據濾波與PI算法相結合的復合調節(jié)方法,分析了整個同步控制系統(tǒng)的穩(wěn)定性,實現(xiàn)了從節(jié)點邏輯時鐘對主節(jié)點時鐘的動態(tài)跟蹤。
參考文獻
[1] 王剛,黃飛,喬純捷,等. 分布式網絡時鐘同步研究[J]. 儀器儀表學報, 2008,29(11).
[2] IEEE Std 1588-2008, IEEE Standard for a precision Clock Synchronization Protocol for Networked Measurement and Control Systems.2008.
[3] IEEE 15888 Tutorial. Conference on IEEE 1588 National Institute of Standards and Technology Gaithersburg, Maryland, USA, October 2, 2006.
[4] GUILFORD J. Design of an FPGA-based hardware IEEE-1588 implementation,IEEE-1588 Conference,October 2005.
[5] CORRELL K, BARENDT N, BRANICKY M. Design considerations for software only implementations of the IEEE 1588 Precision Time Protocol. Conference on IEEE, 2005.
[6] EIDSON J C. Measurement control and communication Using IEEE 1588. Springer-Verlag London Limited 2006.