cs:time_sync
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Předchozí verzePoslední revize | |||
— | cs:time_sync [2014/05/06 12:30] – [Související moduly] kaklik | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
+ | ====== Synchronizace času pro experimentální účely ====== | ||
+ | |||
+ | Přesná synchronizace času je častým problémem při současném měření na více místech. Pro je tomuto problému na MLABu věnován zatím nedokončený článek [[http:// | ||
+ | |||
+ | ===== Testované GPS přijímače ===== | ||
+ | |||
+ | Přijímače byly připojené k počítači přes moduly [[cs: | ||
+ | |||
+ | ==== GPS LR5952 s FTDI ==== | ||
+ | |||
+ | |||
+ | $ ntpq -p | ||
+ | | ||
+ | ============================================================================== | ||
+ | xSHM(0) | ||
+ | | ||
+ | +ntp1.karneval.c 147.231.19.43 | ||
+ | +server.janbosko 147.231.19.43 | ||
+ | *sip1.rsaf.cz | ||
+ | +scotland0.netco 217.31.205.226 | ||
+ | +europium.canoni 193.79.237.14 | ||
+ | |||
+ | ==== GPS LEA-6S s FTDI ==== | ||
+ | |||
+ | ntpq -p | ||
+ | | ||
+ | ============================================================================== | ||
+ | xSHM(0) | ||
+ | *SHM(1) | ||
+ | +sip1.rsaf.cz | ||
+ | -kox-1.avn.cz | ||
+ | +bobek.sh.cvut.c 195.113.144.201 | ||
+ | -lama.svinov.net 195.113.144.201 | ||
+ | -europium.canoni 193.79.237.14 | ||
+ | |||
+ | Na výsledcích obou měření využívajících k připojení GPS modulu emulované rozhraní RS232 není přesnost synchronizace lepší než cca 1 ms. To je způsobeno vlastnostmi sběrnice USB, která má 1ms, jako základní časový interval. | ||
+ | ==== Modul GPS01A ==== | ||
+ | |||
+ | Modul byl osazen čipem LEA-6S a připojen na sériovou RS232 linku počítače modulem [[cs: | ||
+ | |||
+ | {{ : | ||
+ | === Zapojení === | ||
+ | |||
+ | Připojení [[cs: | ||
+ | |||
+ | ^ GPS01A | ||
+ | | TXD | TXD | | ||
+ | | RXD | RXD | | ||
+ | | TIMEPULSE | DTR/RTS| | ||
+ | |||
+ | Ke správné funkci je pak ještě třeba mít oba moduly napájené z +3.3V a na modulu | ||
+ | |||
+ | Při pořizování kabelu mezi modulem RS232SINGLE01A a počítačem je dobré se přesvědčít, | ||
+ | |||
+ | U moderních počítačů je sériový port ve většině případů vyvedený na konektor na základní desce, ale není vyveden ven (podobně, jako některé USB porty). Existuje však tato vývodka, kterou lze z konektoru na základní desce udělat standardní RS232 DB9 konektor: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Lze jí pořídit například v[[http:// | ||
+ | |||
+ | === Instalace časově synchronizovaného serveru === | ||
+ | |||
+ | Pro časovou synchronizaci přes 1PPS potřebujeme v linuxu dva programy, které si budou navzájem přeposílat časová data. | ||
+ | |||
+ | == gpsd == | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | V Ubuntu jej nainstalujeme jednoduše z repozitáře: | ||
+ | |||
+ | sudo apt-get install gpsd gpsd-clients | ||
+ | |||
+ | Základní konfigurace ovšem není pro účely synchronizace času příliš vhodná, proto je potřeba daemona znovu nakonfigurovat. | ||
+ | |||
+ | sudo dpkg-reconfigure gpsd | ||
+ | |||
+ | Start gpsd automatically on boot? Yes | ||
+ | Device the GPS receiver is attached to: /dev/ttyS0 | ||
+ | Should gpsd handle attached USB GPS receivers automatically? | ||
+ | Options to gpsd: -n | ||
+ | |||
+ | |||
+ | |||
+ | == ntpd == | ||
+ | |||
+ | apt-get install ntp | ||
+ | |||
+ | Do jeho konfiguračního souboru pak přidáme jako časový zdroj lokální socket od gpsd. A deamon restartujeme. | ||
+ | |||
+ | server 127.127.28.0 minpoll 4 | ||
+ | fudge 127.127.28.0 time1 0.100 refid NMEA | ||
+ | server 127.127.28.1 minpoll 4 prefer | ||
+ | fudge 127.127.28.1 refid PPS | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Ověření synchronizace přes ntpd ==== | ||
+ | |||
+ | Na základě výše uvedené konfigurace by jsme ve výpisu měli vidět dva nové časové zdroje SHM(0) a SHM(1). | ||
+ | |||
+ | kaklik@Radio: | ||
+ | | ||
+ | ============================================================================== | ||
+ | -sip1.rsaf.cz | ||
+ | xntp1.karneval.c 195.113.144.201 | ||
+ | -srv2.trusted.cz 195.113.144.201 | ||
+ | +pyrrha.fi.muni. 195.113.144.238 | ||
+ | +SHM(0) | ||
+ | *SHM(1) | ||
+ | -golem.canonical 193.79.237.14 | ||
+ | kaklik@Radio: | ||
+ | |||
+ | Po několika hodinách synchronizace se daemon ntp dostává do saturace svého rozlišení a přesnost hodin je udržována na 1-2 us. | ||
+ | |||
+ | |||
+ | kaklik@Radio: | ||
+ | ntp_gettime() returns code 0 (OK) | ||
+ | time d5b7c760.46d43cec | ||
+ | maximum error 2740 us, estimated error 2 us, TAI offset 0 | ||
+ | ntp_adjtime() returns code 0 (OK) | ||
+ | modes 0x0 (), | ||
+ | offset -5.915 us, frequency -85.833 ppm, interval 1 s, | ||
+ | maximum error 2740 us, estimated error 2 us, | ||
+ | status 0x2001 (PLL,NANO), | ||
+ | time constant 4, precision 0.001 us, tolerance 500 ppm, | ||
+ | kaklik@Radio: | ||
+ | | ||
+ | Pokud by jsme nyní chtěli ještě lepší časovou přesnost, tak musíme místo ntpd použít jiný program chrony. | ||
+ | |||
+ | === Chrony === | ||
+ | |||
+ | Chrony je správce hodin pracující s vyšším časovým rozlišením než ntp. Jeho základní jednotkou jsou ns, což umožňuje daemonu dosáhnout lepších parametrů, než ntpd. Nevýhodou je, že není příliš přizpůsoben pro jiné časové zdroje než GPS a má omezené možnosti distribuce hodin po síti. | ||
+ | |||
+ | sudo apt-get install chrony | ||
+ | | ||
+ | Systém automaticky oddinstaluje případnou předchozí instalaci ntpd. Chrony má dvě možnosti, jak získat časovací značky z gpsd. První je identická s metodou, kterou používá i ntpd a využívá interní časové servery, které vytvoří gpsd pro jejich použití stačí v /// | ||
+ | |||
+ | # delay 0.0 is right, but use 0.2 to avoid NMEA | ||
+ | # time fighting with PPS time | ||
+ | refclock SHM 0 offset 0.0 delay 0.2 | ||
+ | refclock SHM 1 offset 0.0 delay 0.0 | ||
+ | | ||
+ | Tato metoda však není příliš přesná, neboť využívá ještě transportní vrstvy jádra. Nicméně je nejčastěji používanou metodou v kombinaci Chrony a gpsd. Lepší však je použít komunikací přes socket, který chrony vytváří a gpsd do něj může zapisovat. | ||
+ | |||
+ | refclock SOCK / | ||
+ | |||
+ | Aby se projevily změny provedené v konfiguračním souboru chrony, je potřeba po úpravách daemona restartovat. | ||
+ | |||
+ | kaklik@radio-meteor: | ||
+ | Restarting time daemon: Starting / | ||
+ | chronyd is running and online. | ||
+ | kaklik@radio-meteor: | ||
+ | |||
+ | Předchozí metodu používající prostředek SHM je pak vhodné zakomentovat, | ||
+ | | ||
+ | # X-Start-Before: | ||
+ | |||
+ | A následným spuštěním aktualizace linků na spouštěcí skripty: | ||
+ | |||
+ | sudo update-rc.d -f chrony | ||
+ | sudo update-rc.d | ||
+ | | ||
+ | konfigurace daemona gpsd je stejná jako v případě ntp. Průběh synchronizace lze pak sledovat následovně: | ||
+ | |||
+ | kaklik@Radio: | ||
+ | 210 Number of sources = 7 | ||
+ | MS Name/IP address | ||
+ | ============================================================================ | ||
+ | ^~ ntp.ipv4.cz | ||
+ | ^~ vpn.ipv4.cz | ||
+ | ^~ bobek.sh.cvut.cz | ||
+ | ^~ kamelot3.dkm.cz | ||
+ | #x SHM0 0 4 | ||
+ | #* SHM1 0 4 | ||
+ | kaklik@Radio: | ||
+ | |||
+ | V případě použítí synchronizace času přes socket z gpsd je přesnost přibližně dvakrát lepší. Hlavní výhodou této metody ale především je větší stabilita synchronizace, | ||
+ | |||
+ | kaklik@radio-meteor: | ||
+ | 210 Number of sources = 5 | ||
+ | MS Name/IP address | ||
+ | ============================================================================ | ||
+ | ^? lx.ujf.cas.cz | ||
+ | ^? ntp.ipv4.cz | ||
+ | ^? kamelot3.dkm.cz | ||
+ | ^? smtp.martinpoljak.net | ||
+ | #* SOCK 0 4 9 | ||
+ | kaklik@radio-meteor: | ||
+ | |||
+ | Vysvětlivky k parametrům lze zapnout parametrem -v. | ||
+ | |||
+ | Dalšího zpřesnění by bylo pravděpodobně možné dosáhnout použitím speciálního modulu v jádře viz [[http:// | ||
+ | |||
+ | === Precision Time Protocol === | ||
+ | |||
+ | Instalace: | ||
+ | |||
+ | sudo apt-get install ptpd | ||
+ | |||
+ | Spuštění na master počítači | ||
+ | |||
+ | sudo ptpd -c -h -d -b eth0 | ||
+ | state: 2013-08-17 18: | ||
+ | |||
+ | |||
+ | Spuštění na klientovi: | ||
+ | |||
+ | kaklik@radio-meteor: | ||
+ | sudo: unable to resolve host radio-meteor | ||
+ | [sudo] password for kaklik: | ||
+ | timestamp, state, clock ID, one way delay, offset from master, slave to master, master to slave, drift | ||
+ | 2013-08-17 21: | ||
+ | 2013-08-17 21: | ||
+ | 2013-08-17 21: | ||
+ | 2013-08-17 21: | ||
+ | 2013-08-17 21: | ||
+ | 2013-08-17 21: | ||
+ | |||
+ | |||
+ | |||
+ | ==== Související moduly ==== | ||
+ | |||
+ | * [[cs: | ||
+ | * [[cs: | ||
+ | * [[cs: | ||
+ | * [[cs: | ||
+ | |||
+ | |||
+ | ==== TODO ==== | ||
+ | |||
+ | * Nahradit [[http:// | ||
+ | ==== Reference ==== | ||
+ | |||
+ | * http:// | ||
+ | * http:// | ||
+ | |||
+ | |||
cs/time_sync.txt · Poslední úprava: 2014/05/06 12:30 (upraveno mimo DokuWiki)