專利名稱:面向測量與控制的精確時間同步方法與系統的制作方法
技術領域:
本發明涉及自動控制領域,尤其涉及自動控制系統中網絡測量與控制設備間的同步技術。
背景技術:
目前應用于工業控制網絡測量的時間同步協議主要是IEEE1588,針對協議的不同實現方法具有不同的時間同步精度。但在實際的工業控制網絡中,還應考慮實現精確時間同步協議引擎模塊、主時鐘、本地時鐘同步、發送與接收控制模塊對時間同步精度的影響。本發明針對上述影響因素分別優化了最佳主時鐘算法、改進了本地時鐘同步算法、優化了PTP報文發送與接收的控制過程,從而達到了理想的同步精度,可滿足自動控制領域中測量與控制對精確同步的要求。
發明內容
本發明設計了一種精確時間同步系統,通過構建精確時間同步(PTP)協議引擎模塊體系結構,采用最佳主時鐘算法、時鐘變量算法、本地時鐘同步算法,優化了PTP報文發送與接收的控制過程。所構建精確時間同步協議體系結構,包括如下功能模塊PTP協議引擎模塊,PTP接收控制模塊,PTP發送控制模塊和數據集服務器。
PTP協議引擎模塊是整個精確時間同步實現的核心,它完成協議狀態機的轉化、報文計算,時鐘同步計算,還完成與本地時鐘、數據集服務器和接收發送模塊進行數據交互及總體控制,PTP協議引擎模塊具體包括PTP協議狀態機模塊、最佳主時鐘算法模塊、本地時鐘同步模塊、時鐘變量算法模塊。
PTP接收控制模塊,用于定義報文的處理流程,以便有效合理更新各個數據集,通過用戶數據報協議UDP通信接口實現PTP協議報文的接收,包括,同步報文接收部分、跟隨報文接收部分、時延請求報文接收部分、時延響應報文接收部分、管理報文接收部分。
PTP發送控制模塊,調用UDP服務,通過UDP通信接口實現PTP協議報文的發送,完成同步報文發送、跟隨報文發送、時延請求報文發送、時延響應報文發送。
數據集服務器部分,存放本地時鐘系統屬性特征信息和遠程主時鐘系統屬性特征信息,為PTP協議的配置和計算提供數據源,包括缺省數據集、當前數據集、父類數據集、全局時間數據集、端口配置數據集和外來主時鐘數據集。
本發明還提出一種精確時間同步實現方法,通過構建精確時間同步(PTP)協議引擎模塊體系結構,采用狀態決策算法、最佳主時鐘算法、時鐘變量算法來選擇PTP協議報文中最佳的時間值;采用定時器步長補償的方式獲取時間的抖動誤差;計算出通信鏈路時延和從時鐘與主時鐘的時間偏差;PTP發送/接收控制模塊調用UDP服務,通過UDP通信接口實現PTP協議報文的發送/接收,優化了PTP報文發送與接收的控制過程。
本發明具有與IEEE1588協議的嚴格一致性,降低了其他影響時間同步精度的因素,提高了系統的同步精度,主要用于各種需要精確同步的網絡及網絡設備。
說明書附1精確時間同步系統的體系結構示意2PTP狀態機轉化示意3數據集比較算法流程4狀態決策算法流程5PTP同步報文的通信流程6同步報文的接收流程7精確報文處理流程8時延請求報文處理流程9時延響應報文接收流程10PTP報文發送流程圖具體實施方式
本發明提出的精確時間同步實現方法主要是利用了通信鏈路時延的對稱性,通過從時鐘與主時鐘的三次通信握手過程,在從時鐘系統上通信過程的四個時間戳,從而計算出通信鏈路時延和從時鐘與主時鐘的時間偏差。為了提供時間同步的精度,本系統作了三個方面的改進一是網絡報文處理,接收報文時觸發網絡中斷,在中斷中記下接收時間,發送網絡報文時,在提交給網絡通信棧的物理層時記下發送時間戳,這樣可以避免通信棧引起的時間偏差;二是通過狀態決策算法、最佳主時鐘算法、時鐘變量算法來選擇PTP協議報文中最佳的時間值,進行時延和時間偏差的計算;三是獲取系統時間時,采用定時器步長補償的方式減少獲取時間的抖動誤差。
精確時間同步(PTP)系統的體系結構如
圖1所示。它包括PTP協議引擎模塊、PTP接收控制模塊、PTP發送控制模塊三個主要模塊,以及數據集服務器(具體包括缺省數據集、當前數據集、父類數據集、全局時間數據集、端口配置數據集和外來主時鐘數據集)。其中,PTP協議引擎模塊是整個精確時間同步實現的核心,它完成協議狀態機的轉化、報文計算,時鐘同步計算,此外,還完成與本地時鐘、幾個數據集和接收發送模塊進行數據交互和總體控制;數據集服務器存放本地時鐘系統屬性特征信息和遠程主時鐘系統屬性特征信息,為PTP協議的配置和計算提供數據源;PTP接收、發送控制模塊通過用戶數據報協議(UDP)通信接口實現PTP協議報文的接收和發送,同時在網絡通信棧的物理層上,把此刻發送或接收網絡報文的時間記錄下來,這樣可以增加同步的精度。
PTP協議引擎模塊主要包括以下四個部分PTP協議狀態機模塊、最佳主時鐘算法模塊、本地時鐘同步算法模塊和時鐘變量算法模塊。PTP協議狀態機考慮了協議引擎在設備上電時的初始化狀態、出現異常情況下的故障狀態、通常情況下的偵聽狀態、主時鐘狀態、從時鐘狀態和未校準狀態,以及各狀態之間的轉化。最佳主時鐘算法模塊是在一個網絡出現多個主時鐘情況下,比較多個主時鐘的關鍵屬性值,為本地時鐘提供一個最優時鐘系統源。本地時鐘同步算法模塊的主要功能是分析本地時鐘接收外來主時鐘的同步報文時,當本地時鐘處于從時鐘狀態時,需要判別當前的主時鐘是否為最佳主時鐘,如果是最佳主時鐘且有跟隨報文的話,則記下接收同步報文的精確時間T2,并且等待跟隨報文;等到跟隨報文時,就可以記錄下主時鐘發送本次協議報文的精確時間T1,為了計算與主時鐘的偏差和通信鏈路的時延,本地時鐘發起時延請求報文,并且記錄發送時延請求協議報文的精確時間T3;主時鐘收到時延請求報文后,會記下接收時延請求報文的精確時間T4,同時通過時延響應報文把T4回送本地時鐘系統,整個的時鐘同步的通信過程,請見圖5;當從時鐘收到時延響應報文后,就可以按照如下的公式計算從時鐘與主時鐘的時間偏差和通信鏈路的時延。
Toffset=T2-Ti-TD①TD=((T2-T1)+(T4-T3))/2 ②時鐘變量是本地時鐘的一個重要特性,通過周期性采集原子時鐘值(或其他高精度時鐘值)和本地時鐘值,統計本地時鐘晶振頻率的偏差屬性,按照Allan公式進行時間偏差計算,并將計算的結果值存放在時鐘變量寄存器。
(1)PTP協議狀態機PTP協議狀態機考慮設備上電后可能的各種狀態初始化狀態、故障狀態、從時鐘、主時鐘狀態、偵聽狀態、未校準狀態,以及各個狀態的許可行為和狀態之間的轉化過程,為時鐘系統提供可靠運行機制。上電后或收到系統的初始化時鐘命令,時鐘系統處于初始化,它需要完成定時器隊列的初始化、為各數據集分配緩沖區、時鐘端口配置、通信協議棧初始化等操作。完成初始化操作后,系統應進入偵聽狀態,偵聽網絡上的PTP協議報文。如果此時出現系統性錯誤,則自動進入到故障狀態,并要求用戶對故障進行相應的處理,如果故障清除,系統則重新進入到初始化狀態,否則將一直處于故障狀態。為了防止系統長期處于偵聽狀態,我們需要設定偵聽外來同步報文的定時器,如果定時器超時,系統自動進入到主時鐘狀態。在偵聽時如果通信端口收到相應的PTP協議報文,應該進行最佳主時鐘算法,如果發現本地時鐘系統是最優的,那么它將進入一個預備的主時鐘狀態,在一個規定的時間內,如果沒有發現更好的時鐘的話,它將正式進入到主時鐘狀態,處于主時鐘狀態的系統將周期性向外發送同步報文和跟隨報文,以便其他時鐘能夠協調時間。如果發現其他時鐘優于本系統,系統進入到從時鐘狀態,進入從時鐘狀態后,從時鐘將啟動同步機制。如果同步過程中,發現當前的最佳主時鐘和先前同步的主時鐘不相符或發現同步過程發生了錯誤,則系統進入到未校準狀態。未校準狀態將調用最佳主時鐘算法算出最佳時鐘后,又將重新進入從時鐘狀態。整個PTP協議狀態機轉化如圖2所示。
(2)最佳主時鐘算法最佳主時鐘算法主要用于選擇本地網絡中的最佳時鐘作為主時鐘,同時決定本地時鐘所應處的狀態。計算最佳主時鐘的方法包括以下兩個步驟首先從本地時鐘系統通信端口中選出一個質量最好的同步報文;根據上述結果,比較此時的主時鐘和本地時鐘屬性,決定本地設備PTP協議引擎所處的狀態。上面的第一個步驟采用數據集比較算法,而判斷PTP協議引擎所處的狀態采用狀態決策算法完成。
①數據集比較算法實現數據集比較算法主要是分析數據集A和數據集A中的時鐘變量值、最高主時鐘的層次、報文中間路由的次數、主時鐘是否優先選擇標記等關鍵變量的性能,為系統從這些數據集選出質量最佳的同步報文,并與它的時鐘進行同步,調整本地時間。數據集比較算法的流程如圖3所示,包括以下幾個步驟 依次比較數據集中最高主時鐘的層次、它到本地時鐘的中間節點數、它的時鐘變量值,它是否為優先選擇等關鍵變量,如果能分出一個最優的最高主時鐘的話,則選擇包含這個最高主時鐘的同步報文。
如果上述的性能變量值完全相同,比較數據集中的最近一次同步報文的序號,取其值大的同步報文。
②狀態決策算法采用狀態決策算法判斷當前PTP協議引擎所處的狀態。狀態決策算法流程如圖4所示,其中時鐘C0的缺省數據集以D0表示,Ebest是通過使用數據集比較算法得來的時鐘C0的最優同步報文,Erbest是時鐘C0的第r號通信端口的最優報文。
狀態決策算法首先判斷缺省數據集D0中最高主時鐘的層次,如果是位于第一或第二層,則按照數據集比較算法比較D0和時鐘C0的第r號通信端口的同步報文Erbest,如果Erbest性能屬性優于D0,則本地時鐘根據Erbest的屬性值來確定主時鐘,系統應進入主時鐘狀態,否則本地時鐘進入從時鐘狀態。如果D0中最高主時鐘不位于第一或第二層,則根據同樣的辦法來比較D0和C0的Ebest。
(3)時鐘變量算法時鐘變量是描述本時鐘性能的關鍵指標之一,它存放于各個數據集和同步報文中,最佳主時鐘算法和狀態決策算法需要使用它來選擇最佳主時鐘。
時鐘變量的計算是基于時鐘的艾倫(Allan)偏差,Allan偏差公式如下σy(τ)=12(N-1)τ2×Σk=1N-2(xk+2-2xk+1+xk)]]>上式表明每間隔時間τ就采樣一次此刻的本地時鐘值。假設第K個采集點的時間值為xk,第K+i個采集點的時間值為xk+1,第K+2個采集點的時間值為xk+2,系統共采集N-1個時間值,σy(τ)是時鐘y采集時間間隔為τ的Allan偏差值,從公式中可知Allan偏差主要是用于統計本地時鐘振蕩器的頻率偏差。PTP時鐘變量σPTP與Allan偏差σy(τ)關系如下σPTP2=τ2×13σy2]]>從上式可得到PTP時鐘變量σPTP與各采集點的關系σPTP2=13[12(N-2)×Σk=1N-2(xk+2-2xk+1+xk)2]]]>(4)本地時鐘同步算法本地時鐘同步算法是PTP協議中十分關鍵的部分,主要用來調整本地時間,與主時鐘的基準時間保持一致性。
本地時鐘主要通過與主時鐘交互時間戳來完成同步過程,如圖5所示。主時鐘以一定的周期廣播或組播時間同步報文,同時把發送的當前時間T1記錄在報文中,從時鐘設備在接收到測試報文后記下接收時間T2,如果主時鐘支持報文,則等待報文的到來。如果從時鐘的數據集中已存有相應的通信時延,則可以通過下面的公式1算出時間偏差,否則,就在T3的時刻發送時延請求報文,主時鐘接收時延請求報文時記下時刻T4,并通過時延響應報文把時刻T4傳送從時鐘時間。計算方法如公式2。
假設從時鐘與主時鐘通信延遲為TD、時鐘偏差為Toffset則Toffset=T2-T1-TD①TD=((T2-T1)+(T4-T3))/2 ②3、PTP接收控制模塊該模塊主要用來分析、控制接收到的各種網絡報文,把符合PTP協議的報文接收到PTP協議引擎中,并負責檢查PTP協議報文的有效性。
PTP接收控制模塊主要包括以下四個部分同步報文接收模塊、跟隨報文接收模塊、時延請求報文接收模塊、時延響應報文接收模塊。下面進一步分析上述報文的處理過程。
(1)同步報文接收過程當同步報文接收時,應該對關聯的數據集進行更新升級,通常同步報文來自于主時鐘,因此同步報文的接收是時間同步的一個前提,同步報文質量影響到時間同步的精度。
同步報文的處理流程可見圖6。同步報文的處理中,首先應該要判斷PTP協議引擎所處的狀態,如果是處于初始化或故障狀態,則直接退出,否則就要分析同步報文中的同步突發標記位,如果這位置1的話,說明同步報文是突發性的,可能需要特殊處理。接下來需要分析一下協議引擎是否處于從時鐘狀態,如果不處于從時鐘狀態,就只需要更新外來主時鐘數據集。如果處于從時鐘狀態而且同步報文是來自當前的主時鐘則更新當前主時鐘的數據集,假如同步報文的同步輔助位沒有置1的話,就可以使用時間同步算法來調整時間,如果置1的話,則啟動定時器等待跟隨報文的到來。
(2)跟隨報文接收主時鐘在發送同步報文時,報文中的發送時間往往是不準確的,因此如果主時鐘支持更高精度的時間同步的話,往往會通過另外一個報文把同步報文發送的準確時間發送到網絡上,這樣可以減少同步計算時的誤差。
跟隨報文的接收如圖7所示。與同步報文處理流程相似,接收到跟隨報文時也需要判斷和分析PTP協議引擎是否處于初始化、故障狀態、從時鐘狀態,判斷和分析跟隨報文中的同步突發標記是否置1,跟隨報文是否是當前主時鐘發送的,判斷跟隨報文是否關聯上一次的同步報文,如果是的話,就可完成本地時間的調整工作。
(3)時延請求報文接收如果只接收同步報文和跟隨報文,可以收到主時鐘的同步報文發送的準確時間,但是如果需要計算通信鏈路的通信時延的話,那么就得向主時鐘發送一個時延請求報文,要求對方給一個時延響應報文,再把主時鐘接收時延請求報文的時間送過來,因此時延請求報文的接收是對主時鐘而言的。
時延請求報文接收流程如圖8。判斷PTP協議引擎是否處于主時鐘狀態,如果是,打上時間戳,發送時延響應報文,當時延請求報文到達時,設備啟動網絡中斷,在網絡中斷中記下此刻報文達到的時間,并發送包含有這個時間的時延響應報文,如果時延請求報文中的同步突發標志位置1的話,還應再發送一個同步報文。
(4)時延響應報文接收時延響應報文接收帶有主時鐘接收時延請求報文的準確時間,這個時間用于計算通信鏈路時延時間。
時延響應報文接收流程如圖9所示。只有在從時鐘狀態的時候,系統才能有效接收時延響應報文,當收到有效的時延響應報文后,首先應該判斷此報文是否是當前主時鐘發送的,是否對應于系統發送的時延請求報文,如果是的話,那么就可以開始計算通信鏈路的時延。
4、PTP發送控制模塊PTP發送控制模塊用于發送同步報文、跟隨報文、時延請求報文、時延響應報文,因此發送模塊的主要任務就是編碼封裝PTP協議報文,以及何時發送這些報文,PTP發送控制模塊要受到定時器事件、PTP報文事件和設備異常事件的影響。
PTP發送控制流程如圖10所示。PTP發送模塊主體是一個循環,只有PTP協議引擎處于從時鐘或主時鐘狀態時候(故障狀態,循環退出),才有可能發送協議報文。當處于從時鐘狀態時,如果收到同步報文、跟隨報文且通信鏈路更新定時器時間超時,那么應該根據此時同步報文更新的數據集,封裝一個時延請求報文發送。但是如果長時間收不到同步報文,同步接收定時器超時或者本系統時鐘在網絡中的性能最優,那么從時鐘有可能會轉化到主時鐘狀態,就應該啟動同步報文發送定時器,定時器超時即可發送同步報文,如果協議引擎支持同步輔助位的話,還應立即送出一個跟隨報文,發出上述報文后,從時鐘會發送一些時延請求報文,因此主時鐘還應對這些從時鐘作出自己的時延響應報文。
5、數據集服務器,包括缺省數據集、當前數據集、父類數據集、全局時間數據集、端口配置數據集和外來主時鐘數據集。
缺省數據集描述了本地時鐘的固有屬性,當本地時鐘成為網絡中的主時鐘時需要使用此數據集的相關屬性。該數據集主要包括本地時鐘標識符、本地的PTP時鐘變量、PTP域名、同步間隔、優先選擇標記、同步輔助標記以及外來主時鐘記錄最大值等數據。
當前數據集主要描述本地時鐘與當前主時鐘關聯屬性,主要包括主時鐘到從時鐘的中間節點數、主時鐘到從時鐘的通信鏈路時延等數據。
父類數據集主要描述了本地時鐘關聯主時鐘的關鍵屬性,主要用于數據集比較和選擇最優主時鐘,主要包括父類(或稱主時鐘)的時鐘標識符、PTP時鐘變量、同步輔助標記、最近一次同步報文的序號以及最高級主時鐘的時鐘標識符、PTP時鐘變量、同步輔助標記、最近一次同步報文的序號等數據。
全局時間數據集主要描述協議對時間的相關約定,主要包括協議的基準時間、閏秒標記、與世界統一時間的偏差值等數據。
端口配置數據集主要提供本地時鐘的網絡通信端口的基本配置信息,在封裝數據報文的時候往往需要使用此數據集,它主要包括本端口的協議引擎狀態、域名地址、標識符、接收到最近一次同步報文的序列號、同步突發標記等數據。
外來主時鐘數據集主要統計主時鐘的摘要信息,包括主時鐘使用的通信技術、主時鐘標識符、接收到主時鐘的同步報文數量等數據。
本發明提出一種精確時間同步實現方法,通過構建精確時間同步(PTP)協議引擎模塊體系結構、采用PTP協議狀態機的決策算法、主時鐘的最佳算法與時鐘變量算法、本地時鐘同步實現方法、優化了PTP報文發送與接收的控制過程,滿足自動控制領域中測量與控制器件對同步的高精確度要求。
權利要求
1.一種面向測量與控制的精確時間同步PTP的實現方法,其特征在于通過構建精確時間同步協議引擎模塊,采用PTP協議最佳主時鐘算法、時鐘變量算法、本地時鐘同步算法選擇PTP協議報文中最佳的時間值,計算從時鐘與主時鐘的時間偏差和通信鏈路的時延;優化PTP發送/接收控制模塊,為測控網絡設備提供一個統一的時間基準。
2.根據權利要求1所述的實現方法,其特征在于,所述PTP協議最佳主時鐘算法包括從端口選擇質量最好的同步報文,選擇本地網絡中的最佳時鐘作為網絡的主時鐘,同時決定PTP協議引擎所應處的狀態。
3.根據權利要求1所述的實現方法,其特征在于,通過統計本地時鐘晶振頻率的偏差屬性,采用基于艾倫(Allan)偏差的算法計算時鐘變量,本地時鐘同步算法通過與主時鐘交互時間戳來完成同步過程。
4.根據權利要求2所述的實現方法,其特征在于,采用數據集比較算法,選擇本地網絡中的最佳時鐘作為主時鐘,采用狀態決策算法判斷PTP協議引擎所處的狀態。
5.一種實現精確時間同步的系統,通過構建精確時間同步協議引擎模塊實現,其特征在于,該系統包括PTP協議引擎模塊它完成協議狀態機的轉化,報文計算,時鐘同步計算,與本地時鐘、各個數據集和接收/發送模塊進行數據交互;PTP接收控制模塊調用用戶數據報文UDP服務,通過UDP通信接口實現PTP協議報文的接收;PTP發送控制模塊調用UDP服務,通過UDP通信接口實現PTP協議報文的發送;數據集服務器部分存放本地時鐘信息、主時鐘特征信息,為協議的配置和計算提供數據源。
6.根據權利要求5所述的系統,其特征在于,所述PTP協議引擎模塊包括,PTP協議狀態機模塊定義PTP協議引擎在各個狀態之間的轉化行為;最佳主時鐘算法模塊為本地時鐘有效選擇一個質量最好的同步報文用于同步計算,同時確定PTP協議引擎應處的狀態;本地時鐘同步模塊通過計算從時鐘與主時鐘的偏差,調整本地的時鐘;時鐘變量算法模塊周期性對本地時鐘的頻率特性進行統計。
7.根據權利要求5所述的系統,其特征在于,PTP接收控制模塊包括同步報文接收模塊、跟隨報文接收模塊、時延請求報文接收模塊、時延響應報文接收模塊;PTP發送控制模塊包括同步報文發送模塊、跟隨報文發送模塊、時延請求報文發送模塊、時延響應報文發送模塊。
8.根據權利要求5所述的系統,其特征在于,所述數據集部分包括缺省數據集描述了本地時鐘的固有屬性;當前數據集描述本地時鐘與當前主時鐘關聯屬性;父類數據集描述與本地時鐘關聯的主時鐘的關鍵屬性;全局時間數據集描述協議對時間的相關約定;端口配置數據集提供本地時鐘網絡通信端口的基本配置信息;外來主時鐘數據集用于統計主時鐘的摘要信息。
9.根據權利要求6所述的系統,其特征在于,所述最佳主時鐘算法模塊采用數據集比較算法選擇本地網絡中的最佳時鐘作為主時鐘,采用狀態決策算法決定當前PTP協議引擎所處的狀態;所述本地時鐘同步模塊通過與主時鐘網絡通信,獲得主時鐘的有效時間戳,調整本地時間保持與主時鐘的基準時間一致。
全文摘要
本發明請求保護一種面向測量與控制的精確時間同步方法與系統,涉及自動控制領域。本發明通過構建精確時間同步PTP協議引擎模塊體系結構、采用PTP協議狀態機的決策算法、最佳主時鐘算法、時鐘變量算法、本地時鐘同步算法,優化了PTP報文發送與接收的控制過程,滿足自動控制領域中測量與控制器件對同步的高精確度要求。所構建精確時間同步協議體系結構包括如下功能模塊PTP協議引擎模塊,PTP接收控制模塊,PTP發送控制模塊和各種數據集。
文檔編號H04L29/06GK1845546SQ200610054138
公開日2006年10月11日 申請日期2006年3月15日 優先權日2006年3月15日
發明者謝昊飛, 王平, 向敏, 孫攀 申請人:重慶郵電學院