Forum: Mikrocontroller und Digitale Elektronik CAN - gültiger/ungültiger Identifier


von Frank2402 (Gast)


Lesenswert?

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

von fop (Gast)


Lesenswert?

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.

von Frank2402 (Gast)


Lesenswert?

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.

von Matthias S. (matzes)


Lesenswert?

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

von Helmut (Gast)


Lesenswert?

@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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?


von Matthias S. (matzes)


Lesenswert?

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
von Helmut (Gast)


Lesenswert?

@ 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
Noch kein Account? Hier anmelden.