Genaue Zeit für jeden PC


Raimund Eisenstecken IN3HER Kastanienweg Nr.8 39040 VAHRN
e-mail: in3her@qsl.net

Einführung:
Amateurfunkaktivitäten erfordern oft eine prezise Zeitbasis, z.B. EME, Meteorscatter, Satellitenfunk usw. Für diesen Zweck und zur persönlichen Weiterbildung wurde diese Software entwickelt. Damit ist es mit einfachen Mitteln möglich, die Systemuhr im PC bis auf wenige Millisekunden genau auf den Langwellen-Zeitzeichensender DCF77 zu synchronisieren.

Das DCF77 Signal:
Mittels komplizierter und teuerer Technik war es früher nur großen Firmen möglich das offizielle Zeitsignal zu empfangen. Doch heutzutage konnte die Technik verkleinert und billiger hergestellt werden. Deshalb erfreuen sich Funk-Uhren im privaten Sektor nicht nur aufgrund des billigen Preises immer höherer Beliebtheit. Wird ein PC mit einen billigen DCF77-Empfängerbaustein verbunden, so kann die Systemzeit leicht synchronisiert werden.

Die Physikalisch-Technische Bundesanstalt (PTB) in Braunschweig ist seit 1978 damit beauftragt, die offizielle Zeit für das öffentliche Leben in Deutschland anzugeben. Hierfür betreibt die PTB vier Cäsium-Uhren. Diese hochpräzisen Uhren weichen in 300.000 Jahren maximal um 1 Sekunde von der wirklichen Zeit ab. Damit diese Genauigkeit an die Öffentlichkeit weitergegeben werden kann, wird aus diesen Uhren ein Zeitsignal gewonnen. Dieses Zeitsignal wird über 2 Langwellensender in Mainflingen bei Frankfurt ausgestrahlt. Dieses sogenannte DCF 77-Signal wird mit einer Frequenz von 77,5 kHz und einer Sendeleistung von 50 kW ausgestrahlt. Dieses reicht aus, um im Umkreis von 2000 km rund um Frankfurt das Signal empfangen zu können.

Dieser Sender senkt einmal pro Sekunde sein Signal auf 25% ab. Ist diese Senkung 0,1 Sek. lang, entspricht dieses einem nicht gesetzten Bit (LOW). Andernfalls ist die Senkung 0,2 Sek. lang, welches einem gesetzten Bit entspricht (HIGH). Diese Bits enthalten neben einigen Zusatzinformationen die BCD-kodierte Uhrzeit, Datum und Wochentag. Zur Sicherheit werden noch drei Prüfbits übertragen. Die Sekunden zählt der Empfänger einfach anhand der gesendeten Bits. Zur Erkennung des Minutenanfangs fehlt immer das 59. Bit einer Minute. Die Daten die in der aktuellen Minute eingelesen werden, beziehen sich immer auf die folgende Minute. Die 0. Sekunde bedeutet nur, daß jetzt die Minute angefangen hat. Dieses Signal ist immer Low.

Tabelle der Codierung:

Sekunde Bit Bemerkung Info
00   Minutenmarke  
01-14   reservierte Bits, nur für die PTB  
15 R Antennenbit, Betriebs-Reserveantenne 0=Betr.Antenne 1=Res.Ant.
16 A1 Ankündigung MEZ/MESZ bzw. MESZ/MEZ  
17 Z1 Zonenbit 1 Offsetzeit= Z1*2+Z2*1
18 Z2 Zonenbit 0 Offsetzeit= Z1*2+Z2*1
19 A2 Ankündigung Schaltsekunde (eine Std. zuvor)  
20   Startbit der Zeitinformation immer 1
21-27   BCD-codierte Minute (7Bit 1,2,4,8,10,20,40)  
28 P1 Paritätsbit der Minuten (even Parity, sek 21-27  
29-34   BCD-codierte Stunde (6Bit 1,2,4,8,10,20)  
35 P2 Paritätsbit der Stunde (even Parity, sek 29-24)  
36-41   BCD-codierter Tag (6Bit 1,2,4,8,10,20)  
42-44   BCD-codierter Wochentag (3Bits 1,2,4) 1=Montag 7=Sonntag
45-49   BCD-codierter Monat (5Bit 1,2,4,8,10)  
50-57   BCD-codierte Jahrzahl (8Bit 1,2,4,8,10,20,40,80) ohne Jahrhundert
58 P3 Paritätsbit der Datum (even Parity, sek 36-57)  
59   keine Absenkung der Trägerfrequenz  


DCF77 Empfänger:
DCF-RX (BN 641138) Zum Empfang des DCF77-Zeitsignals benötigt man einen Empfänger, der die digitalen Informationen aus der DCF77 Trägerwelle ausfiltert und in ein computergerechtes digitales Signal umsetzt.
Im Handel stehen verschiedene Empfänger in der 10 Euro-Preisklasse zur Verfügung. (z.B. Conrad, ELV)
Das digitale Signal wird am Gameport, Comport oder am Druckerport angeschlossen. Die Stromversorgung kann über das Gameport oder über eine externe Stromversorgung erfolgen. Zu beachten ist, dass das digitale Signal angepasst ist. Aus der nachstehender Zeichnung ist die Pin-Belegungen ersichtlich.

Signal am Gameport Pin 2, oder Druckerport Pin 11


Decoder Software:
Wird die Software DCF77_32.exe gestartet, so wird in die Taskleiste eine Antenne mit gelben Kreisen eingefügt. Gelb bedeutet, dass die Systemuhr momentan noch nicht synchron läuft. Grün hingegen ist das Zeichen für synchrone Systemzeit.

  • Menue - Formular:
    Über das Formular kann man Einblick über den Portstatus, Telegrammdaten und den Synchronstatus bekommen.
  • Menue - Trenngrenze:
    Hier kann die Trenngrenze zwischen 100mS und 200mS eingestellt werden. Dieser Wert hängt von den verwendeten DCF77-Empfänger ab. Der Idealwert errechnet sich aus folgender Formel.
    Trenngrenze = (O-BitImpuls + 1-BitImpuls) / 2
  • Menue - Port:
    Hier kann der verwendete Port, an welchem der DCF77-Empfänger angeschlossen ist ausgewählt werden.
  • Menue - Autor:
    Informationen über den Autor.
  • Menue - Exit nach Sync:
    Das Programm wird nach erfolgter Synchronisation der Systemuhr beendet.
  • Menue - Exit:
    Das Programm wird beendet.
Über die DDE-Schnittstelle ist der DCF77 Status abrufbar.
Application Name: DCF77_32
Topic Name: Dcf77
Item Name: Dcf77Status    das Programm antwortet mit Sync. Status und Sync. Zähler z.B. "not Sync. 15"

NB. Bei Gameportbetrieb ist es notwendig den Gamecontroller zu konfigurieren.

Zu Beachten:
Wird der DtmfDecoder unter Windows 2000, XP oder NT verwendet, so ist eine zusätzlicher Driver zu installieren, da genannte Systeme den Zugriff auf Ports aus Sicherheitsgründen verbieten.

Delphi Projekt Der DCF77-Decoder (224kB) für Windows 95, 98, Me, Win2000, XP oder NT kann hier heruntergeladen werden.
Der Delphi-Quelltext steht natürlich auf Anfrage zur Verfügung.
DCF77-Decoder Version 3.0.0 (231kB) Synchronisiert erst nach N richtig empfangenen Zeittelegramme. N kann in der INI-Datei definiert werden.

( in3her )