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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.