24.11.2012 Aufrufe

Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden

Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden

Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Diplomarbeit</strong>: Modulares System Datenstrukturen <strong>und</strong> Kommunikation<br />

Die Aufrufe müssen da<strong>für</strong> folgendermaßen geändert werden: GET(group_id,id,parameter);<br />

Das Beispiel sieht dann wie folgt aus:<br />

...<br />

temperature:=Get(8,4,0);<br />

if temperature>60 then<br />

motor_speed:=0;<br />

...<br />

Diese Art der Adressierung ist die variabelste <strong>und</strong> kann am besten auf die verschiedenen<br />

Robotertypen angewendet werden.<br />

4.3.4. Adressierung im CAN-Bus<br />

Die Verwendung des CAN-Busses (siehe auch Kapitel 4) bringt eine Einschränkung in der Vergabe<br />

der Adressen mit sich. In einer CAN-Nachricht sind 29 Bit <strong>für</strong> die Adressierung vorgesehen. Diese ist<br />

keine Adresse im herkömmlichen Sinne. Sie bestimmt nicht den Empfänger sondern versieht die<br />

Nachricht mit einer Kennung. Physikalisch gesehen empfangen alle Knotenpunkte die Nachricht. Ein<br />

Empfangsregister mit einer frei konfigurierbaren Bitmaske entscheidet automatisch, ob die Nachricht<br />

<strong>für</strong> den Knoten interessant ist oder nicht. Dies erfolgt bereits im Bus-Controller <strong>und</strong> ist von der darüber<br />

liegenden Software unabhängig.<br />

Von den 29 Bit werden normalerweise fünf Bit <strong>für</strong> eine Priorisierung der Nachrichten <strong>und</strong> die Fluss-<br />

Steuerung verwendet. Durch die Priorisierung ist es möglich, dass sich im Kollisionsfall die höher<br />

priorisierte <strong>und</strong> damit wichtigere Nachricht durchsetzt <strong>und</strong> gesendet wird. Außerdem wird es möglich,<br />

dass eine laufende Sendung durch eine höher priorisierte Nachricht unterbrochen wird, die zum<br />

Beispiel einen Fehler meldet.<br />

Von den zur Verfügung stehenden 29 Bit sind also nur 24 Bit <strong>für</strong> die Adressierung verwendbar. Um<br />

auf Anfragen reagieren zu können <strong>und</strong> um den Nachrichtenempfang bestätigen zu können, wie es im<br />

CAN-Protokoll vorgeschrieben ist, benötigt der Empfänger die Adresse des Senders. Diese könnte in<br />

den Datenbytes der Nachricht verpackt werden. Da diese aber aus maximal acht Bytes bestehen <strong>und</strong><br />

zusätzlich zu den eigentlichen Daten noch einiges an Zusatzinformationen übertragen werden muss,<br />

wird die Senderadresse mit in dem Identifier verpackt. Es kann also nur die Hälfte der Adressbits <strong>für</strong><br />

eine Adresse verwendet werden, also 12 Bit.<br />

Diese 12 Bit können in einer kombinierten Adressierung wie im vorigen Abschnitt beschrieben<br />

verwendet werden. Es würden dann 2.047 Geräte in 2.047 verschiedenen Gruppen ansprechbar sein.<br />

Dies ist eine ausreichend hohe Anzahl.<br />

Bei der zweiten Variante besteht das Problem, dass 12 Bit knapp bemessen sind. So können zum<br />

Beispiel 15 Gruppen mit jeweils bis zu 255 Geräten angesprochen werden. Sie bietet allerdings einen<br />

Vorteil, der diese Beschränkung größtenteils wieder gut macht. Dadurch, dass der Identifier einer<br />

Nachricht nicht nur mit einer Adresse belegt ist, sondern auch über eine Gruppenkennung verfügt,<br />

26.07.2004 Seite 23 von 85

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!