當前位置:首頁檢測中心基礎(chǔ)知識 │ NTP時鐘同步原理及誤差簡析

NTP時鐘同步原理及誤差簡析

  • 瀏覽次數(shù):14519次
  • 發(fā)布時間:2017/11/20 17:11:46
  • 作者:pl_yinhe

  在我們某試驗系統(tǒng)方案設(shè)計中,由于數(shù)據(jù)同步性的要求,需要將我們WP4000變頻功率分析儀的時鐘與客戶的NI系統(tǒng)的時鐘進行同步,對于WP4000變頻功率測試系統(tǒng)而言,多臺分析儀之間可通過同步光纖接口達到嚴格同步,同步時序達us級。但要求WP4000變頻功率測試系統(tǒng)與其它系統(tǒng)之間保持同步,在同步性要求不是特別高的情況下,可以采用NTP時鐘同步的方式進行多系統(tǒng)間的同步,以下就NTP時鐘同步系統(tǒng)誤差進行簡析。

NTP協(xié)議簡介

  網(wǎng)絡(luò)時間協(xié)議NTP(Network Time Protocol)的主要開發(fā)者是美國特拉華大學的MILLS David L教授設(shè)計實現(xiàn)的,由時間協(xié)議、ICMP時間戳消息及IP時間戳選項發(fā)展而來。NTP用于將計算機客戶或服務器的時間與另一服務器同步,使用層次式時間分布模型。在配置時,NTP可以利用冗余服務器和多條網(wǎng)絡(luò)路徑來獲得時間的高準確性和高可靠性。即使客戶機在長時間無法與某一時間服務器相聯(lián)系的情況下,仍可提供高準確度時間。

  實際應用中,還有確保秒級精度的簡單的網(wǎng)絡(luò)時間協(xié)議SNTP(Simple Network Time Protocol)。SNTP是NTP的一個子集,主要用于那些不需要NTP的精度以較高實現(xiàn)復雜性的網(wǎng)絡(luò)時間同步客戶機。SNTP協(xié)議已減少了網(wǎng)絡(luò)延時對校對準確的影響,但沒有冗余服務器和校正時鐘頻率誤差功能。

  一般的計算機和嵌入式設(shè)備在時鐘度方面沒有明確的指標要求, 時鐘精度只有10-4~10-5,每天可能誤差達十幾秒或更多,如果不及時校正,其累積時間誤差不可忽視。許多工業(yè)控制過程需要高準確度時間,如:電力系統(tǒng)內(nèi)眾多的計算機監(jiān)控系統(tǒng)、保護裝置、故障錄波器等時間同步要在ms級以內(nèi)。

  聯(lián)網(wǎng)計算機同步時鐘最簡便的方法是網(wǎng)絡(luò)授時。網(wǎng)絡(luò)授時分為廣域網(wǎng)授時和局域網(wǎng)授時。廣域網(wǎng)授時精度通常能達50ms級,但有時超過500ms,這是因為每次經(jīng)過的路由器路徑可能不相同?,F(xiàn)在還沒有更好的辦法將這種不同路徑延遲的時間誤差完全消除。局域網(wǎng)授時不存在路由器路徑延遲問題,因而授時精度理論上可以提到亞毫秒級。Windows內(nèi)置NTP服務,在局域網(wǎng)內(nèi)其最高授時精度也只能達10ms級。因此,提高局域網(wǎng)NTP授時精度成為一個迫切需要解決的問題。

NTP授時原理

  NTP最典型的授時方式是Client/Server方式。如下圖1所示,客戶機首先向服務器發(fā)送一個NTP 包,其中包含了該包離開客戶機的時間戳T1,當服務器接收到該包時,依次填入包到達的時間戳T2、包離開的時間戳T3,然后立即把包返回給客戶機??蛻魴C在接收到響應包時,記錄包返回的時間戳T4??蛻魴C用上述4個時間參數(shù)就能夠計算出2個關(guān)鍵參數(shù):NTP包的往返延遲d和客戶機與服務器之間的時鐘偏差t??蛻魴C使用時鐘偏差來調(diào)整本地時鐘,以使其時間與服務器時間一致。

Client/Server方式下NTP授時原理

圖1 Client/Server方式下NTP授時原理

  圖1中:T1為客戶發(fā)送NTP請求時間戳(以客戶時間為參照);T2為服務器收到NTP請求時間戳(以服務器時間為參照);T3為服務器回復NTP請求時間戳(以服務器時間為參照);T4為客戶收到NTP回復包時間戳(以客戶時間為參照);d1為NTP請求包傳送延時,d2為NTP回復包傳送延時;t為服務器和客戶端之間的時間偏差,d為NTP包的往返時間。

  現(xiàn)已經(jīng)T1、T2、T3、T4,希望求得t以調(diào)整客戶方時鐘:

a....................................................式(1)

  假設(shè)NPT請求和回復包傳送延時相等,即d1=d2,則可解得“

