無需網路即可同步時間

無需網路即可同步時間

除了tcp/ip之外,同步時間的方式還有很多。 其中一些只需要普通電話,而另一些則需要昂貴、稀有且敏感的電子設備。 時間同步系統的廣泛基礎設施包括天文台、政府機構、廣播電台、衛星星座等等。

今天我將告訴你如何在沒有網路的情況下同步時間,以及如何親手製作一個「衛星」NTP伺服器。

短波無線電廣播

在美國,NIST 通過科羅拉多州柯林斯堡 WWVH 的 2.5、5、10、15 和 20 MHz 無線電波以及考艾島 WWVH 的 2.5、5、10 和 15 MHz 無線電波傳輸精確的時間和頻率。 。 時間碼以 60 bps 的速率以 1 秒的間隔傳輸。 在 100 Hz 副載波上使用脈寬調變。

加拿大國家研究委員會 (NRC) 從安大略省渥太華的 CHU 分發 3.33、7.85 和 14.67 MHz 的時間和頻率資訊。

無需網路即可同步時間
廣播格式 WWVH

短波站的訊號傳播通常是透過電離層上層的反射發生的。 訊號傳輸可以遠距離接收,但計時精度約為一毫秒。

目前的 NTPv4 標準包括 WWV、WWVH 和 CHU 的音訊驅動程式。

長波無線電廣播

NIST 也透過來自科羅拉多州博爾德的 60 kHz 長波無線電傳輸精確的時間和頻率。 還有其他電台透過長波傳送時間訊號。

呼號和位置
頻率(千赫茲)
功率(千瓦)

WWVB 美國科羅拉多州柯林斯堡
60
50

DCF77 德國邁因弗林根
77.5
30

無國界醫生組織橄欖球,英國
60>
50

HBG 普蘭金斯, 瑞士
75
20

JJY 福島, 日本
40
50

JJY 佐賀, 日本
60
50

低頻標準時間站

時間碼以 60 秒間隔以 1 bps 傳輸,就像短波電台一樣。 兩種標準的資料傳輸格式也相似。 訊號透過電離層的下層傳播,電離層的下層相對穩定,並且每天的高度變化是可預測的。 由於物理環境的這種可預測性,精度提高到 50 μs。

無需網路即可同步時間
WWVB 廣播格式

對地靜止運轉環境衛星

在美國,NIST 也透過地球靜止運行環境衛星 (GOES) 在大約 468 MHz 上傳輸精確的時間和頻率資料。 時間碼與用於輪詢遠端感測器的訊息交替出現。 它由 60 個 BCD 半位元組組成,間隔 30 秒傳輸。 時間碼資訊與地面服務類似。

全球定位系統

美國國防部使用 GPS 在陸地、海上和空中進行精確導航。 該系統利用在 24 小時軌道上傾斜 12° 的衛星群提供全球 55 小時覆蓋。

原來由 24 顆衛星組成的星座以異構配置擴展到 31 顆衛星,因此至少有 6 顆衛星始終處於視野範圍內,並且在世界大部分地區都可以看到 8 顆或更多衛星。

其他國家正在運作或規劃類似GPS的服務。 俄羅斯格洛納斯衛星導航系統已經運作了十幾年,從2年2010月26日算起,當時衛星總數增加到XNUMX顆,星座全面部署,完全覆蓋地球。

無需網路即可同步時間
全球定位系統衛星。

歐盟的衛星導航系統稱為伽利略。 預計伽利略將於2014-2016年開始運行,屆時計畫中的30顆衛星全部發射入軌,但截至2018年,伽利略衛星星座尚未達到所需的衛星數量。

還有中文的“北斗”,意思是“鯨魚”。 該星座由16顆衛星組成,於27年2012月2020日投入商業運營,作為區域定位系統。 計劃到XNUMX年該系統將達到滿載。 就在今天,我出櫃了哈布雷 文章,關於該系統衛星的成功發射。

使用 SRNS 確定座標的數學

智慧型手機上的 GPS/GLONASS 導航器如何使用無線電導航通訊系統 (SRNS) 來確定如此精確的位置? 要理解計算原理,你需要記住高中時的立體測量和代數,或物理和數學學校的知識。

每顆衛星都會告訴接收器準確的時間。 該衛星有一個原子鐘,因此值得信賴。 知道了光速,就不難確定衛星所在表面球體的半徑。 這個球體與地球接觸,形成一個圓圈,GPS / Glonass 接收器位於其上。

當訊號從兩顆衛星到達時,我們已經有了地球和兩個球體的交點,這只給出了圓上的兩個點。 理想情況下,第三顆衛星的球體應落入這兩點之一,最終確定接收器的座標。

原則上,即使從兩顆衛星,基於間接證據,人們也可以了解兩點中哪一點更接近事實,而現代導航軟體演算法可以應對這項任務。 那為什麼我們需要第四顆衛星呢?

無需網路即可同步時間
使用衛星星座確定位置。

很容易看出,在這張理想化的圖片中,計算的準確性取決於許多細微差別。 接收器時間可能是最明顯的誤差來源。 為了讓一切正常運作,GPS / Glonass 接收器時間必須與衛星時間同步。 如果沒有這個,誤差將是 ∓ 100 公里。

根據速度、時間和距離的公式 S = v*t,我們得到了傳輸 SRNS 訊號的基本方程式。 到衛星的距離等於光速與衛星和接收器上的時間差的乘積。

