| 4.6 Bausteine für parallele Schnittstellen |  | 4.8 Bausteine für synchrone, serielle Schnittstellen |

## 4.7 Bausteine für asynchrone, serielle Schnittstellen

### 4.7.1 Einleitung

Die im vorigen Abschnitt beschriebenen parallelen Schnittstellen ermöglichen eine sehr große Übertragungsrate. Jedoch gibt es zwei entscheidende Nachteile:

- Die maximale Länge der Übertragungsstrecke ist wegen des geringen Signalhubs zwischen dem L- und dem H-Pegel (ca. 3 V) und der Gefahr von Signalverfälschungen durch verschiedenste physikalische Effekte (Reflexionen, Übersprechen, statische und dynamische Belastung), die hier nicht beschrieben werden können, auf wenige Meter beschränkt.
- Die große Anzahl von Übertragungs- und Synchronisierleitungen verursacht unverhältnismäßig hohe Kosten für den Übertragungsweg.

Diese Nachteile werden durch die serielle Übertragung digitaler Daten vermieden. Bei ihr werden die Daten häufig nur über zwei bis drei Leitungen mit z.T. erheblich höheren Spannungspegeln übertragen. Aber auch hier müssen einige Probleme gelöst werden. Dazu gehören für den Empfänger insbesondere

- die Bit-Synchronisation, d.h. die Bestimmung des Übertragungszeitpunktes jedes einzelnen Bits,
- die Zeichen-Synchronisation, durch die der Beginn und das Ende eines Zeichens ermittelt werden,
- die Block-Synchronisation, die den Beginn und das Ende eines Datenblocks festlegt.

Das erste Problem kann z.B. durch eine weitere Leitung gelöst werden, auf der ein für Sender und Empfänger gemeinsamer Übertragungstakt zur Verfügung gestellt wird. Zur Lösung des zweiten Problems kann man, wie bei der parallelen Übertragung, zwei zusätzliche Handshake-Leitungen benutzen. Das dritte Problem wird dadurch umgangen, daß Beginn und Ende des Blocks z.B.

- durch besondere Steuerzeichen gekennzeichnet sind, die zwischen den Nutzdaten übertragen werden oder
- nur der Beginn gekennzeichnet ist und die Größe des Datenblocks zu Beginn des Blocks dem Empfänger mitgeteilt wird.

Zur Lösung der Probleme gibt es jeweils eine ganze Reihe anderer Maßnahmen. Im Rahmen dieses Kurses sollen nur die dargestellt werden, die in einem Mikrorechner-System bei der seriellen Übertragung von Daten zwischen µP und einem Peripheriegerät über relativ kurze Distanzen auftreten. Spezielle Probleme der Datenfernverarbeitung und ihre Lösungen sind dagegen nicht Gegenstand diese Kurses.

### 4.7.2 Synchronisationsverfahren

