Bits in Serie: Die RS-232 (Details)

Kurzfassung: Nachdem im vorangegangenen Artikel das Basiswissen über die Verwendung der seriellen Schnittstelle RS-232 vermittelt wurde, geht es hier um die konkrete Anwendung. Es wird gezeigt, worauf bei (gekauften oder selbst gelöteten) Kabelverbindungen zu achten ist und welche Fehlermöglichkeiten man überprüfen sollte, wenn die Verbindung nicht korrekt arbeitet.


Grundsätzliches zu Kabelverbindungen

Wie bereits im Einführungsartikel beschrieben, müssen zwei Geräte (z.B. ein Computer und eine Laborwaage) die gleichen Übertragungsparameter (Baudrate, Start- und Stoppbits, Parität) eingestellt haben, um erfolgreich Daten austauschen zu können.

Leider ist dies nur eine von mehreren Voraussetzungen für eine korrekt und zuverlässig arbeitende Verbindung. Mindestens genauso kritisch ist das Wahl des geeigneten Kabels, um die Geräte zu verbinden. Hierbei geht es keineswegs um so subtile Dinge wie die optimale Abschirmung, die Kabellänge etc., sondern - viel vordergründiger - darum, welche Kontakte auf den Steckverbindern der jeweiligen Geräte verbunden werden müssen. Dass dies nicht eindeutig ist, klingt skurril, hängt aber im wesentlichen mit der historischen Entwicklung der RS-232-Schnittstelle zusammen:

Ursprünglich war die Schnittstelle ausschließlich zur Verbindung von Computern (bzw. "dummen" Terminals) mit Peripheriegeräten wie Druckern und besonders Modems zur Datenübertragung per Telefon vorgesehen. Hierbei erhielten die Computer bzw. Terminals üblicherweise den bekannten 25-poligen Stecker (siehe Bild), während die Peripheriegeräte (Drucker, Modems etc.) mit einer dazu passenden 25-polige Buchse ausgestattet wurden. Wenn es die Gehäuse und der notwendige Abstand zuließen, konnte man die Geräte also direkt zusammenstecken, andernfalls war lediglich ein Verlängerungskabel erforderlich, bei dem einfach jeder Kontakt durchgeführt wurde.

Dieses auf den ersten Blick intelligente Konzept hat leider verschiedene Nachteile: Zum einen ist es bei vielen Geräten keineswegs klar, ob sie als Computer/Terminals oder aber als Peripheriegeräte wie Drucker oder Modems gelten. Beispielsweise kann eine Laborwaage sinnvollerweise sowohl mit einem PC, als auch mit einem Drucker verbunden werden - ob sie daher mit Buchse oder Stecker auszustatten ist, verbleibt die Geschmacksfrage des Herstellers.

Weiters sind für die eigentliche Datenübertragung gerade 3 der 25 Kontakte notwendig, der Rest wurde für diverse Steuersignale genutzt, die allerdings überwiegend nur bei (älteren) Modems Sinn haben und daher in den meisten Anwendungen überflüssig sind. Hierbei handelt es sich vor allem um Statussignale, mit dem das Modem z.B. anzeigt, dass noch keine Telefonverbindung hergestellt ist und es daher keine Daten empfangen kann. Näheres zu den Signalen siehe unten. Leider werden diese Signale - je nach Gerätehersteller - auch zum Teil und absolut uneinheitlich von Laborgeräten verwendet.

Da wie erwähnt ein Großteil der 25 Kontakte für moderne Peripheriegeräte (sogar Modems) nicht mehr benötigt wurden, werden bei Personal Computer und anderen Geräten häufig statt dessen 9-polige Stecker bzw. Buchsen eingesetzt, bei denen die "veralteten" Signale einfach weggelassen wurden. Darüber hinaus haben viele Hersteller von Laborgeräten noch andere Varianten (Rundstecker verschiedenster Abmessungen und Anordnungen etc.) auf Lager, wodurch sich eine fast unübersehbare Zahl von Kombinationsmöglichkeiten ergibt. Aus diesem Grund wird man häufig nur ein mitleidiges Lächeln erhalten, wenn man in einem Fachgeschäft ein "RS-232-Kabel, 5 Meter" ohne weitere Angaben bestellen möchte ...




Die Signale im einzelnen

Im folgenden sind die heute noch bedeutsamen Signale im Detail beschrieben. Zum Verständnis sei erwähnt, dass die (genormten) Bezeichnungen aus Sicht des Computers bzw. Terminals gewählt sind - "TxD" (Sendedaten) gibt also an, dass der Computer Daten auf dieser Leitung an das Peripheriegerät sendet (obwohl das Peripheriegerät sie auf diesem Pin empfängt ...). In der Tabelle werden sowohl die Anschlussbelegung beim "klassischen" 25-poligen Stecker (bzw. Buchse), als auch bei der moderneren, 9-poligen Variante beschrieben.

