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