Genaue Zeit? Der ATARI als Funkuhr

Praktisch alle Rechner, die auf dem Markt sind, verfügen über eine eigene Uhr. Doch muß man hier in zwei Kategorien unterteilen. 1. Die Uhr ist gepuffert und läuft auch bei ausgeschaltetem Rechner weiter. 2. Die Uhr verfügt über keine Pufferung und verliert somit ihre Aktualität, wenn der Rechner ausgeschaltet wird. Sie muß also jedes Mal neu gestellt werden.

Bei den ATARIs der ST-Reihe finden beide Arten Anwendung. Selbst bei den gepufferten Uhren läßt die Ganggenauigkeit zu wünschen übrig. Eine Abweichung bis zu 10 Minuten pro Monat ist keine Seltenheit.

Eine Abhilfe wäre der Einbau einer gepufferten und genau abgeglichenen Uhr, wie sie von verschiedenen Herstellern angeboten wird, oder aber der genaue Abgleich der vorhandenen Uhr. Das würde aber oft einen Eingriff in den Rechner und somit Garantieverlust bedeuten. Aber auch diese Uhren haben zwei Nachteile: 1. Sie besitzen in einigen Fällen keinen Kalender (nicht bei ATARI). 2. Der Zeitpunkt der Umstellung von Winter- auf Sommerzeit und umgekehrt wird bundesweit einheitlich von der Bundesregierung festgelegt und kann daher auch in keinem Kalendereines Uhrenchips einprogrammiert werden. Bei der Schaltsekunde, die je nach Bedarf am 1.Januar oder am 1 Juli weltweit eingefügt wird, verhält es sich genauso.

Die Lösung

Wie die meisten Leser wissen, sendet die Physikalisch Technische Bundesanstalt (PTB) über ihren Sender DCF77 in Mainflingen bei Aschaffenburg auf der Frequenz 77,5 kHz die kodierte Zeitinformation aus, die von jedem genutzt werden kann, der eine solche ‘Funkuhr’ besitzt. Die Uhren der Bundesbahn, des Fernsehens, der Post (Telefonzeitansage) etc. sind von solchen Normalzeitempfängern gesteuert. Diese Zeitinformation ist von den beiden Atomuhren CS1 u. CS2 der PTB abgeleitet. Diese Uhren gehören zu den genauesten der Welt (Abweichung voneinander: ca. 1 Sek. in 1 Million Jahren). Diese Zeit ist die gesetzliche Zeit der Bundesrepublik Deutschland. Zum besseren Verständnis der hier vorgestellten Bauanleitung und der Programme folgt nun die Beschreibung des gesendeten ‘Telegramms’ (Bild 3). Gesendet werden die Sekunden 0 bis 58, wobei der fehlende 59. Takt den Minutenbeginn ankündigt. Eine Absenkung des Sendeträgers von DCF77 auf ca. 25% bedeutet den Beginn einer Sekunde. Die Dauer der Absenkung kann entweder 0,1s oder 0,2s lang sein. 0,1s bedeuten eine binäre ‘0’, 0,2s eine binäre ‘1’. Von der 0. bis zur 14. Sekunde werden z.Zt. nur ‘Nullen’ gesendet, die 20. Sekunde ist 0,2s lang (Startimpuls für die Zeitübermittlung). Danach folgt die Übermittlung der kompletten Zeit- u. Datumsinformation für die darauffolgende Minute im BCD - Format (Bild 3). Die Wochentage sind folgendermaßen definiert: Montag=l, Dienstag=2 ... Sonntag=7. Die Prüf-Bits P1 (für Minuten), P2 (für Stunden), P3 (für das Datum mit Wochentag) (Bild 3) ergänzen die zugehörige Information auf eine gerade Anzahl von Einsen. Doch jetzt ist Schluß mit der Theorie.

Bild 1: Das Programm DCF77AUT.PRG stellt die Rechneruhr aus dem Autoordner.
Bild 2: Hier eine Version mit grafischer Anzeige

Die Praxis

