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