cs:time_sync
                Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Předchozí verze | |||
| — | cs:time_sync [Neznámé datum] (aktuální) – upraveno mimo DokuWiki (Neznámé datum) 127.0.0.1 | ||
|---|---|---|---|
| Řá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)
                
                