Hodiny řízené pomocí DCF V dnešní době je mnoho možností jak sestavit hodiny. Většinou je pro nás nejdůležitější přesnost hodin a od toho se odvíjí vše ostatní. Hodiny podle přesnosti můžeme dělit do dvou základních skupin. Ty méně přesné /hodiny řízené kmitočtem sítě, krystalem/. Ve druhé skupině jsou hodiny,ve kterých je krystal nebo obvod RTC a jejich údaje jsou řízeny pomoci dalších signálů jako jsou např. DCF, GPS, NTP, SNTP. Takové hodiny jsou přesnější a není je nutné přestavovat při výpadku napájení nebo změně času.
Protokol DCF Protokol DCF je vysílán na dlouhovlnné frekvenci 77,5 kHz s výkonem 50 kW z vysílače Mainflingen /asi 25 km od Frankfurtu nad Mohanem/. Časová informace je v BCD kódu, který amplitudově moduluje nosnou frekvenci. Každou sekundu je odvysílán jeden bit kódu, takže na odvysílaní všech 60 bitů je potřeba jedna minuta. Jednička je kódována jako pokles amplitudy na dobu 0,2 sekundy a nula je kódována jako pokles amplitudy na 0,1 sekundy. Podle kódovacího schématu pak můžeme dekódovat časovou informaci. Během posledních 50 let bylo v Evropě několik podobných systémů, ale kromě DCF77 už všechny ukončili svojí činnost.
Popis Hodin Hodiny jsou navrženy na dvou deskách z důvodu, aby se mohly snadněji měnit nebo upravovat. Menší deska obsahuje řídící část, napájení a možnost nastavování. Na druhé desce je displej, který je ovládaný pomocí 7 datových vodičů a 3 vodičů na napájení. Nejdůležitější součástí je mikrokontrolér Freescale MC9S08QE8. V tomto mikrokontroléru běží jak hodiny tak se i dekóduje signál DCF, kterým je pak řízen čas v mikrokontroléru. Program je napsaný tak ,že hodiny poběží i bez signálu DCF, ale s menší přesností a nebudou sami měnit čas mezi letním a zimním časem.
Ilustrace 1
Ilustrace 2
Displej k mikrokontroléru připojí pomocí konektoru SL1. V něm jsou vodiče rozděleny takto ●
vodiče 1, 2, 10 napájení
●
vodiče 4, 5, 6 pro výběr displeje
●
vodiče 7, 8, 9 pro vypsaní hodnoty na displej
Na konektoru SL2 ●
vodiče 1, 10 napájení
●
vodič 2 reset
●
vodič 3 BKGD
●
vodič 4 pro signál DCF
●
ostatní nevyužité
Funkce tlačítek •S1
na nastavování hodin
•S2
na nastavování minut
•S3
na vyvolání/ukončení nastavování
•S4
zatím nevyužité
Popis programu V hlavní smyčce se cyklicky posílají data na displej a pokud během smyčky dojde k přerušení jsou během dalšího běhu smyčky vyvolány další podprogramy. Přerušení může nastat bud resetem obvodu nebo od obvodu RTC. Obvod RTC vyvolá přerušení každých 10 ms. Obvod je řízený externím krystalem 6,144 MHz. Při volání podprogramu DCF je nejdříve odečtena hodnota z portu a následně je hodnota dekódována. Dál se zkontroluje jestli je již přijatý celý signál a popřípadě zkontroluje parita. Pokud je signál v pořádku tak jsou aktualizované hodiny. Každých 100 přerušení je nutné inkrementovat sekundy a popřípadě další části času.
Přijímač DCF Jako zdroj signálu lze použít libovolný přijímač DCF. Nejednoduší je koupit hotový modul od společnosti CONRAD za cenu mírně přesahující 300 Kč. Pro stavbu přijímače lze použít i integrovaný obvod /U4221, U4224/ ale ty jsou obtížně sehnatelné a ke konstrukci je ještě potřeba krystal 77,5 kHz, který taky není běžně k dostání.
Softwarové řešení Celý program byl napsán v Freescale CodeWarrior s využitím systému Device Initialization. Díky tomuto nástroji není nutné znát detailní názvy zařízení, protože je navolíme jednoduše v menu.
Ilustrace 3 Na obrázku je vidět prostředí CodeWarrior a kus programu na dekódovaní signálu DCF. Konkrétně zjišťování jestli jsou přijata všechna data přijata a jestli jsou přijata v pořádku.
Závěr Hodiny fungují i bez přijímače DCF, ale nedosahují takové přesnosti a komfortu ovládaní. Program do mikrokontroléru byl zkoušen na vyvojové desce DEMOQE128, proto byl také zvolen mikrokontrolér z této řady. A použitý DCF přijímač byl modul od firmy CONRAD.
Použitá literatura 1. -, Referenční Manuál MC9S08QE8, 1/2008, 300 stran 2. Burkhard Mann, C pro Mikrokontroléry, 2004, 280 stran 3. Martin Poupa, Vše o času, vystaveno 01.03.2002 /cit. 22.04. 2006/