基於GPS北斗衛星的NTP時鐘伺服器應用天文觀測

ahjzdz發表於2020-12-14

基於GPS北斗衛星的NTP時鐘伺服器應用天文觀測

天文觀測裝置對於控制系統的時間準確度有嚴格要求。為此,採用搭建高精度 NTP 伺服器的方法實現系統校時。基本思路是從 NMEA018 3 資料中提取時間資訊,透過 PPS 訊號來保證高精度。具體實現方法是採用 GPS 接收模組 G591 來構造硬體電路,軟體部分需要 NTP 伺服器軟體和 GPS 的正確安裝和配置。對照實驗表明,基於 GPS NTP 伺服器校時精度可以達到微秒量級,工作效能穩定而可靠。

0
引言
準確的時間是天文觀測所必需的。天文望遠鏡在特定時間內的準確指向、 CCD 曝光時間的控制以及不同波段觀測資料所進行的高精度同步比對等應用需要系統至少有亞毫秒的時間準確度。然而就目前來看,一般的計算機和嵌入式裝置所使用的晶體振盪器的精度為幾個或者幾十個 ppm( 百萬分之一秒 ) ,並且會受溫度漂移的影響,使得每天的誤差能夠達到秒級,若再考慮元器件的老化或外界干擾等因素,誤差可能會超過 10 s ,如果不及時校正,其誤差積累將不可忽視。
網路時間協議 NTP(Network Time Protocol) 是美國特拉華大學的 MILLS David L .教授在 1982 年提出的,其設計目的是利用網際網路資源傳遞統一和標準的時間。目前,使用 GPS 訊號實現校時的研究工作很多,大多隻是透過讀取 GPS 模組解碼出的序列資料,提取其中的時間資訊來糾正系統時鐘,該過程並不涉及 NTP 的使用,精度較低,一般為幾十到幾百毫秒。對此,本文充分利用了 NTP 伺服器軟體對 GPS 時鐘源的支援,採用序列資料和秒脈衝相結合的方式來校準時間,校時精度大為提高。

1 GPS 同步時鐘的校時方式
1 1 GPS 介紹
GPS(Global Positioning System
,全球定位系統 ) 20 世紀 70 年代美國研製的新一代衛星導航、授時、定位系統。 24 顆專用的 GPS 衛星上都各自帶有原子鐘,能夠全天候向地面廣播精確的 UTC 標準時間。在許多通用 GPS 解碼晶片解碼出的資料流中,除了有位置資訊,還包含時間資訊 ( 年月日時分秒 ) PPS(Pulseper Second ,秒脈衝訊號 ) PPS 標識了時間資訊的起點,其精確度可以到微秒量級。
1
2 校時方式介紹
NTP
是用來使計算機時間同步化的一種協議,其同步時鐘源不僅僅侷限於網路的時間伺服器,還包括時鐘裝置,如石英鐘,原子鐘, GPS 接收器等。 NTP 伺服器軟體將這些時鐘源抽象成相應的資料結構,對應於不同的記憶體地址,透過讀取該地址中的資訊,進行統計學演算法的處理來同步計算機的時鐘。
使用 GPS 作為同步時鐘源的校時方案主要有三種:脈衝同步方式、序列同步方式和綜合方式。本文采用的 GPSD 校時方案是綜合方式。三種方式的對照如表 1 所示。

 


1
3 基於 GPSD 的綜合校時
GPSD(GPS Daemon)
是一個守護程式軟體,用來處理 GPS 接收單元解碼出的資料。基於 GPSD 綜合校時的具體過程如圖 1 所示。 GPS 天線接收 GPS 訊號,傳遞給 G591 晶片進行解碼,每秒輸出 NMEA0183 協議格式的資料和 PPS 訊號, MAX 232 完成電平轉換之後,分別經由串列埠的 RXD DCD 端傳遞給計算機; GPSD 軟體經過處理,將準確的時間資訊寫到特定記憶體段中; NTP 伺服器軟體透過共享記憶體的方式讀取該地址段中的時間資訊,進而完成校正系統時鐘的工作。

 


基於 GPSD 綜合校時方案是一種優勢互補的校時方式。這種方式繼承了 NMEA 序列校時方式可以獲取時間資訊的優勢,同時利用了 PPS 脈衝校時延時估計誤差小、精度高的特點,是一種簡便有效的校時方案。

