Da die Serielle Schnittstelle bei der Entwicklung nicht als Bussystem gedacht war, müssen zusätzlich zum Datenrahmen einige Elemente eingefügt werden, damit mehrere Module mit einer einzigen Seriellen Schnittstelle bedient werden können.
Zunächst werden vor dem Datenrahmen zwei Bytes (Group/ID) angehängt,
mit welchen bestimmt wird, welches Modul angesprochen werden
soll, bzw. von welchem Modul die Antwort stammt. Hierbei werden vom
ersten Byte nur die ersten drei Bits verwendet. Das zweite Byte stellt
die eindeutige Modul ID dar. => es können bis zu 255 Module adressiert
werden. Die ersten drei Bits des ersten Bytes sind wie folgt kodiert:
Alle anderen Zustände werden nicht benutzt.
![]() |
Diese Art ein Modul mit 11Bit eindeutig zu identifizieren wurde aus dem CAN Protokoll übernommen. |
Um eine sichere serielle Datenübertragung gewährleisten zu können, werden über alle Daten, einschließlich Group/ID, D-Len und Cmd eine Checksumme (CRC16 => 2 Byte) gebildet, welche am Ende des Datenrahmens angehängt wird. Ein Algorithmus, um eine CRC16 zu berechnen, befindet sich im Anhang. Aufgrund der Tatsache, dass die Serielle Schnittstelle an Steuerungen kein echtes Bussystem darstellt, Module aber als Bussystem verkabelt werden können, kann es zu Kollisionen kommen, wenn mehrere Module gleichzeitig Daten zum Master senden wollen. Diese Kollisionen können aber eindeutig erkannt und dementsprechende Maßnahmen eingeleitet werden um den Zustand aller Module eindeutig zu bestimmen. Werden sehr viele Module an einem ,,Strang'' betrieben, kann es unter Umständen notwendig werden Spontanmeldungen abzuschalten.
![]() |
Um die Serielle Kommunikation busfähig zu machen werden alle Signalpegel unter 0V abgeschnitten (TTL Pegel). Dies kann bei bestimmten Rechnersystemen zu Kommunikationsproblemen führen. |
![]() |
Die Signalpegel der Seriellen Kommunikation entsprechen nicht der Norm für RS232! Es werden TTL Pegel ausgegeben. |