Je nach der gewählten Synchronisationsmaßnahme zwischen Sender und Empfänger unterscheidet man die synchrone und die asynchrone serielle Übertragung. Diese Begriffe beziehen sich jedoch nur auf die Art und Weise, wie die Zeichen eines Blockes übertragen werden. Für die Übertragung der einzelnen Bits eines Zeichens müssen natürlich stets Sender und Empfänger zeitgerecht, also synchron zusammenarbeiten.
In der Regel verzichtet man auf die oben erwähnte gemeinsame Taktleitung. Statt dessen besitzen Sender und Empfänger lokal jeweils einen eigenen Taktgenerator. Da beide Taktgeneratoren unabhängig voneinander arbeiten, werden sie in der Regel "auseinanderlaufen", d.h. ihre Taktflanken treten nicht immer zu den gleichen Zeitpunkten auf. Deshalb müssen sie durch die übertragene Information selbst "in Gleichtakt" gebracht (re-synchronisiert) werden.
4.7.2.1 Die synchrone Übertragung
Bei der synchronen seriellen Übertragung wird die Synchronisation zwischen Sender- und Empfängertakt nur einmal zu Beginn der Übertragung eines Datenblockes vorgenommen. Alle Daten des Blockes werden danach in einem fest vorgegebenen Zeitraster übertragen. Die synchrone Übertragung wird hauptsächlich in öffentlichen Datennetzen und in schnellen lokalen Netzwerken (Local Area Networks - LAN) eingesetzt. Sie stellt erhebliche Anforderungen an die Taktgeneratoren, die auch nach einigen hundert oder tausend übertragenen Bits noch synchron arbeiten müssen. Vorteilhaft ist jedoch, daß der zusätzliche Zeitaufwand für die Synchronisation sehr gering ist.
4.7.2.2 Die asynchrone Übertragung
Die asynchrone serielle Übertragung ist dadurch gekennzeichnet, daß sich Sender und Empfänger für jedes einzelne Zeichen eines Datentransfers erneut synchronisieren. Zwischen den Zeichen eines Blockes können beliebig große Zeitabstände liegen. Im Mikrorechner-Bereich wird die asynchrone Übertragung hauptsächlich zwischen dem Mikrorechner und langsamen Peripheriegeräten eingesetzt, die keinen ununterbrochenen Datenstrom liefern oder empfangen können. Dazu gehören insbesondere die Maus als Eingabegerät und langsame Drucker als Ausgabegerät. Der wesentliche Vorteil der asynchronen Übertragung ist, daß geringe Anforderungen an den Gleichlauf der Taktgeneratoren gestellt werden, der ja jeweils nur für die Dauer einer Zeichenübertragung gesichert sein muß. Als Nachteil ist aufzuführen, daß die für jedes Zeichen wiederholte Synchronisation relativ viel Zeit benötigt.
In diesem Abschnitt werden wir uns nun ausschließlich mit der asynchronen Übertragung beschäftigen. Die synchrone Übertragung wird im Abschnitt 4.8 beschrieben.
Im Bild 4.7-1 wird gezeigt, wie zur Synchronisation der asynchronen Übertragung jedes Zeichen in einen Zeichenrahmen (Frame) eingebettet wird. Zur Darstellung eines Bits werden z.B. die Spannungspegel 0 V (L-Pegel) und +5 V (H-Pegel) benutzt, die im englischen Sprachgebrauch als Space Line bzw. Mark Line bezeichnet werden. Vor jedem Zeichentransfer liegt das Übertragungssignal auf dem H-Pegel. Der Beginn des Transfers wird dem Empfänger durch ein Startbit angezeigt, indem für einen Taktzyklus das Potential auf den L-Pegel gelegt wird. Danach folgen die einzelnen Bits des Zeichens, üblicherweise beginnend mit dem niederstwertigen Bit (Least Significant Bit - LSB).
Bild 4.7-1: Zeichenrahmen bei der asynchronen Übertragung
Ein Zeichen kann wahlweise aus 5 bis 8 Bits bestehen. Es folgt ein Paritätsbit P (Parity), das zur Erkennung von Übertragungsfehlern dient. Für die Berechnung dieses Bits existieren vier Alternativen:

Even Parity: | Durch das Paritätsbit wird die Anzahl der '1'-Bits im Datum auf eine gerade Zahl ergänzt.
Odd Parity: | Durch das Paritätsbit wird die Anzahl der '1'-Bits auf eine ungerade Zahl ergänzt.
Mark Parity: | Das Paritätsbit wird stets auf H-Potential gesetzt.
Space Parity: | Das Paritätsbit wird stets auf L-Potential gesetzt.

