www.wernerhirsch.de
Elektronikprojekte
Die Auswertung der "Bitlängen" erfolgt mit dem Beginn einer neuen Minute, da das erste gesendete Bit immer "0" ist und somit als Referenz dient. Die angezeigten "Bitlängen" entsprechen nicht exakt dem Wert in Millisekunden sondern etwas weniger: 1 "Bitlänge" entspricht 1,024 ms. Normalerweise reicht ein 8 Bit Register (0-255 entspricht 0-261ms) für die Messung aus. Läuft das 8 Bit Register aus irgendwelchen Gründen über (z.B. wenn das Ausgangssignal des DCF Empfängers die verkehrte Polarität hat), geht der Überlauf in ein zweites Register und wird ebenfalls angezeigt, z.B: "Bitlänge" 3 018 = 3 x 256 + 18 = 786 => 786 x 1,024ms = 805 ms Die DCF77 Empfänger brauchen nach dem Einschalten ca. 10-20 Sek um sich auf das Signal einzustellen. Ist automatisches Update eingestellt (Menüpunkt 1) wird beim Einschalten der Uhr 20 Sek gewartet, bis die Update Routine gestartet wird. Nach starten der Update Routine laufen die Normalzeit/Sternzeituhren intern weiter, werden aber auf dem Display nicht mehr aktualisiert. Stattdessen werden auf der Sekundenanzeige der Uhrzeit die empfangenen Bits hochgezählt (mit Beginn einer neuen Minute wird die Anzeige auf 0 gesetzt), rechts neben der Sternzeit wird die "Bitlänge" angezeigt und rechts neben der Uhrzeit die Anzahl von fehlerhaft empfangenen Telegrammen. Die folgenden Kriterien führen zu einem Fehler: 1: nach 5 Sekunden keine negative Flanke detektiert. 2: nach 60 empfangenen Bits kein Beginn einer neuen Minute detektiert. 3: Startbit bei Beginn einer neuen Minute (Bit 0) ist nicht "0". 4: Startbit für Zeitinformation (Bit 20) ist nicht "1". 5: Summe der Prüfbits ergiebt eine ungerade Zahl. 6: Die Bitlängen der Bits 0 (Startbit) und Bits 17-58 (Zeitinformation) liegen außerhalb der eingestellten Toleranzen. Bei einem Fehler beginnt die Update Routine von vorn. Wird beim 5.Versuch kein fehlerfreies Telegramm empfangen wird die Update Routine beendet ohne Zeitdaten zu verändern. Fehler treten hauptsächlich auf, wenn sich Störquellen in der Nähe der Uhr befinden, z.B. PC's oder Schaltnetzteile. Die Ausrichtung der Antenne spielt ebenfalls eine Rolle, der beste Empfang wird erzielt, wenn der Ferritstab quer zum Sender in Frankfurt ausgerichtet wird. Ist kein Fehler aufgetreten, wird die Zeitinformation übernommen und die Sternzeit neu berechnet.

Sternzeitberechnung