Bei dem folgenden Bausatz wurde die Tatsache, daß der eine Joystickport meistens nicht gebraucht wird, genutzt. Das hat außerdem den Vorteil, daß von diesem Port der Empfänger versorgt werden kann. Keine Angst wegen Ihres Netzteils! Die Schaltung benötigt max. 15mA. Benutzt werden die drei Pins 1,7,8 der 9-poligen Buchse, 8=GND, 7=+5V, 1=Takteingang. Mit insgesamt 14 Bauteilen läßt sich so ein kompletter Empfänger für unsere Zwecke aufbauen (siehe Stückliste). Die Hardware kann komplett mit allen Bauteilen von CONRAD-ELECTRONIC bezogen werden. Dann müssen nur noch die Bauelemente rechts von der strichpunktierten Linie auf der beim Autor erhältlichen SMD-Platine aufgebaut und das Ganze miteinander verbunden werden. Die komplette Schaltung zeigt Bild 5.

Die grüne LED hat zwei Funktionen: 1. Betriebsanzeige, 2. Spannungsstabilisierung/-begrenzung für die Schaltung. Es ist daher wichtig, daß speziell diese LED polrichtig angeschlossen wird, sonst schickt man die Schaltung in die ewigen Jagdgründe. Das Ganze findet in einem kleinen Kunststoffgehäuse Platz und ist über ein 3poliges Kabel mit dem Joystickport 1 des ST(E)/TT/F verbunden. Ich habe als Verbindung zum Rechner eine Hälfte einer Joystickverlängerungverwendet, da hier die Buchse angeschweißt und dementsprechend klein ist. Das Kabel direkt am Stecker mit den Stiften abgeschnitten, nicht am Stecker mit den Buchsen und die benötigten 3 Adern mittels Ohmmeter ermittelt (bei der in der Stückliste aufgeführten Joystickverlängerung waren es: rot=+5V, schwarz=0V, weiß=Takt).

Die Anordnung der Baugruppen in dem Gehäuse zeigt Bild 6. Die Antenne wird mit quer zur Gehäuselängsachse auf den Boden geklebt und die Empfängerplatine mittels der Anschlußpads senkrecht auf der SMD-Platine aufgelötet. Das Ganze wird dann auf dem Gehäuseboden festgeklebt. Dabei muß die Empfängerplatine paralell zur Antennenachse ausgerichtet sein. Kleben Sie die beiden LEDs in zwei passende Löcher im Gehäuseoberteil, kürzen Sie die Anschlußbeine und verbinden Sie sie mittels flexibler Schaltlitze mit den entsprechenden Anschlußpads auf der SMD-Platine. Wenn alle Lötstellen genau geprüft sind, kann der Empfänger in Betrieb genommen werden. Dazu muß der Rechner ausgeschaltet sein. Die Schaltung könnte sonst Schaden nehmen. Stecken Sie nun das Anschlußkabel des Empfängers in den Joystickport (nicht in den Mausport!) und schalten den Rechner ein. Die grüne LED muß sofort auf-leuchten, nach ca. 5 s muß die rote LED anfangen zu blinken. Wenn man die rote LED genau beobachtet, wird man feststellen, daß sie einmal kürzer, einmal länger aufleuchtet. Hier kann man die übermittelte Information schon optisch kontrollieren. Sollte die rote LED nicht regelmäßig (Sekundentakt) auf leuchten, ist die Lage des Empfängers zu kontrollieren. Als Faustregel gilt: Die Antennenachse muß quer zur Verbindungslinie Aufstellungsort <->Mainflingen liegen. Sollte das nicht helfen, so sind der Rechner auszuschalten und alle Lötstellen nochmals zu überprüfen. Funktioniert der Empfänger, ist das schon die ‘halbe Miete'. Zur Software: Sie kann direkt vom Autor gegen einen Unkostenbeitrag von DM 15,- zuzügl. DM 5,- für die SMD-Platine bezogen werden. (Nur Vorkasse, Nachnahme würde die Sache verteuern. Frankierten Rückumschlag nicht vergessen !). Auf der Diskette befindet sich diese Beschreibung im WORDPLUS-Format und als ASCII-Datei sowie die Programme DCF77AUT. PRG, DCF77KON.PRG und DCF77GRA.PRG. Weiterhin eine ‘Screen-Datei (32kB)’ Schaltbild und eine Screen-Datei mit dem Bestük-kungsplan. Das Programm DCF77-AUT.PRG ist für den Autoordner bestimmt.

