尹 捷 胡立生
(上海交通大學電子信息與電氣工程學院,上海 200240)
統計方法在IEEE1588同步協議中的應用
尹 捷 胡立生
(上海交通大學電子信息與電氣工程學院,上海 200240)
對IEEE 1588同步機制進行分析,根據延時的來源提出了一套結合濾波和統計的同步算法來減小不對稱性造成的誤差。該算法基于一定的時間窗,累計主從時鐘偏差樣本,通過對這些樣本采用統計方法獲取精確的offset值來對從時鐘進行校正。最終在Matlab中驗證了該算法的有效性。
時鐘同步 IEEE 1588 統計 時間窗
當前,工業(yè)以太網因其成本低廉、通信速率高、軟硬件資源豐富及易于開發(fā)等特點已經被廣泛應用于工業(yè)控制領域,例如文獻[1]所提及的三塘湖輸油管道SCADA系統。與商用以太網相比,工業(yè)以太網要求設備可以在惡劣環(huán)境下正常工作,對實時性、可靠性及安全性等多方面提出了較高的要求。
筆者主要對工業(yè)以太網中的時鐘同步精度要求進行研究。從縱向來看,時鐘同步一直以來都是工業(yè)中重要的影響因素,而且當今的工業(yè)環(huán)境下對時鐘同步精度從之前的微秒級別提高到了納秒級別。從橫向來看,工業(yè)以太網中不斷推出新的時間同步技術,例如網絡時間協議(Networking Time Protocol,NTP),它采用典型的客戶端/服務器授時方式,即客戶端與服務器通過交換含有時間戳的報文來完成時間同步,最新的NTPv4能夠達到200ms的時鐘精度。但是,工業(yè)以太網越來越復雜的環(huán)境已經對精度提出了更高的要求,使得NTP/SNTP毫秒級的同步精度已不能滿足某些通信、運動控制等工程領域的要求。
為了滿足更高的同步精度,IEEE 1588定義了一種精確時間協議PTP(Precision Time Protocol),用于對標準以太網或其他采用多播技術的分布式總線系統中的時鐘進行納秒級同步。IEEE 1588采用了發(fā)布者和接收者的P/S模式,主時鐘在同步系統中對外發(fā)布精確時鐘,從時鐘則要接收主時鐘的信號并校正本地時鐘,從而實現整個系統的同步運行。但是,IEEE 1588在實際的應用場合中仍然存在很多因素會影響到實際精度。例如不可預知的鏈路延時抖動、時鐘源頻率波動及軟件時間戳誤差[2]等。其中最主要的因素是不可預知的鏈路延時抖動,該抖動會嚴重破壞時間誤差計算精度。所以,筆者研究的目的是通過分析提出一套基于統計與濾波相結合的校正算法來對鏈路延時進行修正,同時提供該同步系統的魯棒性。
PTP系統采用主從層次結構來對時鐘進行同步,圖1為其原理圖。
圖1 PTP時間同步原理
其中,T1為主時鐘發(fā)送同步報文的時間,T2為從時鐘收到同步報文的時間,T3為從時鐘發(fā)送延時請求報文的時間,T4為主時鐘收到延時請求報文的時間。在IEEE 1588中做出了一個假設,即假設同步報文的接收延時等于延時請求報文的發(fā)送延時,或者說,假設傳輸路徑是對稱的。
從時鐘相對于主時鐘的時間偏差Toffset和網絡傳輸延時Tdelay可以根據下面兩個公式來計算:
Toffset=(T2-T1)-Tdelay
(1)
(2)
但是,在協議的實際應用場合下,由于存在報文傳輸延時抖動(PDV),所以上述所做的傳輸路徑對稱這一假設往往是不成立的。而且,在精度要求極高的場合中,PDV往往會帶來很大的誤差?;诖?,筆者首先對PDV誤差模型進行了分析,然后采用統計方法,在從時鐘處通過對一定數量的同步報文樣本的統計分析來實現同步。
PTP的路徑傳輸延時主要涉及到兩個報文:Sync報文和Delay_Req報文。在IEEE 1588中使用這兩個報文傳輸延時的平均值來代替鏈路傳輸延時。但在實際中,雙向的傳輸路徑往往是非對稱的。傳輸的網絡延時包含協議棧、存貯轉發(fā)和物理網絡上的傳輸延時。其中物理網絡的傳輸延時一般是穩(wěn)定的,但是,協議棧和存貯轉發(fā)卻會導致傳輸延時有較大的波動,這嚴重影響了同步精度。
通過分析,可以用以下數學模型來描述傳輸延時:
D=Dnet+Dq+ε
(3)
其中,Dnet表示在不考慮延時漂移和報文排隊的情況下的延時,因此,在沒有排隊發(fā)生的情況下,即所有中間PTP時鐘設備都空閑,Dnet就等于平均傳輸時間,它的值取決于網絡配置環(huán)境;Dq代表由于排隊引發(fā)的延時;ε代表延時漂移。
在同步過程中,每一個報文都有自己具體的傳輸延時,這里用D(i)來表示第i個報文的延時。Dnet的值主要取決于網絡配置,只要網絡配置沒有改變,Dnet便保持常量。所以,從統計學角度可做如下描述:Dnet(i)等于Dnet(i-1)的概率為pstable,且pstable接近于1。由于Dnet已經代表了平均傳輸延時,所以ε只考慮傳輸時間相對平均值的偏差。從統計學角度,可以假設ε的期望值E(ε)=0。另外,假設ε的方差為σ2,隨后的實現是獨立同分布的。為了處理漂移的影響,必須要知道ε,而這個變量對于一個給定的交換機而言幾乎是常量[3],可以先測出來。對于排隊延時Dq,即當一個報文即將傳入的設備正在處理其他報文時,它會被放入一個緩沖隊列并進行等待,這個延時主要依賴于設備的忙碌時間,如果設備忙碌,那么報文必須進行等待,這會導致傳輸延時加大,而如果設備空閑,那么報文可直接傳遞,從而引發(fā)傳輸延時的較大波動。從統計角度可得Dq=B·W,其中W是報文的等待時間隨機變量,其分布不可知;B是設備忙碌的時間占比,B等于1的概率為pbusy。
根據上文對延時抖動來源的數學分析,筆者提出一套基于統計方法的改進算法,以減少延時抖動帶來的誤差。
在時間源穩(wěn)定運行的情況下,主從時鐘間的時鐘偏差offset測量值理論上符合正態(tài)分布,或者近似高斯分布[4]。如果每次測量出一個offset就直接去進行從時鐘相位校正,那么勢必導致從時鐘相位在正負矢量方向上無間歇運行,校正后反而非常不穩(wěn)定,所以采用N個時間窗(圖2)來對offset測量值進行統計,然后使用處理后的值去進行校正[5]。
圖2 第k輪時間窗
算法思路為:假設第k輪時間窗里的第i次同步中,在路徑對稱的假設下得到的初始校正值為offsetki,可以先利用該初始校正值與前一位的修正值Ok(i-1)進行第一次修正,得到當前的修正值Oki,然后繼續(xù)統計第k輪時間窗的后面(N-1-i)次同步修正值。當第k輪時間窗里所有的修正值均計算出來后,對這一輪的所有修正值取均值,得到第二次修正值Ok,然后使用該修正值去對從時鐘進行校正。
根據上節(jié)所述,變量Dq正常情況下保持恒定,即同步系統中流量負載保持正常時,Dq會保持一個很小的排隊時間值,接近于零。但是,一旦網絡負載突然加劇,Dq會突然增大,而且網絡負載越大,Dq變化越明顯。這直接導致的后果是offset測量值與前一時刻測量值有明顯變化。但是,并不是只要網絡負載加大就會導致offset大幅波動,offset測量值波動取決于報文來回路徑的傳輸延時均值,也就是說網絡負載的波動直接影響到平均delay值與實際delay值之間的誤差。對于offset突變,有兩種可能的原因,一種是網絡配置變化,由于傳輸路徑不同可能會導致offset變化;還有一種就是排隊變化,這種變化是完全隨機的[6]。
對此,筆者采取的改進算法是:設定一個閾值,如果offset變化在閾值范圍內,則不做修改;但是如果超過了該閾值,那么把它限定在閾值范圍內,以防止最終校正值有太大波動。閾值的選取標準是盡量讓offset波動的方差較小,取閾值為tσi,其中,σi為該時間窗內前面(i-1)次測量的方差值。通過t可以動態(tài)調節(jié)閾值范圍,進而計算可以得到波動較穩(wěn)定的偏差值Oki:
Oki=αg(offsetki-offsetk(i-1))
(4)
(5)
通過對算法的改進,在Matlab的同步時鐘系統平臺上進行測試,可以看到PTP同步精度較之前有了明顯的改進。圖3、4分別為改進前后的PTP同步測試結果。
圖3 改進前的主從時鐘偏差
從圖中對比可以看出,筆者所提出的算法可以將主從時鐘偏差限制在很小的范圍內。這是由于該算法能夠提高主從偏差的魯棒性,從而較好地處理較大的鏈路延時,使從時鐘的運行更加穩(wěn)定。
筆者從理論角度分析了延時不對等性對IEEE 1588協議精度產生的影響,通過對誤差建模,依次針對內部誤差產生的原因,提出了相關的統計方法來進行校正。該方法主要是通過累計主從偏差樣本,然后利用誤差特性對樣本進行處理。同時,該方法也考慮到鏈路傳輸的報文排隊引起的傳輸時間突變,并對此進行了處理。最終的實驗結果表明:該算法可以較好地提高同步報文精度,降低鏈路延時不對稱性對精度造成的影響。
[1] 杜建林,方愛國.基于NTP協議的GPS時間服務器在SCADA系統中的應用[J].化工自動化及儀表,2012,39(5): 601~603.
[2] 謝形果.IEEE1588時鐘同步報文硬件標記研究與實現[D].武漢:華中科技大學,2008.
[3] Carmelo I, Christoph H,Hans W.Synchronizing IEEE 1588 Clocks under the Presence of Significant Stochastic Network Delays[C].2005 Conference on IEEE 1588. Winterhur CH:IEEE,2005.
[4] IEEE Std 1588,Precision Clock Synchronization Protocol for Networked Measurement and Control Systems[S].New York:Institute of Electricaland Electronic Engineers,2008.
[5] 劉建成.基于IEEE1588協議的精確時鐘同步算法改進[J].電子設計工程,2015,23(4):105~107.
[6] 張濤,胡立生.IEEE1588標準下準確時間值的獲取方法[J].化工自動化及儀表,2014,41(10):1181~1184.
ApplicationofStatisticalMethodsinImprovingTimeSynchronizationPerformanceofIEEE1588
YIN Jie, HU Li-sheng
(SchoolofElectronicInformationandElectricalEngineering,ShanghaiJiaotongUniversity,Shanghai200240,China)
Through analyzing IEEE 1588 clock synchronization mechanism and basing on the source of stochastic delay, a time synchronization algorithm which combines filtering and statistic method was proposed to reduce asymmetric error. This algorithm has fixed-window method based and master-slave clock deviation samples accumulated through statistical methods to achieve exactoffsetvalues so as to implement calibration. Simulation in Matlab verifies the effectiveness of this algorithm.
time synchronization, IEEE 1588, statistics, time window
TP393
A
1000-3932(2016)05-0505-04
2016-03-25(修改稿)