HARDWAREMONTAGES ★ Datenfernübertragung muß nicht teuer sein ★

RS232-Schnittstelle (Happy Computer)Hardware Montages
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

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.

Bit 1Bit 1
00Die Teilerrate ist L Diese Teilerrate ist bei unserer Anwendung nicht zu empfehlen, da es bei der asynchronen Datenübertragung zu »Interferenzstörungen« kommt.
01Teilerrate 16. Das bewirkt bei unserer Schaltung eine Baudrate von 1200 Baud (beim Senden und Empfangen).
10Teilerrate 64 hat eine effektive Rate 300 Baud zur Folge.
11Master Reset, wird in Bit 1 und Bit 0 eine Eins geschrieben, wird der 6850 vollständig zurückgesetzt (empfehlenswert am Beginn eines Programms).

▲ 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 ▼

Bit 4Bit 3Bit 2
0007 Bits + Even Parity + 2 Stop-Bits
0017 Bits + Odd Parity + 2 Stop-Bits
0107 Bits + Even Parity + 1 Stop-Bit
0117 Bits + Odd Parity + 1 Stop-Bit
1008 Bits + 2 Stop-Bits
1018 Bits + 1 Stop-Bit
1108 Bits + Even Parity + 1 Stop-Bit
1118 Bits + Off Parity + 1 Stop-Bit

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):

Bit 0ist gesetzt, wenn das chipinteme Datenregister voll ist, also im Datenregister ein empfangenes Zeichen abgeholt werden kann.
Bit 1ist gesetzt, wenn die Übertragung eines zu sendenden Zeichens fertig ist, das bedeutet, das nächste Byte darf in das Datenregister geschrieben werden, um übertragen zu werden.
Bit 2Hier ist der logische Pegel von Pin 23 (Data Carrier Detect) zu finden. Es ist also immer nicht gesetzt.
Bit 3Hier liest man den Zustand der Leitung CTS (Clear to Send), in diesem Beispiel immer gesetzt.
Bit 4ist gesetzt, wenn ein sogenannter »Framing Error« erkannt wurde. Dann stimmt irgendetwas an den Übertragungsparametem nicht.
Bit 5ist gesetzt, wenn ein Zeichen aus dem Datenregister nicht rechtzeitig geholt wurde und dieses mit dem neuen Zeichen überschrieben wurde. (Overrun Error).
Bit 6ist gesetzt, wenn beim Datenempfang ein Parity-Error erkannt wurde. Dazu muß allerdings die entsprechende Betriebsart eingestellt sein.
Bit 7enthält eine logische Verknüpfung aus den Signalen CTS, TDRE, DCD , Overrun und so weiter (Interrupt request).
Tabelle 3. Die Informationen des Control-Registers

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):

  • A: Das Laufwerk A ist ab sofort Standardlaufwerk.
  • B: Umschalten auf Laufwerk B.
  • BYE: Verlassen des Programms.
  • DIR: Das Inhaltsverzeichnis der Diskette wird angezeigt. Dabei sind wie beim CP/M auch einzelne Dateinamen mit den Wildcards * und ? möglich.
  • DL CLOSE: Die Datei wird geschlossen und auf Diskette endgültig angelegt.
  • DL OFF: Download-Modus aus. Mit DL ON und DL OFF kann das Übertragen der empfangenen Daten in die durch DL OPEN spezifizierte Datei gestoppt und gestartet werden.
  • DL ON: Der Download-Modus wird angeschaltet, vorher muß der Befehl DL OPEN ausgeführt worden sein, Alle Zeichen, die vom Computer empfangen werden, werden in die durch DL OPEN spezifizierte Datei geschrieben. Braucht der Computer Zeit, um empfangene Daten abzuspeichern oder zu bearbeiten, dann stoppt er das Senden des Hosts mit XOFF und startet es danach wieder mit XON.
  • DL OPEN: Die Download-Datei wird geöffnet.
  • ERA: Wie CP/M-Befehl ERA, mit Dateinamen und Wildcards.
  • ESC: Ein Escape-Zeichen wird an den Host-Rechner geschickt,
  • FDX: Die Übertragung von Daten erfolgt im Fullduplex-Modus, das heißt der Host-Rechner muß empfangene Zeichen zur Bestätigung wieder zurückschicken.
  • HDX: Halfduplex — Der Host schickt empfangene Zeichen nicht zurück, das Terminalprogramm erzeugt sie selber.
  • PRN OFF: Schaltet den Drucker wieder aus. Zeichen, die sich noch im Druckerbuffer befinden, werden noch ausgegeben.
  • PRN ON: Der Drucker wird eingeschaltet (natürlich gebuffert), das heißt alle Zeichen, die empfangen werden, werden auch auf dem Drucker mitprotokolliert.
  • TYPE: Wie CP/M-Befehl TYPE. Die angegebene Datei wird im Fenster ausgegeben. Die anzuzeigende Datei sollte im ASCII-Format vorliegen.
  • UL E: Upload-Echo-Mode — Eine Datei wird an den Host-Rechner geschickt. Das Unterprogramm wartet nach dem Senden eines Zeichens auf das Echo vom Host. Diese Betriebsart ist nur bei Fullduplex praktisch.
  • UL X: Upload mit XON/XOFF-Protokoll. Die Datei wird an den Host übertragen, dabei kann der Host die Ausgabe der Datei mit dem XON-XOFF-Protokoll stoppen und starten.

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.

Thomas Obermair

★ PUBLISHER: Happy Computer
★ YEAR: 1986
★ CONFIG: ???
★ LANGUAGE:
★ LiCENCE: ???
★ COLLECTION: HAPPY COMPUTER-SCHNEIDER SONDERHEFT
★ AUTHOR: Thomas Obermair
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listings:
» RS232-Schnittstelle    (Bild  1)    (Happy  Computer-Sonderheft)    GERMANDATE: 2021-03-20
DL: 195
TYPE: image
SiZE: 149Ko
NOTE: |DEK|w2160*h1902

» RS232-Schnittstelle    (Happy  Computer-Sonderheft)    GERMANDATE: 2021-03-20
DL: 215
TYPE: ZIP
SiZE: 4Ko
NOTE: 40 Cyls
.HFE: Χ

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Hardware » Réencreur pour ruban DMP 2000/2160 (Micro-Mag)
» Hardware » Prise DIN 6 Pins du CPC : Remplacer l'écran d'un CPC OLD (CTM 644/CTM640/GT)
» Hardware » Book Montages Extension Peripheriques du CPC 07
» Hardware » Informatique pratique - Un anémomètre (Science&Vie)
» Hardware » Informatique pratique - Un banc d'essai pour vos piles (Science&Vie)
» Hardware » Prise Din 8 Pins du CPC Plus (Remplacer l'écran d'un CPC+)
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 148 millisecondes et consultée 998 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.