Achtung!: Kopieren Sie unter keinen Umständen die Programme DCF77-GRA.PRG oder DCF77KON.PRG in den Autoordner, weil sonst Ihr Rechner nicht bootet. Alle Programme wurden in GFA-BASIC V3.07 geschrieben und dann mit dem Compiler V3.03 compiliert.

Beschreibung

Das Programm DCF77KON.PRG (Bilder 3 u. 4) stellt die empfangenen Impulse graphisch auf dem Monitor dar, ohne die Uhr zu stellen. Es dient dazu, den Empfänger optimal auszurichten. Das Programm DCF77GRA.PRG (Bild 2) ist die graphische Version von DCF77AUT.PRG. Es stellt ein Zifferblatt auf dem Monitor dar und zeichnet die Zeiger entsprechend der empfangenen Information. Dieses Programm stellt auch die Rechneruhr. Bedenken Sie bitte, daß die empfangene Information für den kommenden Minutenbeginn gilt und mit dem Programmende die Rechneruhr die Kontrolle übernimmt. Das Autoordnerprogramm DCF77AUT.PRG ist das wichtigste und soll kurz beschrieben werden. Die Zeitmessung geschieht in einer DO-LOOP-Schleife, in die zwei REPEAT-UNTIL-Schleifen eingebunden sind. Die eine dient zur Messung des Taktabstandes, die andere zur Messung der Impulsdauer. Gemessen wird mittels [TIMER]. Das Programm wartet nun, bis ein Taktabstand von 2 Sekunden empfangen wurde, stellt den Sekundenzähler auf '0' und setzt ein Flag, das den eingegangenen Minutenbeginn anzeigt. Jeder eingehende Impuls wird jetzt in ein Array geschrieben, dessen Index der Sekundenzähler liefert, der von den Impulsen hochgezählt wird. Die Länge des Impulses bestimmt, ob eine ‘0’ oder eine ‘1’ eingetragen wird. Hat der Sekundenzähler den Stand 28 erreicht, wird die Anzahl der Einsen ermittelt, das Prüf-Bit addiert und auf EVEN geprüft. Wird die Prüfung bestanden, wird die Minuteninformation nach Umwandlung von binär in dezimal in den ZEIT-STRING eingetragen. Das gleiche geschieht sinngemäß bei Takt Nr. 35 für die Stunden. Danach folgt der Empfang für das Datum incl. Wochentag. Mit dem 58. Takt wird die restliche Information nach dem gleichen Schema überprüft. Wird eine der drei Prüfungen nicht bestanden, geben die Programme eine entsprechende Warnmeldung aus und fangen wieder von vorne an. Beide Programme, DCF77AUT.PRG und DCF77GRA.PRG, überprüfen beim Start, ob plausible Takte empfangen werden. Wenn nicht, wird eine Meldung ausgegeben.

Bild 3: Das Kodierschema des DCF77-Signals

Die Rechneruhr wird gestellt: Mit dem nächsten 2s langen Takt wird in die Stellroutine verzweigt. Dort wartet das Programm DCF77AUT.PRG auf den nächsten Sekundensprung der Rechneruhr. Direkt danach wird die Rechneruhr gestellt und die Information der Rechneruhr mit der empfangenen Zeit verglichen. Das Uhren-IC des ATARI hat einen riesengroßen Vorteil. Es führt eine Plausibilitätskontrolle durch und ignoriert unplausible Daten. Beispiel: durch fehlerhaften Empfang wurde als Datum der 29.02.1995 dekodiert, und die Paritätsprüfung wurde bestanden. Das Uhren-IC mag jetzt zwar die Zeit akzeptieren, nicht aber das Datum. Das wird ebenfalls vom Programm erkannt und somit ein Neustart veranlaßt. Hier gibt es mit dem alternativen Betriebssystem KAOS 1.4.2 ein Problem: Obwohl die Rechneruhr korrekt gestellt wird, ist das Systemdatum nach dem Booten der 00.00.28.

