Zum Inhalt springen

RS-232

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 24. August 2005 um 22:48 Uhr durch Q. Wertz (Diskussion | Beiträge) (Übersicht). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Vorlage:IPStack Die heute als EIA-232-Schnittstelle bekannte Schnittstelle wurde in den frühen 1960ern von einem US-amerikanischen Standardisierungskommitee (heute EIA - Electronic Industries Association) eingeführt als RS-232 (RS steht dabei für Radio Section).

Zum damaligen Zeitpunkt wurden über Telefonleitungen mittels Modem Mainframes mit Text-Terminals Punkt zu Punkt verbunden.

EIA-232 definiert die Verbindung zwischen dem Terminal (DTE data terminal equipment) und dem Modem (DCE data communication equipment), was Timing, Spannungspegel, Protokoll und Stecker betrifft. Allgemein sind die Parameter unter Serielle Datenübertragung erläutert.

Die aktuelle Version heißt offiziell ANSI/EIA/TIA-232-F-1997. Zur Frage der korrekten Bezeichnung: siehe EIA.

Weitere Übertragungsstandards wie RS-422, RS-485 etc. findet man unter der Rubrik Serielle Schnittstelle.


Übersicht

  • Die Übertragung erfolgt in Wörtern. Ein Wort entspricht dabei je nach Konfiguration 5 bis 9 Bits, in dem dann ein einzelnes Zeichen kodiert ist. Meistens erfolgt die Kodierung gemäss ASCII-Code. Üblich ist daher 7 bzw. 8 Bits zu übertragen.
  • Eine EIA-232-Verbindung arbeitet (bit-)seriell mit je einer Datenleitung für beide Übertragungsrichtungen. Das heißt, die Bits werden nacheinander auf einer Leitung übertragen, im Gegensatz zur parallelen Datenübertragung. Die dafür nötige "Seriell-Parallel-Wandlung" geschieht meistens in sog. UARTs (entweder als integriertes Modul in einem Microcontroller oder als Stand-Alone-Baustein).
    Die EIA-232 wird deshalb häufig salopp "serielle Schnittstelle" genannt (obwohl es natürlich zahllose andere serielle Schnittstellenarten gibt).
  • Die Datenübertragung erfolgt asynchron. D.h. es wird kein zusätzliches Synchronisationssignal (Clock-Signal) übertragen.
    Die Synchronisation geschieht ausschliesslich über die Datenleitungen selber. Das geschieht, indem sich der Empfänger auf die erste negative Flanke nach einer Ruhephase (1) synchronisiert und die folgenden Bits des Bytes mit "seiner" Baudrate abtastet.
    Damit das funktioniert, muss die Baudrate von Sender und Empfänger ungefähr (bis auf einige Prozent) übereinstimmen und jedes übertragene Byte muss von einer negativen Flanke eingeleitet werden. Letzteres wird durch Start- (0 als Einleitung) und Stopbit(s) (1 als Abschluss) sichergestellt. Ausserdem muss die Ruhephase vor der ersten Synchronisierung genügend lang sein (damit die erste negative Flanke auch wirklich von einem Startbit stammt).
    Zwischen Start- und Stopbit(s) werden die eigentlichen Nutzdaten unverändert (NRZ-codiert), also ohne Synchronisierungs-Informationen, übertragen.
  • EIA-232 ist eine Spannungsschnittstelle (im Gegensatz zur Stromschnittstelle). D.h. verschiedene Spannungspegel stellen die Information dar.
    Die Datenleitungen (TxD und RxD) sind invertiert, d.h. der Spannungsbereich für die logische Eins geht von -3 Volt bis -12 Volt und die logische Null wird durch Spannungen zwischen +3 und +12 Volt abgebildet. Die Abbildung der logischen Null als positive Spannung und der logischen Eins als negative Spannung nennt man negative Logik.
    Bei den Steuerleitungen (DCD, DTR, DSR, RTS, CTS und RI) wird der aktive Zustand durch einen Spannungspegel zwischen +3 Volt und +12 Volt dargstellt, der inaktive Zustand durch Spannungen zwischen -3 und -12 Volt.
  • Als Steckverbindung wurden nach der ursprünglichen Norm 25-polige Sub-D Stecker für DTE und Buchsen für DCE benutzt. Da viele der 25 Leitungen reine Drucker- bzw. Terminal-Steuerleitungen aus der elektromechanischen Ära sind, die für die meisten Verbindungen mit moderneren Peripheriegeräten nicht benötigt werden, haben sich heute 9-polige Sub-D-Stecker und Buchsen etabliert, die beim ersten IBM PC ursprünglich als reine Notlösung zum Platzsparen eingeführt worden waren; damals ging es darum, den Stecker zusammen mit einer ebenfalls verkleinerten Centronics-Schnittstelle auf einer Steckkarte unterzubringen.
  • Zur Vermeidung von Datenverlusten muß der Empfänger die Datenübertragung anhalten können, wenn keine weiteren Daten mehr verarbeitet werden können. Dieses sogenannte Handshake kann auf zwei Arten realisiert werden, entweder softwareseitig über bestimmte Steuercodes oder über spezielle Leitungen.
  • Beim Software-Handshake sendet der Empfänger zur Steuerung des Datenflusses spezielle Zeichen an den Sender (Xon = dez. 17 und Xoff = dez. 19). Entsprechend werden für die Datenübertragung lediglich 3 Leitungen (RxD, TxD und Gnd) benötigt. Im jeweiligen Stecker müssen dann RTS mit CTS gebrückt werden und DTR mit DSR und DCD. Andernfalls wartet die Hardware, weil die Handshakeleitungunen nicht richtig bedient werden.
  • Beim Hardware-Handshake steuert der RxD-Empfänger über Steuerleitungen die Handshake-Eingänge CTS, DSR und DCD des TxD-Senders mit seinem Handshake-Ausgängen RTS -> CTR und DTR -> DSR & DCD. Ein Minimal-Interface mit Hardware-Handshake besteht demzufolge aus 5 Leitungen (TxD, RxD, Gnd, RTS und CTS).

