精確ieee1588協議的透明時鐘路徑延遲的方法
【專利摘要】本發明公開一種精確IEEE1588協議的透明時鐘路徑延遲的方法,其先通過運行IEEE1588時間同步機制,采用P2P透明時鐘機制,得到四個時間戳,再利用時鐘同步算法計算出路徑延遲值,使用設置閾值法,將路徑延遲值與閾值相比較:若小于規定閾值,保存并進入下一次時鐘同步,當他們的偏差值大于預先設定的閾值時,進行PID反饋調節,然后再次比較,若還是大于閾值,則認為是錯誤的,舍棄。若小于規定閾值,則保存并進去下一組同步。本發明能夠解決了現有IEEE1588v2時間同步時路徑偏差值不穩定而影響同步精度的問題。
【專利說明】精確IEEE1588協議的透明時鐘路徑延遲的方法
【技術領域】
[0001]本發明涉及通信【技術領域】,具體涉及一種精確IEEE1588協議的透明時鐘路徑延遲的方法。
【背景技術】
[0002]IEEE1588的全稱是“網絡測量和控制系統的精密時鐘同步協議標準”。IEEE1588v2協議是IEEE協會在2008年頒布的時間同步標準(2002年頒布的版本通常稱為第一版本)。雖然目前的IEEE1588v2協議提供了幾種時鐘同步模式,且理論上可以達到亞微秒的同步精準。國內從事IEEE1588研究的大多處于理論研究階段,但是真正投入使用實現高精度時鐘同步的裝置并不多,大多是基于第一版本的同步,第一版本對網絡的延遲抖動處理得不是很理想,協議報文在穿越網絡各層,MAC層、PHY層、到達應用層時,會有路徑延遲,有時候會出現網絡報文堵塞,網絡不通,這時會產生網絡延遲抖動,影響了傳輸的精度和準確性。另外,在多層次的時鐘同步中,也會帶來累計誤差,由于這些問題,使得利用IEEE1588v2協議來實現分布式測試網絡的時鐘同步還存在一定的難度。
【發明內容】
[0003]本發明所要解決的是現有IEEE1588協議在時間同步時路徑偏差值不穩定影響同步精度的問題,而提供一種精確IEEE1588協議的透明時鐘路徑延遲的方法。
[0004]為解決上述問題,本發明是通過以下技術方案實現的:
[0005]一種精確IEEE1588協議的透明時鐘路徑延遲的方法,包括如下步驟:
[0006]步驟1、請求者和響應者均運行IEEE1588協議,進入透明時鐘的模式。
[0007]步驟2、根據設置的報文發送間隔,在請求者和響應者之間發送協議消息報文,得至IJ 4個消息時間戳。即
[0008]步驟2.1、請求者發送Pdelay_Req報文給響應者,請求者記下當前發送的消息時間戳Tl。
[0009]步驟2.2、響應者接受請求者發送的Pdelay_Req報文,響應者記下當前接收到的消息時間戳T2。
[0010]步驟2.3、響應者接受到Pdelay_Req報文后,馬上向請求者發送Pdelay_Resp報文,響應者記錄下發送Pdelay_Resp報文的消息時間戳T3。
[0011]步驟2.4、請求者接受到響應者發送的Pdelay_Resp報文,請求者記錄下當前消息時間戳T4。
[0012]步驟3、請求者根據上述所獲得的4個消息時間戳Tl?T4,計算路徑延遲Q1,其中Ql = [(Τ4-Τ1)-(Τ3-Τ2)]/2。
[0013]步驟4、請求者判斷計算得出的路徑延遲Ql是否大于預先設置的閾值。如果路徑延遲Ql小于閾值,則保存路徑延遲Q1,結束本次同步測量,并等待下次同步測量。如果路徑延遲Ql大于閾值,則采用PID反饋調節補償,進行反饋補償后會得到一個新的路徑延遲Q2,并將新的路徑延遲Q2與閾值進行比較。如果新的路徑延遲Q2小于閾值,則保存新的路徑延遲Q2,結束本次同步測量,等待下次同步測量。如果新的路徑延遲Q2大于閾值,則舍棄當前測量的所有時間戳,終止本次同步測量。
[0014]在步驟I之前,還進一步包括,在主鐘發出同步消息之前,請求者和響應者的主鐘將以太網收發器的時鐘與時間源的時鐘同步。
[0015]在步驟I中,進入的可以是E2E透明時鐘模式,也可以進入P2P透明時鐘模式,但為了更好地保證同步的精度,進入的最好是P2P透明時鐘模式。
[0016]在步驟2中,設定的報文發送間隔為2N秒,其中N為大于等于零的整數。
[0017]所述N的取值范圍介于O?6之間。
[0018]在步驟2中,還進一步包括,步驟2.5、響應者先根據消息時間戳T2和T3計算周轉時間T3-T2。再根據響應者的時鐘類型將周轉時間T3-T2加載到相應的報文中,并發送給請求者。即
[0019]如果響應者是單步時鐘,則響應者在發送Pdelay_Resp報文之前,將周轉時間T3-T2加到Pdelay_Resp報文的修正域中,并且對校驗和或Pdelay_Resp報文的其他內容相關字段做任何需要的校正。
[0020]如果響應者是雙步時鐘,則響應者在發送Pdelay_Resp報文之后,響應者緊接著發送一個Pdelay_Resp_Fol1wJJp報文,該Pdelay_Resp_Follow_Up報文中會攜帶有周轉時間T3-T2。
[0021]在步驟4中,設定的閾值介于10ns?500ns之間。
[0022]本發明先通過運行IEEE1588時間同步機制,采用P2P透明時鐘機制,得到四個時間戳,再利用時鐘同步算法計算出路徑延遲值,使用設置閾值法,將路徑延遲值與閾值相比較:若小于規定閾值,保存并進入下一次時鐘同步,當他們的偏差值大于預先設定的閾值時,進行PID反饋調節,然后再次比較,若還是大于閾值,則認為是錯誤的,舍棄。若小于規定閾值,則保存并進去下一組同步。與現有技術相比,本發明通過將計算測出的路徑延遲值與閾值相比較,然后利用PID反饋控制,從而解決了現有IEEE1588v2時間同步時路徑偏差值不穩定而影響同步精度的問題。
【專利附圖】
【附圖說明】
[0023]圖1是IEEE1588的P2P透明時鐘同步原理圖。
[0024]圖2是一種精確IEEE1588協議的透明時鐘路徑延遲的方法的流程圖。
[0025]圖3是一種精確IEEE1588協議的透明時鐘路徑延遲的裝置的模塊示意圖。
[0026]圖4是一種提供的IEEE1588v2協議的軟件架構圖。
【具體實施方式】
[0027]一種精確IEEE1588協議的透明時鐘路徑延遲的方法,如圖1和圖2所示,包括如下步驟:
[0028]步驟1、在主鐘發出同步消息之前,請求者和響應者的主鐘將以太網收發器的時鐘與時間源的時鐘同步。
[0029]步驟2、運行IEEE1588協議,進入P2P透明時鐘的模式。
[0030]步驟3、在軟件的網絡層傳遞 Pdelay_Req、Pdelay_Resp、Pdelay_Resp_Foilow_Up這三個報文消息,并通過傳遞報文消息,在網絡層得到4個消息時間戳。即
[0031]步驟3.1、設置發送Pdelay_Req報文的間隔時間。在本發明優選實施例中,上述間隔時間設為2N秒,即2秒、或4秒、或8秒、......、或64秒。
[0032]步驟3.1、請求者發送Pdelay_Req報文給響應者,請求者記下當前發送的消息時間戳Tl。
[0033]步驟3.2、響應者接受請求者發送的Pdelay_Req報文,響應者記下當前接收到的消息時間戳T2。
[0034]步驟3.3、響應者接受到Pdelay_Req報文后,馬上向請求者發送Pdelay_Resp報文,響應者記錄下發送Pdelay_Resp報文的消息時間戳T3。
[0035]步驟3.4、請求者接受到響應者發送的Pdelay_Resp報文,請求者記錄下當前消息時間戳T4。
[0036]步驟3.5、響應者先根據消息時間戳T2和T3計算周轉時間T3-T2,并將周轉時間T3-T2的值放到correct1nField中。再根據響應者的時鐘類型(單步時鐘或雙步時鐘)將周轉時間T3-T2加載到相應的報文中,并發送給請求者。即
[0037]如果響應者是單步時鐘,則響應者在發送Pdelay_Resp報文之前,將周轉時間T3-T2加到Pdelay_Resp報文的修正域中,并且對校驗和或Pdelay_Resp報文的其他內容相關字段做任何需要的校正。
[0038]如果響應者是雙步時鐘,則響應者在發送Pdelay_Resp報文之后,響應者緊接著發送一個Pdelay_Resp_Fol1wJJp報文,該Pdelay_Resp_Follow_Up報文中會攜帶有周轉時間T3-T2。
[0039]步驟4、請求者根據Pdelay_Resp報文或Pdelay_Resp_Fol 1wJJp報文中所攜帶的周轉時間T3-T2計算路徑延遲Q1,其中Ql = [(Τ4-Τ1)-(Τ3-Τ2)]/2。
[0040]步驟5、請求者判斷計算得出的路徑延遲Ql是否大于預先設置的閾值。如果路徑延遲Ql小于閾值,則保存路徑延遲Q1,結束本次同步測量,并等待下次同步測量。如果路徑延遲Ql大于閾值,則采用PID反饋調節補償,進行反饋補償后會得到一個新的路徑延遲Q2,并將新的路徑延遲Q2與閾值進行比較。如果新的路徑延遲Q2小于閾值,則保存新的路徑延遲Q2,結束本次同步測量,等待下次同步測量。如果新的路徑延遲Q2大于閾值,則舍棄當前測量的所有消息時間戳,終止本次同步測量。
[0041]基于上述方法所涉及的一種精確ΙΕΕΕ1588協議的透明時鐘路徑延遲的裝置,如圖3所示,其主要由初始化模塊、運行模塊、檢測模塊、提取模塊、同步模塊、比較模塊和反饋模塊組成。其中
[0042]初始化模塊,用于上電時,初始化各芯片,為接下來的ΙΕΕΕ1588協議同步做好準備。
[0043]運行模塊,運行ΙΕΕΕ1588協議,進入P2P透明時鐘模式,并根據設置的報文發送時間間隔,發送協議消息報文。
[0044]檢測模塊,當消息來臨時,判斷是否PTP報文消息。即:在網絡端口檢測報文類型,當檢測到 Pdelay_Req、Pdelay_Resp、Pdelay_Resp_Follow_Up 這 3 個報文消息時,則接受并保存。如果檢測到的不是 Pdelay_Req、Pdelay_Resp、Pdelay_Resp_Foilow_Up 這 3 個報文消息時,則舍棄。
[0045]提取模塊,當檢測到所需報文并保存時,提取報文中所含的時間戳信息以及correct1nField 信息。
[0046]同步模塊,收到報文時間戳信息,計算出路徑延遲Q1,其中路徑延遲Ql的計算公式為 Ql = [(Τ4-Τ1)-(Τ3-Τ2)]/2。
[0047]比較模塊,將計算得出的路徑延遲Ql與預先設定的閾值相比較。
[0048]反饋模塊,若是路徑延遲Ql大于閾值,則進入PID反饋補償,獲得一個新的路徑延遲Q2,以調整時鐘的路徑延遲。
[0049]圖4是本發明提供的ΙΕΕΕ1588ν2協議的軟件架構圖。
[0050]protocol, c是整個協議的核心部分,通過它控制整個協議的運行,bmc.c是實現最佳主時鐘算法,net.c是整個的協議的網絡控制方面,msg.c是整個協議的消息包模塊,servo, c是整個協議的核心同步算法。protocol, c規定了協議的九種轉換狀態,控制整個協議的運行,各個端口的轉換,控制協議的九種報文的切換,本發明主要使用了 Pdelay_Req、Pdelay_Resp、Pdelay_Resp_Foilow_Up三種報文來實現了 P2P透明時鐘,達到了本發明的要求。
[0051]servo, c控制整個算法,通過接收四個時間戳信息Tl、T2、T3、T4,然后通過路徑延遲等于((Τ4-Τ1)-(Τ3-Τ2))/2,得出路徑延遲值,將路徑延遲值與預先設置的閾值進行比較,若是小于閾值,則保存路徑延遲值,等待進入下一次同步測量。若是路徑延遲值大于閾值,則進行PID反饋補償,反饋補償后得到的數值再與閾值進行比較,若是補償后的值Q2小于閾值,則保存數據,等待進去下一次同步測量流程,若是Q2大于閾值,則舍棄,終止本次同步測量。
【權利要求】
1.一種精確IEEE1588協議的透明時鐘路徑延遲的方法,其特征是,包括如下步驟: 步驟1、請求者和響應者均運行IEEE1588協議,進入透明時鐘的模式; 步驟2、根據設置的報文發送間隔,在請求者和響應者之間發送協議消息報文,得到4個消息時間戳;即 步驟2.1、請求者發送Pdelay_Req報文給響應者,請求者記下當前發送的消息時間戳Tl ; 步驟2.2、響應者接受請求者發送的Pdelay_Req報文,響應者記下當前接收到的消息時間戳T2 ; 步驟2.3、響應者接受到Pdelay_Req報文后,馬上向請求者發送Pdelay_Resp報文,響應者記錄下發送Pdelay_Resp報文的消息時間戳T3 ; 步驟2.4、請求者接受到響應者發送的Pdelay_Resp報文,請求者記錄下當前消息時間戳T4 ; 步驟3、請求者根據上述所獲得的4個消息時間戳Tl?T4,計算路徑延遲Q1,其中Ql=[(Τ4-Τ1)-(Τ3-Τ2)]/2 ; 步驟4、請求者判斷計算得出的路徑延遲Ql是否大于預先設置的閾值;如果路徑延遲Ql小于閾值,則保存路徑延遲Q1,結束本次同步測量,并等待下次同步測量;如果路徑延遲Ql大于閾值,則采用PID反饋調節補償,進行反饋補償后會得到一個新的路徑延遲Q2,并將新的路徑延遲Q2與閾值進行比較;如果新的路徑延遲Q2小于閾值,則保存新的路徑延遲Q2,結束本次同步測量,等待下次同步測量;如果新的路徑延遲Q2大于閾值,則舍棄當前測量的所有時間戳,終止本次同步測量。
2.根據權利要求1所述的一種精確ΙΕΕΕ1588協議的透明時鐘路徑延遲的方法,其特征是,在步驟I之前,還進一步包括,在主鐘發出同步消息之前,請求者和響應者的主鐘將以太網收發器的時鐘與時間源的時鐘同步。
3.根據權利要求1所述的一種精確ΙΕΕΕ1588協議的透明時鐘路徑延遲的方法,其特征是,在步驟I中,進入的是P2P透明時鐘的模式。
4.根據權利要求1所述的一種精確ΙΕΕΕ1588協議的透明時鐘路徑延遲的方法,其特征是,在步驟2中,設定的報文發送間隔為2Ν秒,其中N為大于等于零的整數。
5.根據權利要求4所述的一種精確ΙΕΕΕ1588協議的透明時鐘路徑延遲的方法,其特征是,所述N的取值范圍介于O?6之間。
6.根據權利要求1所述的一種精確ΙΕΕΕ1588協議的透明時鐘路徑延遲的方法,其特征是,在步驟2中,還進一步包括,步驟2.5、響應者先根據消息時間戳Τ2和Τ3計算周轉時間Τ3-Τ2 ;再根據響應者的時鐘類型將周轉時間Τ3-Τ2加載到相應的報文中,并發送給請求者;即 如果響應者是單步時鐘,則響應者在發送Pdelay_Resp報文之前,將周轉時間T3-T2加到Pdelay_Resp報文的修正域中,并且對校驗和或Pdelay_Resp報文的其他內容相關字段做任何需要的校正; 如果響應者是雙步時鐘,則響應者在發送Pdelay_ReSp報文之后,響應者緊接著發送一個Pdelay_Resp_Follow_Up報文,該Pdelay_Resp_Follow_Up報文中會攜帶有周轉時間T3-T2。
7.根據權利要求1所述的一種精確IEEE1588協議的透明時鐘路徑延遲的方法,其特征是,在步驟4中,設定的閾值介于10ns?500ns之間。
【文檔編號】H04J3/06GK104184534SQ201410455056
【公開日】2014年12月3日 申請日期:2014年9月9日 優先權日:2014年9月9日
【發明者】朱望純, 張鑫, 高海英, 宋輝, 曹健 申請人:桂林電子科技大學