DCF-77 für die serielle Schnittstelle
August 1998

Vor über zwanzig Jahren baute ich meinen ersten Empfänger für den Normalzeitsender DCF-77. Dieser war noch diskret aufgebaut und die Selektion erfolgte mit mehreren LC-Filtern und einem teuren Quarz.

Heute gibt es hierfür spezielle integrierte Schaltungen bzw. fertige Module. Ein von der Firma Conrad Electronic vertriebenes Modul (Best.-Nr. 641138, DM 19,95) inspirierte mich, einen Empfänger für die serielle Schnittstelle eines Computers zu entwerfen, der keine eigene Stromversorgung benötigt. Und endlich geht die PC-Uhr mal richtig und die Sommerzeitumstellung erfolgt automatisch.

Nach Informationen aus dem Internet soll Conrad dieses Modul zusammen mit einem LCD-Display unter Best.-Nr. 643173 anbieten, zu einem Preis von nur DM 14,95.

Weitere Informationen zum Thema DCF-77 und der verwendeten Technik finden sich in www.prog-link.com/DCF77/DCF-contents.html .

Schaltung

Gehäuse Die Stromversorgung des Empfängers kann über die Handshakesignale DTR und RTS erfolgen, die durch die Software entsprechend gesetzt werden müssen. Bei ausgeschalteten Handshakesignalen liegt dort eine negative Spannung (-12V) an, die durch Dioden von der Schaltung ferngehalten wird. Optional kann über eine weitere Diode eine externe Versorgungsspannung angelegt werden.

Der verwendete Conrad Empfänger benötigt eine Spannung von 1,5V-15V. Über den 10k Vorwiderstand stellt sich, relativ unabhängig von der Eingangsspannung, eine Versorgungsspannung von etwa 4 Volt ein.

Möglicherweise hat Conrad das Modul inzwischen etwas abgeändert, so daß es eine höhere Versorgungsspannung braucht. Dann muß der 10k-Widerstand vor LED2 verkleinert werden, damit das Modul ordentlich funktioniert.
Schaltplan

Die beiden LEDs dienen einer einfachen Diagnose.

LED1 signalisiert die Sekundenpulse, dies hilft bei der optimalen Ausrichtung zum Sender.

LED2 zeigt an, daß die Versorgungsspannung anliegt.

Da nur wenig Strom zur Verfügung steht, sollten als LEDs Low Current Ausführungen verwendet werden.

Die Sekundenpulse können über den Eingang der seriellen Schnittstelle RxD mit 50 Baud detektiert werden. Falls die Software statt RxD nur eine der Handshake-Leitungen abfragt, kann das DCF-77-Signal alternativ auch auf RI, CTS, DSR oder DCD geschaltet werden.

Aufbau Die Schaltung findet bei mir in einem kleinen Kunststoffgehäuse Platz, das mit einer DB-09 Buchse versehen ist.

Etwas Abstand von Monitor, Fernseher oder anderen elektronischen Geräten sichert einen problemlosen Empfang, besonders bei größerer Entfernung vom Sender in der Nähe von Darmstadt.

Viel Spaß beim Basteln, wie immer kann ich keinerlei Garantie übernehmen, daß irgendwas funktioniert . . . 

Ach ja, den Lötkolben nicht an der falschen Seite anfassen!

Software

Auf meinem Linux Server lief anfangs dcf77d, eine von mir korrigierte Version der von Joerg Krause geschriebenen Software, die aber bei Empfangsproblemen manchmal falsche Zeiten lieferte.

Inzwischen habe ich den DCF-77-Empfänger direkt in xntp eingebunden, er wird dann über eine Pseudo-IP-Nummer ähnlich wie andere Timeserver (z.B. aus dem Internet) angesprochen. In /etc/ntp.conf wird hierzu

   server 127.127.8.0 mode 5 prefer   # DCF-77 clock
   ##
   ## Undisciplined Local Clock. This is a fake driver intended for backup
   ## and when no outside source of synchronized time is available.
   server 127.127.1.0                 # local clock (LCL)
   fudge  127.127.1.0 stratum 10      # LCL is unsynchronized
   ##
   ## Miscellaneous stuff
   driftfile /etc/ntp.drift           # path for drift file
   logfile   /var/log/ntp             # alternate log file
   logconfig =syncstatus
eingetragen. Die IP-Nummer und mode 5 legen den Empfänger-Typ fest, prefer sorgt dafür, daß der DCF-77-Empfänger als bevorzugte Quelle herangezogen wird. Ist der Empfänger z.B. an ttyS2 angeschlossen, so erfolgt die Anbindung mit ln -s /dev/ttyS2 /dev/refclock-0. Die Stromversorgung erfolgt wieder über DTR, die kodierten Sekundenpulse gelangen über RxD. Im xntp-Paket befindet sich im Verzeichnis parseutil auch testdcf, mit dem man zum Testen die empfangenen Pulse schön verfolgen kann.

Per crontab starte ich xntp alle zwei Stunden neu, da er bei Empfangsproblemen manchmal verschwindet. Das ist aber immer noch besser als eine falsche Uhrzeit. ntpq -p servername zeigt den Status des Timeservers.

Dank xntpd können sich alle anderen Rechner im Netz bei diesem Server mittels ntpdate oder einem eigenen xntp-Server mit der genauen Zeit versorgen. Infos zum Thema ntp finden sich unter www.eecis.udel.edu/~ntp.

Henning, DB5SH, hat Software für OS/2 geschrieben (WARP77), die mal über das Packet Radio Netz verbreitet wurde. Sie schaltet den Empfänger beim Start ein, wertet zur Fehlervermeidung zwei aufeinanderfolgende Zeitdiagramme über den Eingang RI aus und schaltet wieder ab. Auf meinem früheren OS/2-Server hatte ich damit die Uhrzeit täglich einmal per crontab aktulisiert.

Zum Einschalten des Empfängers wird hierbei auf der I/O-Adresse COM-Port+4 (bei COM1: 0x3F8 ist dies 0x3FC) der Wert 0x03 geschrieben, zum Ausschalten der Wert 0x00 . Die Sekunden-Impulse können nichtinvertiert auf COM-Port+6 (0x3FE) mit einer Bit-Maske von 0x40 (bei Verwendung von RI) ausgelesen werden.

Raimund Eisenstecken, IN3HER, hat Software für den Betrieb eines Empfängers für alle Versionen von Windows 95 bis XP erstellt.


Line
Document Revision:   23 Jul 2007
(c) 2007 Rolf Bleher
e-mail
Valid HTML 4.01! Prev Home Next