無需網路即可同步時間

這主要是因為即使在所有同步之後,我們仍然可以足夠準確地知道接收器處的時間 tpr 。 在真實時間和 tpr 之間總是存在 Δt,因此計算誤差變得不可接受。 這就是為什麼你需要 第四個 衛星。

為了更清楚地證明需要四顆衛星的數學依據,我們將建構一個方程組。

無需網路即可同步時間

要確定四個未知數 x、y、z 和 Δt,觀測值的數量必須等於或大於未知數的數量。 這是必要但非充分條件。 如果正規方程組矩陣是奇異的,則方程組將無解。

我們也不應該忘記狹義相對論以及衛星原子鐘相對於地面原子鐘的時間膨脹的相對論效應。

無需網路即可同步時間

如果我們假設衛星以 14 公里/小時的速度在軌道上運行,那麼我們會得到大約 7 μs(微秒)的時間膨脹。 另一方面,廣義相對論的相對論效應起作用。

重點是:軌道上的衛星離地球很遠,由於地球的質量,時空連續體的曲率小於地球表面的曲率。 根據廣義相對論,距離大質量物體較近的時鐘會比距離較遠的物體顯得慢。

無需網路即可同步時間

  • G是萬有引力常數;
  • M 是物體的質量,在本例中是地球;
  • r是地球中心到衛星的距離;
  • c是光速。

使用此公式計算出衛星上的時間膨脹為 45 μs。 總計 -7μs +45μs = 38μs 平衡 - STR 和 GTR 的影響。

在 SRNS 定位應用中,也應考慮電離層和對流層延遲。 此外,46 ns 的修正是由於 GPS 衛星軌道的 0.02 偏心率造成的。

同時接收來自四顆以上 GPS/GLONASS 衛星訊號的能力可讓您進一步提高確定接收器座標的準確性。 這是由於導航器求解具有四個未知數的四個方程組而實現的 無需網路即可同步時間 次數並取平均值,根據數理統計規律增加最終估計的準確性。

如何透過衛星連線設定 NTP 伺服器 Stratum 1

要建立高品質的時間伺服器,您只需要 GPSD、NTP 和具有 1PPS(每秒一個脈衝)輸出的 GPS 接收器。

1.安裝gpsd和ntpd,或gpsd和chronyd。 GPSD 版本必須≥ 3.20

(1:1109)$ sudo emerge -av gpsd chrony

Local copy of remote index is up-to-date and will be used.

Calculating dependencies... done!

[binary  N     ] net-misc/pps-tools-0.0.20120407::gentoo  31 KiB

[binary  N     ] net-misc/chrony-3.5-r2::gentoo  USE="adns caps cmdmon ipv6 ntp phc readline refclock rtc seccomp (-html) -libedit -pps (-selinux)" 246 KiB

[binary  N     ] sci-geosciences/gpsd-3.17-r3:0/23::gentoo  USE="X bluetooth cxx dbus ipv6 ncurses python shm sockets udev usb -debug -latency-timing -ntp -qt5 -static -test" GPSD_PROTOCOLS="aivdm ashtech earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 navcom ntrip oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tnt tripmate tsip ublox -fury -geostar -nmea0183 -nmea2000 -passthrough" PYTHON_TARGETS="python2_7" 999 KiB

Total: 3 packages (3 new, 3 binaries), Size of downloads: 1275 KiB

Would you like to merge these packages? [Yes/No]

2. 將支援 PPS 的 GPS 接收器連接到 RS232 串列或 USB 連接埠。

普通的廉價 GPS 接收器無法運作; 您可能需要進行一些搜索才能找到合適的。

3. 確保裝置確實發出 PPS;為此,請使用 gpsmon 公用程式檢查連接埠。

4. 開啟 /etc/conf.d/gpsd 檔案並編輯以下行。

更換

GPSD_OPTIONS=""

使它成為

GPSD_OPTIONS="-n"

需要進行此更改,以便 gpsd 在啟動時立即開始搜尋 SRNS 來源。

5.啟動或重新啟動gpsd。

(1:110)$ sudo /etc/init.d/gpsd start
(1:111)$ sudo /etc/init.d/gpsd restart

對於使用 systemd 的發行版,請使用適當的 systemctl 指令。

6. 檢查 cgps 指令的控制台輸出。

您需要確保從衛星正確接收資料。 控制台應該有類似插圖的內容。

無需網路即可同步時間
cgps 控制台指令的輸出。

7. 是時候編輯/etc/ntp.conf 檔案了。

# GPS Serial data reference (NTP0)
server 127.127.28.0
fudge 127.127.28.0 time1 0.9999 refid GPS

# GPS PPS reference (NTP1)
server 127.127.28.1 prefer
fudge 127.127.28.1 refid PPS

頂部的 NTP0 條目表示幾乎所有 GPS 裝置上都可用的通用時間源。 底部的 NTP1 條目定義了更準確的 PPS 來源。

8. 重新啟動ntpd。

(1:112)$ sudo /etc/init.d/ntpd restart

對於帶有 systemd 的發行版,請使用 systemctl 指令。
$ sudo systemctl 重新啟動 ntp

使用的材料

無需網路即可同步時間

無需網路即可同步時間

來源: www.habr.com

添加評論