Die Übertragung eines Datums wird mit 1, 1 1/2 oder 2 Stop(p)bits abgeschlossen, die durch einen H-Pegel dargestellt werden. Bis zum nächsten Datentransfer bleibt dann der H-Pegel als Pausensignal (Break Signal) auf der Datenleitung erhalten. Wegen der beschriebenen Form der Zeichen-Synchronisation wird die asynchrone Übertragung auch Start-Stop-Betrieb genannt.
Natürlich müssen sich Sender und Empfänger vor der Datenübertragung über die Anzahl der Daten- und Stopbits, über die Berechnung des Paritätsbits sowie über die Frequenz des Übertragungstaktes verständigen. Diese Parameter werden in der Regel den Schnittstellen einmal einprogrammiert und bleiben dann für die gesamte Kommunikation zwischen Sender und Empfänger unverändert. Die Gesamtheit aller Parameter und Regeln, die die Übertragung bestimmen, werden als (Übertragungs-)Protokoll bezeichnet.
Im Bild 4.7-1 sind unten der Bit-Sendetakt und der Bit-Empfangstakt gezeichnet. Man sieht, daß z.B. mit jeder positiven Flanke des Sendetaktes ein neues Bit auf die Übertragungsleitung gegeben wird. Durch die negative Flanke des Startbits wird der Taktgenerator im Empfänger getriggert. Das Startbit übernimmt damit die oben erwähnte Aufgabe, den Beginn eines Zeichens festzulegen, und dient somit der Zeichen-Synchronisation. Nach einem halben Taktzyklus, also in der Mitte des Startbits, beginnt nun die erste Vollschwingung des Empfangstaktes. Üblicherweise wird zunächst hier noch einmal geprüft, ob wirklich ein Startbit, also weiterhin ein L-Pegel, vorliegt oder aber nur ein kurzzeitiger Störimpuls auf der Datenleitung aufgetreten war, der den Taktgenerator getriggert hat. Danach werden mit jeder positiven Flanke des Empfangstaktes nacheinander die Daten- und das Paritätsbit eingelesen. Der Empfangstakt übernimmt somit die Aufgabe der Bit-Synchronisation. Die Abfrage geschieht im Idealfall ebenfalls in der Mitte der Sender-Bitzeiten, so daß Sende- und Empfangstakt um einen halben Taktzyklus verschoben sind. Durch das Stopbit kann der Empfänger die korrekte Beendigung der Zeichenübertragung feststellen. Auch dieses Bit dient daher der Zeichen-Synchronisation.
Im Maximalfall besteht ein Datentransfer aus 12 Bits (Startbit, 8 Datenbits, Paritätsbit, 2 Stopbits). Während dieses Transfers dürfen Sender- und Empfängertakt höchstens um einen halben Taktzyklus auseinanderlaufen. Diese Forderung ist für kleine Übertragungsraten leicht zu erfüllen. Sie begrenzt aber heute übliche Übertragungsraten auf ca. 100.000 bd. Dabei besteht eine starke reziproke Abhängigkeit zwischen der gewählten Übertragungsrate und der maximalen Länge der Übertragungsstrecke. Bei 19 200 bd beträgt diese Länge gerade noch 30 Meter.
Mit 'bd' (Baud) wird dabei die gebräuchliche Maßeinheit für die Schrittgeschwindigkeit bezeichnet, die die Anzahl der Taktschritte pro Sekunde angibt. Bei den in diesem Kurs besprochenen binären, seriellen Übertragungsverfahren stimmt sie zahlenmäßig mit der Übertragungsgeschwindigkeit in der Einheit "bit/s" überein. Bei dem im vorangegangenen Abschnitt beschriebenen bitparallelen (byte-seriellen) Datentransfer ist die Übertragungsrate um den Faktor 8 größer als die Schrittgeschwindigkeit, da mit jedem Taktschritt ein Byte (= 8 Bits) übertragen wird.
Mit jedem Zeichen wird Information übertragen, die für den Benutzer eigentlich wertlos ist, nämlich die Start- und Stopbits zur Synchronisation und das Paritätsbit zur Fehlererkennung. Die Netto-Übertragungsgeschwindigkeit ohne Berücksichtigung dieser Bits wird mit Transfergeschwindigkeit (in bit/s) bezeichnet.

### 4.7.3 Aufbau eines Bausteins für asynchrone Schnittstellen

Im Bild 4.7-2 ist der prinzipielle Aufbau eines Bausteins für die asynchrone serielle Datenübertragung skizziert. Diese Bausteine werden alternativ wie folgt benannt:

- Asynchronous Communications Interface Adapter (ACIA),
- Asynchronous Serial Communications Controller (ASCC),
- Universal Asynchronous Receiver/Transmitter (UART),
- Asynchronous Communications Element (ACE).

Bild 4.7-2: Baustein für die asynchrone Übertragung

