Uživatelské nástroje

Nástroje pro tento web


cs:time_sync

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
cs:time_sync [2013/08/20 10:32] – [Chrony] kaklikcs:time_sync [Unknown date] (aktuální) – upraveno mimo DokuWiki (Unknown date) 127.0.0.1
Řádek 34: Řádek 34:
   -europium.canoni 193.79.237.14    2 u   37   64  377   33.065   -1.901  11.276   -europium.canoni 193.79.237.14    2 u   37   64  377   33.065   -1.901  11.276
  
 +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 GPS01A ====
  
-Modul byl osazen čipem LEA-6S a připojen na sériovou RS232 linku počítače modulem [[cs:rs232single|RS232SINGLE01A]]. Připojení na reálné rozhraní RS232 umožňuje podstatně zvýšit přesnost synchronizace až na jednotky us+Modul byl osazen čipem LEA-6S a připojen na sériovou RS232 linku počítače modulem [[cs:rs232single|RS232SINGLE01A]]. Připojení na reálné rozhraní RS232 umožňuje podstatně zvýšit přesnost synchronizace až na stovky nanosekund
  
 +{{ :cs:designs:measuring:gps_time_sync.jpg?direct&500 |}}
 === Zapojení === === Zapojení ===
  
Řádek 48: Řádek 49:
 | TIMEPULSE | DTR/RTS| | 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  [[cs:rs232single|RS232SINGLE01A]] propojený prostřední pin J5 připojit na DCD. +Ke správné funkci je pak ještě třeba mít oba moduly napájené z +3.3V a na modulu  [[cs:rs232single|RS232SINGLE01A]] propojený prostřední pin J5 připojit na DCD. Modul [[cs:rs232single|RS232SINGLE01A]] se následně připojí k počítači prokříženým, tzv. [[http://en.wikipedia.org/wiki/Null_modem|Null modem]] kabelem. 
 + 
 +Při pořizování kabelu mezi modulem RS232SINGLE01A a počítačem je dobré se přesvědčít, zda kabel obsahuje skutečně všechny vodiče, neboť ňekteří výrobci šetří a kabelem provedou pouze signály TXD, RXD a GND. Signál DCD pak chybí a synchronizace nefunguje..  
 + 
 +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:
  
 +{{:cs:designs:tools:board-serial.jpg?direct&300 |}}
  
 +Lze jí pořídit například v[[http://www.czc.cz/premiumcord-com-port/68388/produkt|e-shopu CZC]].
  
 === Instalace časově synchronizovaného serveru === === Instalace časově synchronizovaného serveru ===
Řádek 78: Řádek 85:
  
   apt-get install ntp   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   server 127.127.28.0 minpoll 4
Řádek 93: Řádek 102:
  
  
-==== Ověřění synchronizace přes ntpd ====+==== 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:~$ ntpq -p   kaklik@Radio:~$ ntpq -p
Řádek 122: Řádek 132:
     time constant 4, precision 0.001 us, tolerance 500 ppm,     time constant 4, precision 0.001 us, tolerance 500 ppm,
   kaklik@Radio:~$   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 ===
Řádek 136: Řádek 148:
   refclock SHM 1 offset 0.0 delay 0.0   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.   +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.  Ten to způsob se zapne následujícím parametrem.  
-   + 
-Následně chrony restartujeme: +  refclock SOCK  /var/run/chrony.ttyS0.sock 
 + 
 +Aby se projevily změny provedené v konfiguračním souboru chrony, je potřeba po úpravách daemona restartovat.  
   kaklik@radio-meteor:~$ sudo /etc/init.d/chrony restart   kaklik@radio-meteor:~$ sudo /etc/init.d/chrony restart
   Restarting time daemon: Starting /usr/sbin/chronyd...   Restarting time daemon: Starting /usr/sbin/chronyd...
   chronyd is running and online.   chronyd is running and online.
   kaklik@radio-meteor:~$    kaklik@radio-meteor:~$ 
 +
 +Předchozí metodu používající prostředek SHM je pak vhodné zakomentovat, nebo smazat, aby chrony neměl problém s rozhodnutím o věrohodnosti zdrojů času. Při používání tohoto způsobu synchronizace je důležité si uvědomit, že socket vytváří chrony a gpsd se do něj připojuje při svém startu, je tedy nutné, aby chrony byl spuštěn dříve, než gpsd. To lze zařídit přenastavením priorit spouštěcích skriptů přidáním následujícího řádku do hlavičky souboru ///etc/init.d/chrony//
 +  
 +  # X-Start-Before:    gpsd  
 +
 +A následným spuštěním aktualizace linků na spouštěcí skripty:
 +
 +  sudo update-rc.d -f chrony  remove
 +  sudo update-rc.d  chrony defaults
      
 konfigurace daemona gpsd je stejná jako v případě ntp. Průběh synchronizace lze pak sledovat následovně: konfigurace daemona gpsd je stejná jako v případě ntp. Průběh synchronizace lze pak sledovat následovně:
Řádek 156: Řádek 180:
   #x SHM0                          0    4     19   +133ms[ +133ms] +/-  100ms   #x SHM0                          0    4     19   +133ms[ +133ms] +/-  100ms
   #* SHM1                          0    4     19   +286ns[ +388ns] +/-  495ns   #* SHM1                          0    4     19   +286ns[ +388ns] +/-  495ns
-  #? SOCK                          0    4    10y     +0ns[   +0ns] +/-    0ns 
   kaklik@Radio:~$    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, neboť v případě synchronizování přes SHM0/SHM1 má daemon problém s rozhodnutím o přesnosti jednotlivých časových zdrojů. Jak je vidět v předchozím případě, kde časovací zdroj SHM0 odpovídající NMEA výstupu je označen křížkem "x" který znamená, že chrony jej neuznává jako věrohodný časovací zdroj.
 +
 +  kaklik@radio-meteor:~$ chronyc sourcesstats
 +  210 Number of sources = 5
 +  MS Name/IP address           Stratum Poll LastRx Last sample
 +  ============================================================================
 +  ^? lx.ujf.cas.cz                   10    619  -6779us[-6794us] +/-   32ms
 +  ^? ntp.ipv4.cz                      8    125    -27ms[  -27ms] +/-   67ms
 +  ^? kamelot3.dkm.cz                 10    877    -21ms[  -21ms] +/-   66ms
 +  ^? smtp.martinpoljak.net           10    127  -6224us[-6221us] +/-   20ms
 +  #* SOCK                          0    4      9   -599ns[-1309ns] +/-  207ns
 +  kaklik@radio-meteor:~$ 
  
 Vysvětlivky k parametrům lze zapnout parametrem -v. Vysvětlivky k parametrům lze zapnout parametrem -v.
Řádek 164: Řádek 200:
  
 ===  Precision Time Protocol === ===  Precision Time Protocol ===
 +
 +Instalace:
 +
 +  sudo apt-get install ptpd
  
 Spuštění na master počítači  Spuštění na master počítači 
Řádek 189: Řádek 229:
  
   * [[cs:gps|GPS01A]]   * [[cs:gps|GPS01A]]
-  * [[cs:gp2|GP201A]]+  * [[cs:gp2|GP201A]]  
 +  * [[cs:usb232r|USB23R01B]]  
 +  * [[cs:rs232single|RS232SINGLE01A]]. 
 + 
 + 
 +==== TODO ====
  
 +  * Nahradit [[http://www.ke5fx.com/heather/readme.htm|monitorovací program]] některým open-source nástrojem.
 ==== Reference ==== ==== Reference ====
  
-http://www.rjsystems.nl/en/2100-ntpd-garmin-gps-18-lvc-gpsd.php+  * http://www.rjsystems.nl/en/2100-ntpd-garmin-gps-18-lvc-gpsd.php 
 +  * http://gpsd.berlios.de/gpsd.html
  
  
  
cs/time_sync.1376994769.txt.gz · Poslední úprava: 2013/08/20 10:32 (upraveno mimo DokuWiki)