精確的時間同步技術在控制系統中占有重要地位,隨著嵌入式控制系統應用范圍的不斷增長和應用規模的不斷擴大,同步系統內各分散節點的時鐘同步變得越來越重要。IEEE 1588協議的發展和成熟提供了一種低成本高精度的網絡時鐘同步解決方案。
它利用以太網絡使終端設備同步,僅靠軟件實現就可達到亞微秒級精度,在硬件支持下可達到納秒級。同時,IEEE 1588協議對資源要求非常低,易于高中低端設備之間的兼容。因此,嵌入式IEEE 1588精確時鐘同步技術也成為了實時控制系統非常關心的研究課題。
本文在IEEE 1588協議研究的基礎上,通過軟件和硬件相結合的途徑,并采用硬件輔助實現IEEE 1588標準的精確時間同步協議(PTP)方法,設計了嵌入式IEEE 1588時鐘同步軟硬件系統,在平臺測試中取得了高精度的時鐘同步,測試結果能很好的滿足工業控制、通信、電力等行業對時鐘同步精度的要求。
IEEE 1588時鐘同步系統工作于主從模式,借助時鐘同步報文完成時鐘校準。主時鐘周期性發送同步報文,從時鐘根據接收到的報文的時間戳信息,計算出主從線路報文傳輸的時間延遲和主從時鐘的時鐘偏移,并相應地調整本地時間,使從時鐘保持與主時鐘一致的時間基準。IEEE 1588時鐘同步過程由時鐘偏移測量和網絡延遲測量2個階段組成。
如圖1所示,在時鐘偏移測量階段,主時鐘相繼發送同步報文和跟隨報文給從時鐘,從時鐘接收報文并記錄時間戳。在網絡延遲測量階段,從時鐘發送延時請求報文和接收相應的響應報文,并分別記錄發送和接收報文的時間戳。從時鐘根據一個同步周期內所記錄的四個時間戳計算出時鐘偏差和網絡延遲并以此修正本地時鐘,系統不斷重復這個過程,保持時鐘同步。
圖1 IEEE 1588同步原理
1 時鐘同步模塊
嵌入式時鐘同步模塊分為主控模塊和網絡通信模塊兩個部分。其硬件實物如圖2所示,在該時鐘同步模塊中,主控模塊(圖2右側)搭載了微控制器和實時時鐘、串口和USB接口等;網絡通信模塊配置有電源模塊、網口模塊和必要的GPIO接口等。
圖2 支持IEEE 1588協議的嵌入式控制模塊
主控模塊選取提供MII接口的主控芯片STM32F107VC。以太網通信模塊PHY芯片選取支持IEEE 1588精確時鐘同步功能的DP83640[5,6]。該芯片內配置有高精度IEEE 1588時鐘,并設有由硬件執行的時間標記功能,可在物理層為接收及發送的信息包打上時間標記。在所有的工作模式下均能確定報文收發的精確時間,將理論對時精度提高到了8ns。
2 系統軟硬件設計
提高IEEE 1588時鐘同步的精度關鍵在于提高時間戳的精度。如圖3所示,我們可以在A、B、C三個位置標記時間戳(其中A和B處為軟件標記時間戳,C處為硬件標記時間戳),而越接近物理層,時間戳的精度越高,同步系統可達到的同步精度越高。
物理層芯片DP83640集成了能夠對收發數據包并加蓋時間戳的硬件(即可在C處標記時間戳),它能夠準確的反映IEEE 1588報文的實際發送和接收時間,可以消除協議棧的延時和抖動,從而計算得到的報文在傳輸路徑上的延時和主從時鐘偏差也更精確。
基于此,本實驗時鐘同步模塊采用硬件標記時間戳的方式實現IEEE 1588協議,以GPS時鐘為參考時鐘源,并通過UDP/IP通信完成系統時鐘同步。該時鐘同步模塊結構如圖3所示。
圖3 時鐘同步模塊結構
時鐘同步模塊軟件部分由驅動層、協議層、應用層組成,分別完成底層硬件控制、通信與同步、人機交互等功能。
其中,驅動層分為標準驅動、以太網驅動以及PTP時鐘驅動三部分;協議層分為TCP/IP協議與PTP協議兩部分;應用層分為串口通信、以太網通信、實時時鐘、精確時間同步等部分。
在協議層中,嵌入式的TCP/IP協議棧采用LwIP實現,LwIP協議棧以太網信息接收采取中斷響應機制,當MAC接收到網絡信號之后將引發以太網中斷,主控芯片進入中斷函數,先跳入相關底層處理函數,再進入協議棧做相應處理;而LwIP協議棧以太網信息發送則由應用層協議通過協議棧逐層向下傳遞信息,至MAC層后,調用相關底層處理函數進行發送。
在PTP實現過程中,采用本地時鐘算法。時鐘同步系統上電后,各模塊進入主從時鐘判定程序,首先確定各模塊的主、從時鐘工作狀態,進而通過UDP收發報文,記錄各報文時間戳,計算主從時鐘偏差修正本地時鐘。圖4軟件系統流程圖(a、b)中列出了主從時鐘模塊的同步工作過程。
圖4 軟件系統流程圖
1 基于IEEE 1588時鐘同步測試平臺
基于IEEE 1588時鐘同步系統測試平臺如圖5所示,該系統工作在主從模式,采取點對點通信,精確時鐘源由GPS授時模塊提供,該時間作為PTP時鐘源信號提供給IEEE 1588時鐘同步模塊,并將該模塊時鐘端口配置為主時鐘狀態,與之相對應的時鐘模塊配置為從時鐘狀態。在平臺測試中,將兩個時鐘同步模塊的PPS輸出口接至數字示波器,來比較主從時鐘節點的同步誤差,測量該系統時鐘同步精度。
圖5 基于IEEE 1588時鐘同步測試平臺
2 測試結果及分析
基于IEEE 1588時鐘同步測試平臺系統建立之后,需要對時鐘同步系統的性能進行測試分析。本文根據同步報文發報周期取不同時間值(標準周期默認為2s),主要進行3次測試,實驗同步報文發報周期分別取4s、2s、1s,對主從時鐘同步模塊進行IEEE 1588時鐘同步測試。
圖6 時鐘同步測試結果
圖7 測試結果對比圖
測試結果如圖6所示,其中圖中a、b、c分別為同步報文發報周期為4s、2s、1s時的同步誤差分布圖,圖7為不同同步報文發送周期時的測試結果對比圖,在此我們可以更直觀的觀測不同同步報文發送周期下的系統時鐘同步誤差。
由圖6、7測試結果表明:當同步報文發報周期取4s時,主從時鐘節點之間IEEE 1588同步精度測試結果優于200ns;當同步報文發報周期取2s時,主從時鐘節點之間IEEE 1588同步誤差在100ns以內;當同步報文發報周期取1s時,主從時鐘節點之間IEEE 1588同步精度能夠達到50ns。
表1 不同同步報文發送周期下的時鐘同步測試結果
表1中列出了同步報文不同發送周期下的時鐘同步測試結果,同步報文發送周期越短,時鐘同步精度越高,但隨著同步報文發送周期的減小,系統內網絡流量隨之增加,在實際應用中網絡負擔也會隨之加重,在運行中可能會降低系統時鐘同步性能。
本文在對IEEE 1588精確時間同步原理進行分析的基礎上,設計了嵌入式IEEE 1588時鐘同步軟硬件系統,并在平臺測試中實現了高精度時鐘同步,提高了分布式系統中各節點的同步性能,可以極好地滿足了工業控制中分布式通信系統高精度同步要求,從應用成本和時鐘同步精度等方面來考慮,可廣泛應用于數字化變電站、智能電網、工業控制和通信等行業領域。
(編自《電氣技術》,作者為周峰、劉迎澍 等。)