Timing

EIA-232-Timing

Das Timingdiagramm zeigt ein Beispiel, wie ein Zeichen übertragen wird. Zunächst liegt der Ruhepegel an. Der Ruhezustand der Übertragungsleitung, der auch mit Mark bezeichnet wird, entspricht dem Pegel einer logischen 1. Als Erstes wird ein Startbit logisch 0 (Space) gesendet, um den Empfänger mit dem Sender synchronisieren zu lassen. Die (zeitliche) "Länge" der jeweiligen Bits hängt von der Baudrate ab.

übliche Baudraten
Baud Bitlänge
50 20 ms
300 3,3 ms
1.200 833 µs
2.400 417 µs
4.800 208 µs
9.600 104 µs
19.200 52 µs
38.400 26 µs
57.600 17 µs
115.200 8,68 µs

Darauf folgen 5-8 Datenbits (Nutzdaten). Angefangen wird mit den LSB (lowest significant bit) und beendet mit dem MSB (most significant bit). In diesem Beispiel wurden 8 Datenbits gesendet. Nun folgt evtl. ein Parity-Bit, welches zur Erkennung von Übertragungsfehlern dient. Das Paritätsbit bewirkt, daß bei gerader ("EVEN") Parität immer eine gerade bzw. bei ungerader ("ODD") Parität eine ungerade Anzahl von "1"-Bits übertragen wird. Es gibt also die Möglichkeiten E wie even parity oder O wie odd parity oder kein Parity-Bit entsprechend N wie non parity. Abgeschlossen wird die Übertragung mit ein oder zwei Stoppbits logisch "1". Die folgende Ruhezeit ist undefiniert und kann zwischen 0 und unendlich liegen (hier im Beispiel ein halbes Bit lang).

Da alle möglichen Variationen in den Standards festgelegt sind, müssen bei beiden Geräten, die an der Kommunikation beteiligt sind, alle Parameter gleich eingestellt sein, bevor eine erfolgreiche Kommunikation zustande kommen kann.

Heutzutage hat sich für diese Einstellungen ein "üblicher Standard" herauskristallisiert, der von vielen Geräten benutzt wird.

Diese "üblichen" Einstellungen sind: 8 Datenbits, kein Parity, 1 Stoppbit, was oft als 8N1 abgekürzt wird. Entsprechend werden bei 115.200 Baud ca. 11 kByte pro Sekunde übertragen.

Da meistens keine Binärübertagung erfolgt, sondern eine ASCII-Übertragung (z.B. VT100 Terminal) sind die ersten 32 Bitkombinationen zur Terminal-Steuerung vorbehalten.

Leitungslänge und Übertragungsrate

Da wegen der verwendeten Spannungsübertragung die Spannung am Empfänger mit zunehmender Leitungslänge (wegen des größer werdenden elektrischen Kabelwiderstandes und der Kabelkapazität) abnimmt, ist die Leitungslänge begrenzt.

Ein weiterer begrenzender Faktor ist die Laufzeit des Signals. Da eine EIA-232-Schnittstelle am Leitungsende nicht mit ihrem Wellenwiderstand abgeschlossen werden kann (zu große Verlustleistung), gibt es unweigerlich Leitungsreflektionen. Mit zunehmender Übertragungsrate und Kabellänge stören die Reflexionen immer mehr die Datenübertragung. Die Norm schreibt Flankensteilheiten vor, die der Sender nicht überschreiten darf, um die Auswirkung der Reflexionen zu begrenzen.

Ersatzschaltbild Kabel (längshomogene Leitung)

Ein weiterer Aspekt ist, daß die Signalübertragung nicht differentiell, sondern "single-ended" (unbalanced) erfolgt. Das zu übertragende Signal beinhaltet also einen Gleichspannungsanteil und ist deshalb relativ empfindlich auf Gleichtaktstörungen. Solche Störungen können z.B. entstehen durch induktive Einkopplung in die Schleife RxD - Gnd. Weil sich alle Signale auf das gleiche Gnd-Signal beziehen, kann ein Strom auf der Txd-Leitung einen Spannungsabfall auf der Gnd-Leitung erzeugen, welcher zu einer Potentialverschiebung zwischen den beiden Kommunikationspartnern führt und beispielsweise auf der RxD-Leitung gesehen wird und Störungen verursacht.