2 系統設計實現
2 1 硬體平臺
GPSD
綜合校時方案需要的硬體裝置分為三個部分: GPS 天線、 GPS 接收器和與 GPS 接收器連線的計算機,其相應的功能和應用如下:
(1)GPS
天線用於接收 GPS 訊號。本文采用的是磁吸式 GPS 天線,使用時要水平放置,最好置於開闊地,如天窗、窗臺、陽臺等;
(2)GPS
接收器由電源、 GPS 接收和電平轉換三個模組構成如圖 2 所示。 GPS 接收模組採用 JRC(Japan Radio Company) 設計的 G591 晶片,該晶片支援多達 210 PRN 通道,輸出資料為 NMEA0183 協議的序列資料,波特率為 9 600 b s ,適用於各種相關開發。在本設計中, G591 主要用來獲取時間資訊和 PPS 訊號,不涉及定位導航;電源模組採用的是 AMS(Advanced Monolithie Systems) 設計的 AMS1117-3 3 晶片,該晶片輸出電壓為 3 3 V ,最大輸出電流為 1 A ,用來給 G591 MAX232 供電;電平轉換模組主要採用 MAXIM 公司設計的 MAX232 晶片,該晶片負責把 G591 輸出的 CMOS 電平轉換成 RS 232 電平,供串列埠讀取。

 


(3)
計算機裝置用於處理 GPS 資料,要求支援串列埠和網口等裝置,以實現 GPS 資料接收和校時輸出。
硬體平臺搭建好了之後,本文對 PPS 訊號和 NMEA0183 序列資料進行了相應的除錯。對 PPS 訊號的除錯採用的是硬體方式,使用示波器來觀察 GPS 接收器是否有秒脈衝訊號輸出,若天線和接收器工作正常,會檢測到 PPS 端有脈寬為 100 ms 的秒脈衝輸出;對 NMEA 資料的除錯採用的是軟體方式,使用 Windows 作業系統自帶的超級終端或 Linux 作業系統的 minicom 等工具來讀取串列埠,檢測資料是否正常,正確的輸出結果是 NME A0183 序列資料。
若由於天線或氣象原因, G591 模組沒有接收到訊號,則不會產生 PPS 訊號,同時 NMEA0183 語句中的 GPRMC 語句的標誌位也會變成無效。
2
2 軟體平臺
2
2 1 安裝過程
本文使用的是 Ubuntu 11 04 作業系統,核心版本是 2 6 38 ;需要的軟體包有 setserial gpsd gpsd-cli-ents python-gps ntp 。在終端中使用 Ubuntu 自帶的 apt-get 命令安裝這些軟體包,然後分別作出相應的設定:
(1)setserial
的版本是 2 17 ,該軟體是用來對串列埠進行相應的設定。為了能夠讓串列埠識別 PPS 訊號,要對 setserial 的配置檔案修改。在 autoserial conf 中對接收 GPS 資料的串列埠新增 low_latency 關鍵字。
(2)gpsd
的版本是 2 95 。安裝完成後,使用 dpkgreconfigure 命令要對 gpsd 重新進行配置,使其能夠開機自動執行,讀取串列埠資料。此外 gpsd 的除錯方法也十分簡便。如果放在後臺執行,可以透過系統日誌檔案檢視其工作狀況; gpsd 也可以在前臺執行,透過進入除錯模式來檢查時間資訊和 PPS 訊號的捕獲情況,詳見 gpsd 的使用說明。
(3)ntp
的版本是 4 2 6 。安裝完成後,要對 NTP 的配置檔案 ntp conf 進行修改。 NTP 伺服器的正確配置決定了最終的時間同步結果。本設計選用的時間伺服器只有 GPS 時鐘源,具體配置如下:

Linux 作業系統從 2 6 34 版本開始支援 PPS 中斷源,而本文采用的方案是透過共享記憶體的方式傳遞時間資訊,會與 PPS 中斷源發生衝突,所以要禁止掉核心響應 PPS 127 127 28 1 對應於 NTP 定義的一個記憶體段地址, gpsd 程式就是透過這個地址向 NTP 傳遞時間資訊。
2
2 2 結果
NTP
伺服器安裝後的除錯工作可以透過參照系統和 NTP 的日誌檔案,以及檢視串列埠狀態等操作來進行。本文總結了 NTP 伺服器正常工作的必要條件:正確的配置、可用的網路、有效的 GPS 訊號、沒有其他程式佔據 GPS 時鐘源使用的串列埠。當 NTP 伺服器正常工作時,使用其自帶的 ntpq 程式可以檢視 NTP 的工作狀態,即校時的效果。如果 GPS 裝置正常工作, NTP 伺服器幾秒鐘後就能鎖定 GPS 時鐘源,輸出結果如下所示:



