Paketaufbau RS232
Aus iSysBus Doku
Protokoll / ISB-Protokoll / Paketaufbau RS232
iSysBus Protokollschichten
| Anwendung | Bootloader | Config-Dienst | Input-Dienst | Output-Dienst | ... | |
| Nachrichtentyp | Unicast | Multicast | Broadcast | |||
| Transport | ISB-Protokoll | |||||
| Bussystem | CAN | USB | RS232 | RS485 | ... | |
Diese Seite beschreibt den Aufbau der Datenpakete bei Verwendung von RS232
Wichtig: Übertragen werden die niedrigstwertigen Bytes zuerst übertragen (LSB first)!
Inhaltsverzeichnis |
Prinzipieller Paketaufbau
| Startbyte | Flags | Destination-ID | Source-ID | Daten | <reserviert> | CRC | Stopbyte |
| 1 Byte | 1 Byte | 2 Bytes | 2 Bytes | 0-8 Byte | 1 Byte | 1 Byte | 1 Byte |
Im Feld 'Flags' wird zwischen verschiedenen Nachrichtentypen (Type of Frame) unterschieden, die weiter unten beschrieben werden. Der Aufbau der folgenden Felder ist jedoch bei allen Typen gleich:
Startbyte
Es kennzeichnet den Beginn einer Nachricht und besteht aus dem SOH(Start of Heading)-Zeichen. In hexadezimaler Schreibweise lautet es 0x01, in binärer 0b00000001.
Flags
Das Byte für die Flags wird aufgeteilt in ein Feld für eventuelle Erweiterungen (2 Bits), den Typ of Frame (TOF, 2 Bits) sowie dem Data Length Counter (DLC, 4 Bits). Dieser enthält Informationen, wie viel Datenbytes gesendet werden, dabei sind allerdings nur Werte von 0-8 zulässig, da pro Paket maximal 8 Bytes an Daten transportiert werden können.
Source-ID
Das Source-ID-Feld beinhaltet die Adresse des Knotens (11 Bit), von dem eine Nachricht gesendet wird. Die restlichen 5 Bits bleiben ungenutzt.
Daten
Dieses Feld enthält die Nutzdaten (die auch entfallen können) und darf maximal 8 Byte lang sein. Dabei werden die Daten mit dem LSB zuerst übertragen, ausserdem müssen immer ganze Bytes übertragen werden. Wie viele Daten ein Paket enthält wird im Feld DLC festgelegt.
CRC
Über alle Felder bis auf Start/Stopbyte sowie CRC selbst wird eine CRC erzeugt, um fehlerhafte Datenpakete erkennen zu können. Diese ist ein Byte lang.
Stopbyte
Das Stopbyte kennzeichnet das Ende einer Nachricht und besteht aus dem CR(Carriage Return)-Zeichen. In hexadezimaler Schreibweise lautet es 0x0D, in binärer 0b0000 1101
Unicast
| Startbyte | Flags | Destination-ID | Source-ID | Daten | Prüfsumme | Stopbyte | |||||
| SOH | --- | RTR | TOF | DLC | Port | Zieladresse | --- | Absenderadresse | Daten | Checksumme | CR |
| 0x01 | 1 Bit | 1 Bit | 00 | 4 Bits | 5 Bits | 11 Bits | 5 Bits | 11 Bits | 0-8 Byte | 16 Bits | 0x0D |
Destination
Beim Unicast beschreibt das Destination-Feld die Adresse eines Knotens (11 Bit), der erreicht werden soll.
Port
Der Port unterscheidet beim Empfänger verschiedene Dienste, z.B. den Config-Dienst etc.
Multicast
| Startbyte | Flags | Destination-ID | Source-ID | Daten | Prüfsumme | Stopbyte | ||||
| SOH | --- | RTR | TOF | DLC | Multicast-ID | --- | Absenderadresse | Daten | Checksumme | CR |
| 0x01 | 1 Bit | 1 Bit | 10 | 4 Bits | 16 Bits | 5 Bits | 11 Bits | 0-8 Byte | 16 Bits | 0x0D |
Destination
Beim Multicast beschreibt das Destination-Feld die Multicast-Adresse einer Gruppe(11 Bit). Die restlichen 5 Bits bleiben ungenutzt.