dcf77 - Politechnika Poznańska

advertisement
Zegar sterowany sygnałem DCF-77
Wykonał:
Damian Gajewski
Elektronika i Telekomunikacja
Grupa MiEPU, 2004/2005
Prowadzący:
dr inż. H. Batycki
© Politechnika Poznańska 2005
1. Część sprzętowa
a) moduł odbiornika sygnału DCF-77
Układ odbiornika sygnału DCF-77 służy do odbioru i dekodowania informacji niesionej w
sygnale atomowego wzorca czasu nadawanego z miejscowości MainFlingen (50°01’N, 09°00’ E),
położonej około 30 km na południowy zachód od Frankfurtu nad Menem. Transmisja odbywa się na
falach o częstotliwości 77,5 kHz, a więc bardzo długich. Teoretyczny zasięg nadajnika to 2500 km,
co daje pokrycie radiowe dla całej Europy.
Do odbioru fal w tym zakresie częstotliwości wykorzystano antenę ferrytową z uszkodzonego
odbiornika radiofonicznego. Częstotliwość rezonansową obwodu anteny dostrojono do 77,5 kHz
poprzez zmianę położenia cewki na pręcie anteny i dobór pojemności kondensatora. Antena
współpracuje z kompletnym dekoderem sygnału DCF-77 UE2125. Aplikacja układu stosuje rezonator
77,5 kHz zapewniający odpowiednią selektywność. Wyjście układu steruje tranzystorem w układzie
wspólnego emitera. Na wyjściu modułu, przy prawidłowym sygnale, otrzymuje się ciąg impulsów
prostokątnych o poziomach zgodnych z TTL i będących sygnałem wejściowym dla modułu zegara.
Moduł odbiornika zasilany jest napięciem 5 V z modułu zegara. Układ LM317 wraz z
elementami R3, R7 tworzą stabilizator napięcia 1,5 V potrzebnego do zasilania układu UE2125.
Na płytce drukowanej znajdują się dwie diody LED. Dioda zielona sygnalizuje obecność napięcia
zasilania. Dioda czerwona świeci się, gdy poziom sygnału na wyjściu modułu jest niski. W czasie
prawidłowej pracy (bezbłędny odbiór sygnału z czasem wzorcowym) czerwona dioda powinna
świecić się i w jednosekundowych odcinkach czasu gasnąc na chwilę (100 lub 200 ms). Co minutę
(59 bit) występuję szczelina synchronizacyjna w czasie której sygnał nie jest nadawany - w czasie
trwania 59 bitu dioda powinna świecić się cały czas.
Poprawny odbiór sygnału DCF-77 zależy od lokalnych warunków. Fale w tym zakresie
częstotliwości są podatne za zakłócenia i układ nie będzie prawidłowo działał w pobliżu silnych
źródeł zakłóceń takich jak telewizory, monitory, silniki elektryczne. Moduł odbiornika powinien być
umieszczony w zachodniej części budynku, najlepiej w oknie, anteną ferrytową ustawioną
prostopadle do kierunku zachodniego. Propagacja fal długich nie wymaga wyniesienia anteny na dużą
wysokość.
Schemat ideowy modułu odbiornika sygnału DCF-77 przedstawiono na rys. 1.
Rozmieszczenie elementów na płytce drukowanej przedstawiają rysunki 2. i 3. Płytka ma wymiary
78*56 mm i jest jednostronna. Układ UE2125 lutowany jest po stronie połączeń (obudowa SMD).
Projekt części sprzętowej wykonano w programie Eagle 4.09 firmy CadSoft. Dla dwóch
elementów (układ UE2125 i wyświetlacz siedmiosegmentowy) wykonano biblioteki zawierające
symbole i odpowiadające im obudowy. Pliki utworzonych bibliotek załączono do projektu. Obwody
drukowane wykonano z wykorzystaniem metody z papierem kredowym.
rys. 1. schemat ideowy modułu odbiornika sygnału DCF-77
Rozmieszczenie elementów na płytce drukowanej modułu odbiornika:
rys. 2. strona elementów
rys. 3. strona połączeń
b) moduł zegara
Moduł ten składa się z części bazowej i płytki wyświetlaczy oraz przycisków. Obie płytki są
połączone tak, aby zapewnić dużą funkcjonalność układu - moduł zegara przystosowany jest do
zamknięcia w obudowie, gdzie wyświetlacz i przyciski będą znajdować się na panelu przednim,
natomiast gniazda zasilania i sygnału wejściowego z tyłu.
Schemat ideowy modułu zegara przedstawiono na rys. 4. Sercem układu jest mikrokontroler z
rodziny 51 AT89C2051. Współpracuje on z kwarcem o wartości 12 MHz ułatwiającej odmierzanie
jednosekundowych odcinków czasu. Mikrokontroler steruje pracą 4 wyświetlaczy
siedmiosegmentowych o wspólnej anodzie. Wyświetlacze są połączone tak, aby sterować nimi
sekwencyjnie. Sterowanie wyświetlaniem zajmuje 12 linii kontrolera. Układ wyposażono w 4
przyciski sterujące. Obsługa przycisków jest wykonywana wraz z obsługą wyświetlaczy, dzięki
czemu na podpięcie przycisków do kontrolera wykorzystano tylko jedną linię. Jedna linia jest
wejściem sygnału z modułu DCF-77 (linia INT0). Ostatnia wolna linia posłużyła jako wyjście do
ewentualnego „zagospodarowania”, np. jako wyjście budzika (sterowanie piszczykiem piezo) lub
wyjście sterujące przekaźnikiem.
Cztery tranzystory sterują wyborem anod wyświetlaczy - dołączają je do VCC. Poszczególne
segmenty wyświetlaczy są załączane przez mikrokontroler bezpośrednio. Przyjęty prąd pojedynczego
segmentu wynosi około 10 mA i nie przekracza dopuszczalnego prądu wpuszczanego do wyjścia
układu AT89C2051 w stanie niskim.
Moduł zegara wyposażono w stabilizator napięcia 5 V oparty na układzie 7805. W okolicach
stabilizatora oraz w pobliżu mikrokontrolera znajdują się kondensatory filtrujące napięcie zasilania.
Na wejściu zasilania zastosowano diodę D1 zabezpieczającą układ przed skutkami odwrotnego
podłączenia napięcia zasilania.
Moduł bazowy to płytka jednostronna o wymiarach 96 * 50 mm. Rozmieszczenie elementów
na tej płytce przedstawia rys. 5. Moduł wyświetlaczy ma wymiary 96 * 32 mm. Położenie
wyświetlaczy i przycisków przedstawia rys. 6.
rys. 4. schemat ideowy modułu zegara
Moduł zegara składa się z dwóch płytek drukowanych połączonych ze sobą przy pomocy
prostokątnych pól lutowniczych znajdujących się na krawędziach płytek; płytka wyświetlaczy jest
ustawiona pionowo i jest prostopadła do płytki modułu bazowego. Wytrzymałość mechaniczną
zapewnia dodatkowy wspornik.
rys. 5. strona elementów modułu bazowego
rys. 6. strona elementów modułu wyświetlaczy
Moduł zegara jest połączony z modułem odbiornika za pomocą trójprzewodowej taśmy.
Całość należy zasilać z niestabilizowanego źródła napięcia 7-16 V. Można zastosować popularny
zasilacz typu „wtyczkowego”.
2. Część programowalna (software)
Mikrokontroler AT89C2051 zawiera 2 kB pamięci programu (flash) i 128 B pamięci RAM.
Kod programu napisano w asemblerze. Powstało ponad 700 linii kodu, które po kompilacji zajęły
ponad 850 bajtów pamięci flash.
Główna pętla programu zawiera jedynie obsługę nastaw zegara. Wszystkie podstawowe
operacje wykonywane są w przerwaniach. TIMER0 pracuje jako 16-bitowy timer (tryb 1) i zgłoszenie
przerwania od tego timera służy do odmierzania odcinków czasu o długości 40 ms. Zliczanie tych
odcinków pozwala uzyskać odstęp 1 sekundy będącej podstawą aktualizacji czasu. TIMER1 również
pracuje jako 16-bitowy timer i jest podstawą multipleksu wyświetlaczy. Co około 2 ms TIMER1
zgłasza przerwanie którego obsługa zmienia aktywny wyświetlacz i przegląda związany z nim
przycisk. Oba te przerwania służą także do analizy aktualnego stanu na linii INT0 będącej wejściem
sygnału z odbiornika DCF-77. Przerwanie od T0 odlicza czas trwania stanu niskiego na wejściu
INT0. Stan niski jest analizowany w celu znalezienia szczeliny synchronizującej - ostatniej sekundy
ramki DCF-77, podczas której sygnał nie jest nadawany. Pomiędzy bitami 0 a 58 stan niski trwa 800
lub 900 ms. W ostatniej sekundzie nie ma impulsu, więc stan niski pomiędzy bitem 58 a 0 trwa 1800
lub 1900 ms; pozwala to na wykrycie początku transmisji całej ramki i poprawną analizę
przesyłanych bitów. Bity przesyłane są jako impulsy o czasie trwania 100 ms (logiczne zero) lub 200
ms (logiczna jedynka). Wartości te w przypadku linii INT0 dotyczą czasów trwania stanu wysokiego.
Długość czasu stanu wysokiego odmierzana jest w przerwaniu od T1. Dodatkowo każde zbocze
opadające na linii INT0 wywołuje procedurę obsługi przerwania, w której zawarto cały algorytm
dekodowania sygnału DCF-77. Przyjęto odpowiednie tolerancje podanych czasów ze względu na
charakter rozchodzenia się fal radiowych. Uwzględniono także występowanie w sygnale
krótkotrwałych zakłóceń impulsowych.
Ramka DCF-77 zawiera następujące bity:
0
1-14
15
16
17-18
19
20
21-24
25-27
28
29-32
33-34
35
36-39
40-41
42-44
45-48
49
50-53
54-57
58
59
początek transmisji. Zawsze = 0,
przerwa, bez znaczenia - wszystkie zera,
0- antena normalna; 1- antena pomocnicza,
0-normalnie; 1- zapowiedz zmiany czasu godzinę przed,
10-czas zimowy; 01-czas letni. Bit 18 = MSB,
0-normalnie; 1-zapowiedz dodatkowej sekundy,
start informacji czasowej. Zawsze = 1,
jednostki minut w BCD. Bit 24 = MSB,
dziesiątki minut w BCD. Bit 27 = MSB,
bit parzystości dla bitów 21-27,
jednostki godzin w BCD,
dziesiątki godzin w BCD,
bit parzystości dla bitów 29-34,
jednostki dni miesiąca w BCD,
dziesiątki dni miesiąca w BCD,
dni tygodnia w BCD,
jednostki miesiąca w BCD,
dziesiątki miesiąca w BCD,
jednostki lat w BCD,
dziesiątki lat w BCD,
bit parzystości dla bitów 36-57,
brak impulsu.
Jak widać transmisja odbywa się w kolejności od bitu najmniej znaczącego (LSB) do bitu MSB.
Na potrzeby zegara analizowane są bity o numerach: 0, 20 ( kontrolne), 21-27 (minuty BCD), 28 (bit
parzystości), 29-34 (godziny BCD), 35 (bit parzystości). Tylko poprawny odbiór wszystkich
wymienionych wyżej bitów i ustawione zezwolenie na korekcję lokalnego czasu zegara sygnałem
DCF-77 (dCF1 - patrz obsługa zegara) spowoduje aktualizację wyświetlanego czasu i włączenie
wskaźnika synchronizacji czasu ze wzorcem.
3. Obsługa zegara
Po włączeniu zasilania zegar zaczyna odliczać czas począwszy od godziny 12:00. Domyślnie
zezwolenie na korekcję lokalnego czasu zegara sygnałem DCF-77 jest włączone (dCF1). Funkcje
przycisków są następujące:
S2 (lewy górny) - na wyświetlaczu pojawia się czas w formacie GODZINA . MINUTY. Liczby
rozdzielone są kropką dziesiętną wskazującą odliczanie sekund, zmieniającą stan co 1 sekundę,
S4 (prawy górny) - na wyświetlaczu pojawia się czas w formacie MINUTY SEKUNDY,
S1 (lewy dolny) - na wyświetlaczu pojawia się „analizator” odbieranych bitów z odbiornika DCF-77.
Jeżeli sygnał nie jest obecny, jest słaby lub bardzo zakłócony to wszystkie wyświetlacze pokazują „-„
(zapalony środkowy segment każdego z wyświetlaczy). Każdy prawidłowo odebrany bit jest
sygnalizowany cyfrą „0” lub „1” na wyświetlaczu DIS1. Po udanej synchronizacji wyświetlacze
DIS4 i DIS3 pokazują numer aktualnego bitu (z zakresu 00 - 58),
S3 (prawy dolny) - wejście w tryb nastaw zegara. Wejście w tryb nastaw blokuje działanie
przycisków S1 i S2. Pierwszą nastawą jest zezwolenie na korekcję lokalnego czasu zegara sygnałem
DCF-77. Przyciskiem S4 można to zezwolenie wyłączać (dCF0) i włączać (dCF1). Wyłączenie
zezwolenia spowoduje, że ustawiony ręcznie czas nie będzie w żadnych warunkach korygowany, tzn.
informacje uzyskane z sygnału DCF-77 zostaną zignorowane. Kolejne nastawy dotyczą czasu kolejno godzin, minut i sekund. Przyciskiem S4 można zwiększać aktualnie nastawianą wartość.
Wyświetlacz DIS4 wskazuje co aktualnie podlega nastawie: godziny („H”), minuty („Π”) czy
sekundy („S”). Piąte naciśnięcie przycisku S3 spowoduje wyjście z trybu nastaw i pracę w trybie
wskazywania czasu GODZINA . MINUTY.
Przejście przez tryb nastaw zegara bez zmiany którejkolwiek z wartości nie wpływa w żaden sposób
na pracę zegara. Zmiana wartości godzin lub minut nie wpływa na aktualną wartość sekund.
Odmierzanie czasu nie zostaje zatrzymane i jest kontynuowane płynnie ze zmienioną wartością
godzin i/lub minut. Zmiana wartości sekund zatrzymuje odliczanie czasu. Pozwala to na spokojne
wykonanie nastawy. Odmierzanie czasu od wprowadzonej wartości rozpocznie się z chwilą wyjścia z
trybu nastaw.
Poprawny odbiór bitów sygnału DCF-77 i ustawione zezwolenie na korekcję lokalnego czasu zegara
sygnałem DCF-77 (dCF1) spowoduje aktualizację wyświetlanego czasu i włączenie wskaźnika
synchronizacji czasu ze wzorcem. Wskaźnikiem tym jest kropka dziesiętna wyświetlacza DIS1.
Świecenie tego punktu oznacza synchronizację z czasem wzorca; wskazywany czas uwzględnia
zimowe/letnie przesunięcie.
Download