next up previous contents
Next: 5. Schaltungsentwicklung Up: 4. Entwurf der Lösung Previous: 4.1.2.4 Die Abmeldung vom

4.2 Das Befehlsformat

In einem CAN-Telegramm ist Platz für null bis acht Byte an Nachricht. Da verschiedene Nachrichten unterschiedliche Anforderungen an weitere Parameter haben, muß die Befehlslänge variabel sein. Mann kann folgende Einteilung vornehmen:

Null-Byte-Befehl:
Ein Telegramm ohne Inhalt scheint eigentlich keinen Sinn zu machen. Aber etwas Inhalt ist doch vorhanden: Der Empfänger und vor allem der Sender! Damit ist dieser Befehl prädestiniert für das Ping-Protokoll: Wenn ein Robotor diesen Befehl erhält, so muß er nur Sender und Empfänger vertauschen und das ganze wieder zurücksenden. Wenn dagegen der Master diesen Befehl empfängt, markiert er den Roboter wieder als lebendig.
Ein-Byte-Befehle:
Ein solcher Befehl hat keine weiteren Parameter, d.h. der sendende Roboter erwartet entweder eine Meldung über irgendetwas (z.B. die aktuelle Position), oder der Befehl ist so klar und einfach, daß er keine weiteren Angaben benötigt. Ein Beispiel dafür ist die Anmeldung eines neuen Roboters.
Mehr-Byte-Befehle:
Alles, was nicht mit den bisher besprochenen Befehlen erledigt werden kann, fällt hier drunter. Der Befehl selbst steht im ersten Byte (insgesamt 256 Befehle sollten ausreichen), was danach kommt, hängt von diesem Befehl ab. Eine Positionsangabe z.B. wird genau eine X- und eine Y-Koordinate benötigen, eine Textübertragung dagegen hat eine variable Länge. Wie lang der Text ist, kann aber aus der Länge des Telegramms abgelesen werden. Um auch Strings übertragen zu können, die länger als sieben Zeichen sind, könnte man - in Anlehnung an C - nullterminierte Strings einführen. Dann wäre die Textübertragung erst zuende, wenn ein Nullbyte käme.


next up previous contents
Next: 5. Schaltungsentwicklung Up: 4. Entwurf der Lösung Previous: 4.1.2.4 Die Abmeldung vom
Christopher Odenbach
1999-06-01