《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計應(yīng)用 > IEEE 1588精確時鐘同步協(xié)議從時鐘設(shè)計
IEEE 1588精確時鐘同步協(xié)議從時鐘設(shè)計
來源:電子技術(shù)應(yīng)用2010年第7期
黃 健, 劉 鵬, 楊瑞民
安徽省電子制約重點(diǎn)實(shí)驗(yàn)室, 安徽 合肥230037
摘要: 時鐘漂移與傳輸延時的不確定性是分布式系統(tǒng)時鐘同步中不容忽視的問題,它直接影響同步精度。分析了IEEE 1588精確時鐘同步協(xié)議的同步機(jī)制,設(shè)計了從時鐘的硬件結(jié)構(gòu),提出了結(jié)合數(shù)據(jù)濾波和鎖相環(huán)PI調(diào)節(jié)的高精度時鐘同步算法。
中圖分類號: TP393
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2010)07-0094-04
Design of the slave clock node about IEEE 1588 precise clock synchronization protocol
HUANG Jian, LIU Peng, YANG Rui Min
Key Laboratory of Electronic of Restriction Anhui Province, Hefei 230037, China
Abstract: Clock drift and undetermined delay of transmission are the serious problems in the distributed system, which will deteriorate the precision of clock synchronization. To improve the precision, this paper analyzes the mechanism of synchronization and designs the hardware structure of the slave clock node about IEEE 1588 precise clock synchronization protocol, proposes the precise clock synchronization algorithm, which combined data filter and PI control based on PLL.
Key words : IEEE 1588; PI; clock synchronization; distributed system

    在分布式網(wǎng)絡(luò)中,由于網(wǎng)絡(luò)傳輸時延的不確定性,導(dǎo)致采用網(wǎng)絡(luò)命令觸發(fā)的同步精度差;同時,由于分布式網(wǎng)絡(luò)各節(jié)點(diǎn)位置的分散性,不適合采用硬件同步提供高精度的同步觸發(fā)。基于時間信息的同步觸發(fā)方式特別適合于分布式遠(yuǎn)距離同步系統(tǒng),其觸發(fā)方式靈活,不受距離的限制[1]。
 IEEE 1588 的基本功能是使分布式網(wǎng)絡(luò)內(nèi)的所有時鐘與最精確時鐘保持同步,它定義了一種精確時間協(xié)議PTP(Precision Time Protocol),用于對標(biāo)準(zhǔn)以太網(wǎng)或其他采用多播技術(shù)的分布式總線系統(tǒng)中的傳感器、執(zhí)行器以及其他終端設(shè)備中的時鐘進(jìn)行亞微秒級同步[2]。IEEE 1588可以以純軟件的方式實(shí)現(xiàn),也可以用能夠提供更精確的時間同步的專門的硬件實(shí)現(xiàn)。時間的精度和不確定性主要依模塊和IEEE 1588執(zhí)行的情況而定,一般期望在幾十納秒到幾十亞微秒間。IEEE 1588用于需要時間精度比NTP高的局域分布系統(tǒng),也用于一些不能接受GPS高成本或者不能接收到GPS信號的應(yīng)用場合。
1 同步機(jī)制
 PTP協(xié)議通過最佳主時鐘算法建立主從時鐘結(jié)構(gòu)后,使用UDP通信協(xié)議,每個從時鐘通過與主時鐘交換同步報文而與主時鐘達(dá)到同步[2]。同步過程分為兩個階段,偏移測量階段和延遲測量階段,如圖1所示。


1.1 偏移測量階段
   偏移測量階段是指測量主時鐘與從時鐘之間的時間偏移量,并在從時鐘上消除這些偏移。主時鐘每隔2 s向從時鐘發(fā)送一個同步報文Sync,并記下它發(fā)出的準(zhǔn)確時刻t1。當(dāng)從時鐘接收到Sync報文時立刻把當(dāng)前時刻t2記下。由于偏移量的計算是在從時鐘處進(jìn)行,在此過程中需要用到時標(biāo)t1,因此,必須在Sync報文發(fā)出后用一個跟隨報文(Follow up)把時標(biāo)t1裝入并發(fā)送給從時鐘。

