基于IEEE1588協(xié)議的精確時鐘同步算法改進
隨著計算機和互聯(lián)網(wǎng)的迅速發(fā)展,基于網(wǎng)絡的分布式應用越來越普及。為了確保分布式網(wǎng)絡化的終端能夠實現(xiàn)精確的數(shù)據(jù)采集、運行控制等實時性任務,需要整個系統(tǒng)具有統(tǒng)一的參考時間,并且應該使所有分布式終端的本地時鐘與該系統(tǒng)時間保持同步。越來越多的工業(yè)測量和控制系統(tǒng)對時鐘同步的精度要求也越來越高,尤其是在大多數(shù)以工業(yè)以太網(wǎng)為基礎的控制系統(tǒng)中,已經(jīng)對時鐘同步提出了微妙級的同步要求。特別是在分布式控制系統(tǒng)中,考慮到實時性的調度和控制,對時間統(tǒng)一的要求就更為嚴格。傳統(tǒng)的時間同步技術網(wǎng)絡時間協(xié)議(Network time protocol,NTP)已經(jīng)無法滿足這種精度要求,比如對時鐘同步精度要求非??量痰腡DSCDMA網(wǎng)絡就采用GPS衛(wèi)星信號進行授時,雖然精度可以保證,但是GPS系統(tǒng)造價昂貴、安裝復雜、兼容性差的缺點使得運營商不得不考慮其替代方案。
本文引用地址:http://www.ex-cimer.com/article/201609/303777.htm為了徹底解決分布式網(wǎng)絡化測控系統(tǒng)的實時性問題,很多研究機構和測控公司紛紛投入人力、物力進行這方面的研究與實驗。美國電氣和電子工程師協(xié)會(IEEE)開發(fā)并發(fā)布了“網(wǎng)絡測量和控制系統(tǒng)的精密時鐘同步協(xié)議標準(Precision cloek synchronization Drotocol for networked measurement and control systems)”,即IEEE1588協(xié)議,簡稱為精確時間同步協(xié)議(Precision Time Protocol,PTP)。IEEE15 88協(xié)議的發(fā)展和成熟提供了一種低成本高精度的網(wǎng)絡時鐘同步解決方案。IEEE1588定義了一種用于由網(wǎng)絡通訊、本地計算和分布式對象等技術實現(xiàn)的現(xiàn)代測量和控制系統(tǒng)的精確時鐘同步協(xié)議。該協(xié)議支持系統(tǒng)范圍的時鐘同步,即可以用于廣域的以太網(wǎng)中,也可用于支持多點歡送的局域網(wǎng)中,能夠實現(xiàn)亞微妙級的時間同步精度。IEEE1588協(xié)議采用了發(fā)布者和接收者的P/S模式,主時鐘擔當時間發(fā)布者的角色,從時鐘擔當接受者的角色。IEEE1588精確時鐘同步算法由于其高同步精度、低成本實現(xiàn)、方便安裝與維護等優(yōu)越性,在供電管理、工業(yè)控制、測試和測量、網(wǎng)絡通信等鄰域得到了廣泛的應用。
1 IEEE1588同步原理
IEEE1588通過交換報文來確定主時鐘Master和從時鐘Slave之間的時間偏差及報文傳輸?shù)木W(wǎng)絡延遲。首先,主時鐘節(jié)點Master端周期性的發(fā)送同步報文(Sync消息)給從時鐘Slave端,Sync消息中包括其離開主時鐘時的時間t1,如果采用兩步機制,則將同步包文時間戳t1打包到跟隨報文(Follow Up消息),緊接著發(fā)送Follow Up消息。Slave接收后記錄該消息到達時間戳t2;從時鐘發(fā)Delay_Req消息給主時鐘,并記錄Delay_Req的離開時刻t3;主時鐘記錄Delay_Req到達時間t4,并通過Delay_Resp把t4發(fā)回給從時鐘Slave。從時鐘Slave根據(jù)時間戳t1,t2,t3,t4來計算主從時鐘的時間偏差及傳輸?shù)木W(wǎng)絡延遲,并用時間偏差調整自身時鐘,直到與主時鐘同步,如圖1所示。
這里我們把主從時鐘的時間偏差記作△toffset,而發(fā)送同步報文Sync消息傳輸需要的時間記作△tdelay12,發(fā)送Delay_Req消息傳輸需要的時間記作△tdelay34,則它們有公式(1)關系。
從原理中可以看出傳輸?shù)木W(wǎng)絡延遲嚴重影響時鐘同步精度。傳輸?shù)木W(wǎng)絡延遲包含協(xié)議棧、存貯轉發(fā)及物理網(wǎng)絡上的傳輸時延。物理網(wǎng)絡所產生的線路延時一般是穩(wěn)定的,而協(xié)議棧及存貯轉發(fā)在運行過程中由于受不確定因素影響會產生較大的抖動,這對同步的精度有較大的影響。為此IEEE1588協(xié)議提出了一種基于軟件和硬件相結合的時間同步方法,將時間戳的標記點下移到MAC層和PHY層之間,即圖2中的A點,降低協(xié)議棧及業(yè)務流量對同步時間的影響,使同步過程中的主要延時為物理層延時,目前已經(jīng)有很多Switch芯片、PHY芯片都支持硬件打時間戳。
2 時鐘同步算法的改進
只有當網(wǎng)絡雙向傳輸是完全對稱的,即△tdelay=△tdelay12=△tdelay34時,才能夠保證同步的精確性。但在現(xiàn)實中的網(wǎng)絡系統(tǒng)中這只能是一種理想情況,在網(wǎng)絡上有較大負載的情況下,這種假設很難保證。為了有效減小遠程末端的串擾,目前使用網(wǎng)絡電纜在設計時就采用了一些非對稱的設計,而許多收發(fā)器采用的也是不對稱的傳送和接收路徑。在這種情況下,網(wǎng)絡負載越大,不同傳輸方向上延遲Delay越不可能相等,這樣就會使計算出的延時與實際的主從延時相差較大。另外,如果主時鐘和從時鐘使用的收發(fā)器的時間特性不同,這種不對稱性將是無法補償?shù)?,從而嚴重影響時鐘同步精度。現(xiàn)實中的網(wǎng)絡傳輸延遲肯定是非對稱的,根據(jù)IEEE1588的規(guī)定,上文中給出的計算網(wǎng)絡延遲的式(3)可在必要時作出修改,以滿足實際情況的需要。
針對網(wǎng)絡傳輸路徑的不對稱性,以及發(fā)送同步報文Sync消息傳輸需要的時間△tdelay12和發(fā)送Delay_Req消息傳輸需要的時間△tdelay34具有不同的更新周期,可以考慮一種基于加權平衡的同步改進算法,所以若將網(wǎng)絡延遲△tdelay取為△tdelay12和△tdelay34的加權平均值,則可具有較好的精確度。不妨標記傳輸?shù)木W(wǎng)絡延遲△tdelay34為網(wǎng)絡延遲△tdelay12的w倍(w的測量計算不在本文討論,文獻給出了具體的實現(xiàn)方法)
在時間源穩(wěn)定運行下,主從時鐘間的時間偏差△toffset測量值在統(tǒng)計學理論上符合正態(tài)分布,或者分布近似高斯分布。根據(jù)IEEE1588標準同步算法計算得出的時間偏差測量值△toffsset,若簡單認為就是主從時鐘間的相位差而直接進行相位的調整,由于時間偏差△toffset符合正態(tài)分布,則會出現(xiàn)從時鐘相位的正負矢量方向上的無間歇運動,時鐘的運行將很不穩(wěn)定,不但起不到適中同步的效果,反而可能使系統(tǒng)的時間發(fā)生嚴重的錯亂。故在實現(xiàn)精確時間同步算法的時間同步系統(tǒng)中,由于網(wǎng)絡延時等不可確定因素的影響,計算得出的主從時鐘偏差測量值與理論值存在一定誤差,為進一步提高時間同步精度,一般運用統(tǒng)計學方法計算大量主從時鐘偏差樣本的算術平均值,無限逼近主從相位偏差的數(shù)學期望值,即式(7)。不足的是當采集到的△toffset測量值不夠理想時,計算出的算術平均值可能會遠離其期望值,或者在主時鐘源時間發(fā)生跳變時,通常的調相操作可能會使得從時鐘相位發(fā)生較大位移,降低同步精度和系統(tǒng)的穩(wěn)定性。
評論