Signal 25-pol. 9-pol. Beschreibung
TxD
Pin 2
Pin 3
Sendedaten (die eigentliche Datenübertragung von Computer zu Peripheriegerät)
RxD
Pin 3
Pin 2
Empfangsdaten (die eigentliche Datenübertragung von Peripheriegerät zu Computer)
GND
Pin 7
Pin 5
Gemeinsame Masseleitung für alle Signale
RTS
Pin 4
Pin 7
"Request to Send" - der Computer signalisiert hier, dass er Daten an das Peripheriegerät senden möchte
CTS
Pin 5
Pin 8
"Clear to Send" - das Peripheriegerät zeigt an, dass es Daten entgegennehmen kann
DSR
Pin 6
Pin 6
"Data Set Ready" - das Peripheriegerät meldet, dass es grundsätzlich verfügbar (eingeschaltet) ist
DCD
Pin 8
Pin 1
"Data Carrier Detect" - das Peripheriegerät (nur Modem) zeigt an, dass eine Verbindung über Telefonleitung hergestellt ist
DTR
Pin 20
Pin 4
"Data Terminal Ready" - der Computer meldet, dass er verfügbar (eingeschaltet) ist
RI
Pin 22
Pin 9
"Ring Indicator" - das Peripheriegerät (nur Modem) zeigt einen ankommenden Telefonanruf an


Es ist leicht einzusehen, dass die letzten 4 Signale nur zum Anschluss von Modems notwendig sind (und selbst von modernen Modems nicht mehr benötigt werden) und daher für den Datentransfer mit Laborgeräten üblicherweise nicht erforderlich sind. Verlassen kann man sich aber darauf leider nicht, da manche Hersteller doch - als Ausdruck besonderer Kreativität - den Zustand auf einem oder mehr dieser Signale abfragen und die Datenübertragung davon abhängig machen.

Immer notwendig sind die ersten 3 Leitungen (Sendedaten, Empfangsdaten sowie natürlich die zugehörige Masseleitung); die "Handshake"-Leitungen RTS und CTS werden allerdings auch bei vielen Geräten verwendet, um den Computer "zu bremsen", wenn er mehr Daten senden möchte, als der interne Pufferspeicher der Peripheriegeräte aufnehmen kann.


Sprechen sie endlich miteinander ?

Nun müsste unser Wissenstand ausreichen, um eine korrekt arbeitende Kabelverbindung zwischen zwei Geräten herzustellen. Am einfachsten ist es natürlich, ein - entsprechend den jeweiligen Steckern bzw. Buchsen - richtig konfektioniertes Kabel käuflich zu erwerben, bei dem zumeist alle Kontakte mit den betreffenden Gegenparts verbunden sind (also z.B. 25 einzelne Litzen bei 25 poligen Stecker / Buchsen).

Dies ist jedoch nicht immer möglich (z.B. Kabel muss in eine enge Röhre eingezogen werden) oder wünschenswert (hoher Preis kommerziell hergestellter Kabel). In diesem Fall gilt es, den Lötkolben zu aktivieren und nach dem Motto "Selbst ist der Mann (oder die Frau)" zu handeln.

Unter der Voraussetzung, dass wir einen Computer (25-poliger oder 9-poliger Stecker) mit einem als "Peripheriegerät" (25-polige oder 9-polige Buchse) ausgewiesenen Laborgerät verbinden wollen, sieht das Verdrahtungsschema wie folgt aus:



Die "sichere" Variante - sie benötigt zwar 5 einzelne Leitungen, man geht aber kein Risiko ein, dass das Peripheriegerät mehr Daten empfängt, als es rechtzeitig verarbeiten kann und aus diesem Grund möglicherweise nicht das tut, was man von ihm erwartet ...


In den meisten Fällen arbeitet aber auch die folgende 3-Draht-Variante problemlos, wenn das Peripheriegerät einen ausreichend großen Pufferspeicher hat und/oder nur wenige Daten übertragen werden müssen. Sofern nur der PC Daten empfängt (häufig z.B. bei Laborwaagen), ist diese Methode fast immer erfolgreich.


Im - leider häufig vorkommenden - Fall, dass das Peripheriegerät sich eigentlich als "Computer" fühlt und daher mit einem Stecker (statt Buchse) ausgestattet ist, sind die oben angeführten Überlegungen natürlich weiterhin gültig. Man muss jedoch darauf achten, dass man nicht wie sonst einfach Pin 2 mit 2, 3 mit 3 etc. verbinden kann, da in diesem Fall jeweils Datenausgänge und Dateneingänge zusammengeschaltet würden, was keinen Datentransfer erlauben würde. Hierbei gilt es, z.B. Pin 2 mit 3, Pin 3 mit 2 etc. zu verbinden, was man üblicherweise als "Auskreuzen" bezeichnet (siehe symbolische Darstellung).