b.....................................式(2)

  根據(jù)式(1),t也可表示為:t=(T2-T1)+d1=(T2-T1)+d/2.....................式(3)

  可以看出,t、d只與T2、T1差值及T3、T4差值相關(guān),而與T2、T3差值無關(guān),即最終的結(jié)果與服務器處理請求所需的時間無關(guān)。因此,客戶端即可通過T1、T2、T3、T4計算出時差t去調(diào)整本地時鐘。

NTP授時精度分析

  NTP授時精度與NTP服務器與用戶間的網(wǎng)絡(luò)狀況有關(guān),主要取決于NTP包往返路由的延時對稱程度,往返路由的延時不對稱值最大不超過網(wǎng)絡(luò)延時。式(2)是在假設(shè)NTP請求和回復包在網(wǎng)上傳送延時相等,即d1=d2=d/2的情況下得出的,而d1、d2的取值范圍在(0...d)間,由式(3)可以得出最大授時誤差是±d/2。一般廣域網(wǎng)的網(wǎng)絡(luò)延時在10 ms~500ms之間;局域網(wǎng)的網(wǎng)絡(luò)延時在計時操作系統(tǒng)內(nèi)核處理延遲的情況下通常小于1ms。

  假定局域網(wǎng)內(nèi)NTP延時小于1ms,理論上授時誤差小于0.5ms,但對于Windows操作系統(tǒng)內(nèi)置的NTP客戶和NTP服務,并不能達到此精度。Windows NTP時鐘分辨率因操作系統(tǒng)和硬件不同而有所不同,時鐘分辨率通常為10ms或15ms?;赪indows操作系統(tǒng)內(nèi)置的NTP授時精度最高不超過10ms。

基于NTP減少計算機時鐘偏差

01計算機時鐘偏差分析

  通用PC機自帶兩類時鐘源:硬件時鐘和軟件時鐘(或稱為系統(tǒng)時鐘)。不論是硬件時鐘還是軟件時鐘,都是由石英晶體振蕩器驅(qū)動的,通過累計石英晶體振蕩器輸出脈沖數(shù),換算出時間。所以計算機時鐘的準確度取決于晶振頻率準確度。受溫度變化、電壓、芯片老化等因素影響,晶振頻率會發(fā)生小幅度波動,其中溫度對晶振頻影響最大。

  由于工藝和材料的原因,同一生產(chǎn)線上標稱頻率相同的石英晶體,其實際頻率是不同的,實際頻率與標稱頻率偏差率從10-4量級到10-9量級不等。以10-4量級為例,時鐘每天至少誤差8.64 s。

02基于NTP減少計算機時鐘頻率偏差

  時鐘頻率偏差是時鐘長期計時累積誤差的主要原因,要提高時鐘長期計時精度,必須補償時鐘頻率偏差。聯(lián)網(wǎng)的計算機可采用NTP方式,可非常方便地校準時鐘頻率偏差。以NTP服務器時鐘為標準時間,在某一時刻設(shè)置NTP客戶機時間為NTP服務器當前時間T0,經(jīng)過一段時間后,NTP服務器時間為T0+tsn,NTP客戶端時間為T0+tcn。因為存在時鐘頻率偏差,tsn與tcn并不相等。NTP客戶端時間tcn需乘以時鐘頻率偏差系數(shù)k才等于tsn,即tsn=k×tcn,所以k=tsn/tcn。

  任何晶振實際工作頻率都是不穩(wěn)定的,只是程度不同而已。即使溫度補償?shù)木д?,在常溫范圍?nèi)(攝氏10℃~35℃)也有大約5×10-7~2×10-6的誤差。晶振實際頻率是受外界多種因素(溫度、電壓、老化等)影響而改變的。因此,時鐘頻率偏差系數(shù)k并非恒定不變的。每隔一定時間,NTP客戶機要對時鐘頻率偏差系數(shù)k進行校正,才能保證計時精度。

進一步提高NTP授時精度的方法

  局域網(wǎng)絡(luò)延相對較大的原因在于時間戳一般都是在應用層加蓋。為減少操作系統(tǒng)內(nèi)核處理延時的影響提高NTP授時精度,發(fā)/收NTP包時間戳應盡量接近主機真實發(fā)/收包時刻。在不改變硬件的條件下,一個可行的辦法是修改網(wǎng)卡驅(qū)動程序,將記錄NTP包發(fā)/收時間戳從應用程序移至網(wǎng)卡驅(qū)動程序處,可消除操作系統(tǒng)內(nèi)核處理延時不確定而引入的誤差。這種方法在局域網(wǎng)中可大幅提高NTP授時精度至μs級。

  為了減少溫度引起晶振頻率漂移對時鐘準確度的影響,可以采用數(shù)字溫漂補償方法,提高時鐘長期計時準確度。先測出工作溫度范圍內(nèi)溫度對應的溫漂補償系數(shù),工作時每隔一定時間,根據(jù)實際溫度查出對應補償系數(shù)動態(tài)地修正時間。

  時鐘頻率偏差和時鐘分辨率低是局域網(wǎng)NTP授時精度不高的主要原因。


Copyright 2010-2017 gold-diggers-game.com, All Rights Reserved 湖南銀河電氣有限公司 版權(quán)所有 湘ICP備09002592號-5