基於GPS北斗衛星的NTP時鐘伺服器應用天文觀測
基於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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 北斗GPS衛星同步時鐘(NTP時鐘伺服器)在通訊系統中應用伺服器
- 電力GPS北斗衛星時鐘(NTP時鐘伺服器)同步技術淺談伺服器
- GPS北斗時鐘伺服器(衛星時鐘系統)讓高考時間更加精準伺服器
- 北斗GPS授時伺服器(衛星母鐘)現代網路資料安全伺服器
- 基於GPS北斗雙系統的NTP網路時間伺服器的開發伺服器
- 論醫院架設NTP時鐘裝置(GPS北斗時鐘系統)重要性
- GPS對時裝置(衛星時鐘裝置)讓DCS控制系統更精準
- 北斗GPS同步時鐘(授時系統)技術原理詳解
- NTP時間同步伺服器(北斗授時裝置)應用農產品安全追溯系統伺服器
- 北斗授時伺服器(時鐘系統)在政務系統應用方案伺服器
- NTP伺服器(時鐘伺服器)應用鐵路計算機聯鎖系統伺服器計算機
- 天文學家或發現真正“系外衛星”NL
- 北斗授時裝置(北斗時鐘伺服器)助力工業組態監控系統伺服器
- GPS對時裝置(GPS對時系統)LINUX系統下配置NTP方法Linux
- 醫院GPS時鐘系統(子母鐘系統)構成與行業應用行業
- 網路時間伺服器(衛星時鐘系統)對醫院資訊的重要性伺服器
- NTP時間同步伺服器(時鐘同步)工作原理介紹伺服器
- ntp導致的時鐘回撥
- 基於 Coolbpf 的應用可觀測實踐 | 龍蜥技術
- 北斗授時系統稱道,GPS網路對時伺服器將成為過去式伺服器
- Ubuntu的NTP同步時鐘設定方法Ubuntu
- NTP時間同步伺服器(區域網時鐘同步)解決方案伺服器
- 時間伺服器-NTP伺服器
- GPS授時伺服器在廣播電視播出系統中的應用伺服器
- NTP伺服器(網路時鐘伺服器)助力河北交投高速網路建設伺服器
- NTP校時(時間同步伺服器)IPC網路攝像機時鐘問題排查伺服器
- 國內衛星授時鐘同步精度被推至亞納秒級
- 使用阿里雲映象站NTP服務搭建NTP伺服器(基於CentOS 7系統)阿里伺服器CentOS
- 為何說北斗GPS時間同步裝置是電力系統的必備品
- ChatDBA | OceanBase NTP 時鐘不同步的問題排查?
- 用 NTP 設定 CentOS 和 Ubuntu 伺服器的正確時區CentOSUbuntu伺服器
- 高精度原子鐘,雙向通訊,俄將接入我國北斗衛星系統
- linux 配置ntp時間伺服器Linux伺服器
- GPS時鐘之防水防雷設計要領
- Downlink for mac實時衛星影像桌布Mac
- 通用GPS衛星定位平臺漏洞成災使用者位置資訊告急
- 基於 eBPF 的 Kubernetes 可觀測實踐eBPF
- Linux使用ntp時間伺服器同步時間Linux伺服器