1.2 延遲測量階段
   延遲測量階段用于確定主時鐘與從時鐘之間報文傳輸?shù)难訒r。當(dāng)從時鐘需要測量網(wǎng)絡(luò)傳輸延遲時,它就向主時鐘發(fā)送一個延時請求報文Delay_Req,并在報文發(fā)出的同時記下當(dāng)前時刻t3,在主時鐘接收到延時請求報文的時刻立即打上時標(biāo)t4。由于傳輸延時的計算也是在從時鐘處進(jìn)行,需要用到時標(biāo)t4,因此,需要用一個延時響應(yīng)報文Delay_Resp裝上時標(biāo)t4并由主時鐘發(fā)送給從時鐘。從時鐘在得到t3與t4之后,可得到下列公式:

2 報文內(nèi)部延時分析和時間檢測點(diǎn)的選擇
 從PTP協(xié)議的同步原理可以知道,要實(shí)現(xiàn)高精度的同步,必須有高準(zhǔn)確度的時間測量,即準(zhǔn)確地獲取同步報文發(fā)送和接收的時間。在一個IEEE 1588應(yīng)用系統(tǒng)中,報文發(fā)出一般依次經(jīng)過應(yīng)用程序、操作系統(tǒng)、網(wǎng)絡(luò)協(xié)議棧和以太網(wǎng)控制器,最后通過網(wǎng)絡(luò)發(fā)送到接收端。報文到達(dá)接收端后,依次通過以太網(wǎng)控制器、網(wǎng)絡(luò)協(xié)議棧和操作系統(tǒng),最后通過操作系統(tǒng)達(dá)到應(yīng)用程序,如圖2所示。

   為了消除操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議棧帶來的波動,達(dá)到高的準(zhǔn)確度和精確度,對傳輸報文的時間打標(biāo)越靠近物理層越好[3]。在IEEE 1588中定義了兩種時間打標(biāo)的方法,一種是沒有帶硬件輔助;另一種是帶硬件輔助。
 沒有帶硬件輔助的方法是在軟件層對發(fā)送和接收報文的時間做標(biāo)記。帶硬件輔助的方法是在連接介質(zhì)訪問控制層(MAC)和物理層(PHY)的介質(zhì)獨(dú)立接口(MII)接口處安裝一個特殊的時鐘同步包檢測器和時間標(biāo)記單元,如使用FPGA或ASIC實(shí)現(xiàn),對發(fā)出或接收到的每個特殊報文(如:Sync和Delay_Req)打上時標(biāo)。由于在網(wǎng)絡(luò)中發(fā)送和接收的包都要經(jīng)過硬件層,而硬件層的延時都是固定的,所以這種方法的精確度是最高的。典型的從時鐘設(shè)計如圖3所示。

3 IEEE 1588從時鐘設(shè)計
3.1 可調(diào)時鐘的硬件設(shè)計

 時鐘是IEEE 1588設(shè)備的核心單元,為了達(dá)到設(shè)計的精度,一般使用基于硬件的時鐘模塊。在時鐘的設(shè)計中有三個重要的模塊需要設(shè)計,一是時鐘本身,二是驅(qū)動時鐘的時鐘,三是時鐘速率調(diào)節(jié)電路。
 時間由兩個32位的二進(jìn)制數(shù)表示,其中32位無符號的整形寄存器組成秒單位,30位無符號的整形亞秒寄存器和2位無符號的整形分?jǐn)?shù)亞秒寄存器組成了秒以下的單位。如圖4所示,速率計數(shù)寄存器和速率調(diào)節(jié)都是32位的,高2位用于表示分?jǐn)?shù)亞秒時間,系統(tǒng)時鐘是50 MHz[4]。



 每個從時鐘在每個同步間隙必須利用計算的時間偏移調(diào)整本地時鐘,無限地逼近主時鐘,使這個時間偏移減小到最小。在目前的PTP協(xié)議中并沒有說明從時鐘如何利用這個偏移,而這個時間調(diào)整在同步中十分重要,參考文獻(xiàn)[3,5-6]都描述了一些如何減少主從誤差的方法,如使用對偏移數(shù)據(jù)預(yù)濾波和PI控制環(huán)的方法。