Die Ausführungseinheit des Bausteins ist in zwei Einheiten unterteilt, die unabhängig voneinander zu betreiben und jeweils einer Übertragungsrichtung zugeordnet sind. Sie werden als Sende- und Empfangsschaltung oder kürzer als Sender und Empfänger (Transmitter, Receiver) bezeichnet.
4.7.3.1 Der Sender
Der µP schreibt ein auszugebendes Datum in das Sende-Datenregister TDR (Transmit Data Register) des Senders. Bei einigen Bausteintypen ist dieses Register auch als Warteschlange (FIFO) mit bis zu 16 Speicherzellen ausgebildet. Von dort wird es automatisch von der Bausteinsteuerung in das Sende-Schieberegister TSR (Transmit Shift Register) übertragen. Dort findet die Parallel/Serien-Umsetzung des Datums statt.
Dazu gibt die Sende-Synchronisierschaltung (Transmit Control) zunächst das Startbit auf die Daten-Ausgabeleitung TxD (Transmit Data). Dann schaltet sie die benötigte Anzahl von Impulsen als Sendetakt auf den Takteingang des Schieberegisters. Mit jedem Taktimpuls wird genau ein Bit des Datums aus dem Register hinausgeschoben und auf den Ausgang TxD gegeben.
Schritthaltend mit der Ausgabe des Zeichens wird vom Parity Generator das Paritätsbit ermittelt und unmittelbar nach dem letzten Datenbit ausgegeben. Zum Abschluß der Zeichenübertragung erzeugt die Synchronisierschaltung das bzw. die Stopbits.
Werden mehrere Daten hintereinander übertragen, so muß das zuletzt eingeschriebene eventuell warten, bis das TSR-Register wieder frei ist. Über die Ausgangsleitung TxRDY (Transmitter Ready), die manchmal auch mit TDRE (Transmitter Data Register Empty) bezeichnet wird, kann der Sender den Prozessor darüber informieren, daß er den Inhalt des Registers TDR ins Schieberegister TSR übertragen hat und somit bereit ist, ein neues Zeichen vom Prozessor zu übernehmen. Weiter unten wird gezeigt, daß der Prozessor sich aber auch mit einem TDRE-Bit des Statusregisters über den Zustand des Senders informieren kann.
Der Sendetakt wird von dem Baudraten-Generator (Baud Rate Generator) erzeugt. Im einfachsten Fall schaltet dieser lediglich den Takt durch, der als externer Sendetakt an einem speziellen Eingang TCLK (Transmitter Clock) des Bausteins angelegt wird. Darüber hinaus bietet er eine ganze Palette verschiedener Taktraten an, die er durch einen programmierbaren Frequenzteiler aus einer bestimmten Grundfrequenz erzeugt. Die Grundfrequenz wird durch einen extern anzuschließenden Quarz stabilisiert. Durch Eingabe einer bestimmten Bitkombination in das Steuerregister des Bausteins kann der Prozessor eine dieser Frequenzen selektieren.
4.7.3.2 Der Empfänger
Der Empfänger ist völlig analog zum Sender aufgebaut, nur daß ihn die Daten in der anderen Richtung durchlaufen. Die Empfangs-Synchronisierschaltung (Receive Control) wird durch die erste negative Flanke eines Bitstroms auf dem Eingang RxD (Receive Data) aktiviert. Wie oben beschrieben, erzeugt sie zunächst eine Verzögerung um eine halbe Bitbreite und stößt dann den Baudraten-Generator zur Erzeugung des Empfangstaktes an. Das erste eingelesene Bit interpretiert sie als Startbit. Erst die folgenden Bits werden mit dem Empfangstakt in das Empfangs-Schieberegister RSR (Receiver Shift Register) eingelesen. In diesem findet die Serien/Parallel-Umsetzung der Daten statt. Vom RSR wird jedes empfangene Datum in das Empfangs-Datenregister RDR übertragen. Über den Ausgang RxRDY (Receiver Ready), der manchmal auch mit RDRF (Receiver Data Register Full) bezeichnet wird, teilt der Baustein dem Prozessor mit, daß im Register RDR ein Datum zur Abholung bereitliegt. Diese Information wird aber auch in einem RDRF-Bit des Statusregisters zur Verfügung gestellt (vgl. Abschnitt 7.1.5).
Schritthaltend mit dem Einlesen der Datenbits in das Empfangs-Schieberegister RSR wird vom Parity (Generator and) Checker wiederum das Paritätsbit berechnet. Nach der Übertragung des letzen Datenbits wird das so neu berechnete Paritätsbit mit dem übermittelten verglichen. Stimmen beide nicht überein, so wird dies als Paritätsfehler (Parity Error) in einem Bit des Statusregisters festgehalten (vgl. Abschnitt 4.7.5) und gegebenenfalls eine Unterbrechungsanforderung zum Prozessor ausgegeben.
Als letztes überprüft die Empfangs-Synchronisierschaltung, ob die geforderte Anzahl von Stopbits übertragen wird. Wird dabei ein Fehler festgestellt, wird ebenfalls ein Bit des Statusregisters gesetzt. Dieser Fehler wird als Rahmenfehler (Framing Error) bezeichnet. Ein weiteres Bit des Statusregisters wird gesetzt, wenn ein neues Datum empfangen wird, der Prozessor aber das zuletzt empfangene noch nicht aus dem Empfangs-Datenregister RDR gelesen hat. In diesem Fall geht das vorhergehende Datum verloren. Es liegt ein Überlauf vor (Overrun Error).
Als Empfangstakt wird entweder ein externes Taktsignal RCLK (Receiver Clock) oder aber eine der vom Baudraten-Generator zur Verfügung gestellten Frequenzen benutzt. (Da der Baudraten-Generator nur eine einzige Frequenz erzeugt, muß entweder der Sender oder der Empfänger einen externen Takt benutzen, wenn in beiden Richtungen mit unterschiedlichen Geschwindigkeiten übertragen werden soll.)
4.7.3.3 Modem-Steuerung
Die mit Modem-Steuerung bezeichnete Komponente erzeugt Steuer- und Meldesignale, die der Synchronisation der Datenübertragung mit dem angeschlossenen Gerät dienen. In der folgenden Beschreibung dieser Signale tauchen die englischen Bezeichnungen Data Terminal und Data Set auf.

