專利名稱:一種基于ieee 1588協(xié)議的主從時(shí)鐘對(duì)時(shí)的時(shí)間補(bǔ)償方法
技術(shù)領(lǐng)域:
本發(fā)明涉及精準(zhǔn)時(shí)鐘同步技術(shù),針對(duì)特定硬件的平臺(tái),實(shí)現(xiàn)IEEE 1588精準(zhǔn)時(shí)鐘協(xié)議,尤其涉及主從時(shí)鐘的時(shí)間同步。
背景技術(shù):
精確時(shí)鐘同步協(xié)議能夠?yàn)榫W(wǎng)絡(luò)中的各節(jié)點(diǎn)提供時(shí)鐘同步。IEEE 1588最先在國外獲得應(yīng)用,現(xiàn)在已經(jīng)有多家公司(IXXAT,NI, FREESCALE)研發(fā)出的,基于該協(xié)議的主時(shí)鐘和客戶端,羅杰康(RUGGEDC0M)已經(jīng)制作出了基于該協(xié)議的交換機(jī)(邊界時(shí)鐘,和透明時(shí)鐘)。IEEE 1588協(xié)議自從第一版于2002年提出以來,國內(nèi)也進(jìn)行了很多研究已經(jīng)有了 很多種實(shí)現(xiàn)方式,有純軟件實(shí)現(xiàn),也有FPGA實(shí)現(xiàn)的。純軟件實(shí)現(xiàn)精度不高,一般只能達(dá)到NTP (網(wǎng)絡(luò)時(shí)間協(xié)議NTP)的毫秒級(jí)精度。因?yàn)闀r(shí)間戳是由操作系統(tǒng)軟件得到的,而由于軟件無法精確到亞微秒級(jí)別的準(zhǔn)確性,所以沒有辦法保證得到比較高的精度,而FPGA的開發(fā)成本則相對(duì)較高。本發(fā)明方法提出了基于IEEE 1588-2008協(xié)議精確到亞微秒級(jí)別的方法,尤其是基于DP83640芯片的一種實(shí)現(xiàn)方式,使用了該網(wǎng)絡(luò)芯片后,時(shí)間戳可以直接從硬件讀取,因此可以達(dá)到亞微秒級(jí)的精度。同時(shí),利用芯片實(shí)現(xiàn)對(duì)精度需求最高的時(shí)間戳記錄方式,而其他對(duì)精度要求不高的部分則可以通過軟件來實(shí)現(xiàn),使開發(fā)成本最優(yōu)化。在標(biāo)準(zhǔn)的IEEE 1588協(xié)議中,當(dāng)主從時(shí)鐘的時(shí)間偏差小于I秒時(shí),會(huì)通過調(diào)整系統(tǒng)時(shí)鐘的頻率實(shí)現(xiàn)主從時(shí)鐘的對(duì)時(shí)。但是該方法只能改變系統(tǒng)時(shí)鐘的頻率,并不能調(diào)整硬件時(shí)鐘的晶振頻率。而且調(diào)整系統(tǒng)時(shí)鐘頻率的算法調(diào)整時(shí)鐘頻率的速率比較慢,不能快速的調(diào)整主從時(shí)鐘的時(shí)間差,本發(fā)明提出了一種新的算法,能夠快速的調(diào)整硬件時(shí)鐘的晶振頻率。
發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問題是如何快速的調(diào)整硬件時(shí)鐘的晶振頻率實(shí)現(xiàn)IEEE 1588協(xié)議主從時(shí)鐘更精準(zhǔn)對(duì)時(shí)。尤其是基于精確時(shí)間協(xié)議收發(fā)器DP83640芯片實(shí)現(xiàn)本發(fā)明的方法。本發(fā)明提出了一種新的算法,能夠快速的調(diào)整硬件時(shí)鐘的晶振頻率。而且調(diào)整系統(tǒng)時(shí)鐘頻率的算法調(diào)整時(shí)鐘頻率的速率快,且能快速的調(diào)整主從時(shí)鐘的時(shí)間差。本發(fā)明技術(shù)方案是基于IEEE 1588協(xié)議的主從時(shí)鐘對(duì)時(shí)的時(shí)間補(bǔ)償方法,其特征是包含以下步驟A.初始化與晶振頻率相關(guān)的時(shí)間數(shù)據(jù),從時(shí)鐘接收同步報(bào)文從時(shí)鐘上次同步報(bào)文的接收時(shí)間初始化為0,從時(shí)鐘記錄本次同步報(bào)文的接收時(shí)間,初始化從時(shí)鐘接收同步報(bào)文的的平均周期P1為0,本次從時(shí)鐘接收同步報(bào)文的周期的值為本次同步報(bào)文的接收時(shí)間與其上次同步報(bào)文的接收時(shí)間之差;初始化時(shí)主從時(shí)鐘的平均偏移時(shí)間為0,本次主從時(shí)鐘的偏移時(shí)間通過IEEE 1588協(xié)議計(jì)算出;B.從時(shí)鐘接收同步報(bào)文的的平均周期的計(jì)算從時(shí)鐘接收同步報(bào)文的周期值為本次從時(shí)鐘接收同步同步報(bào)文的接收時(shí)間與其上次同步報(bào)文的接收時(shí)間之差,將從時(shí)鐘接收同步報(bào)文的的平均周期與本次從時(shí)鐘接收同步報(bào)文的周期的值之差的絕對(duì)值和給定的閾值比較,如果超過該閾值,則轉(zhuǎn)到步驟F ;否則,分別給定從時(shí)鐘接收同步報(bào)文的的平均周期和本次從時(shí)鐘接收同步報(bào)文的周期一個(gè)權(quán)重,重新計(jì)算從時(shí)鐘接收同步報(bào)文的平均周期;C.主從時(shí)鐘的平均偏移時(shí)間的計(jì)算將主從時(shí)鐘的平均偏移時(shí)間與本次主從時(shí)鐘的偏移時(shí)間之差的絕對(duì)值和給定的閾值比較,如果超過超過該閾值,則轉(zhuǎn)到步驟F ;否則,分別給定主從時(shí)鐘的平均偏移時(shí)間和本次主從時(shí)鐘的偏移時(shí)間一個(gè)權(quán)重,重新計(jì)算主從時(shí)鐘的平均偏移時(shí)間T1 ;D.從時(shí)鐘的晶振頻率的計(jì)算通過當(dāng)前的從時(shí)鐘晶振頻率和從時(shí)鐘接收同步報(bào)文的的平均周期與主從時(shí)鐘的平均偏移時(shí)間的比值計(jì)算并修改調(diào)整后的從時(shí)鐘的晶振頻
率F2 ;E.重置參數(shù)重置從時(shí)鐘接收同步報(bào)文的的平均周期和主從時(shí)鐘的平均偏移時(shí)間T1為OF.循環(huán)操作從時(shí)鐘每次接收到同步報(bào)文重復(fù)B到F。2、根據(jù)權(quán)利要求I所述的基于IEEE 1588協(xié)議的主從時(shí)鐘對(duì)時(shí)的時(shí)間補(bǔ)償方法,其特征是步驟C中重新計(jì)算從時(shí)鐘接收同步報(bào)文的的平均周期的方法是同時(shí)考慮從時(shí)鐘接收同步報(bào)文的平均周期P1和主從時(shí)鐘的平均偏移時(shí)間T1以及當(dāng)前從時(shí)鐘硬件的晶振頻率F1,然后應(yīng)用公式(I)來計(jì)算出新的從時(shí)鐘硬件S從時(shí)鐘的晶振頻率F2。F2 = F1+(T1 X 235)/P1(I)從時(shí)鐘每次接收同步報(bào)文之后,首先計(jì)算從時(shí)鐘接收同步報(bào)文的平均周期P1和本次從時(shí)鐘接收同步報(bào)文的周期P2之差,如果兩者之差大于特定的閾值,則需要重新計(jì)算平均周期P1,按照公式(2)計(jì)算平均周期P1,其中λ參數(shù)表示P2在計(jì)算P1時(shí)所占的權(quán)重,在實(shí)際中設(shè)置為O. I ;如果兩者之差不大于特定的閾值(閾值通常為平均周期的O. 2-0. 5%),放棄本次接收同步報(bào)文后對(duì)從時(shí)鐘硬件的晶振頻率的修改。P1=(PjAXP2)Z(HA)⑵其次,計(jì)算主從時(shí)鐘平均偏移時(shí)間T1和本次主從時(shí)鐘偏移時(shí)間T2之差,如果兩者之差大于特定的閾值,則需要重新計(jì)算T1,按照公式(3)計(jì)算T1,其中“α ”參數(shù)表示T2在計(jì)算T1時(shí)所占的權(quán)重,在實(shí)際中設(shè)置為0.5 ;如果兩者之差不大于特定的閾值,放棄本次接收同步報(bào)文后對(duì)硬件時(shí)鐘的晶振頻率的修改。T1= (T^aT2)/ (1+α )⑶之后從時(shí)鐘每次接收到同步報(bào)文,都會(huì)判斷是否需要重新計(jì)算P1和T1 ;僅當(dāng)P1和T1重新計(jì)算之后,從時(shí)鐘才會(huì)通過公式(I)調(diào)整晶振頻率。本發(fā)明的有益效果是將一個(gè)(或若干個(gè))主時(shí)鐘通過以太網(wǎng)絡(luò)(或其他異構(gòu)網(wǎng)絡(luò))對(duì)其他從時(shí)鐘進(jìn)行較時(shí),1588協(xié)議通過BMC算法使網(wǎng)絡(luò)中的時(shí)鐘形成分層的體系結(jié)構(gòu),讓下層的時(shí)鐘成為從時(shí)鐘,向上層的主時(shí)鐘進(jìn)行較時(shí)。本發(fā)明提供了一種新的算法通過快速改變晶振頻率來校正從時(shí)鐘的硬件時(shí)間從而調(diào)整系統(tǒng)時(shí)間,實(shí)現(xiàn)IEEE 1588協(xié)議主從時(shí)鐘更精準(zhǔn)對(duì)時(shí)。1588協(xié)議將會(huì)在智能電網(wǎng)時(shí)鐘系統(tǒng)領(lǐng)域大量使用。快速的調(diào)整硬件時(shí)鐘的晶振頻率實(shí)現(xiàn)IEEE 1588協(xié)議主從時(shí)鐘更精準(zhǔn)對(duì)時(shí)。尤其是基于精確時(shí)間協(xié)議收發(fā)器DP83640芯片實(shí)現(xiàn)本發(fā)明的方法。本發(fā)明能夠快速的調(diào)整硬件時(shí)鐘的晶振頻率。而且調(diào)整系統(tǒng)時(shí)鐘頻率的算法調(diào)整時(shí)鐘頻率的速率快,且能快速的調(diào)整主從時(shí)鐘的時(shí)間差。本發(fā)明方法校準(zhǔn)的時(shí)間精度能夠達(dá)到百納秒級(jí)別。
圖I是IEEE 1588網(wǎng)絡(luò)系統(tǒng)示意圖;圖2是主從時(shí)鐘的報(bào)文交互示意圖;圖3是同步報(bào)文接收示意圖;圖4是路徑延遲測量結(jié)果;圖5是客戶端IEEE1588時(shí)鐘與GPS時(shí)鐘的偏差。
具體實(shí)施例方式通過IEEE 1588協(xié)議的目的是一個(gè)(或若干個(gè))主時(shí)鐘通過以太網(wǎng)絡(luò)(或其他異構(gòu)網(wǎng)絡(luò))對(duì)其他從時(shí)鐘進(jìn)行較時(shí)(如圖I所示)。1588協(xié)議通過BMC算法使網(wǎng)絡(luò)中的時(shí)鐘形成分層的體系結(jié)構(gòu),讓下層的時(shí)鐘成為從時(shí)鐘,向上層的主時(shí)鐘進(jìn)行較時(shí)。交換時(shí)間信息有兩種規(guī)約的方式,分別是點(diǎn)對(duì)點(diǎn)和端對(duì)端的方式。兩種方式稍微有點(diǎn)不同,其中點(diǎn)對(duì)點(diǎn)主從時(shí)鐘的交互方式如圖2所示。主時(shí)鐘Sync報(bào)文的發(fā)送時(shí)間h可攜帶在Follow_Up報(bào)文中,亦可攜帶在Sync報(bào)文。如果由Sync報(bào)文攜帶,則需要硬件的支持。為了更精確的計(jì)算主從時(shí)鐘的時(shí)間偏差,最好讓Sync報(bào)文攜帶其發(fā)送時(shí)間戳,如圖3所示。主從時(shí)鐘的時(shí)間偏差可以通過公式(4)來計(jì)算,其中表不主從時(shí)間偏差,t4_t3表不從主時(shí)間偏差,IEEE1588協(xié)議默認(rèn)主時(shí)鐘到從時(shí)鐘的延遲和從時(shí)鐘到主時(shí)鐘的延遲相等,因此公式(4)是成立的。offset = ((t2_ti)_ (t4_t3) )/2(4)當(dāng)主從時(shí)鐘的時(shí)間偏差小于一定的閾值時(shí),直接重置從時(shí)鐘的時(shí)間會(huì)明顯降低校時(shí)的精度。這時(shí)候,就需要通過調(diào)整從時(shí)鐘的頻率來校正從時(shí)鐘的時(shí)間(主從時(shí)鐘的對(duì)時(shí)操作)。IEEE 1588協(xié)議通過調(diào)整從時(shí)鐘頻率校正從時(shí)鐘時(shí)間的方法適合調(diào)整系統(tǒng)的時(shí)間,但是并不適合用來調(diào)整硬件時(shí)鐘的晶振頻率。本發(fā)明提出了一種通過快速改變晶振頻率來校正從時(shí)鐘的硬件時(shí)間的方法。具體步驟如下描述首先設(shè)定變量名稱,上次同步報(bào)文的接收時(shí)間A1,本次同步報(bào)文的接收時(shí)間t2,從時(shí)鐘接收同步報(bào)文平均周期T1,本次從時(shí)鐘接收同步報(bào)文周期P2,主從時(shí)鐘平均偏移時(shí)間!\,本次主從時(shí)鐘偏移時(shí)間T2,修改之前的硬件時(shí)鐘晶振頻率T1,修改之后的硬件時(shí)鐘晶振頻率F2。步驟I :初始化數(shù)據(jù)= O, P1 = O, P2 = t2-t1; T1 = O,從時(shí)鐘接收同步報(bào)文,記
^2 °步驟2 :判斷是否需要重新計(jì)算P1,如果|P「P2| > IP21/2 JlJP1=P2,轉(zhuǎn)到步驟6 ;否則通過公式(2)重新計(jì)算Pp步驟3 :判斷是否需要重新計(jì)算T1,如果I T1-T21 > I T21 /16,則T1=T2,轉(zhuǎn)到步驟6 ;否則通過公式(3)重新計(jì)算1\。步驟4 :計(jì)算新的從時(shí)鐘硬件時(shí)鐘的晶振頻率F2 = F1+(T1 X 235)/P10
步驟5 :重置平均周期和平均偏移時(shí)間=P1 = 0,T1 = O。步驟6 :重復(fù)步驟t1=t2,每次接收到同步報(bào)文循環(huán)步驟2到步驟6。完成主從時(shí)鐘的對(duì)時(shí)操作后,我們需要使主從時(shí)鐘的時(shí)鐘頻率保持一致,完成守時(shí)操作。由于dp83640擁有調(diào)整晶振頻率的功能,在有dp83640支持的從設(shè)備上可以先通過連續(xù)兩次Sync報(bào)文的收發(fā)時(shí)間戳來計(jì)算晶振頻率補(bǔ)償值,然后通過速率調(diào)整方式對(duì)自身晶振頻率進(jìn)行補(bǔ)償。假設(shè)主從時(shí)鐘之間的傳輸路徑延遲是一個(gè)固定值,即每次主時(shí)鐘給從時(shí)鐘發(fā)送Sync報(bào)文,Sync報(bào)文在網(wǎng)路中的傳播時(shí)間固定不變,這樣傳輸路徑延遲誤差影響忽略不計(jì)。假設(shè)第一個(gè)Sync報(bào)文的發(fā)送時(shí)間戳為tMl,接收時(shí)間戳為tSl,第二個(gè)Sync報(bào)文的發(fā)送時(shí)間戳為tM2,接收時(shí)間戳為tS2,從時(shí)鐘在接收到第一個(gè)Sync報(bào)文后,對(duì)本地時(shí)鐘進(jìn)行調(diào)整的時(shí)間值為At,那么從時(shí)鐘所需要進(jìn)行的頻率調(diào)整補(bǔ)償值為rate = ((tm2-tml) + At- (ts2-tsl)) / (tm2-tml)(5) 圖4是傳輸路徑延遲的測量結(jié)果,其中藍(lán)色曲線表示服務(wù)器到客戶端的傳輸路徑延遲,紅色曲線表示客戶端到服務(wù)器的路徑延遲。圖5是200次采樣中,IEEE1588時(shí)鐘與GPS時(shí)鐘的偏差曲線圖??梢钥闯稣麄€(gè)授時(shí)系統(tǒng)的同步誤差不超過140ns,達(dá)到了很高的精度。而且將圖4與圖5進(jìn)行對(duì)比可以發(fā)現(xiàn),當(dāng)主從時(shí)鐘之間的傳輸路徑延遲接近時(shí),同步偏差比較小,這與IEEE1588協(xié)議關(guān)于傳輸路徑延遲的假設(shè)是相符的。當(dāng)然本發(fā)明實(shí)施例的描述并非限定本發(fā)明的內(nèi)容,任何基本發(fā)明方法的簡單改進(jìn)并沒有超出本發(fā)明權(quán)利要求保護(hù)的范圍。
權(quán)利要求
1.基于IEEE1588協(xié)議的主從時(shí)鐘對(duì)時(shí)的時(shí)間補(bǔ)償方法,其特征是包含以下步驟 A.初始化與晶振頻率相關(guān)的時(shí)間數(shù)據(jù),從時(shí)鐘接收同步報(bào)文從時(shí)鐘上次同步報(bào)文的接收時(shí)間初始化為O,從時(shí)鐘記錄本次同步報(bào)文的接收時(shí)間,初始化時(shí)從時(shí)鐘接收同步報(bào)文的平均周期P1為O,本次從時(shí)鐘接收同步報(bào)文的周期的值為本次同步報(bào)文的接收時(shí)間與其上次同步報(bào)文的接收時(shí)間之差;初始化時(shí)主從時(shí)鐘的平均偏移時(shí)間為O,本次主從時(shí)鐘的偏移時(shí)間通過IEEE 1588協(xié)議計(jì)算出; B.從時(shí)鐘接收同步報(bào)文的的平均周期的計(jì)算從時(shí)鐘接收同步報(bào)文的周期值為本次從時(shí)鐘接收同步報(bào)文的周期的值為本次同步報(bào)文的接收時(shí)間與其上次同步報(bào)文的接收時(shí)間之差,將從時(shí)鐘接收同步報(bào)文的的平均周期與本次從時(shí)鐘接收同步報(bào)文的周期的值之差的絕對(duì)值和給定的閾值比較,如果超過該閾值,則轉(zhuǎn)到步驟F ;否則,分別給定從時(shí)鐘接收同步報(bào)文的平均周期和本次從時(shí)鐘接收同步報(bào)文的周期一個(gè)權(quán)重,重新計(jì)算從時(shí)鐘接收同步報(bào)文的的平均周期; C.主從時(shí)鐘的平均偏移時(shí)間的計(jì)算將主從時(shí)鐘的平均偏移時(shí)間與本次主從時(shí)鐘的偏移時(shí)間之差的絕對(duì)值和給定的閾值比較,如果超過超過該閾值,則轉(zhuǎn)到步驟F ;否則,分別給定主從時(shí)鐘的平均偏移時(shí)間和本次主從時(shí)鐘的偏移時(shí)間一個(gè)權(quán)重,重新計(jì)算主從時(shí)鐘的平均偏移時(shí)間T1 ; D.從時(shí)鐘的晶振頻率的計(jì)算通過當(dāng)前的從時(shí)鐘晶振頻率和從時(shí)鐘接收同步報(bào)文的的平均周期與主從時(shí)鐘的平均偏移時(shí)間的比值計(jì)算并修改調(diào)整后的從時(shí)鐘的晶振頻率F2 ; E.重置參數(shù)重置從時(shí)鐘接收同步報(bào)文的的平均周期和主從時(shí)鐘的平均偏移時(shí)間T1為O ; F.循環(huán)操作從時(shí)鐘每次接收到同步報(bào)文重復(fù)B到F。
2.根據(jù)權(quán)利要求I所述的基于IEEE1588協(xié)議的主從時(shí)鐘對(duì)時(shí)的時(shí)間補(bǔ)償方法,其特征是步驟C中重新計(jì)算從時(shí)鐘接收同步報(bào)文的的平均周期的方法是同時(shí)考慮從時(shí)鐘接收同步報(bào)文的平均周期P1和主從時(shí)鐘的平均偏移時(shí)間T1以及當(dāng)前從時(shí)鐘硬件的晶振頻率F1,然后應(yīng)用公式(I)來計(jì)算出新的從時(shí)鐘晶振頻率F2。
F2 = F1+(T1 X 235)/P1(I) 從時(shí)鐘每次接收同步報(bào)文之后,首先計(jì)算從時(shí)鐘接收同步報(bào)文的平均周期P1和本次從時(shí)鐘接收同步報(bào)文的周期P2之差,如果兩者之差大于特定的閾值,則需要重新計(jì)算平均周期?工,按照公式(2)計(jì)算平均周期P1,其中λ參數(shù)表示P2在計(jì)算P2時(shí)所占的權(quán)重,在實(shí)際中設(shè)置為O. I ;如果兩者之差不大于特定的閾值(閾值通常為平均周期的O. 2-0. 5%),放棄本次接收同步報(bào)文后對(duì)從時(shí)鐘晶振頻率的修改。
P1 = (P1+λ XP2)/(1+λ)(2) 其次,計(jì)算主從時(shí)鐘平均偏移時(shí)間T1和本次主從時(shí)鐘偏移時(shí)間T2之差,如果兩者之差大于特定的閾值,則需要重新計(jì)算T1,按照公式(3)計(jì)算T1,其中“α”表示T2在計(jì)算T1時(shí)所占的權(quán)重,在實(shí)際中設(shè)置為O. 5 ;如果兩者之差不大于特定的閾值,放棄本次接收同步報(bào)文后對(duì)硬件時(shí)鐘的晶振頻率的修改。
T1= (VaT2)/ (1+α ) (3) 之后從時(shí)鐘每次接收到同步報(bào)文,都會(huì)判斷是否需要重新計(jì)算P1和T1 ;僅當(dāng)P1和T1重新計(jì)算之后,從時(shí)鐘才會(huì)通過公式(I)調(diào)整晶振頻率 。
全文摘要
一種基于IEEE 1588協(xié)議的主從時(shí)鐘對(duì)時(shí)的時(shí)間補(bǔ)償方法,包含以下步驟A.初始化與晶振頻率相關(guān)的時(shí)間數(shù)據(jù),從時(shí)鐘接收同步報(bào)文;B.從時(shí)鐘接收同步報(bào)文的的平均周期的計(jì)算;C.主從時(shí)鐘的平均偏移時(shí)間的計(jì)算將主從時(shí)鐘的平均偏移時(shí)間與本次主從時(shí)鐘的偏移時(shí)間之差的絕對(duì)值和給定的閾值比較,一個(gè)(或若干個(gè))主時(shí)鐘通過以太網(wǎng)絡(luò)(或其他異構(gòu)網(wǎng)絡(luò))對(duì)其他從時(shí)鐘進(jìn)行較時(shí),1588協(xié)議通過BMC算法使網(wǎng)絡(luò)中的時(shí)鐘形成分層的體系結(jié)構(gòu),讓下層的時(shí)鐘成為從時(shí)鐘,向上層的主時(shí)鐘進(jìn)行較時(shí)。本發(fā)明提供了一種新的算法通過快速改變晶振頻率來校正從時(shí)鐘的硬件時(shí)間從而調(diào)整系統(tǒng)時(shí)間,實(shí)現(xiàn)IEEE 1588協(xié)議主從時(shí)鐘更精準(zhǔn)對(duì)時(shí)。1588協(xié)議將會(huì)在智能電網(wǎng)時(shí)鐘系統(tǒng)領(lǐng)域大量使用。
文檔編號(hào)H04J3/06GK102983927SQ201210532810
公開日2013年3月20日 申請(qǐng)日期2012年12月12日 優(yōu)先權(quán)日2012年12月12日
發(fā)明者張熀松, 王自強(qiáng), 周余, 李楊 申請(qǐng)人:南京協(xié)澳智能控制系統(tǒng)有限公司