2.2 Die ersten Versuche an der seriellen Schnittstelle


 

Um schnell und einfach eigene Versuche mit der RS232 durchführen zu können, wird hier ein vielseitiges, aber einfaches Terminalprogramm eingesetzt. Das Programm Terminal.exe für Windows 95 und höher erlaubt die Aussendung und den Empfang serieller Daten und die gezielte Beeinflussung der Handshakeleitungen. Das Programm wurde in Delphi geschrieben und wird in Kap. 3.6 noch im Quelltext vorgestellt.

 

In einem ersten Versuch sollen Daten über die TXD-Leitung gesendet werden und über die RXD-Leitung der selben Schnittstelle wieder empfangen werden. Eine direkte Verbindung der beiden Leitungen reicht dazu aus. Abb. 2.3 zeigt die Verbindung an einem 9-poligen RS232.Stecker.

 

Abb. 2.3 Eine Testverbindung direkt am RS232-Stecker

 

Das Programm TERMINAL.EXE erlaubt die freie Einstellung aller Übertragungsparameter. Der Anwender hat die Auswahl zwischen COM1 bis COM4 und kann alle üblichen Einstellungen vornehmen. Für die ersten Versuche sollen z.B. die folgenden Parameter eingestellt werden:

 

COM2, 19200 Baud, Kein Paritätsbit, 8 Datenbits und 1 Stopbit.

 

Zusätzlich kann die Größe eines Empfangspuffers angegeben werden. Empfangene Daten können in einem Umfang bis zu 32000 Zeichen in einem Hintergrundpuffer gesammelt werden, sodass sie auch bei einer verzögerten Abfrage der Schnittstele nicht verlorengehen können.

 

Die übertragenen Zeichen können grundsätzlich entweder als Textzeichen oder als Zahlenwerte im Byte-Format interpretiert werden. Während z.B. ein Modem und viele Messgeräte mit serieller Schnittstelle Textzeichen empfangen und senden, überträgt man vor allem an speziellere Elektronik meist Zahlenwerte im Byte-Format. Es kann sich z.B. um reine Steuerdaten handeln, die als Kommandos und Ausgangsdaten interpretiert werden. Das Terminalprogramm unterstützt beide Möglichkeiten. Der Anwender kann entweder einzelne Zahlenwerte im Bereich 0 bis 255 eingeben und absenden oder einen Text senden. Empfangene Daten werden grundsätzlich in beiden Formen dargestellt.

 

 

Abb. 2.4 Senden serieller Zahlenwerte 

 

Der volle Zahlenbereich bis 255 wird nur bei einer Zeichenbreite von 8 Bit übertragen. Bei einer Einstellung von 7 Bit wird der Zahlenbereich auch 0 bis 127 eingeschränkt. Entsprechend werden bei 6 Bit nur Zahlen bis 63 und bei 5 Bit nur Werte bis 31 zugelassen. Nur die Einstellungen 8 Bit und 7 Bit haben noch technische Bedeutung.

 

Empfangene Daten können als Zahlenwerte oder als Textzeichen interpretiert werden. Das binär gesendete Zeichen 65 kann sowohl für ein Steuerbyte als auch für das Textzeichen "A" stehen. Umgekehrt wird ein eingegebener Text auch in seiner Binärform dargestellt. Man kann das Programm also verwenden, um sich über die ASCII-Werte aller Textzeichen zu informieren. Im Textmodus werden überdies Sonderzeichen wie CR (Zeichen 13)  und LF (Zeichen 10) für den Zeilenumbruch und eine neue Zeile verwendet.

 

2.3 Beispiele für Textübertragung

 

Digitalmultimeter mit serieller Schnittstelle (vgl. Kap. 6.1) senden auf Anforderung ihren aktuellen Messwert als Text an den PC. Es gibt noch immer aktuelle Modelle mit dieser Anschlussmöglichkeit. Die grundsätzliche Funktion kann mit dem Terminalprogramm erprobt werden. Die einzustellenden Parameter sind:

 

COM2, 1200 Baud, Paritätsbit, 7 Datenbits und zwei Stoppbits

 

Die Einstellung der Puffergröße ist hier wichtig, weil ein String von 14 Zeichen gesendet wird, die Zeichen aber nur in einem Timerintervall von 100 ms abgeholt werden.

 