- Mit Data Terminal wird in der Regel der Kommunikationspartner bezeichnet, in dem die Daten verarbeitet werden, also z.B. ein µR oder ein Datensichtgerät (Terminal) eines Rechners. Im Deutschen wird dafür der Begriff Daten-End-Einrichtung (DEE) benutzt.
- Mit Data Set werden Schaltungen oder Geräte bezeichnet, die nur der Datenübertragung dienen. Sie werden Daten-Übertragungs-Einrichtungen (DÜE) genannt. Zu diesen DÜEs gehören die sogenannten Modems (Modulator/Demodulator), die hauptsächlich in (öffentlichen) Weitverkehrsnetzen eingesetzt werden und dort Anpassungsfunktionen zwischen der DEE und dem Übertragungsweg vornehmen. Dazu gehört vor allem die Aufgabe, die digitalen Signale der DEE in modulierte, analoge Signale (oder umgekehrt) umzuformen. Der Modem ist also stets nur Zwischenstation für die Daten auf ihrem Weg vom Sender zum Empfänger. (Häufig sagt man übrigens auch: das Modem.)

Bei der lokalen Kommunikation innerhalb eines Mikrorechner-Systems wird jedoch meistens auf den Einsatz eines Modems verzichtet. Hier kennzeichnet der Begriff DÜE dann den Kommunikationspartner, also ein direkt angeschlossenes Peripheriegerät oder ein anderes Mikrorechner-System. Dieses ist selbst Quelle oder Ziel des Datentransports.
Die Modem-Steuersignale werden üblicherweise an ihren Bausteinausgängen bzw. -Eingängen invertiert. Sie haben die folgende Funktion:

| (Data Terminal Ready) 'Daten-End-Einrichtung betriebsbereit' Über dieses Ausgangssignal informiert der Prozessor seinen Kommunikationspartner darüber, daß er bereit ist, Daten auszutauschen. Dabei kann es sich um ein Modem, ein Peripheriegerät oder einen zweiten Prozessor handeln.
| (Data Set Ready) 'Daten-Übertragungs-Einrichtung betriebsbereit' Dieses Eingangssignal dient dem Kommunikationspartner seinerseits dazu, dem Prozessor seine Bereitschaft zum Datenaustausch mitzuteilen.
| (Request to Send) 'Sendeteil einschalten' Über dieses Ausgangssignal teilt der Prozessor mit, daß er ein Datum aussenden will. Durch dieses Signal kann in einem Modem der Sendeteil eingeschaltet werden, der die Daten vom Prozessor übernimmt und auf die Daten-(Fern-)Leitung gibt. In einem direkt angeschlossenen Peripheriegerät kann hingegen der Empfangsteil (Receiver) aktiviert werden.
| (Clear to Send)'Daten-Übertragungs-Einrichtung sendebereit' Dieses Eingangssignal dient einem Modem dazu, dem Prozessor anzuzeigen, daß er bereit ist, Daten aufzunehmen und weiter zu schicken. Ein direkt angeschlossenes Peripheriegerät zeigt dadurch dem Prozessor seine Empfangsbereitschaft an. Häufig schaltet dieses Signal im ACIA-Baustein der DEE-Schnittstelle erst den Sendeteil (Transmitter) ein.
| (Data Carrier Detect) 'Trägersignal erkannt' Dieses Signal wird benötigt, wenn die Daten in analoger Form übertragen werden. Gebräuchliche Verfahren bestehen z.B. darin, die Frequenz oder die Amplitude eines Trägersignals (Data Carrier), d.h. einer Sinus-Schwingung bestimmter Frequenz, informationsabhängig zu verändern. Man spricht dann von Frequenz- bzw. Amplitudenmodulation. Über wird dem ACIA-Baustein mitgeteilt, daß dieses Trägersignal auf der Übertragungsstrecke vorliegt. Es kann damit insbesondere auch zur Anzeige von Leitungsunterbrechungen oder -Störungen dienen. Außerdem kann durch dieses Signal im ACIA-Baustein der Empfängerteil eingeschaltet werden.