3.2 時鐘數(shù)據(jù)濾波處理
 對主從時鐘偏移的數(shù)據(jù)進(jìn)行濾波處理,可以減少因?yàn)榫W(wǎng)絡(luò)的原因造成的偏移數(shù)據(jù)抖動、跳變以及晶體震蕩器的方差造成的時鐘的擺動,同時減小控制器的輸入噪聲,最終使從時鐘的抖動減小[5]。實(shí)現(xiàn)采用將時鐘偏移和網(wǎng)絡(luò)延時分別濾波,其原理框圖如圖5所示。

 對偏移數(shù)據(jù)的濾波使用有限沖擊響應(yīng)(FIR)的濾波器,該濾波器采用常見的求和平均:

 S一般取整數(shù),S越大,濾波器的截止頻率越小。系統(tǒng)剛開始時,取S=1,隨著時間增加網(wǎng)絡(luò)延時逐漸固定起來,接著在每隔延時測量周期將S增大,直到達(dá)到最大值。
3.3 從時鐘伺服控制模型
 對從時鐘逼近主時鐘的時鐘同步模型對應(yīng)的伺服模型如圖6所示。系統(tǒng)包括一個控制器、采樣保持和代表從時鐘的被控目標(biāo)。誤差信號e(t)表示本地時鐘的時間與遠(yuǎn)端主時鐘的時間的時間差,也就是濾波算法中計算得到的時間偏移offset。誤差信號在每過一個時間被采樣,代表同步的時間間隔[6]。所以整個控制模型是一個離散的控制系統(tǒng)。

 在整個系統(tǒng)控制模型中,時鐘伺服的性能好壞取決于PI控制器的常數(shù)大小。首先必須保證控制器的閉環(huán)是穩(wěn)定的,其次是要保證控制器的響應(yīng)滿足系統(tǒng)同步時鐘需求,下面分析如何選擇控制器的參數(shù)[6]。
 PI控制器的微分方程如下:

  

    當(dāng)取P=0.7和I=0.1,P=0.7和I=0.3,對應(yīng)的閉環(huán)響應(yīng)曲線如圖8所示,采樣時間是2 s。

 從仿真圖可以看出,積分常數(shù)越大,系統(tǒng)的響應(yīng)震蕩和過沖越大,但是響應(yīng)的平均幅度很快接近1,也就是同步過程很快。所以在實(shí)際系統(tǒng)選取時,可以折中考慮,取P=0.7和I=0.2,既可以防止過沖又可以滿足快速同步的要求,如圖9中m=0所示。

   考慮計算延時不為0的情況時,根據(jù)式(16)可以畫出相應(yīng)系統(tǒng)的單位階躍響應(yīng)曲線。從曲線圖9可以看出,即使在m≠0的情況,系統(tǒng)的響應(yīng)也是穩(wěn)定的。
 IEEE1588時鐘同步協(xié)議是LXI A類和B類設(shè)備中基于時間的同步觸發(fā)方式。時鐘同步算法直接影響到分布式系統(tǒng)的運(yùn)算準(zhǔn)確性和控制穩(wěn)定性。本文在FPGA中設(shè)計了從時鐘的硬件結(jié)構(gòu),并采用數(shù)據(jù)濾波與PI算法相結(jié)合的復(fù)合調(diào)節(jié)方法,分析了整個同步控制系統(tǒng)的穩(wěn)定性,實(shí)現(xiàn)了從節(jié)點(diǎn)邏輯時鐘對主節(jié)點(diǎn)時鐘的動態(tài)跟蹤。
參考文獻(xiàn)
[1]  王剛,黃飛,喬純捷,等. 分布式網(wǎng)絡(luò)時鐘同步研究[J]. 儀器儀表學(xué)報, 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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。