Bits in Serie: Die RS-232

Kurzfassung: Viele moderne Laborgeräte sind mit einer 9- oder 25-poligen Buchse ausgestattet, die als RS-232 bezeichnet wird. Im Gegensatz zu Spannungsausgängen werden hier die relevanten Daten bereits in digitaler Form ausgegeben, was eine Weiterverarbeitung durch Computer sehr einfach macht und auch weitgehend unempfindlich gegenüber Störungen ist. Allerdings müssen die Übertragungsparameter sorgfältig zwischen beiden Seiten abgestimmt werden, um eine korrekte Kommunikation zu ermöglichen.


Was ist die RS-232 ?

Mit dem Aufkommen mikroprozessorgesteuerter ("intelligenter") Laborgeräte werden auch immer öfter deren Messwerte zur Weiterverarbeitung nicht wie bisher in analoger Form (als Spannungs- oder Stromausgänge), sondern digital vom Gerät zur Verfügung gestellt. Während für diesen Zweck noch vor etwa einem Jahrzehnt der IEEE-488-Bus (auch als GP-IB bekannt) dominierte, besitzt heutzutage die serielle Schnittstelle mit dem Kürzel "RS-232" (oder auch "V.24") die höchste Bedeutung. Dies ist vor allem auf die einfachere Verkabelung und die Verfügbarkeit auf nahezu jedem Computer zurückzuführen.

Bei dieser Schnittstelle geschieht die Übertragung nicht kontinuierlich, sondern ein Zeichen kann vom einlesenden Rechner nur empfangen werden, wenn es zuvor explizit von dem sendenden Gerät abgeschickt wurde. Wie hier bereits angedeutet, bestehen die übertragenen Daten aus Zeichenketten, die meist eine (menschen-)lesbare aufbereitete Form der Messwerte darstellen.

Würde der Ausgang eines Thermometers in analoger Form durch eine bestimmte Spannung (z.B. 120 °C entsprechen 1200 mV) dargestellt, so würde ein Gerät mit RS-232 Schnittstelle die Zeichenfolge " 120 °C" (bestehend aus "Leerzeichen", "1", "2", "0", Leerzeichen, "°" und "C") an den lesenden Computer übertragen.

Die RS-232 - Schnittstelle existiert meist in Form einer 25- oder 9-poligen länglichen Buchse ("Sub-D-Steckverbindung"), an der verschiedene Signale liegen, wobei die meisten davon aber nur historische Bedeutung haben (diese Schnittstelle wurde ursprünglich für die Datenfernübertragung zwischen Computern über das Telefonnetz entwickelt und enthält daher noch verschiedene Signale, die heute für die meisten Anwendungen nicht mehr benötigt werden). Daneben existieren noch verschiedene ähnliche Formen mit anderen elektrischen Spezifikationen (wie z.B. RS-422). Sie stellt eine bidirektionale Schnittstelle dar, da die Signale gleichzeitig von jeder Station zu der jeweils anderen geschickt werden können: So kann z.B. ein Gerät gleichzeitig Messdaten übertragen, während es verschiedene Steuerungsparameter vom lesenden Computer erhält. Die wichtigsten Signale sind daher "TxD" (Transmit Data - auf dieser Leitung werden die Signale gesendet) und "RxD" (Receive Data - empfangene Signale). Die restlichen Signale sind Masse und verschiedene, hier nicht näher beschriebene Steuerleitungen.


Das Übertragungsverfahren

Um einen Messwert vom Messgerät zum Computer übertragen zu können (um ihn dort weiterzuverarbeiten oder zu speichern), bedarf es einiger Aufbereitung der Daten:

Zunächst müssen die Daten im Messgerät bereits in digitaler Form vorliegen, d.h. in der Form, wie sie zum Empfänger gesendet werden sollen (meist in Form einer verständlichen Zeichenkette). Dafür muss zumeist der analog vorliegende Messwert (Temperatursensor liefert eine bestimmte Spannung) in eine digitale Form umgewandelt werden.