Im Bild 4.7-3 ist die Verbindung zwischen einem ACIA-Baustein und einem Modem dargestellt, der zur Datenübertragung über eine Telefonleitung benutzt wird.

Bild 4.7-3: Datenübertragung mit einem Modem

### 4.7.4 Die V.24-Schnittstelle

Um ein Modem an Geräte verschiedenster Hersteller anschließen zu können, muß die Schnittstelle zwischen beiden Komponenten genormt sein. Die am häufigsten benutzte Norm ist die sogenannte V.24-Schnittstelle. In der Norm sind die Signalbezeichnungen und Steckerbelegungen (CCITT-Empfehlung V.24) sowie die Definition der elektrischen Signale (CCITT-Empfehlung V.28) festgelegt. Zur Codierung der Zeichen wird der im letzten Abschnitt kurz beschriebene ASCII-Code benutzt. Die V.24-Norm schreibt die folgenden Signalpegel vor:

H-Pegel: 3 bis 15 V, L-Pegel: -15 bis -3 V.

Typisch sind Spannungspegel von ±12 V oder ±10 V. Die relativ hohen Spannungspegel garantieren einen ausreichend großen Störspannungsabstand, so daß Störimpulse auf den Übertragungsleitungen zu einem großen Teil toleriert werden. Dabei müssen die Datenbits (einschließlich Start-, Paritäts- und Stopbit(s)) in negativer Logik, die Steuerinformationen, also die Signale DTR, DSR, etc., in positiver Logik übertragen werden, d.h. es gelten die Zuordnungen nach folgender Tabelle 4.7-1.
Tabelle 4.7-1: Pegelzuordnung der V.24-Schnittstelle

logischer Zustand | Datenbit | Steuerinformation
0 | H-Pegel | L-Pegel
1 | L-Pegel | H-Pegel

Der standardisierte Stecker der V.24-Schnittstelle hat 25 Anschlüsse, von denen 20 für genormte Signale reserviert sind. Im Bild 4.7-4 ist dieser Stecker für eine DEE gezeichnet. Um keine Verwirrung zu stiften, sind nur die Signale eingezeichnet, die bisher beschrieben wurden. Im Stecker einer DÜE sind gewöhnlich die Signale /, DTR/DSR sowie RTS/CTS paarweise vertauscht, um eine direkte Verbindung beider Stecker zu ermöglichen. Wie bereits gesagt, wird beim Anschluß von Peripheriegeräten in einem Mikrorechner-System oder zur Kopplung zweier Mikrorechner meistens auf den Einsatz eines Modems verzichtet. In diesem Fall sind beide Kommunikationspartner DEEs im obigen Sinne. Daher werden die einander funktional zuzuordnenden Steuerleitungen DTR und DSR sowie RTS und CTS kreuzweise miteinander verbunden.

Bild 4.7-4: Steckerbelegung der V.24-Schnittstelle für eine DEE

Im Bild 4.7-5 ist gezeigt, wie ein Datensichtgerät und seine Tastatur über eine V.24-Schnittstelle mit einem ACIA-Baustein verbunden werden kann.

Bild 4.7-5: Anschluß eines Datensichtgerätes über eine V.24-Schnittstelle

