聯(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ù),在局域網(wǎng)內(nèi)其授時精度也只能達10ms級。因此,提高局域網(wǎng)NTP授時精度成為一個迫切需要解決的問題。
基于NTP減少計算機時鐘頻率偏差 時鐘頻率偏差是時鐘長期計時累積誤差的主要原因,要提高時鐘長期計時精度,必須補償時鐘頻率偏差。聯(lián)網(wǎng)的計算機可采用NTP方式,可非常方便地校準時鐘頻率偏差。以NTP服務(wù)器時鐘為標準時間,在某一時刻設(shè)置NTP客戶機時間為NTP服務(wù)器當前時間T0,經(jīng)過一段時間后,NTP服務(wù)器時間為T0+tsn,NTP客戶端時間為T0+tcn。因為存在時鐘頻率偏差,tsn與tcn并不相等。NTP客戶端時間tcn需乘以時鐘頻率偏差系數(shù)k才等于tsn,即tsn=k×tcn,所以k=tsn/tcn。
局域網(wǎng)絡(luò)延相對較大的原因在于時間戳一般都是在應(yīng)用層加蓋。為減少操作系統(tǒng)內(nèi)核處理延時的影響提高NTP授時精度,發(fā)/收NTP包時間戳應(yīng)盡量接近主機真實發(fā)/收包時刻。在不改變硬件的條件下,一個可行的辦法是修改網(wǎng)卡驅(qū)動程序,將記錄NTP包發(fā)/收時間戳從應(yīng)用程序移至網(wǎng)卡驅(qū)動程序處,可消除操作系統(tǒng)內(nèi)核處理延時不確定而引入的誤差。這種方法在局域網(wǎng)中可大幅提高NTP授時精度至μs級。
為了減少溫度引起晶振頻率漂移對時鐘準確度的影響,可以采用數(shù)字溫漂補償方法,提高時鐘長期計時準確度。先測出工作溫度范圍內(nèi)溫度對應(yīng)的溫漂補償系數(shù),工作時每隔一定時間,根據(jù)實際溫度查出對應(yīng)補償系數(shù)動態(tài)地修正時間。