Derartige "ausgekreuzte" Kabelverbindungen sind im übrigen auch als "Nullmodemkabel" bekannt, da sie auch zum Verbinden von 2 Computern - ohne Modems - verwendet werden, z.B. beim Datentransfer mittels des in Microsoft Windows integrierten Programms "PC-Direktverbindung"

Fazit:

Allen Überlegungen zum Trotz gibt es immer wieder Einzelfälle, wo die Gerätehersteller bei der Schnittstellendefinition mehr Phantasie als beim Gehäusedesign beweisen und alle nur denkbaren Kombinationen vorkommen können. Wenn also keine Verbindung hergestellt werden kann, gilt es folgende Punkte zu beachten:

  • Handbuch des Geräteherstellers konsultieren: Meist findet man an geeigneter Stelle praktische Hinweise betreffend der Kabelverbindung zwischen Gerät und Computer
  • Signale "durchmessen": Mit jedem einfachen Multimeter ist es möglich zu prüfen, ob das Kabel grundsätzlich richtig konfektioniert wurde: Jedes Signal (natürlich außer GND = Masse) muss gegenüber Masse eine positive oder negative Spannung etwa zwischen 5 und 15 Volt aufweisen; wenn dies insbesondere bei RxD, TxD, RTS und CTS nicht der Fall ist, hat man entweder eine Verbindung vergessen, es liegt ein Löt/Kontaktfehler vor oder aber es wurden zwei Eingänge (und dementsprechend an anderer Stelle zwei Ausgänge) zusammengeschaltet
  • Natürlich (wie bereits im ersten Beitrag erwähnt) müssen auch die Schnittstellenparameter (Baudrate, Paritätsbit, Start- und Stoppbit) auf beiden Seiten identisch eingestellt sein. Wenn dies nicht der Fall ist, das Kabel aber an sich in Ordnung ist, zeigt sich dies häufig dadurch, dass absurde Zeichen (z.B. diverse Sonderzeichen) anstelle der gewünschten Nutzdaten empfangen werden.

Worauf kommt es noch an ?

Nachdem nun (hoffentlich) die schwierigste Frage geklärt ist, nämlich welche Kontakte miteinander verbunden werden müssen, gilt es noch, einige Überlegungen zur Art des Kabels anzustellen:

Grundsätzlich ist die RS-232 recht unempfindlich gegen externe Störungen. Im den meisten Laboratorien gilt es ohnehin nur, Distanzen von wenigen Metern bei nicht allzu hohen Übertragungsgeschwindigkeiten (meist zwischen 1200 und 19200 Baud) zu überwinden. Für diese Aufgabe kann normalerweise jedes beliebige Kabel verwendet werden, eine Abschirmung ist meist gar nicht erforderlich.

Ein abgeschirmtes Kabel empfiehlt sich hingegen, wenn ein oder mehrere der folgenden Punkte zutreffen:

  • größere Distanzen (ab ca. 10 Meter)
  • elektrisch "raue" Umgebung, also z.B. Nähe zu Starkstromkabeln, Elektromotoren, Entladungslampen etc.
  • hohe Übertragungsraten (etwa ab 38400 Baud)
Im Labor treten diese Situationen selten auf, sind aber z.B. bei der Messwertüberwachung in der Produktion keine Seltenheit. Dort wird allerdings meist - nicht zuletzt um den Verdrahtungsaufwand gering zu halten - mit "busfähigen" Übertragungsverfahren gearbeitet, mehr dazu siehe im nächsten Abschnitt.

Bei "normalen" Laboranwendungen und geringen Übertragungsraten bis ca. 19200 Baud (wie sie bei den gängigsten Laborgeräten wie pH-Meter, Waagen oder Fotometer eingesetzt werden) lassen sich mit geschirmten Kabeln durchaus mehr als hundert Meter problemlos überbrücken. Für noch größere Entfernungen kann man Verstärkermodule käuflich erwerben, mit denen dann Kabellängen über einem Kilometer möglich werden.


Jenseits der Zweierbeziehung

Eine häufig gestellte Frage lautet in etwa folgendermaßen:

"Ich habe auf meinem PC nur mehr eine serielle Schnittstelle frei, möchte aber z.B. 3 Laborgeräte (Waagen, pH-Meter etc.) anschließen. Wie kann ich dies erreichen ?"

