artikel:w-bus:datagrammaufbau

Datagramm-Übertragung

Ein gültiges Datagramm (Frame) besteht aus einem Adress-Byte (ADDR) in welchem Absender- und Empfängeradresse kodiert sind. Dem folgt ein Datenlängen-Byte (LEN) welches die Anzahl der ihm nachfolgenden Bytes angibt. Diesem folgt ein Kommando-Byte (CMD) mit dem der auszuführende Befehl übertragen wird. Je nach Kommando können nun keine oder mehrere Datenbytes (DATA) folgend. Zuletzt kommt noch das Prüfsummen-Byte (CHK).

Der Datagramm-Aufbau ist wie folgt:

  • ADR enthält in den oberen 4 Bits (Bit 7-4) die Absenderadresse und in den unteren 4 Bits (Bit 3-0) die Empfängeradresse.
  • LEN enthält die Anzahl der auf es folgenden Datenbytes. Beim W-Bus Frame muss wenigstens ein Kommando-Byte folgen und am Ende noch das Prüfsummen-Byte. Daher hat LEN also mindestens den Wert 2.
  • CMD enthält das Kommando-Byte klassifiziert die Verwendung der ihm möglicherweise folgenden Datenbytes. Bit 7 des CMD-Bytes signalisiert dabei ob es sich um eine Anfrage (Challenge) oder eine Antwort auf eine solche (Response) handelt. Dadurch ergibt sich eine theoretische Anzahl von 127 Kommandos.
  • DATA enthält, sofern vorhanden, die für das Kommando CMD passenden Informationen. Diese können bei Anfrage- und Antwortpaketen unterschiedlich lang sein, theoretisch bis zu 254 Bytes. In der Praxis ist aber kein Paket länger als 32 Bytes.
  • CHK ist die Prüfsumme und ein XOR aller Bytes im Frame (ADDR, LEN, CMD, DATA) mit Ausnahme des Prüfsummenbytes selbst.

Das kleinstmögliche Frame besteht aus 4 Bytes (LEN = 0x02):

ADDR 0x02 CMD CHK

Das größtmögliche Frame ergibt sich aus dem Wert des LEN-Byte, welches maximal 0xFF sein kann, also 255 Bytes. Dem hinzurechnen muss man das ADDR und LEN-Byte selbst. Somit kommt man auf maximal 257 Bytes pro Frame.

  • artikel/w-bus/datagrammaufbau.txt
  • Zuletzt geändert: Mon. 17.02.2020 19:20
  • von 146.60.163.97