★ HARDWARE ★ MONTAGES ★ Datenfernübertragung muß nicht teuer sein ★ |
RS232-Schnittstelle (Happy Computer) | Hardware Montages |
Zur Datenfernübertragung brauchen Sie einen Computer, ein Modem, eine Verbindung zwischen beiden und ein DFÜ-Programm. Den Computer haben Sie und das Modem müssen Sie kaufen. Den Rest bekommen Sie hier. Die hier vorgestellte Schnittstelle ist speziell für den 300-Baud-Betrieb ausgelegt. Trotzdem kann sie per Software auf 1200 Baud umgestellt werden. Der Preis für unsere Bastelei richtet sich hauptsächlich nach dem eingesetzten Spannungswandler. Mit Bausteinen der Serie 75188 und 75189 ist sie günstiger (maximal 100 Mark). Allerdings braucht man dann von außen Spannungen und zwar +12 Volt und -12 Volt. Mit dem integrierten Spannungswandler NM232C steigt zwar der finanzielle Aufwand um zirka 30 bis 40 Mark, aber man braucht auch nur eine Stromversorgung mit 5 Volt. Kernstück der Schnittstelle ist der integrierte Seriell/parallel-Wandler 6850. Er wird über zwei Register programmiert und bedient. Von Basic aus geht das mit den Befehlen IN und OUT. Ein weiterer wichtiger Teil der Schaltung ist der Frequenzgenerator. Er erzeugt mit einer Stan-dard-Quarz-Schaltung die Frequenz von 2,4576 MHz. Diese liefert, je nachdem wie oft sie geteilt wird, alle nötigen Baudraten. Der 2x4-Bit-Zäh-ler 74LS393 teilt die 2,4576 MHz auf die Frequenz von 19,2 kHz. Vom 6850 werden diese 19,2 kHz noch einmal geteilt, so daß letztendlich die Baudrate von 300 (bei Teilung durch 64) oder von 1200 (bei Teilung durch 16) zur Verfügung steht. Für die V.24-Pegel brauchen wir einen Spannungswandler. Entweder den integrierten Spannungswandler NM232C oder Standard-V.24-Treiberbausteine, von denen einer allerdings mit +12 und -12 Volt versorgt werden muß. Das noch eingesetzte IC 74LS08 dient zur Adreß-decodierung. Beim Schreiben in das Controlregister (Adresse FBF0hex) müssen bestimmte Parameter gesetzt werden. Bit 0 und 1 bestimmen die Teilerrate des Chips. Hier kann also per Software festgelegt werden, wie oft die Frequenz, die an den Pins 3 und 4 anliegt, geteilt werden soll. Die Werte finden Sie in Tabelle 1.
▲ Tabelle 1. Bit 0 und 1 bestimmen die Baudrate Die Bits 2 bis 4 bestimmen das Übertragungsformat der Schnittstelle (siehe Tabelle 2). Tabelle 2. Bit 2, 3 und 4 steuern das Übertragungsformat ▼
Die von Mailboxen am häufigsten verwendeten Übertragungsformate sind 100 (8 Bit und 2 Stop-Bit) und 101 (8 Bit und 1 Stop-Bit). Die Bits 5 und 6 müssen bei normalen asynchronen Anwendungen beide 0 sein, Wird in beiden eine 1 geschrieben, dann wird ein Break-Signal geschickt, was nichts anderes bedeutet, als daß die V.24-Sen-deleitung für eine bestimmte Zeit auf einen festen Pegel gelegt wird. Bit 7 ist ebenfalls immer 0. Wenn Sie die Schnittstelle fertig aufgebaut haben, dann sollten Sie erst noch einmal alles prüfen, Eine gute Testmöglichkeit von seriellen V.24-Schnittstellen ist das Verbinden der Sende- und Empfangsleitungen (Pin 2 und 3), so daß die Schnittstelle sich selber Daten schickt. Listing 1 testet Ihre Schnittstelle. Nach dem Anschließen der Schnittstelle und dem Starten dieses Testprogramms müssen gedrückte Tasten als Buchstaben auf dem Bildschirm erscheinen. Mit solch einem Programm können bereits über einen Akustikkoppler Mailboxen bedient werden. Die Programmierung des 6850 Für die Schaltung gibt es zwei Anschlußmöglichkeiten. Entweder am herausgeführten Datenbus oder im Innern des Computers direkt auf dem Sockel des Z80. Der Z80 selbst wird dann in die Schaltung integriert. In beiden Fällen werden alle benötigten Signale erreicht. Beide Lösungen haben aber ihre Schwächen. Der Anschluß am Datenbus führt leicht zu einer wackeligen Lösung. Auch die Diskettenstation ist schwierig gleichzeitig mit anzustecken. Der Haken bei der Einbaulösung ist, daß eventuell noch bestehende Garantie erlischt. Die Schaltung ist leicht in der Wire-Wrap-Technik aufzubauen, genauso einfach ist allerdings auch eine gelötete Verdrahtung auf einer Lochrasterplatine. Für den Einbau der Schaltung in den Computer ist ein 40poliger Wire-Wrap-Sockel notwendig, da die Beinchen lang genug sein müssen, um in den Sockel zu passen. Wie bereits oben gesagt, hat der 6850 zwei Register, die beide sowohl beschrieben als auch gelesen werden können. In das eine Register, das Datenregister, werden die zu übertragenden Daten hineingeschrieben. Beim Empfang werden hieraus die Daten abgeholt, Es hat die Adresse FBF1hex. Das andere Register dient zur Steuerung des Bausteins, es ist das Control-Regi-ster. Seine Adresse ist hexadezimal FBF0. Die Bedienung dieses Registers ist leider etwas kompliziert. Beim Lesen aus dem Register erhält man folgende Informationen (bitweise aufgeschlüsselt, Tabelle 3):
Das Maschinencode-Modul »FLIRTM.BIN« ist darauf ausgelegt, ein Datenfernübertragungsprogramm in Basic zu unterstützen. Es beginnt bei Adresse 7000hex, besitzt einen interruptgesteuerten Empfangsbuffer (4 KByte) und einen interruptgesteuerten Druckerbuffer (ebenfalls 4 KByte groß). Mit diesen Buffern wird die Bedienung der Schnittstelle zeitlich gesehen problemlos. Das Programm kann mit dem abgedruckten Basic-Lader generiert werden. Die Bedienung des Moduls erfolgt über RSX-Befehle: INIT Mit diesem Befehl werden die Buffer initialisiert und die Schnittstelle auf das Übertragungsformat 8 Datenbit und 1 Stop-Bit gesetzt. SEND,asc("a") Mit diesem Befehl wird ein Zeichen über die Schnittstelle geschickt. Es wird dabei so lange gewartet, bis die Übertragung des vorhergehenden Zeichens beendet wurde. RECV,@a Mit diesem Befehl wird der interruptgesteuerte Empfangsbuffer ausgelesen. In der Integer-Variable a befindet sich der ASCII-Code des empfangenen Zeichens. PRINT,asc("a") Ein Zeichen wird an den Druckerbuffer übergeben. Das Drucken des Zeichens übernimmt die Interrupt-Routine. Wenn der Buffer voll ist, so werden die einzutragenden Zeichen ignoriert, das heißt sie gehen verloren. Allerdings müßten bei einer 300-Baud-Übertragung 2,2 Minuten lang ununterbrochen Daten eintreffen, um den Buffer wirklich ganz zu füllen. Das Maschinencode-Modul muß am Anfang einmal mit dem Befehl CALL &7000 initialisiert werden. Von diesem Modul werden zusätzlich die Diskettenfehler »FILE NOT FOUND« und »DISK FULL« und so weiter abgefangen, damit beim Auftreten eines solchen Fehlers das Programm nicht abgebrochen wird. Tritt solch ein Fehler auf, so wird das Basic-Programm mit der Meldung »Error 50« fortgesetzt. Diese Meldung kann dann mit dem Befehl ON ERROR GOTO abgefangen werden. Das bedeutet aber, daß das Maschinencode-Modul den Ready-Modus nicht zuläßt. Es kann daher nur von Programmen aus aufgerufen und bedient werden. In der Error-Routi-ne wird dann der Diskettenfehler durch den Inhalt der Variablen ERR erkannt. Der Befehlssatz ist reichhaltig Das Übertragungsprogramm aus Listing 3 enthält als Kern das beschriebene Maschinencode-Modul »FLIRTM.BIN«. Dadurch treten keine Geschwindigkeitsprobleme auf. Das Basic kann gemütlich die gebuf-ferten Daten verarbeiten. Dieses Programm läuft nur auf dem CPC 464 mit Diskettenlaufwerk. Nach dem Starten finden Sie im oberen Teil des Bildschirms das »Kommando-Fenster«. Es wird benutzt um Be- fehle einzugeben, ohne daß dabei der untere Teil des Bildschirms zerstört wird. In den Befehlseingabemodus gelangt man durch zweimaliges Drücken der Taste Esc. Die dann einzugebenden Anweisungen sind weitgehend am CP/M-Betriebssystem orientiert. Man kann durch die Bufferstruktur beliebig lang in diesem Fenster arbeiten und Befehle ausführen lassen, ohne daß dabei Daten verlorengehen. Voraussetzung ist allerdings, daß der Host-Rechner der Mailbox auf das XON/XOFF-Protokoll vorschriftsmäßig reagiert. Im Fenster können folgende Befehle aufgerufen werden (Eingabe wie unter CP/M):
Durch die einfache Erkennung erleichtert, können beliebig viele zusätzliche Befehle (wie zum Beispiel deutscher Zeichensatz oder deutsche Tastatur) hinzugefügt werden. Dazu muß einfach eine Zeile mit der Befehlserweiterungen Syntax »IF Befehl$ = ”xyz” THEN GOSUB 2000« eingebaut werden. Noch ein Hinweis zum Betrieb der Schnittstelle: Die Datenübertragungspins 2 und 3 des V.24-Steckers können, je nach Art des Geräts, das angeschlossen werden soll, auch vertauscht richtig sein. Deshalb sollte man auf der Platine die Möglichkeit vorsehen, die beiden Pins einfach vertauschen zu können.
|