Jedes Zeichen dieser Kette entspricht intern im Computer einem bestimmten Code: Der am häufigsten verwendete ASCII-Code weist z.B. dem Zeichen "A" die Zahl 65 zu. So ist allen Buchstaben, Ziffern und Sonderzeichen jeweils eine Zahl zugeordnet, die im Mikroprozessor im sog. Binärformat gespeichert werden: Jede Zahl wird durch eine Menge von Bits repräsentiert, die jeweils nur den Status "0" (ausgeschaltet) oder "1" (eingeschaltet) besitzen können. Ähnlich unserer bekannten Dezimalschreibweise kann man Zahlen auch im Binärsystem als Summe von Potenzen der Basiszahl auffassen: Die rechteste Ziffer entspricht der Zahl "1", die zweite von rechts "2", die dritte "4", die vierte "8" u.s.w.. Überall, wo in der Binärschreibweise eine Eins steht, wird die entsprechende Basiszahl zur Ergebniszahl addiert. Ein Beispiel soll die Entsprechung von Dezimal- und Binärschreibweise veranschaulichen:

Die Zahl "65" setzt sich im Dezimalsystem folgendermaßen zusammen:

  • 65 = 0.102 + 6.101 + 5.100.
  • Im Binärsystem hingegen lautet diese Zahl

  • 65 = 0.27 + 1.26 + 0.25 + 0.24 + 0.23 + 0.22 + 0.21 +1.20
  • (0+64+0+0+0+0+0+1), die Repräsentation ist also "01000001".

    Für die Zeichen des ASCII-Codes werden (je nachdem, ob Sonderzeichen und deutsche Umlaute mit berücksichtigt werden sollen) 7 oder 8 Bit benötigt, was eine Maximalanzahl von 128 bzw. 256 Zeichen bedeutet.

    Da für die Übertragung der Daten nur eine einzige Leitung zur Verfügung steht (TxD bzw. RxD) und man aus Gründen der elektrischen Zuverlässigkeit der Ausgangspegel nur zwischen zwei Zuständen ("1" = "High" und "0" = "Low") unterscheidet, müssen die 7 oder 8 Bits eines Zeichens hintereinander gesendet werden. Diese Form nennt man serielle Übertragung, im Gegensatz zu parallelen Schnittstellen, bei denen mehrere Bits gleichzeitig über mehrere Signalleitungen transferiert werden. Da nur eine einzige Leitung zur Verfügung steht und kein zusätzliches Taktsignal gesendet wird, ist es für den Empfänger wichtig zu wissen, wann die Übertragung eines Zeichens beginnt und wieviel Zeit für die Übertragung eines einzelnen Bits benötigt werden. (Diese Form nennt man asynchrone Kommunikation, die Form der Verbindung mit zusätzlichem Taktsignal heißt synchron). Der zeitliche Verlauf der Übertragung der Zahl 65 sieht nun wie folgt aus:

    Übertragung der Zahl 65


    Gemeinsame "Sprache" gefordert

    Um eine erfolgreiche Kommunikation zu erzielen, ist es notwendig, dass Sender und Empfänger auf dieselben Übertragungsparameter eingestellt wurden. Die üblichen Einstellungsmöglichkeiten bei der RS-232 sind: Baudrate, Anzahl der Datenbits, Anzahl der Stopbits und Parität.

    Die Baudrate beschreibt die Geschwindigkeit der Übertragung. Als Maß wird die Anzahl der gesendeten Bits pro Sekunde (Baud) definiert. Bei einer Wahl von 9600 Baud dauert die Übertragung eines einzelnen Bits also 1/9600 Sekunde. Übliche Einstellungen für diesen Parameter sind 300, 600, 1200 Baud (langsam, eher früher von Modems verwendet), 2400, 4800 und 9600 Baud (üblichste Rate für Geräteanschluss sowie für moderne Modems - bis zu 56000 Bit/Sekunde) und die schnellsten Übertragungsraten bis zu 115200 Baud.

    Die Anzahl der Datenbits gibt an, wie viele Bits pro Zeichen übertragen werden sollen. Üblich sind 7 und 8 Bit, früher waren auch 5 Bits pro Zeichen gebräuchlich (32 Möglichkeiten: Fernschreiber-Code mit Umschaltung zwischen Buchstaben sowie Ziffern und Sonderzeichen).

    Die Anzahl der Stopbits ist eine Kennzahl dafür, wie lange (wieviele Längen eines Bits) nach dem Senden eines Zeichens gewartet werden soll, bis das nächste übertragen werden kann. Geläufige Werte dafür sind 1, 1.5 oder 2 Stopbits.

    Die Parität ist ein Bit, das nach der Übertragung der Datenbits eingefügt werden kann, um die Richtigkeit des empfangenen Zeichens zu überprüfen. Hier kann man wählen, dass entweder die Anzahl der "1"er immer eine gerade (Even Parity) oder eine ungerade (Odd Parity) Zahl sein soll. Optional kann man die Paritätsprüfung auch ausschalten (No Parity).

    Der Vorgang der Datenübertragung ist im folgenden dargestellt: Wenn kein Signal gerade gesendet wird, ist der Pegel der Leitung standardmäßig "1". Soll nun ein Zeichen über die Leitung transferiert werden, wird zunächst ein sog. Startbit mit dem logischen Wert "0" ausgegeben (in der Standardlänge eines Bits). Dies dient dafür, dass der Empfänger durch die negative Flanke den Beginn eines neuen Zeichens detektieren kann. Danach folgen die 5-8 Datenbits und optional das Paritätsbit. Als Abschluss dienen die Stopbits im "1"-Pegel.

    Leider ist aber auch die Anschlussbelegung der Steckverbinder nicht ganz eindeutig; so existieren neben dem ursprünglichen 25-poligen Stecker auch eine 9-polige "Sparvariante" (insb. bei PCs und deren Peripheriegeräte) sowie andere Variationen. Da auch für die Pinbelegung der (eigentlich genormten) 25-poligen Stecker zwei Möglichkeiten existieren, ist die Anschaffung fertig konfektionierter Kabel meist am sinnvollsten.

    Die wichtigsten Informationen für die eigene "Kabelproduktion" (Anschlussbelegung der Steckverbinder etc.) finden sich im nächsten Beitrag.

    Die RS-232 (oder V.24) basiert auf Spannungen und verwendet als Signalpegel ca. +12V (High) und -12V (Low). Daneben existieren auch gelegentlich Versionen in TTL-Pegel (0 und 5 Volt). Die in der Prozessleittechnik häufiger eingesetzten RS-422 bzw. RS-485 arbeiten mit symmetrischen Spannungsausgängen und sind unempfindlicher gegenüber Störeinstrahlungen sowie langen Verbindungswegen. Weiters lassen sich dadurch auch oft wesentlich höhere Übertragungsraten erzielen. Das Prinzip funktioniert aber genauso wie bei der RS-232.


    Serielle Daten - bessere Daten ?

    Warum verwendet man die digitale Übertragung, wenn für die analoge Kopplung viel weniger Vorkehrungen getroffen werden und keine Computerbestandteile verwendet werden müssen?

    Zum ersten ist die digitale Übertragung wesentlich weniger störungsanfällig als die analoge Datenübermittlung. Bei letzterer ist es sehr leicht möglich (besonders bei längeren Verbindungskabeln), dass die Genauigkeit des Signals durch diverse Störeinstrahlungen oder Widerstände des verwendeten Kabels stark leidet. Geschieht die Umwandlung der analogen Daten in digitale Werte bereits an der Messstelle, sind diese Effekte viel geringer. Die digitale Datenübertragung ist erheblich weniger störungsanfällig (da hier zwei deutlich verschiedene Spannungs/Strompegel als Repräsentation der einzelnen Bits dienen und nicht leicht verwechselt werden können). Zusätzlich können Übertragungsfehler detektiert (Paritätsbit oder kompliziertere Prüfsummenverfahren) und zum Teil sogar automatisch korrigiert werden.

    Der zweite Grund für die digitale Übertragung ist, dass über einen seriellen Kanal mehrere verschiedene Daten übertragen werden können (entweder mehrere gleichartige Dateneingänge oder vollkommen verschiedene Parameter, wie Temperatur und pH-Wert einer Probe). Das Senden mehrerer analoger Signale ist relativ unpraktikabel, da gegenseitige Beein flussung (z.B. Übersprechen) nicht auszuschließen ist und außerdem viele verschiedene Leitungen benötigt werden.

    Zuletzt ist es sinnvoll, Daten, die im Gerät bereits als digitaler Wert vorliegen, auch als solche zu übertragen und nicht wieder in einen Analogwert umzuwandeln. Hier wären z.B. die Probennummer in einem Autosampler oder Datum und Zeit einer Aktion zu erwähnen. Auch elektronische Waagen bedienen sich meist serieller Ausgänge, da die geforderte Messgenauigkeit durch die Übertragung analoger Spannungen kaum zu erzielen ist.


    Zuviel der Freiheit ?

    Bei der Verwendung von vielen verschiedenen Geräten unterschiedlicher Hersteller stellt sich das Problem, dass es keinen Standard für die serielle Übertragung von Messdaten gibt. Im Gegensatz zu analogen Daten, die meist nur durch im ausgegebenen Spannungsbereich variieren können, ist die Wahl des Sendeformats dem Hersteller völlig frei überlassen (Darstellungsformat von Zahlen, Trennzeichen zwischen zwei verschiedenen Werten, Angabe des folgenden Wertes - ob nun die Temperatur oder der pH-Wert folgt etc.). Der Entwickler eines Programmes, das die Daten eines Gerätes lesen können soll, muss in vielen Fällen die Erkennung der Signale direkt für den einzelnen Gerätetyp in seine Software integrieren. Dies hat den Nachteil, dass oft die Software eines Herstellers nur mit bestimmten Geräten kompatibel ist (meist denen desselben Produzenten) oder aufwendig angepasst werden muss.


    RS-232 versus Netzwerk - für jeden etwas

    In modernen Rechnersystemen finden lokale Netzwerke immer größere Verbreitung als schnelle Verbindung zwischen mehreren Einplatzrechnern, die bestimmte Ressourcen wie Festplattenspeicher und Drucker allen Teilnehmern am Netz gemeinsam zur Verfügung stellen. Die Geschwindigkeit dieser Netze übertrifft die der "herkömmlichen" seriellen Übertragung über RS-232 um ein Vielfaches. Für die Verbindung zwischen PC's und externen Geräten (wie Waagen, Thermometer etc) sind diese Wege aber i.a. nicht geeignet.

    Zum einen ist die benötigte Datenübertragungsrate bei derartigen Geräten nicht allzu hoch, zum anderen erfordert der Anschluss an ein Netzwerk einen hohen technischen Aufwand. Überdies führt die Uneinheitlichkeit der verschiedenen Netzstrategien (Bus, Stern, Ring etc), Übertragungsmedien (z.B. Ethernet, Token Ring etc.) und Sendeprotokolle (TCP/IP, Novell NetWare/IPX, NetBIOS etc.) zu einer unübersichtlichen Fülle von Anschlusskombinationen, die alle vom Hersteller eines Gerätes zur Verfügung gestellt werden müssten. Im Gegensatz dazu ist die RS-232 ein weltweiter Standard, der von jedem entsprechend ausgerüsteten Computersystem verstanden wird (abgesehen von dem verschiedenen Format der Datenrepräsentation, was aber nur ein Problem der verarbeitenden Software darstellt).

    Sollte man aus irgendeinem Grund eine höhere Datenübertragungsrate benötigen, so ist für solche Applikationen eher die Verwendung der bereits erwähnten RS-422, RS485 oder der (parallelen) Schnittstelle IEEE-488 üblich. Bei letzterer handelt es sich hierbei um ein genormtes Protokoll für den Anschluss von Peripheriegeräten mit der Möglichkeit der Zusammenschaltung von bis zu 16 Anschlüssen mit einer Geschwindigkeit, die einem Netzwerk durchaus ebenbürtig ist.

    In letzter Zeit hat sich demgegenüber für den Anschluss von verschiedensten Geräten (auch Drucker, Mouse, Modems etc.) die RS-232 durchgesetzt, da die verwendete Technik sehr preisgünstig ist und den meisten Ansprüchen in punkto Geschwindigkeit genügt.

    Mehr Details ?

    Im nächsten Artikel finden Sie die Anschlussbelegungen der 9-poligen und 25-poligen Steckverbinder, Tipps zur Verkabelung, eine Checkliste bei Übertragungsproblemen sowie eine kurze Einführung zur RS-485.