20 NTP server navázaný na státní etalon času
Cílem projektu je postavit a provozovat časový server navázaný na státní etalon času. Server vznikl na základě spolupráce sdružení CESNET, z. s. p. o. a Ústavu radiotechniky a elektroniky Akademie věd České republiky, který je zodpovědný za státní etalon času a frekvence.
20.1 Funkční části serveru
Server jako celek je systém, který nejen poskytuje po síti časové informace, ale navíc sám sebe kontroluje zpětně proti etalonu času s přesností lepší než 1 mikrosekunda a porovnává svůj čas s dalšími zcela nezávislými zdroji - GPS přijímačem a externím časovým serverem. V případě podezření na poruchu nebo špatnou funkci je zablokováno předávání časových informací do vnější sítě. Aplikovali jsme výrazně defenzivní přístup a základní teze zní: "raději žádný časový údaj, než možná nepřesný".
Server je tvořen třemi základními funkčními bloky:
- počítač NTP
- řídící systém KPC
- mikroprocesorový systém FK
Obrázek 20.1: Funkční části serveru
20.2 Počítač NTP
Počítač NTP je nejdůležitější součástí celého systému. Zde je spuštěn proces ntpd (verze 4.1.71), který synchronizuje interní čas vůči externímu signálu a který předává klientům časové informace protokolem NTP. Jako doplněk jsou časové informace poskytovány i v protokolech TIME a DAYTIME.
Z hlediska hardware se jedná o standardní PC (Pentium III 1,2 GHz), v němž byl instalován nový oscilátor a speciální PCI karta pro zpracování PPS signálu. Počítač má dva síťové adaptéry (10/100 Mb/s Ethernet), jeden s veřejnou IP adresou, druhý pro peer-to-peer komunikaci s řídícím počítačem KPC. Pro komunikaci s mikropočítačem FK je použit sériový port.
Na jádro operačního systému Linux (řady 2.4) jsme aplikovali tzv. nanokernel patch, který obsahuje podporu pro zpracování signálu PPS a upraví jádro tak,že pracuje s časem v rozlišení nanosekund. Jádro bylo navíc doplněno o vlastní ovladač speciální PCI karty.
Dále na počítači běží dva procesy:
- pps_gen je určen pro generování sekundového signálu odvozeného od vnitřního času NTP serveru. Tento signál je v FK porovnáván s časovým normálem a změřená odchylka udává chybu vnitřního času NTP serveru. Měření je prováděno s přesností 100 ns.
- ntp_deny je proces, který na základě požadavku procesu kpctrl z KPC povoluje nebo blokuje výstup všech časových informací NTP serveru (t.j. služby NTP, TIME a DAYTIME) do veřejné sítě.
20.3 Řídící počítač KPC
Jedná se o standardní starší PC (Pentium 150 MHz) s operačním systémem Linux. Pro komunikaci s okolím využívá dva síťové adaptéry (veřejná IP adresa a peer-to-peer spojení s NTP počítačem) a dva sériové porty (mikropočítač FK a GPS přijímač).
Procesy systému KPC:
- kpc2 je základní kontrolní vícevláknový (multithread) proces, který sbírá a vyhodnocuje jednotlivé informace o aktuálním čase a stavu NTP serveru.
- Proces kpclie přebírá data od procesu kpc2 a prezentuje je uživateli ve formě přehledného formuláře. Může být spuštěno několik procesů kpclie v jednom okamžiku, celý systém tedy může být monitorován z více míst současně.
- Proces kpctrl implementuje algoritmus, který na základě dat od procesu kpc2 rozhoduje o povolení nebo zákazu poskytování časových služeb. Proces kpctrl předává své rozhodnutí procesu ntp_deny pomocí UDP datagramů.
20.3.1 Proces kpc2
Tento proces je základem systému KPC. Sbírá následující data:
- lokální čas KPC
- časové značky z mikropočítače FK
- změřenou odchylku vnitřního času NTP serveru (z FK)
- čas poskytovaný všemi časovými službami NTP serveru (tj. protokoly NTP, TIME a DAYTIME)
- čas z externího nezávislého časového serveru
- čas z GPS přijímače
U uvedených dat se rozlišuje zvlášť dosažitelnost a hodnota. Proces kpc2 vyhodnotí a setřídí získaná data a poskytne je dalším procesům každou sekundu. Je třeba zdůraznit, že GPS přijímač je zde použit jen pro kontrolu, nikoliv jako zdroj referenčního signálu pro NTP server. Časový server tedy není závislý na GPS.
20.4 Mikroprocesorový systém FK
Systém FK je jednodeskový mikropočítač. Jeho vstupem jsou sekundové pulsy z časového etalonu, přesný signál 10 MHz a sekundové pulsy generované NTP serverem. Výstupem je PPS (pulse per second) signál pro NTP server a dále dva sériové porty připojené na KPC a NTP server. Systém FK má tyto funkce:
- generování PPS signálu v úrovni TTL pro NTP server
- měření posunu sekundového pulsu z NTP serveru proti sekundovým pulsům z etalonu
- možnost nastavení data a času pomocí tlačítek a displeje
- možnost zadání informace, že na konci aktuálního měsíce nastane přestupná sekunda
- generování výstupní věty, obsahující značku aktuální UTC sekundy, změřený posun sekundy generované NTP serverem a příznak přestupné sekundy
20.5 Speciální hardware NTP serveru
20.5.1 Karta pro zpracování PPS signálu
Běžný způsob manipulace s PPS je přivést signál v úrovni RS-232 na DCD vstup sériového portu a zpracovávat přerušení, generovaná změnou vstupu DCD. V proceduře obsluhy přerušení je této vstupní změně přiřazeno časové razítko (timestamp). Problémem je zpoždění při zpracování přerušení, které způsobí chybu časového razítka v závislosti na typu operačního systému, rychlosti procesoru a aktuální zátěži. Typické zpoždění je 10-25 mikrosekund. Podrobně se tomuto problému věnuje technická zpráva číslo 18/2001.
Navrhli jsme a nechali jsme si vyrobit speciální PCI kartu, která dokáže zaznamenat přesný čas příchodu PPS signálu. Tímto způsobem získáváme časová razítka s přesností 50 ns.
20.5.2 Teplotně kompenzovaný oscilátor
V současných PC jsou veškeré frekvence odvozeny od jediného oscilátoru 14,318 MHz. Bývá však použit běžný krystal, jehož teplotní závislost je velká i v oblasti běžných provozních teplot. Obvodové řešení oscilátoru naštěstí umožňuje místo krystalu zapojit přímo zdroj pravoúhlého TTL signálu o napětí 3,3 V. Tímto způsobem jsme krystal nahradili teplotně kompenzovaným oscilátorem.
20.6 Další práce na projektu
Práce na projektu byly zahájeny již koncem roku 2001, bohužel teprve ve druhé polovině roku 2002 jsme získali teplotně kompenzované oscilátory a zákaznickou kartu. NTP server je v neveřejném zkušebním provozu od září 2002, kdy byla hotova první verze mikropočítače FK. Od té doby průběžně monitorujeme činnost celého serveru a získaná data ukládáme pro analýzu dlouhodobého chování systému. Začátkem roku 2003 plánujeme převést server do rutinního provozu a chceme se věnovat vyhodnocení jeho vlastností z metrologického hlediska.
obsah |
následující
|