<!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">&nbsp;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>