Zusätzlich muss hier für den Betrieb der seriellen Schnittstelle die DTR-Leitung eingeschaltet werden. Sie liefert die Betriebsspannung für die optisch gekoppelte und elektrisch isolierte Schnittstelle des Multimeters.

 

Jedes Auslesen eines Messwerts wird durch ein einzelnes Textzeichen "D" eingeleitet. Je nach Multimeter erfüllen auch beliebige andere Zeichen die selbe Funktion.

 

 

Abb. 2.5 Auslesen eines DVM 

 

Programmierbare Mikrocontrollersysteme arbeiten oft im reinen Textmodus. Ein Beispiel ist der bekannte Mikrocontroller 8052AH-BASIC. Das System erkennt automatisch die verwendete Baudrate und antwortet mit der selben Übertragungsgeschwindigkeit. Der Anwender muss am Anfang ein Leerzeichen eingeben, das zur Messung der Bitzeiten verwendet wird. Das System antwortet dann mit eine Einschaltmeldung im Klartext. Die gesamte weitere Kommunikation findet ebenfalls im Klartext statt.

 

 

Abb. 2.6 Datenaustauch mit einem BASIC52-Mikrocontroller

 

Weiter unten in Kap. 10 wird ein Basic52-System genauer vorgestellt. Meist arbeitet man mit speziellen Terminalprogrammen, die ein bequemes Editieren von Quelltexten ermöglichen.

 

2.4 Messen und Steuern über binäre Daten

 

Der Entwickler eines Geräts an der seriellen Schnittstelle ist völlig frei in der Festlegung eines Übertragungsprotokolls. Ein Messgerät kann mit Textzeichen abgefragt werden, es genügen vielfach aber auch einzelne Bytes, die im Folgenden als Binärdaten bezeichnet werden. Wenn eine Abfrage ohnehin nur einen Zahlenbereich von 0 bis 255 liefern kann, bietet die binäre Übertragung den Vorteil der geringeren Datenmenge und der schnelleren Übertragung. Ein Beispiel für ein binäres Protokoll liefert die Ansteuerung des SIOS-Interface, das weiter unten in Kap. 6.4 genauer vorgestellt wird.

 

Die Übertragungsparameter müssen auf 19200 Baud, No Parity, 8 Bits, 2 Stopbits eingestellt werden. Der Übertragungspuffer braucht nur die Länge 1, weil das Gerät maximal ein Byte auf eine Anfrage zurücksendet.

 

 

Abb. 2.7 Binäre Datenübertragung beim SIOS-Interface 

 

Im gezeigten Beispiel wurden zweimal mit dem Byte-Kommando 32 die acht digitalen Eingänge des Geräts abgefragt. Das Ergebnis der ersten Abfrage war Null, d.h. alle Eingänge waren im Ruhezustand. Die zweite Abfrage brachte das Ergebnis 120 = 01101100b und zeigte, dass vier der acht Eingänge eingeschaltet waren. Dann wurden die analogen Eingänge A (Kommando 48) und B (Kommando 49) ausgelesen. Die Messergebnisse 1 und 14 beziehen sich auch einen Messbereich von 0 bis 5 V, der im Zahlenbereich 0 bis 255 dargestellt wird. Als letztes wurden alle digitalen Ausgänge des Geräts mit dem Kommando 16 und dem Parameter 255 eingeschaltet. Diese Aktion führt zu keiner Rückantwort des Geräts.

 

Im Normalfall wird man das SIOS-Interface nicht manuell mit einem Terminalprogramm bedienen, sondern mit spezieller Software, die automatisch die erforderlichen Byte-Kommandos generiert und die Ergebnisse anschaulich darstellt oder weiter verarbeitet. Der Einsatz des universellen Terminalprogramms ist aber immer dann sinnvoll, wenn man sich einen Überblick über das Protokoll eines neuen oder unbekannten Geräts verschaffen will. Erfahrungsgemäß wird die Entwicklung spezieller Software oft durch missverständliche Beschreibungen des Übertragungsprotokolls erschwert. Im Zweifelsfall sollte man dann die Funktion erst einmal manuell erproben.

 

Binäre Übertragungsprotokolle sind besonders schnell, weil nur wenige Daten übertragen werden müssen. Besonders einfache serielle Geräte ohne eigenen Prozessor lassen sich leichter mit einem binären Datenprotokoll ausstatten. Ein Beispiel ist der serielle Empfänger aus Kap. 4, der seriell empfangene Daten parallel an acht digitalen Ausgängen ausgibt.

 
weiter
zurück