3
測試與分析
3 1 對照實驗
要衡量校時系統的好壞,偏移量 (offset) 和抖動 (jitter) 是重要的參考指標。本文為驗證 GPS 校時的有效性和可行性設計了對照實驗。實驗內容是測試一臺計算機分別採用網路校時、序列校時以及基於 GPSD 的綜合校時三種方式的校時效果。網路校時採用的伺服器為國家授時中心的 NTP 伺服器,地址是: 210 72 154 44 ;序列校時只需要向 NTP 配置檔案中新增 server 127 127 28 0
透過編寫 shell 指令碼程式實時記錄偏移量和抖動的情況。 shell 指令碼程式主要功能是每 16 s 執行一次 “ntpq-p” 命令,將偏移量和抖動的結果輸出到一個檔案。
 


計算機裝置透過網際網路與網路時間伺服器進行同步的結果,如圖 3 所示,實驗時間為 24 h 。從圖中可以看出經過約 7 h 的鎖定過程, NTP 軟體透過網路時間伺服器將系統時鐘的偏移量從約 80 ms 穩定到 10 ms 以下,抖動通常能穩定在 20 ms 以下,但部分時段也能夠達到 50 ms 以上。
NTP
支援的 NMEA 序列方式的校時結果如圖 4 所示,實驗時間為 24 h 。可以看出,該方案的時鐘偏移量和抖動在幾十毫秒的範圍內變化很快, NTP 難以將時鐘穩定到一個更小的範圍。
 


採用基於 GPSD 綜合方式的校時鎖定過程如圖 5 所示,實驗時間為 8 h 。該過程持續了近 8 h ,時鐘偏移從 -18 ms 穩定到 10μs 左右,而抖動從 4 ms 穩定到 10μs 以下。

採用基於 GPSD 綜合方式的校時穩定過程如圖 6 所示,實驗時間為 24 h 。可以看出,該方案的時鐘偏移和抖動明顯優於前兩種方案,偏移量通常低於 30μs ,抖動也不超過 50μs 。這期間,從大約 14 h 開始偏移量恆為 49μs ,抖動恆為 0μs ,並持續了約 3 h ;之後偏移和抖動又分別從 -230μs 60μs 逐漸穩定到 10μs 以下。這種現象的原因是 GPS 訊號不好, GPSD 不再更新時間資訊,使得 NTP 處於等待狀態造成的。當 3 h 之後 GPS 訊號再次有效時,校時系統自動開始重新鎖定,無需人工干預。參考相關實驗結果,證明了本實驗結果的正確性。  


3
2 資料分析
2 對三種校時結果資料進行了統計分析。結合圖表分析可以看出,使用網路時間伺服器,雖然校時工作較為穩定,但精度較低,維持在幾個到幾十個毫秒,主要的原因是網路傳輸延時的不確定性;採用單一的 NMEA0183 序列資料進行校時,效果並不理想,抖動太大,穩定性差,主要的原因是硬體資源分配過程中存在的隨機性,使得 NMEA 序列資料的處理速度有隨機偏差;本文采用的 NMEA PPS 綜合校時方案取得了較為理想的效果。授時精度可達微秒級,比上述兩種方式提高了至少兩個數量級。這種方式充分發揮了脈衝校時精確度高的特點,又保留了序列校時的時間資訊,實現了優勢互補。

4 結語

經過多次實驗反覆驗證,本文采用的基於GPSD綜合校時方案是一種行之有效的高精度校時方案,不僅實現了單機的精確校時,也可以透過網路提供NTP服務;相比於Linux PPS高精度校時方法,該方案操作簡單,可擴充套件性好,校時精度同樣可以達到微秒量級,能夠滿足大部分天文觀測裝置的校時需要。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69969420/viewspace-2741910/,如需轉載,請註明出處,否則將追究法律責任。

相關文章