HGA22 rádióvezérelt óra, avagy DCF77 helyettesítése

A 314 méter magas Lakihegyi adótorony az európai EFR Teleswitch néven ismert rádióvezérelt energiagazdálkodás rendszer egyik adója. Segítségével többek között utcai világítás kapcsolását, villanyórák éjszakai áramra való átállítását vezérlik.

Európa lefedettségét másik két adóval együtt végzi, a Mainflingenben lévő DCF49 kódjelű és a Burg-ban lévő DCF39 kódjelű adókkal. A HGA22 hosszúhullámú adó 135.6kHz-es vivő frekvencián FSK modulációval 170Hz-es lökettel 200bps adatsebességgel küldi az adatokat ASCII formátumban. Fő műsoridőben a pontos időt 10 másodpercenként küldi ki, így a DCF77-hez képest jóval gyorsabb szinkronizálás biztosítható.

Adatformátum

Szabványos soros adat (LSB-től MSB-ig), 200 Baud, páros paritás (11 bit, formátum:  start bit (0), 8bit adat, paritás bit, stop bit(1)). Nyugalmi állapotban logikai 1-jel (High) kerül átvitelre. Az adatbiztosítás soronként hossz-paritásellenőrzéssel, illetve oszloponként kereszt-paritásellenőrzéssel történik.

Byte Leírás
1 Start karakter, mindig 0x68h
2 Adat hossza
3 Adat hossza ismétlés
4 Start karakter ismétlése 0x68h
5 Bit 0-3 foglalt, 4-7 telegram szám
6 Cím 1
7 Cím 2
8 ..N Adat
N+1 Adatellenőrző összeg (CRC)
N+2 Stop karakter, mindig 0x16h

Ha idő információ érkezik, akkor az adat hossza mindig 0x10 lesz, a cím pedig 0x00. Az adatban a bitek jelentését a következő táblázat foglalja össze.

Bit információ Pozíció Hossz
Milliszekundum 0 10
Szekundum 9 6
Perc 16 6
N/A 22 1
Érvénytelen 23 1
Óra 24 5
Tartalék 29 2
Nyári időszámítás 31 1
Hónap naja 32 5
Hét napja 37 3
Hónap 40 4
N/A 44 4
Év 48 7
Tartalék 2 55 1

A Vevő

A hobbielektronikán egy kedves fórumtárs által közzétett vevőből indultam ki. Pár módosítás történt benne, kapott egy AGC-t, és a galvanikus leválasztás miatt egy optocsatolót a kimenetre. Utóbbi a rendkívüli zajérzékenysége miatt került bele, ugyanis a számítógép GND-jével közösítve az áramkört, rendkívül megnő a zaj aránya, ami gyenge jelnél problémát okoz.  Az antenna a conrad-ban kapható DCF77 vevőről való, kondenzátor cserével a vivőfrekveciára hangolva. A keverő fokozathoz egy PIC33EP512MC502 szolgáltatja az órajelet, továbbá a PLL helyett ez végzi a demodulálást is. A kimenet soros port 9600 baud, és nincs paritás bit. A kimenetet úgy terveztem meg, hogy a tápot innen is kaphatja a vevő, de ebben az esetben a 5V feszstabot nem szabad beforrasztani, és rövidre kell zárni a JP4 és JP5 jumpereket.

Az eagle fájlokat hozzá innen letölthetjük.

A szoftver

A TCA440-ről a 4950Hz-re lekevert jelet a PIC az AN0 analóg portján mintavételezi 20k sebességel. A mintavételezés DMA segítségével történik, így a feldolgozásra jut elegendő processzoridő. A demodulálás előtt még egy digitális sávszűrőn is áthalad a jel. A demoduláció IQ demodulálással történik, ami ugyan túlzásnak tűnhet egy egyszerű FSK moduláció esetén, de az algoritmus megírásakor az IQ demodulátor megvalósítása és tanulmányozása volt a cél. Nem mellesleg jobb eredményeket sikerült ezzel elérnem, mint más szoftveres demodulálási algoritmussal(habár nem próbáltam ki mindet). A teljes forráskód elérhető githubon.

Az idő megjelenítéséhez C#-ban írtam egy kis programot, ami a soros portról érkező adatokból dekódolja a pontos időt. A szoftver forráskódján kívül a lefordított programot itt le lehet tölteni. Működés közben:

Végezetül az egyik megépített vevőm:

Facebook Comments