Přesná synchronizace času k UT
Jakub Kákona
Jsou zde uvedeny něktré základní metody synchronizace času a diskutovány jejich vlastnosti.
Synchronizace času je problém, který je často nutné řešit především při experimentech pracujících s více měřícími stanicemi paralelně. Příkladem může být sběr meteorologických dat, nebo některé experimenty pracující s dobou letu (detekce blesků, radioastronomická interferometrie, VLBI) atd. Každý z těchto experimentů má samozřejmě jiné nároky na vyžadovanou přesnost synchronizace.
GPS je systém, který je ze své podstaty založen na přesné synchronizaci času přijímačů a družic, neboť je to jeden z hlavních faktorů ovlivňujících přesnost výsledného určení polohy. Pro přesnou synchronizaci času je proto v navigačních systémech použita řada metod. Které zaručí velmi vysokou kvalitu synchronizace času přijímače a atomových hodin satelitu.
Problém synchronizace času nějakého dalšího zařízení proto spočívá hlavně ve vydení informace o přesném času z GPS přijímače.
Je systém vyvinutý speciálně za účelem synchronizace času. Jeho vlastnosti ale neumožňují dosáhnout vysoké přesnosti ~10ms. Dále také neposkytuje informaci o pozici přijímače, což je také velmi často při měření vyžadováno.
Pulse Per Second signál je jednou z nejstarších a také nejvíce používaných metod synchronizace času. Jedná se o elektrický binární signál obvykle v TTL logice vedený koaxálním kabelem. Binární hodnota signálu se překlápí jednou za sekundu a nebo (v případě kratších impulzů) označuje náběžná, nebo sestupná hrana začátek nové sekundy. Existují i variace tohoto způsobu přenosu času, kromě 1PPS je možné se setkat i se 100PPS který díky vetší frekvenci umonuje rychlejší regulaci disciplinovaného oscilátoru
Příkladem tohoto způsobu přenosu času může být například NMEA výstup přijímače. Nebo některé další binární výstupy častou vlastností tohoto způsobu přenosu je, že dosahuje menší přesnosti, než PPS signál neboť datové packety mohou být po určitou dobu, zadržovány v bufferech, což způsobuje neznámé spoždění přenosu a tedy i jitter časové informace.
Pod operačním systémem Windows je tento problém na amatérské úrovni obtížně řešitelný vzhledem k tomu, že v době psaní tohoto článku neexistují volně dostupné softwarové nástroje, které by umožnily přesnou a kontinuální synchronizaci systémových hodin s GPS.
Pro Linux existují v zásadě dva nástroje vhodné pro synchronizaci systémového času. jsou to ntpd (daemon zajišťující synchronizaci času pomocí síťového protokolu NTP) a gpsd (daemon určení pro komunikaci a čtení dat ze zařízení GNSS).
Pokud máme GPS přijímač, který na svém výstupu produkuje vhodný PPS signál můžeme konfiguraci daemonů provéct následovně přidáním následujících řádků do souboru /etc/ntp.conf server 127.127.28.1 minpoll 4 maxpoll 4 prefer fudge 127.127.28.1 refid PPS
Po spušťění daemona gpsd dojde po chvíli k inicializaci spojení s ntpd. $ gpsd -N -n /dev/ttyUSB0 -D 6 2>&1 | grep -E "NTPD|PPS"
Je třeba ale zdůraznit, že tato konfigurace funguje správně pouze v případě, že použit GPS přijímač s vhodným 1PPS výstupem. Neboť v případě že gpsd nedetekuje tento signál, tak daemonu ntpd nebudou poskytnuta datat pro synchronizaci.
V některých návodech se také můžeme setkat s konfigurací typu: server 127.127.28.0 minpoll 4 maxpoll 4 fudge 127.127.28.0 time1 0.664 refid GPS server 127.127.28.1 minpoll 4 maxpoll 4 prefer fudge 127.127.28.1 refid PPS
Avšak její použití je problematické vzhledem k tomu, že jednak využívá dva časovací zdroje (PPS signál a NMEA datový kanál). Takže ntpd není schopen správně rozhodnout, který z těchto časovacích zdrojů je přesnější. A dále v případě, že 1PPS signál nění přijímačem poskytován, může nastat situace, že systémový čas bude synchronizován, k NMEA datům, jejichž přesnost může být často horší, než sychnonizace přes internetový protokol NTP.