Die Sternzeitberechnung basiert auf Ergebnissen der folgenden Gleichung (siehe auch Wikipedia => Sternzeit): GMST(0hUT) = 6h41m50,54841s + 8640184,812866s x T + 0,093104s x T² - 0,0000062s x T³ Mit: T = (JD - 2451545,0) / 36525 Da die Berechnung der obigen Gleichung im Mikrocontroller extrem aufwendig ist, wurde ein vereinfachtes Verfahren mit wenig Nachkommastellen gewählt. Als Beispiel soll für die folgenden Angaben die Sternzeit berechnet werden: Datum: 02.12.2013, Zeit: 17:25:38 MEZ, Ort: Hamburg, 9°53m36s Ost Im ersten Schritt wird UT aus der lokalen Zeit und der Zeitzone berechnet. UT = MEZ - 1h (bzw. MESZ - 2h) => UT = 17h25m38s - 1h = 16h25m38s Die Berechnung startet mit den Basisdaten für den 01.01.2000 00:00:00 UT 0°Ost: 06h39m52,27s Für jedes volle Jahr werden 1,85s addiert: 06h39m52,27s + 1,85s/J x 13J = 06h39m52,27s + 24,05s = 06h40m16,32s Je nach Jahr werden die folgenden Zeiten addiert: Schaltjahr (SJ) = 0m00s, SJ+1 = 2m57,41s, SJ+2 = 1m58,27s, SJ+3 = 0m59,13s, d.h. für 2013 (SJ+1) 2m57,41s: 06h40m16,32s + 2m57,41s = 06h43m13,73s (=>ST: 01.01.2013 00:00:00UT 0°E) Pro vollen Tag des laufenden Jahres werden 236,556s addiert, für das Datum 02.12.2013 sind das: 335T x 236,556s/T = 79.246,26s = 22h00m46,26s: 06h43m13.73s + 22h00m46,26s = 04h43m59,99s (=>ST: 02.12.2013 00:00:00UT 0°E) UT wird addiert: 04h43m59,99s + 16h25m38s = 21h09m37,99s Pro volle Stunde (UT) des laufenden Tages werden 9,85s addiert: 21h09m37,99s + 16h x 9,85s/h = 21h09m37,99s + 2m37,60s = 21h12m15,59s Pro volle Minute der laufenden Stunde werden 0,16s addiert: 21h12m15,59s + 25m x 0,16s/m = 21h12m15,59s + 4,00s = 21h12m19,59s (=>ST: 02.12.2013 16:25:38UT 0°E) Für die lokale Sternzeit wird die geografische Länge in Zeit umgewandelt und bei östlicher Länge addiert, bei westlicher Länge subtrahiert. Die Umrechnung beträgt 4min pro Grad, 4sek pro Bogenminute und 1/15sek pro Bogensekunde. 9°53m36s Ost => 9 x 4m + 53 x 4s + 36 x 1/15s = 36m + 3m32s + 2,40s = 00h39m34,40s 21h12m19,59s + 00h39m34,40s = 21h51m53,99s = 21:51:54 (=>ST: 02.12.2013 16:25:38UT 9°53m36sE)

Bedienung