Laut ursprünglichem Standard ist bei einer Kabelkapazität von 2500 pF eine Kabellänge von max. 15 m (50 Fuß) zulässig. Mit Kabeln, welche eine besonders niedrige Kapazität aufweisen (beispielsweise UTP CAT-5 Kabel mit 55 pF/m), lassen sich konform der Definition 45 m erreichen. Die folgende Tabelle gibt Erfahrungswerte von Texas Instruments wieder.

Maximalwerte
max. Baud max. Länge
2.400 900 m
4.800 300 m
9.600 152 m
19.200 15 m

Die Probleme der gegenseitigen Beinflussung über Gnd, fehlender Abschlußwiderstand etc. lassen sich nur durch eine differentielle Übertragung wie bei RS-485, LVDS etc. beheben.

Verkabelung und Stecker

Datei:Rs232 buchse 9pol.png
Pinbelegung des EIA-232-Steckers (9-pol.)
EIA-232-Stecker, neunpolig

Um zwei Rechner über die serielle Schnittstelle zu verbinden, müssen die "hörenden" mit den "sprechenden" Leitungen verbunden werden, d.h. TxD muss mit RxD und CTS mit RTS verbunden werden.

  • Handelt es sich bei der Verbindung um ein Terminal (DTE data terminal equipment) mit Stecker und ein Modem (DCE data communication equipment) mit Buchse, ist ein 1:1-Kabel möglich.
  • Handelt es sich jedoch um zwei gleiche Geräte (z.B. 2 PCs), so sind die Leitungen zu kreuzen. Ein solches Kabel nennt man ein Nullmodem-Kabel.

Die wichtigsten Signalleitungen, ihre Namen und Bedeutungen (am 25-pol. und 9-pol. Anschluss)

Abkürzung Name Beschreibung Pin-Nr.
25-pol.
Pin-Nr.
9-pol.
Input/Output (vom PC aus gesehen)
  Common Ground Gemeinsame Abschirmmasse (nicht Datenmasse) Pin 1 - -
TxD Transmit Data Leitung für ausgehende (gesendete) Daten. Pin 2 Pin 3 Out
RxD Receive Data Leitung für den Empfang von Daten. Pin 3 Pin 2 In
RTS Request to Send "Sendeanforderung"; Eine logische Eins an diesem Ausgang signalisiert der Gegenstelle, dass sie Daten Senden kann Pin 4 Pin 7 Out
CTS Clear to Send Eine logische Eins an diesem Eingang ist ein Signal der Gegenstelle, dass sie Daten entgegennehmen kann Pin 5 Pin 8 In
DSR Dataset Ready Ein angeschlossenes Gerät signalisiert dem Computer, dass es einsatzbereit (nicht notwendigerweise empfangsbereit) ist, wenn eine logische Eins auf dieser Leitung anliegt. Pin 6 Pin 6 In
GND Ground Signalmasse. Die Signalspannungen werden gegen diese Leitung gemessen. Pin 7 Pin 5 -
DCD Data Carrier Detected Ein Gerät signalisiert dem Computer, dass es einlaufende Daten auf der Leitung erkennt Pin 8 Pin 1 In
DTR Data Terminal Ready Über diese Leitung signalisiert der PC dem Gerät, dass er betriebsbereit ist. Damit kann ein Gerät eingeschaltet oder zurückgesetzt werden. (Üblicherweise schaltet ein Gerät z.B. Modem diese Leitung auf DSR durch, wenn es einsatzbereit ist) Pin 20 Pin 4 Out
RI Ring Indicator Das Gerät zeigt dem PC an, dass ein Anruf ankommt ("ring" ist engl. für "klingeln"; besonders bei Modems) Pin 22 Pin 9 In

Weitere Standards

V.28: der ITU-Standard (1972), welcher alle Funktionen der Schaltkreise des EIA-232-Interfaces definiert.

V.24: Der ITU-Standard (1964) definiert alle Funktionen des EIA-232-Interface, aber nicht Stecker oder Belegung, welche in ISO 2110 definiert sind.

EIA-232 enthält die elektrischen Signaldefinition von V.24, elect. Char. von V.28 aber nicht Stecker oder Belegung, welche in ISO 2110 definiert sind.

EIA-232 enthält die elektrischen Signaldefinition von V.28, Steuersignal von V.25 und Stecker und Pinbelegung nach ISO 2110.

Sie entspricht einer V.24/V.28/ISO-2110-Schnittstelle hinsichtlich Signalsemantik, Elektrik und Steckerbelegung.

Siehe auch: Hardware-Protokoll, Software-Protokoll, RS-422 RS-485 LVDS USB etc.