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