<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title> Měření slunečních článků </title>
<meta name="keywords" content="stavebnice MLAB čas přesná synchronizace">
<meta name="description" content="Projekt MLAB, O synchronizaci času">
<!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE -->
<link rel="StyleSheet" href="../../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl">
<link rel="StyleSheet" href="../../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print">
<link rel="shortcut icon" type="image/x-icon" href="../../../../../Web/PIC/MLAB.ico">
<script type="text/javascript" src="../../../../../Web/JS/MLAB_Menu.js"></script>
<!-- AUTOINCLUDE END -->
</head>
<body lang="cs">
<!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE -->
<!-- ============== HLAVICKA ============== -->
<div class="Header">
<script type="text/javascript">
<!--
SetRelativePath("../../../../../");
DrawHeader();
// -->
</script>
<noscript>
<p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
</noscript>
</div>
<!-- AUTOINCLUDE END -->
<!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE -->
<!-- ============== MENU ============== -->
<div class="Menu">
<script type="text/javascript">
<!--
SetRelativePath("../../../../../");
DrawMenu();
// -->
</script>
<noscript>
<p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p>
</noscript>
</div>
<!-- AUTOINCLUDE END -->
<!-- ============== TEXT ============== -->
<div class="Text">
<p class="Title">
Přesná synchronizace času k UT
</p>
<p class=Autor>
Jakub Kákona
</p>
<p class="Subtitle">
Jsou zde uvedeny něktré základní metody synchronizace času a diskutovány jejich vlastnosti.
</p>
<p class="Subtitle">
<img width=500 height=134 src="Pictures/image002.jpg" >
</p>
<p>
<a href="../Sluneční články 1.cs.pdf"><img class="NoBorder"
src="../../../../../Web/PIC/FileIco_PDF.ico"
alt="Acrobat"> PDF verze</a>
</p>
<h1> Základní principy </h1>
<p>
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.
</p>
<h2> Systém GPS </h2>
<p>
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.
</p>
<p>
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.
</p>
<h2> DCF77 </h2>
<p>
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.
</p>
<h1> Metody distribuce přesného času </h1>
<h2> PPS signál </h2>
<p>
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>
<h2> Datové packety </h2>
<p>
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.
</p>
<h1> Sychronizace hodin </h1>
<h2> Synchronizace systémových hodin PC </h2>
<h3> Windows </h3>
<p>
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.
</p>
<h3> Linux </h3>
<p>
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).
</p>
<p>
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
</p>
<p>
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"
</p>
<p>
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.
</p>
<p>
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
</p>
<p>
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.
</p>
</div>
<!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE -->
<!-- ============== PATIČKA ============== -->
<div class="Footer">
<script type="text/javascript">
<!--
SetRelativePath("../../../../../");
DrawFooter();
// -->
</script>
<noscript>
<p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
</noscript>
</div>
<!-- AUTOINCLUDE END -->
</body>
</html>