In der Regel werden dazu nicht alle Steuerleitungen benutzt. Im Extremfall kommt man - neben einer Masseleitung - nur mit den Datenleitungen und aus. In diesem Fall müssen auf beiden Seiten der Übertragungsstrecke die Anschlüsse DTR und DSR sowie RTS und CTS direkt miteinander verbunden werden. Man spricht dann von einem Null-Modem. (Im Bild 4.7-5 ist es durch gepunktete Linien dargestellt.)
Die im Bild 4.7-5 dargestellte Kopplung erlaubt einen Vollduplex-Betrieb, d.h. der µR und das Datensichtgerät können gleichzeitig Daten (bidirektional) übertragen. Hingegen spricht man von einem Simplex-Betrieb, wenn die Datenübertragung stets nur in einer Richtung (unidirektional) möglich ist. Eine weitere Variante liegt vor, wenn zu jedem Zeitpunkt der Übertragungsweg zwar nur in einer Richtung betrieben werden darf, diese Richtung jedoch wahlweise umgeschaltet werden kann. In diesem Fall liegt der Halbduplex-Betrieb vor.
Aus Kostengründen wird die V.24-Verbindung zwischen µR und Peripheriegeräten auch heute noch zum Teil direkt ausgeführt, d.h. ohne die Umsetzung auf die oben dargestellten V.24-Pegel. Dadurch kann man sich die erforderlichen Betriebsspannungen ±12 V sparen. Wo nötig, setzt man aber auch Treiberbausteine ein, die mit einer 5-Volt-Betriebsspannung auskommen und auf dem Chip die zusätzlich benötigten Spannungen (z.B. ±10 V, durch Spannungsverdopplung und Invertierung) erzeugen.

### 4.7.5 Das Programmiermodell des ACIA-Bausteins

Zum Abschluß dieses Abschnittes wollen wir den Aufbau der Register der Bausteinsteuerung beschreiben. Diese Register sind im Bild 4.7-6 skizziert. Sie sind um einige Bits länger als die Register realer Bausteine. Denn der Vollständigkeit halber haben wir in ihnen möglichst viele Möglichkeiten aufgeführt, die von verschiedenen ACIA-Typen zur Verfügung gestellt werden.
Bild 4.7-6: Das Programmiermodell einer ACIA
4.7.5.1 Das Steuerregister ((Mode) Control Register)

WL1, WL0 | (Word Length) Diese Bits geben die Länge des Datums an: 5 bis 8 bit.
SB1, SB0 | (Stop Bits) Durch diese Bits wird die Anzahl der Stopbits (1, 1 1/2, 2) festgelegt.
TCS, RCS | (Transmitter/Receiver Clock Select) Diese Bits bestimmen, ob für den Sender bzw. Empfänger der interne oder aber ein extern angelegter Takt (über den Eingang TCLK bzw. RCLK) zur Ansteuerung der Schieberegister benutzt wird.
BR3-BR0 | Baud Rate) Durch diese Bits wird die Schrittfrequenz des Baudraten-Generators ausgewählt. Üblicherweise werden die folgenden Werte (in bd) angeboten: 50, 75, 109.92, 134.58, 150, 300, 600, 1200, 1800, 2400, 3600, 4800, 7200, 9600, 19200, 38400 usw.

4.7.5.2 Das Befehlsregister (Command Register)

TEN, REN | (Transmitter/Receiver Enable) Durch diese Bits können der Sender und der Empfänger gezielt ein- bzw. ausgeschaltet werden.
TIE, RIE | (Transmitter/Receiver Interrupt Enable) Diese Bits legen fest, ob der Sender bzw. der Empfänger eine Interruptanforderung an den Prozessor stellen darf. (Sie steuern lediglich die Aktivierung des INT-Ausganges, nicht jedoch die Generierung des IF-Bits im Statusregister, s.u.).
PME | (Parity Mode Enable) Dieses Bit legt fest, ob bei der Datenübertragung ein Paritätsbit zur Fehlererkennung benutzt werden soll.
PM1, PM0 | (Parity Mode) Diese Bits wählen eines der am Anfang des Abschnittes beschriebenen vier Verfahren zur Erzeugung des Paritätsbits: Odd, Even, Mark, Space Parity.
REM | (Receiver Echo Mode) Durch dieses Bit wird eine besondere Betriebsart eingeschaltet, bei der der Sender des Bausteins jedes Zeichen, das der Empfänger über die Leitung RxD eingelesen hat, um eine halbe Bitzeit verzögert auf der Leitung TxD wieder ausgibt. Dies wurde insbesondere bei älteren Datensichtgeräten zur Kontrolle der korrekten Übertragung angewandt: Das über die Tastatur eingegebene Zeichen wurde nicht direkt im Bildschirm dargestellt, sondern erst, nachdem es vom ACIA-Baustein zurückgeschickt wurde. Trat dabei ein Übertragungsfehler auf, stellte das der Benutzer sofort fest und konnte ihn sofort durch Neueingabe beheben.
SBRK | (Send Break Character) Zur Anzeige eines Fehlers oder zum Abbruch einer Datenübertragung kann der Sender ein Unterbrechungszeichen (Break Character) auf die Datenleitung TxD geben. Dieses besteht aus einer ununterbrochenen Folge von '0'-Bits (Space Bits), deren Anzahl größer oder gleich derjenigen eines "normalen" Zeichens aus Startbit, Datenbits, Paritätsbit und Stopbit(s) ist. Sobald ein Empfänger dieses Zeichen erhält, bricht er den Empfang ab und wartet zur Fortsetzung auf das nächste Stopbit ('1'-Bit).
DTR, RTS | (Data Terminal Ready, Ready to Send) Durch diese beiden Bits wird der Zustand der oben beschriebenen Ausgangsleitungen , festgelegt. (Wie bereits erwähnt, wird diese Bitinformation invertiert ausgegeben.)

