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