IEEE1588和高精度時間同步的方法
2,第二步主節點向從節點發送一個“跟隨”(Follow_up)報文,這個報文包含先前的同步報文準確的發送時間的標記。從節點利用這兩個時間標記可以得到它與主節點的延遲,據此可調整它的時鐘的頻率。
3,從節點向主節點發送“延時請求”(Delay_Request報文(延時請求報文的間隔是獨立設置的,一般應較同步報文間隔長),這個報文是由從節點記錄它的準確發送時間,由主節點打上準確的接收時間標記。
4,主節點向從節點返回一個“延時響應”(Delay_ Response)報文,這個報文帶著先前的“延時請求”報文的準確的接收時間標記,從節點利用這個時間和由它所記錄的準確的發送時間,可計算出主節點和從節點之間的傳輸延遲并調整它的時鐘漂移誤差。

圖2 偏移的校正

圖3 傳輸延時的測量
圖2,圖3例示主節點與從節點之間報文的交換,圖中的時間也僅是為了理解假設的,不代表實際情況(IEEE1588中表示時間使用64位數,可以精確地表示絕對時間)。圖2表示經過兩次同步可以校正主節點與從節點之間的偏差。但無法計算傳輸延時。
經過延時報文的請求和應答以及同步報文的時間標記,可以計算出兩個方向的平均傳輸延時,在以后的計算中就可使用。實際上偏移與延時值的測量是互相影響的,要經過多次測量和計算,才會逐步收斂到接近實際值。測量時間間隔的選取很重要,選擇間隔短時通信負荷較重,間隔過長則不能保證同步的精度,所以同步和延時的測量間隔應根據同步要求和系統配置選擇。
IEEE1588并沒有規定使用的網絡,但從通信的負荷和時間要求來說,以太網是比較適合的網絡,當前實際的實現也差不多都是基于以太網的網絡。以上四種PTP報文都是基于IP多點通信(Multicast),它不限于Ethernet,并且可用于任何支持多點通信的總線系統。多點通信提供簡單化的優點,IP地址管理不需要在PTP節點上實現,這樣可以進一步擴展到很大數目的PTP節點。
4 本地時鐘的考慮
PTP協議可能達到很高的同步精度,組成龐大的同步系統,但實際系統可以根據需要達到的精度和功能組建。可以選用1級或2級時鐘作為主時鐘,也可選用3級,4級時鐘,可按價格和性能需要綜合考慮。但作為普通節點本地時鐘的振蕩器,出于成本考慮基本上只能選擇石英晶體振蕩器。但石英晶振的頻率會隨溫度,機械因素和老化漂移,其中最主要的影響是溫度,典型的不補償的石英晶振的溫度飄移是1PPM/C0,如果同步間隔是2秒,則溫度上升1度在每個同步間隔會產生2微秒的誤差。但通過對晶振的熱環境的控制,可以明顯降低漂移。
從上面論述也可知道如果本地時鐘的振蕩頻率稍有偏離,就會造成時間的偏離,而且時間的偏離是累計的會越來越大,雖然通過同步報文的計算可以校正時間,但本地時間的頻繁校正會打亂本地時鐘的連續性,使需要定時處理的任務像PID調節,通過時間段計量脈沖的速度測量等應用陷入混亂。所以在PTP系統內使用頻率可調的晶振,通過頻率的校正使本地時鐘的頻率與主時鐘同步。對這種晶振的要求是0.01%精度和0.02%的頻率可調范圍。同時PTP并不在接收同步報文后立即校正本地時鐘的時間,而是將這個偏移作為一個數據保存在端口中,通過本地時間加偏移值得到正確時間。
同時PTP定義的外部定時信號是可選特性,支持這個特性的主時鐘另外提供10MHZ頻率的曼徹斯特編碼的時鐘信號,在每秒的邊界信號跳變給出秒信號。這個定時信號可用于校正時鐘頻率。
5 關于邊界時鐘
從上面的同步原理很容易看到,在計算偏移時需要用到傳輸延時,這個延時是以前得到的測量值計算的結果,如果延時是穩定的,就能代表當次測量的延時,偏移的測量就準確。反之延時的起伏將直接影響同步的精度。點對點連接可提供最高的精度,帶路由器會增加網絡抖動,在PTP系統內通過交換機連接時,由于交換機在傳送報文時需要存儲和排隊,不可避免出現傳遞的延遲,而且這個延遲隨排隊報文的多少,報文的大小而變。為了解決這個問題通常使用支持IEEE1588的交換機作為邊界時鐘,支持IEEE的交換機內部包含了一個PTP時鐘,由于它是直接接收主時鐘報文的,它與主時鐘的傳輸延時不存在排隊與存儲的問題,所以在需要分支時通常使用帶邊界時鐘的交換機。
6 時鐘的評價和最佳時鐘算法概要
最佳時鐘算法是1588協議的很重要的部分,1588雖然是適用于局域網的協議,但它沒有限制網絡的結構,范圍,設備數目和選用。對于任意結構的網絡怎樣確定祖母時鐘,主時鐘,時間基準怎樣逐級傳遞到各節點,以取得盡可能好的時鐘精度,就是最佳時鐘算法要達到的目標。1588的算法是動態運行的,即在時鐘同步系統運行中根據實時數據不斷計算,動態調整各節點和端口的狀態,也就會調整時間的傳遞路線。所以在當前主時鐘故障或性能下降時,系統可能會選擇其它更合適的節點替代它作為主時鐘。由于這部分內容相對復雜,這里只介紹相關的基礎概念。
評論