Alle Einstellungen erfolgen über die 6 Bedientaster. Mit der "OK" Taste (Ta2) kann zwischen Anzeige Sternzeit und Anzeige Datum gewechselt werden. Mit der "Menü" Taste (Ta1) wird das Menü aufgerufen. Über die "Up/Down" Tasten (Ta5/Ta6) werden die einzelnen Menüpunkte angezeigt, mit den "Left/Right" Tasten (Ta3/Ta4) wird der Cursor auf ggf. vorhandene Menüunterpunkte bewegt. Das Menü kann jederzeit durch nochmaliges drücken der Menütaste verlassen werden. Mit der OK Taste wird der gewählte Menüpunkt aufgerufen: 1. DCF77 Update Man Auto Wird das manuelle Update gewählt wird das automatische Update ausgeschaltet. Mit der OK Taste kann die Update Routine gestartet werden. Mit der Menü Taste wird das Menü verlassen ohne das Update durchzuführen. Wird das automatische Update gewählt kann die Update Zeit (zum Beginn einer Stunde) über die Up/Down Tasten verändert werden. Mit der OK Taste werden die Einstellungen übernommen und im internen EEPROM gespeichert, mit der Menü Taste wird das Menü verlassen ohne Änderungen vorzunehmen. Die Wahl des automatischen Updates bewirkt auch einen Update Vorgang nach 20 Sek beim Einschalten der Uhr. 2. Standort Über den Menüpunkt 2.Stanort kann die geografische Länge für die Sternzeitberechnung eingestellt werden. Mit den Left/Right Tasten wird der zu ändernde Wert gewählt (Grad, Min, Sek, East/West). Mit den Up/Down Tasten kann der entsprechende Wert verändert werden. Mit drücken der OK Taste wird die Position übernommen und im internen EEPROM gespeichert sowie die Sternzeit neu berechnet. Mit der Menü Taste wird das Menü verlassen, ohne Änderungen vorzunehmen. 3. Datum/Zeit man Falls kein DCF77 Empfang möglich ist kann das Datum (TT.MM.JJ) und die Zeit (hh:mm:ss) manuell eingegeben werden. ZZ bedeutet dabei die Zeitverschiebung zu UTC (nur volle Stunden), z.B MEZ = +01, MESZ = +02. Mit der Menü Taste wird das Menü verlassen, ohne Änderungen vorzunehmen. Mit der OK Taste werden Datum und Zeit übernommen und die Sternzeit berechnet. 4. DCF Parameter Man Auto Bei Wahl des Punktes Auto wird eine automatische Auswertung des DCF Signals zur Ermittlung der Toleranzen gestartet. Im ersten Schritt werden die Mittelwerte aus je 20 "0" und "1" Bits und daraus die Toleranzen berechnet: Logisch "0": Mittelwert +/- 25% Logisch "1": Mittelwert +/- 12,5% Im manuellen Modus können die Toleranzen (min/max Werte) manuell verändert werden. Mit der Menü Taste wird das Menü verlassen, ohne Änderungen vorzunehmen. Mit der OK Taste werden die Werte übernommen und im internen EEPROM abgespeichert. 5. Quarzabgleich Dieser Menüpunkt dient der Einstellung der Frequenz des Quarzoszillators. Nach Aufruf des Menüpunktes mittels der OK Taste wird die interne Normalzeituhr mit dem Sekundentakt des DCF Signals synchronisiert. Anschließend wird sekündlich die Zeitdifferenz zwischen dem Sekundentakt der internen Uhr und dem Sekundentakt des DCF Signals gemessen, der Mittelwert berechnet und in ppm (parts per million: 1ppm entspricht einer Abweichung von 0,0864sek/Tag) auf dem Display angezeigt. Ein positives Vorzeichen bedeutet, dass der Quarzoszillator zu schnell schwingt, ein negatives Vorzeichen bedeutet eine zu geringe Oszillatorfrequenz. Aufgrund des Sendeverfahrens (77kHz Trägerfrequenz) und der Auswertung im Empfänger kann der Sekundentakt des DCF Signals nur mit einer zeitlichen Genauigkeit von ca. +/- 1 Millisekunde gemessen werden (Abhängig von der Empfangsqualität). Dieses entspricht einer Unsicherheit der Messung von +/- 1000ppm. Nun wird sich jeder fragen, wie kann ich eine Abweichung der Oszillatorfrequenz von wenigen ppm Messen, wenn die Messung eine Unsicherheit von +/- 1000ppm beinhaltet. Hierzu ein Beispiel: Die Oszillatorfrequenz ist um 10ppm zu hoch, d.h. die Länge der Sekunde der internen Uhr ist 10 Mikrosekunden zu kurz und der Sekundentakt des DCF Signals wird mit einer Unsicherheit von +/- 1000 Mikrosekunden empfangen: Zeit Zeitdifferenz Unsicherheit Mittlere Zeitdiff. Mittlere Unsicherheit [s] [µs/ppm] [µs/ppm] [µs/ppm] [µs/ppm] 1 +10 +/-1000 +10 +/-1000 2 +20 +/-1000 +10 +/-500 10 +100 +/-1000 +10 +/-100 100 +1000 +/-1000 +10 +/-10 1000 +10000 +/-1000 +10 +/-1 Je länger die Messung läuft, desto besser wird das Verhältnis von Nutzsignal zu Messunsicherheit. Wenn sich nach einigen 10 bis 100 Sekunden eine klare Tendenz abzeichnet, kann der Menüpunkt mit der Menütaste verlassen werden und die Oszillatorfrequenz durch Verdrehen von C3 angepasst werden (nach Möglichkeit einen Kunststoff Schraubendreher verwenden). Hierbei sollte man sich die Drehrichtung und den ungefähren Drehwinkel merken. Nach erneutem Aufruf des Menüpunktes sieht man die Auswirkung der Veränderung. Durch wiederholtes Verdrehen von C3 und Aufruf des Menüpunktes kann der Frequenzfehler auf ca. +/- 2 ppm gesenkt werden.

Download

Der unten aufgeführte Ordner beinhaltet alle relevanten Dateien, die für den Nachbau benötigt werden. Eingefügt sind auch die Stromlaufpläne und Platinenlayouts im Originalzeichnungsformat mit der Dateiendung .tcd. Diese bieten eine bessere Auflösung als die .jpg Dateien (siehe Sonstiges => Zeichnungen) DCF77_Sternzeituhr.zip 12.12.2013 Seite erstellt 17.02.2015 Menüpunkt zur Erleichterung der Oszillatoreinstellung hinzugefügt
DCF77 Funk-Sternzeituhr