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