Im Gegensatz zu Netzwerk-Anschlüssen oder dem inzwischen weitverbreiteten USB ist die RS-232 ausschließlich für 1:1 - Verbindungen ausgelegt. Mit einigen "Kunstgriffen" lässt es sich zwar erreichen, dass man mehr als 2 Schnittstellen miteinander verbinden kann, allerdings wird noch ein Protokoll benötigt, damit nicht alle Partner "zur gleichen Zeit sprechen" und man außerdem den Absender jeder Mitteilung eindeutig erkennen kann. Dies ist in etwa mit den Regeln in einer Konferenz vergleichbar.

Während man am PC mit einigem Programmieraufwand ein solches Protokoll durchaus realisieren könnte, unterstützen die meisten Laborgeräte dies natürlich nicht und können im allgemeinen auch nicht dahingegehend programmiert werden. Aus diesem Grund besteht für die genannte Anwendung der mit Abstand sinnvollste Lösungsansatz darin, eine Interfacekarte mit mehreren, eigenen RS-232-Anschlüssen für den Computer zu erwerben. Verglichen mit den Preisen der anzuschließenden Laborgeräte ist dies auch meist kein bedeutsamer Kostenfaktor (derzeit ca. € 300 für eine Interfacekarte mit 8 Schnittstellen).

Demgegenüber ist es mit "busfähigen" Schnittstellen wie den vom Personal Computer bekannten Technologien "Ethernet" (gängigstes Netzwerk-Übertragungsverfahren) oder "USB" (Anschluss diverser Peripheriegeräte an den PC) natürlich leicht möglich, mehr als 2 Geräte miteinander zu verbinden. Dies wurde bei den genannten Schnittstellen sowohl in der elektrischen Auslegung als auch im Protokoll berücksichtigt. Da das Übertragungsverfahren aber doch recht erheblich von der hier beschriebenen RS-232 abweicht, wird im folgenen nicht näher auf diese Schnittstellen eingegangen, wenn auch besonders Ethernet in letzter Zeit eine steigende Bedeutung zum Anschluss von Laborgeräten erhält.

Hingegen gibt es seit langem eine Schnittstelle, deren Übertragungsverfahren nahezu identisch mit der RS-232 ist, aber aufgrund der elektrischen Auslegung sowohl für hohe Übertragungsraten und lange Kabelverbindungen als auch zum Anschluss mehrerer Geräte an einem Kabelstrang geeignet ist. Es handelt sich hierbei um die als RS-485 bekannte Technik.

Der wesentlichste Unterschied zur RS-232 besteht darin, dass das Sendemodul jeweils nur dann eingeschaltet wird, wenn das betreffende Gerät auch wirklich Daten senden möchte; in jeder anderen Situation bleibt es im Empfangsmodus. Auf diese Weise kann man einfach mehrere Geräte (standardmäßig bis zu 32) über ein "Bussystem" (siehe Bild) parallel schalten. Ein weiterer Unterschied ist, dass üblicherweise keine Handshake-Signale (z.B. RTS und CTS bei der RS-232, siehe oben) verwendet werden - die angeschlossenen Geräte benötigen also einen Pufferspeicher gewissen Umfangs. Elektrisch ist die RS-485 mit symmetrischen Ausgängen ausgestattet; zusammen mit der Busterminierung (ein Widerstand auf beiden Kabelenden, dessen Wert dem "Wellenwiderstand" des verwendeten Kabels entspricht) lassen sich auf diese Weise hohe Übertragungsgeschwindigkeiten auch bei längeren Kabelverbindungen erzielen.

Die RS-485 kann sowohl als "2-Draht-" als auch als "4-Draht-Variante" verwendet werden. Erstere ist aufgrund des geringerem Verkabelungsaufwandes häufiger im Einsatz, erlaubt aber nur Halbduplex-Betrieb. Das bedeutet, dass ein angesprochenes Gerät erst dann antworten kann, wenn der Sender seine Mitteilung beendet hat. Bei der 4-Draht-Variante wäre dies hingegen zum selben Zeitpunkt möglich. Im folgenden Bild wird ein Verdrahtungsschema eines Bussystems mit der 2-Draht-Variante gezeigt.



Natürlich benötigt auch die RS-485 ein Protokoll zur Festlegung, wer wann welche Daten senden darf (oder muss). Hierbei existieren diverse herstellerspezifische Verfahren, wenngleich die meisten nach dem "Master-Slave-Prinzip" arbeiten. Darunter ist zu verstehen, dass die "Slaves" niemals von sich aus tätig werden, sondern erst nach Aufforderung durch den "Master" (meist der Computer) die an sie übermittelte Mitteilung ausführen und gegebenenfalls antworten. Beim Anschluss diverser Laborgeräte wie pH-Meter, Rührwerke, Massflow-Controller oder Waagen an einen Computer ist dies ohnehin die naheliegendste Variante.

Zuviele Details ?

Im vorherigen Artikel finden Sie eine kurze Einführung über Geschichte, Anwendungsmöglichkeiten sowie Grundlagen zur Signalübertragung der RS-232.