文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2010)07-0094-04
在分布式網(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.