Hallo, in einer Klausur (FH) kam in einer Aufgabe zum CAN bus eine Frage danach vor, was "gültige" und was "ungültige" Identifier sind. Mir ist allerdings nichts eingefallen außer dass alles den Regeln des "bit stuffing" entsprechen muss. Weiß jemand, ob es da noch bestimmte Einschränkungen bei der Auswahl der Adresse gibt? Danke für die Tips Frank
Auf welcher Schicht des ISO Modells bewegst Du Dich denn ? Rein für CAN gibt es da wenig Beschränkungen. Der Identifier muss halt in die 11 bzw. 29 Bit passen. Das Bit Stuffing macht gefälligst die CAN-Zelle, damit hält man sich nicht auf, wenn man einen Identifier angibt. Also alles von 0 bis 2^11-1 bzw. 0 bis 2^29-1 ist erlaubt. Wobei für jeden Identifier maximal ein Busteilnehmer existieren darf, der ihn sendet. Ansonsten torpedierst Du die sonst recht geniale Arbitrierung. Immerhin wären die gleichen numerischen Werte als Standard und Extended Identifier zwei unterschiedliche. Naja und je wichtiger die Botschaft, desto kleiner sollte die ID sein, weil kleinere Identifier die Arbitrierung gewinnen, wenn mehrere Busteilnehmer gleichzeitig senden wollen. Eine Schicht höher können natürlich schon wieder zusätzliche Anforderungen gelten, z.B. Identifier für bestimmte Zwecke reserviert sein.
Die Vorlesung bezog sich auf den MSP430, aber in der Aufgabe ging es eher um CAN im allgemeinen. Ich vermute mal, dass dann wirklich gemeint war, dass keine 2 Master die gleiche ID senden dürfen. War dann aber blöd formuliert.
In der CAN Spezifikation gibt es noch eine weitere Einschränkung für die ID: "The 7 most significant bits (ID-10 - ID-4) must not be all ’recessive’." Das scheint aber regelmäßig nicht beachtet zu werden. Ich hatte schon diverse CAN Controller im Einsatz und keiner hatte etwas gegen Ids 0x7F0 .. 0x7FF. (egal ob Tx oder Rx) Für Extended Id habe ich keine Versuche gemacht, erwarte aber keinen Unterschied was die Beachtung der Spec in diesem Punkt angeht. Gruß, Matthias
@Matthias S. (matzes) In der CAN Spezifikation gibt es noch eine weitere Einschränkung für die ID: "The 7 most significant bits (ID-10 - ID-4) must not be all ’recessive’." gibts dafür eine Quelle? Ich arbeite seit 25 Jahren mit Basic CAN und diese Bedingung habe ich noch nie gesehen. Gruß, Helmut
Helmut schrieb: > gibts dafür eine Quelle? Google gibt dazu ein paar Hinweise, mit denen man weitersuchen kann: http://can-bus.996267.n3.nabble.com/Question-regarding-CAND-Ids-td2846.html http://www.keil.com/forum/2838/can-some-questions-about-how-t89c51cc01-does-it/ https://books.google.de/books?id=kO_xBwAAQBAJ&pg=PA710&lpg=PA710&dq=%22must+not+be+all+recessive%22&source=bl&ots=5Ka-dhIfS9&sig=ACfU3U1MME2eZUExYlGnAbuz6WN10VkOEw&hl=de&sa=X&ved=2ahUKEwij5_a5q8rhAhXRsKQKHRQNDyAQ6AEwAXoECAcQAQ#v=onepage&q=%22must%20not%20be%20all%20recessive%22&f=false
Wie ich geschrieben habe, findet sich die Einschränkung direkt in der Spezifikation. Einer der ersten Treffer bei Google für "CAN specification" liefert: http://esd.cs.ucr.edu/webres/can20.pdf Das Dokument beinhaltet die CAN Specification 2.0, also inklusive extended IDs. @Helmut: Dass diese Einschränkung regelmäßig nicht beachtet wird, hatte ich aber auch geschrieben. Von daher ist es nicht verwunderlich, wenn du in den letzten 25 Jahren nicht darüber gestolpert bist...
:
Bearbeitet durch User
@ Lothar M. (lkmiller) (Moderator) @ Matthias S. (matzes) Asche auf mein Haupt, nach längerem Überlegen hab ich das doch gelesen. Die max. zulässige Adresse ist 2031d bzw. 0x7ef was die oberen 7 bit beinhaltet. Schönes Wochenende Helmut
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.