Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden
Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden
Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden
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