Forum: Mikrocontroller und Digitale Elektronik MSF60 Dekoder AVR Teil_1


von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Hallo !
Da im Netz so gut wie nichts an praktikablen Programmen in hinreichend 
auskommentierter Assemblersprache für ATMEL AVRs zu finden ist, die sich 
mit dem Thema Zeitzeichenempfang des schottischen MSF60 beschäftigen, 
möchte ich für dieses Forum einmal ein Progrämmchen vorstellen.
(Dazu muss vorweg gesagt werden, dass es wesentliche Bestandteile des 
DCF77-Dekoders im Projekt „Wohnuhr" von @Scott-Falk Huehn enthält. Der 
Autor hat der Veröffentlichung zugestimmt.)

In einem älteren Beitrag im hiesigen Forum wurde der Empfang von MSF60 
als Alternative zu DCF77 in Ostdeutschland als möglich erachtet:

So schrieb No N. im Beitrag #1697812:
> Das MSF60 funktioniert auch
> im Osten Deutschlands, verlangt allerdings etwas geschicktere
> Programmierung, weil 2 Bit pro Sekunde übertragen werden.

Da möchte ich gleich einhaken:
MSF60 überträgt simultan zwei Codes durch mehr als nur zwei 
unterschiedlich lange Trägeraustastungen wie bei DCF77, einmal Channel A 
dann Channel B. (siehe Abbildung 1)

Das bedeutet im Klartext, dass bei einer logischen 0 im A-Channel und 
einer logischen 1 im B-Channel zwei fallende Flanken pro Sekundenmarken 
im Abstand von 200 ms auftreten können. Das fällt vor allem während der 
ersten 16 Sekunden auf, da dann immer Nullen im A-Channel-Code gesendet 
werden. Momentan liegen diese „Doppelmarken" im Bereiche zwischen 
Sekunde 9 und 12 und beinhalten die Differenzen zwischen tatsächlicher 
Erdrotationszeit und Atomfrequenznormal-Zeit. Dieser DUT1-Code ist 
eigentlich nur für einen engen Kreis von Astronomen und Wissenschaftlern 
interessant und wird deswegen von DCF77 lange schon nicht mehr 
ausgestrahlt.

Diese „Doppelmarken" bringen wohl fast jeden DCF77-Dekoder aus dem Takt, 
da dann mehr als nur 59 Sekundenmarken entstehen, aber nicht konstant, 
sondern an einem Tag mal 60 Sekunden, dann am anderen Tag vielleicht 
sogar 62 Sekunden ( …und auch nicht immer zur gleichen Sekunde.)

Da aber die allernotwendigsten Zeitinformationen im A-Channel-Code  als 
Austastungen wie bei DCF77 mit 100 ms für Null und 200 ms für Eins 
übertragen werden, hatte ich mir gedacht, den B-Channel-Code erst einmal 
zu ignorieren. (Hier stecken dann noch die Paritybits drin.) Es gilt 
also, diese Doppelimpulse zu eliminieren. Dazu kann ein Monoflop 
(Abbildung 2) verwendet werden. Wie man schnell merkt, bringt das aber 
gewisse Nachteile.
Eleganter ist es, den Eingang für eine bestimmte Dauer zu sperren, so 
dass dann die zweite fallende Flanke ignoriert wird.

Dann sieht man, dass MSF60 und DCF77 auch in Abfolge und „Wertigkeit" 
der Daten gravierende Unterschiede aufweisen. Es beginnt mit Jahr und 
endet mit 8 fixen Synchronisationsbits, worin im B-Channel-Code die 
Paritybits zusammengefasst versteckt sind, odd Parity, nicht even und 
auch nicht verstreut, wie bei DCF77. Daten nicht BCD-codiert von LSB 
nach MSB, sondern von MSB nach LSB. Die 59. Sekunde wird auch gesendet, 
der Minutenbeginn wird durch 500-ms-Austastung in Minute Null markiert. 
(Abbildung 3)

Fortsetzung folgt….
Bye bye
gustav

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.