專利名稱:提高ptp時間同步精度的方法及系統的制作方法
技術領域:
本發明涉及以太網傳輸技術領域,尤其涉及一種提高PTP時間同步精度的方法及系統。
背景技術:
在分布式網絡中,由于網絡傳輸時延的不確定性,導致采用網絡命令觸發的同步精度存在誤差,同時,由于分布式網絡各個節點位置的分散性,不適合采用硬件同步提供高精度的同步要求。而基于時間信息報文的同步觸發方式成為當前比較可行的方案。IEEE 1588定義了一種精確時間協議PTP,主要用于同步以太網網絡中不同節點的時間,在主從系統之間提供了網絡連接、基于信息報文的同步功能。在一個IEEE1588應用系統中,報文發送一般要依次經過應用程序、操作系統、網絡協議棧和以太網控制器,最后通過網絡發送到達接收端,接收端再按以太網控制、網絡協議棧、操作系統,最后到應用程序,如圖1 所示。這里可以看出,報文經過網絡傳輸會存在協議棧的延時和抖動,以及網絡的延時和抖動。為了消除協議棧和網絡的延時和抖動,可以在靠近物理層(PHY)或介質訪問控制層 (MAC)去打時戳,然而,漂移與傳輸延時的不確定性仍然影響分布式系統時鐘同步的精度。因此,有必要提供一種提高PTP時間同步精度的方法及系統,以克服上述問題。
發明內容
本發明的目的在于提供一種提高PTP時間同步精度的方法。本發明的另一目的在于提供一種提高PTP時間同步精度的系統,該系統應用于提高PTP時間同步精度的方法。相應地,本發明的一種提高PTP時間同步精度的方法,包括以下步驟 S10,在靠近物理層處,對發出或接收到的每個PTP消息報文打上時間戳; S20,通過時間漂移調整和時間偏差調整得到調整后的PTP計數時間;
S30,PTP消息報文在秒脈沖觸發時,判斷PTP計數時間是否落在整秒的-l/2f與+l/2f 之間,只有落在整秒的_l/2f與+l/2f之間,才送出秒脈沖。作為本發明的進一步改進,所述PTP計數時間通過一 PTP時間計數器來顯示,該 PTP時間計數器由1個32位秒計數器,1個30位的納秒計數器和1個32位的分數納秒計數器組成。作為本發明的進一步改進,對時間漂移進行調整是通過對所述分數納秒計數器調節來實現的。作為本發明的進一步改進,時間偏差是當前時間與基準時間的偏差值,這個偏差值由PTP引擎設置的內部寄存器來配置。相應地,本發明的一種提高PTP時間同步精度的系統,包括
PTP引擎,安裝于介質訪問控制層和物理層的接口處,用以對發出或接收到的每個PTP 消息報文打上時間戳;時間漂移調節器,用以對PTP時間計數器進行時間漂移調整;
內部寄存器,用以對PTP時間計數器進行時間偏差調整,通過時間漂移調整和時間偏差調整得到調整后的PTP計數時間;
誤差判斷模塊,PTP消息報文在秒脈沖觸發時,判斷PTP計數時間是否落在整秒的-l/2f與+l/2f之間,只有落在整秒的_l/2f與+l/2f之間,才送出秒脈沖。作為本發明的進一步改進,所述PTP時間計數器由1個32位秒計數器,1個30位的納秒計數器和1個32位的分數納秒計數器組成。作為本發明的進一步改進,所述時間漂移調整是通過對所述分數納秒計數器調節來實現的。作為本發明的進一步改進,所述時間偏差是當前時間與基準時間的偏差值。作為本發明的進一步改進,所述PTP引擎為現場可編程門陣列或專用集成電路實現的PTP引擎。本發明的有益效果是本發明通過PTP計數器秒翻轉時,對納秒落在允許的精度范圍時做出是否送出PTP時鐘輸出信號的判斷,從而使同步精度相比PTP計數分辨率提高一倍,在PTP使能的主從節點連接中實現納秒級的同步精度。
圖1示出了 PTP信息報文交換時的延時和抖動狀態圖2示出了本發明一實施方式一種提高PTP時間同步精度的方法的流程圖; 圖3示出了圖2的具體流程圖4示出了本發明一實施方式中秒脈沖判斷范圍示意圖; 圖5出了本發明一實施方式一種提高PTP時間同步精度的系統的模塊圖。
具體實施例方式以下將結合附圖所示的各實施方式對本發明進行詳細描述。但這些實施方式并不限制本發明,本領域的普通技術人員根據這些實施方式所做出的結構、方法、或功能上的變換均包含在本發明的保護范圍內。如圖2所示,為本發明一實施方式一種提高PTP時間同步精度的方法,包括以下步驟
S10,在靠近物理層處,對發出或接收到的每個PTP消息報文打上時間戳; S20,通過時間漂移調整和時間偏差調整得到調整后的PTP計數時間; S30,PTP消息報文在秒脈沖觸發時,判斷PTP計數時間是否落在整秒的-l/2f與+l/2f 之間,只有落在整秒的_l/2f與+l/2f之間,才送出秒脈沖。具體參圖3所示,為了消除協議棧和網絡的延時和抖動,達到較高的同步精度,對傳輸報文的時戳打標點應該越靠近物理層越好。在連接介質訪問控制層(MAC)和物理層 (PHY)的接口處安裝一個現場可編程門陣列(FPGA)或專用集成電路(ASIC)實現的PTP引擎對發出或接收到的每個PTP消息報文打上時間戳。因此,如何實現PTP時間計數的精確性成為關鍵。PTP時間計數器由1個32位秒計數器,1個30位的納秒計數器和1個32位的分數納秒計數器組成。32位的分數納秒計數器能夠精確到2_32nS。系統參考時鐘如設為 f=125MHz,則PTP時間計數器以每次8ns遞增。由于通過外部晶振產生的參考時鐘存在漂移和抖動,所以用一個時間漂移調節器調節分數納秒計數器實現時鐘的精細調整。通過PTP 引擎設置的內部寄存器配置當前時間與基準時間的偏差值,那么時間漂移調整后的時鐘加上時間偏移值就可以得到調整后的當前時間,即時間戳單元。利用以太網幀起始分界符后第一比特第1位的前邊沿作為報文時間標識點,即時間戳插入。這樣,通過時間漂移調整和時間偏差調整得到調整后的PTP計數時間。當從器件與主器件同步時,PTP消息報文通常以秒脈沖觸發,內部PTP時間計數器在f=125MHz時鐘下,調整后的PTP計數時間會落在整秒的-8ns和+8ns范圍內,如圖4所示。如果PTP時間計數器落在-8ns與-4ns之間,或者+4和+8ns之間產生秒脈沖信號,那么,整秒的誤差范圍即為正負8ns。這里,當PTP時間落在-8ns和-4ns之間時,我們不會產生秒脈沖信號輸出,在125MHz時鐘下,調整后的PTP計數時間累加8ns后則落在了整秒與+4ns之間,此時再輸出秒脈沖信號;同理,如果調整后的PTP計數時間落在+4ns和+8ns 之間,則其之前一定會落在-4ns和整秒之間,所以,可以在-4ns和整秒之間即輸出秒沖脈, 而在+4ns和+8ns時不輸出秒脈沖,這樣,我們就可以實現PTP消息報文在秒脈沖觸發時, 誤差范圍在正負如s,也即誤差范圍在正負l/2f,從而使同步精度相比PTP計數分辨率提高一倍。在邏輯實現時,采用一誤差判斷模塊,只要判斷秒翻轉時,調整后的PTP時間是否落在-4ns和+4ns之間(也即~l/2f和+l/2f之間),送出秒脈沖。本實施方式中取f=125MHz 來進行說明,當然也可以采用其它頻率,本發明不對其構成限制。如圖5所示,為本發明一實施方式一種提高PTP時間同步精度的系統,包括
PTP引擎,安裝于介質訪問控制層和物理層的接口處,用以對發出或接收到的每個PTP 消息報文打上時間戳;
時間漂移調節器,用以對PTP時間計數器進行時間漂移調整;
內部寄存器,用以對PTP時間計數器進行時間偏差調整,通過時間漂移調整和時間偏差調整得到調整后的PTP計數時間;
誤差判斷模塊,PTP消息報文在秒脈沖觸發時,判斷PTP計數時間是否落在整秒的-l/2f與+l/2f之間,只有落在整秒的-l/2f與+l/2f之間,才送出秒脈沖。本發明通過在連接介質訪問控制層(MAC)和物理層(PHY)的接口處安裝一個FPGA 或ASIC實現的PTP引擎,通過PTP計數器秒翻轉時,對納秒落在允許的精度范圍時做出是否送出PTP時鐘輸出信號的判斷,從而使同步精度相比PTP計數分辨率提高一倍,在PTP使能的主從節點連接中實現納秒級的同步精度。為了描述的方便,描述以上系統時以功能分為各種單元分別描述。當然,在實施本申請時可以把各單元的功能在同一個或多個軟件和/或硬件中實現。通過以上的實施方式的描述可知,本領域的技術人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺的方式來實現。基于這樣的理解,本申請的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品可以存儲在存儲介質中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備 (可以是個人計算機,服務器,或者網絡設備等)執行本申請各個實施方式或者實施方式的某些部分所述的方法。
以上所描述的系統實施方式僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施方式方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解并實施。本申請可用于眾多通用或專用的計算系統環境或配置,或通信設備中。例如個人計算機、服務器計算機、手持設備或便攜式設備、平板型設備、多處理器系統、基于微處理器的系統、置頂盒、可編程的消費電子設備、網絡PC、小型計算機、大型計算機、包括以上任何系統或設備的分布式計算環境等等。本申請可以在由計算機執行的計算機可執行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、對象、組件、數據結構等等。也可以在分布式計算環境中實踐本申請,在這些分布式計算環境中,由通過通信網絡而被連接的遠程處理設備來執行任務。在分布式計算環境中,程序模塊可以位于包括存儲設備在內的本地和遠程計算機存儲介質中。應當理解,雖然本說明書按照實施方式加以描述,但并非每個實施方式僅包含一個獨立的技術方案,說明書的這種敘述方式僅僅是為清楚起見,本領域技術人員應當將說明書作為一個整體,各實施方式中的技術方案也可以經適當組合,形成本領域技術人員可以理解的其他實施方式。上文所列出的一系列的詳細說明僅僅是針對本發明的可行性實施方式的具體說明,它們并非用以限制本發明的保護范圍,凡未脫離本發明技藝精神所作的等效實施方式或變更均應包含在本發明的保護范圍之內。
權利要求
1.一種提高PTP時間同步精度的方法,其特征在于,包括以下步驟S10,在靠近物理層處,對發出或接收到的每個PTP消息報文打上時間戳;S20,通過時間漂移調整和時間偏差調整得到調整后的PTP計數時間;S30,PTP消息報文在秒脈沖觸發時,判斷PTP計數時間是否落在整秒的-l/2f與+l/2f 之間,只有落在整秒的_l/2f與+l/2f之間,才送出秒脈沖。
2.根據權利要求1所述的提高PTP時間同步精度的方法,其特征在于,所述PTP計數時間通過一 PTP時間計數器來顯示,該PTP時間計數器由1個32位秒計數器,1個30位的納秒計數器和1個32位的分數納秒計數器組成。
3.根據權利要求2所述的提高PTP時間同步精度的方法,其特征在于,對時間漂移進行調整是通過對所述分數納秒計數器調節來實現的。
4.根據權利要求1至3中任一項所述的提高PTP時間同步精度的方法,其特征在于,所述時間偏差是當前時間與基準時間的偏差值,這個偏差值由PTP引擎設置的內部寄存器來配置。
5.一種提高PTP時間同步精度的系統,其特征在于,包括PTP引擎,安裝于介質訪問控制層和物理層的接口處,用以對發出或接收到的每個PTP 消息報文打上時間戳;時間漂移調節器,用以對PTP時間計數器進行時間漂移調整;內部寄存器,用以對PTP時間計數器進行時間偏差調整,通過時間漂移調整和時間偏差調整得到調整后的PTP計數時間;誤差判斷模塊,PTP消息報文在秒脈沖觸發時,判斷PTP計數時間是否落在整秒的-l/2f與+l/2f之間,只有落在整秒的-l/2f與+l/2f之間,才送出秒脈沖。
6.根據權利要求5所述的提高PTP時間同步精度的系統,其特征在于,所述PTP時間計數器由1個32位秒計數器,1個30位的納秒計數器和1個32位的分數納秒計數器組成。
7.根據權利要求6所述的提高PTP時間同步精度的系統,其特征在于,所述時間漂移調整是通過對所述分數納秒計數器調節來實現的。
8.根據權利要求5所述的提高PTP時間同步精度的系統,其特征在于,所述時間偏差是當前時間與基準時間的偏差值。
9.根據權利要求5至8中任一項所述的提高PTP時間同步精度的系統,其特征在于,所述PTP引擎為現場可編程門陣列或專用集成電路實現的PTP引擎。
全文摘要
本發明提供一種提高PTP時間同步精度的方法及系統,其中方法包括以下步驟在靠近物理層處,對發出或接收到的每個PTP消息報文打上時間戳;通過時間漂移調整和時間偏差調整得到調整后的PTP計數時間;PTP消息報文在秒脈沖觸發時,判斷PTP計數時間是否落在整秒的-1/2f與+1/2f之間,只有落在整秒的-1/2f與+1/2f之間,才送出秒脈沖。本發明通過PTP計數器秒翻轉時,對納秒落在允許的精度范圍時做出是否送出PTP時鐘輸出信號的判斷,從而使同步精度相比PTP計數分辨率提高一倍,在PTP使能的主從節點連接中實現納秒級的同步精度。
文檔編號H04L7/00GK102404103SQ20111036760
公開日2012年4月4日 申請日期2011年11月18日 優先權日2011年11月18日
發明者楊崇朋, 許俊 申請人:盛科網絡(蘇州)有限公司