Zitat Zitat von White_Fox Beitrag anzeigen
Hallo allerseits

Folgende:
Ich entwerfe momentan ein Kommunikationsprotokoll damit sich ein Laptop und ein Mikrocontroller verstehen. Das Ganze stelle ich mir folgendermaßen vor:

Ein Telegramm (ich hoffe der Fachterminus ist richtig) besteht aus einem "Kopf" aus vier Bytes und einem Rumpf, der zwischen 0 und 255 Bytes enthält.
xxxx xxxB | xxxx xxxx | xxxx xxxx | RRRR RRRR

Bedeutet:
B - Bestätigungsbit
R - Anzahl der Bytes im Rumpf
x - Freie Bits oder weitere Informationen über die Daten im Rumpf, für die eigentliche Kommunikation jedoch hier nicht wichtig
Ich würde den Aufbau ändern:
yyyy yyyB | RRRR RRRR | xxxx xxxx | xxxx xxxx | cccc cccc

y = Telegramm-Typ
c = CRC

Hat sich so bei meinen Protokollen bewährt.

Wenn du die Länge schon am Anfang kennst, weisst du wie gross der Puffer sein muss und wann die CRC kommt.
Grundsätzlich kann dann der Rumpf auch unterschiedlich lang sein. Wenn du die Rumpflänge nicht kennst, weisst du nicht wo die Längenangabe steht.

MfG Peter(TOO)