4.7.5.3 Das Statusregister

IF | Interrupt Flag) Wie bei den anderen Bausteinen zeigt dieses Bit an, ob eine Unterbrechungsanforderung von der Ausführungseinheit des Bausteins an den Prozessor gestellt wird. Es wird gesetzt, wenn eines der folgenden Bits 3 bis 7 aktiviert wird, unabhängig davon, ob die Weitergabe der Anforderung über den Ausgang INT erlaubt ist oder nicht. (Vgl. das TIE- oder RIE-Bit im Befehlsregister.) Ist diese Weitergabe nicht erlaubt, kann es dem Prozessor zur Feststellung der Unterbrechungsanforderung im Polling-Verfahren dienen. Das IF-Bit wird, ebenso wie die Bits 3 bis 7, durch das Lesen des Statusregisters zurückgesetzt.
TDRE | (Transmitter Data Register Empty) Dieses Bit wird automatisch gesetzt, wenn die Bausteinsteuerung ein Datum vom Sende-Datenregister TDR in das Sende-Schieberegister TSR transferiert. Dadurch wird dem Prozessor angezeigt, daß das TDR für ein neues Datum frei ist. Dieses Datum kann bereits ins TDR eingeschrieben werden, wenn das letzte Zeichen noch aus dem TSR herausgeschoben wird. Das TDRE-Bit wird gelöscht, wenn der Prozessor ein neues Datum in das TDR schreibt. Der logische Zustand des TDRE-Bits stimmt mit demjenigen des oben beschriebenen TDRE-Ausgangs überein.
RDRF | (Receiver Data Register Full) Dieses Bit zeigt dem Prozessor an, daß ein Datum vom Empfangs-Schieberegister RSR in das Empfangs-Datenregister RDR übertragen wurde und dort zur Abholung bereitsteht. Das RDRF-Bit wird durch das Lesen des Datenregisters RDR zurückgesetzt. Der logische Zustand des RDRF-Bits stimmt mit demjenigen des RDRF-Ausgangs überein.
, | (Data Set Ready, Data Carrier Detect, alternativ zu : Clear to Send) Diese Bits zeigen (in invertierter Form) den Zustand der oben beschriebenen Modem-Signale gleichen Namens an.
BI | (Break Interrupt) Dieses Bit zeigt an, daß am RxD-Eingang ein Unterbrechungszeichen (Break Character, s.o.) festgestellt wurde.
PE, FE, OE | (Parity, Framing, Overrun Error) Durch diese Bits wird jeweils einer der oben beschriebenen Übertragungsfehler angezeigt (Paritäts-, Rahmen-, Überlauf-Fehler). Diese Bits werden entweder durch das Lesen des Statusregister oder des Empfangs-Datenregisters gelöscht. Keiner der drei beschriebenen Fehler löst eine Interruptanforderung aus. Der Prozessor sollte daher zur Sicherung einer fehlerfreien Übertragung mit jedem gelesenen Datum auch diese Bits auswerten, um geeignet auf einen Übertragungsfehler reagieren zu können.

| Bausteine für parallele Schnittstellen |  | 4.8 Bausteine für synchrone, serielle Schnittstellen |