Ich habe über den Vertreiber bei den Autoren von KAOS 1.4.2 vor ca. 3 Jahren nachgefragt, bis heute jedoch keine Antwort erhalten. Als Abhilfe kann man das Programm DCF77-GRA.PRG oder DCF77AUT.PRG als Autostartanwendung anmelden. Das funktioniert einwandfrei.

Mögliche Fehler: Anhand der eingehenden Informationen, die auf dem Monitor optisch dargestellt werden, kann man schon erkennen, ob der Empfang fehlerfrei ist oder nicht. Ich habe das Empfangsmodul direkt neben den Monitor gelegt und es funktioniert auch nach 3 Jahren noch einwandfrei. Von dieser Seite ist nichts zu befürchten. Eine Fehlerursache könnte sein, wenn der Empfänger in einem Raum betrieben wird, der durch Stahlbeton ziemlich gut abgeschirmt ist. Hier wäre ein Verlängerungskabel nötig (Bestellnummer siehe Stückliste), damit der Empfänger dicht bei einem Fenster angebracht werden kann. Die Länge des Kabels ist unkritisch, jedoch nicht die Ausrichtung der Antenne. Das fehlerhafte Impulsdiagramm (Bild 4) wurde dadurch erzeugt, daß die Antennenachse genau in Richtung Mainflingen zeigte. Die Schaltung paßt sich jedoch in weitem Bereich den Empfangsbedingungen an, sodaß nach kurzer Zeit (einige Sekunden) wieder ‘normal’ empfangen wird. Sollten noch irgendwelche Fragen auftauchen, können Sie Ihre Anfragen direkt an mich schicken (frankierten Rückumschlag nicht vergessen).

Bis jetzt haben wir nur Vorteile kennengelernt. Ein Wermutstropfen bleibt aber doch: Es dauert min. 1 und max. 2 Minuten, bis die Rechneruhr gestellt ist. Der Grund dafür ist, daß der Sender DCF77 eine Minute benötigt, um die komplette Information zu senden. Wem das zu lange dauert, der kann den Programmlauf jederzeit mit [ESCAPE] abbrechen. Dadurch wird natürlich die Uhr nicht gestellt. Es gibt aber Fälle, in denen dies sinnvoll ist, z.B. bei einem Warmstart. Das ist bei allen drei Programmen eingebaut. Versuchen Sie nicht, die Programme aus dem Interpreter-Lauf mit [CONTROL+SHIFT+ALTERNATE] zu beenden. Die Maus wird dann nicht mehr reagieren, da noch der Joystickport abgefragt wird. Die Listings für die Software zur Funkuhr finden Sie auf der Mega-Disk zu dieser Ausgabe.

Quellennachweis:

Ein Teil dieser Beschreibung (Kodierschema DCF77) wurde mit freundlicher Genehmigung der PTB Braunschweig (Dipl.-Phys. H. Klages) der Broschüre 'Zur Zeit' entnommen.

Applikationsbeispiel mit freundlicher Genehmigung von CONRAD Electronic.

Bezugsquelle:

Alle Teile mit Ausnahme der Platine können unter folgender Adresse bezogen werden:

CONRAD-Electronic Klaus-Conrad-Str. 1 D-92240 Hirschau

Stückliste:

Pos. Stck. DM
1 1 Empfängerschaltung 22,50
2 1 Antenne 2,25
3 1 Kunststoffgehäuse 11,80
4 2 Transistor BC 847 zus. —,60
5 1 Widerst. 330Ω -,20
6 1 Widerst. 470Ω -,20
7 2 Widerst. 10kΩ zus. —,40
8 1 Widerst. 100kΩ -,20
9 2 Elko 2,2mF/20V zus. 2,30
10 1 Keramik-C 100nF -,40
11 1 IC CD4093 (4fach NAND) -,95
11 1 LED rot (3mm) -,30
12 1 LED grün (3mm) -,35
13 1 Joystickverlängerung 6,90
14 ISMD-Platine (bei Softwarebestellung beim Autor erhältlich) 5,-
Summe: 54,35
Bild 7: Der Bestückungsplan
Bild 4: Fehlerhafter Empfang
Bild 6: Der Aufbau
Bild 5: Die Schaltung des Empfängers

Ulrich Günthner
Aus: ST-Computer 07 / 1995, Seite 96

Links

Copyright-Bestimmungen: siehe Über diese Seite