Forum: Mikrocontroller und Digitale Elektronik Wer entscheidet den Wert des 29-Bit-Identifier im CAN-Rahmen


von Hauser (Gast)


Lesenswert?

Hi,

Wer entscheidet den Wert des 29-Bit-Identifier im CAN-Rahmen?

Danke
Hauser

von DirkD (Gast)


Lesenswert?

Hi,

der Entwickler.

Er bestimmt welche Nachrichten von den CAN-Knoten gesendet werden und
welche IDs sie erhalten.

Zumindest wenn nur von CAN die Rede ist.

Bei CANOpen, DeviceNet oder anderen Protokollen, die auf dem CAN-Bus
basieren, sieht das anders aus.

Gruß

 Dirk

von Klaus (Gast)


Lesenswert?

Hi @All,

dazu habe ich auch noch eine kleine Frage!!

Kann ich mit der gleichen ID senden und empfangen!?

Ich habe ein Board, das sendet mir alle 5Sec einen Wert an den PC!
Ich sende aber vom PC aber auch zu meinem Board mir der gleichen ID!

Kann das Probleme geben!?

Mfg

Klaus

von Rahul (Gast)


Lesenswert?

eigentlich ja nicht, da alle Nachrichten von allen Empfängern auch
gelesesen werden können.
Die ID sorgt eigentlich nur für eine Priorisierung der Nachrichten auf
dem Bus(je mehr Nullen in der ID vorhanden sind, um so höher ist die
Priorität [zumindest habe ich das so verstanden, da die 0 nach das
dominante Bit ist; sollte ich falsch liegen, möge man mich
berichtigen]). Jeder Empfänger hat eine gewisse Anzahl von
Empfangsregistern, denen wiederum Filter vorgeschaltet werden können,
was zu einer Adressierung des einzelnen CAN-Knotens führen kann.

Somit müsste es IMHO möglich sein, mit nur einem einzigen Identifier
mehrere Knoten am Bus zu betreiben. Effizient ist das aber nicht...

von André (Gast)


Lesenswert?

> Kann das Probleme geben!?
ja! Denn wenn gleichzeitig von mehreren Sendern die gleiche CanId
verschickt wird (und der Datenteil unterschiedlich ist), so gewinnen
alle Teilnehmer die Busarbitrierung (da ja alle zurücklesen, daß Sie
alleinig den Bus treiben). Allerdings unterscheidet sich der Datenteil,
was dann zu einem Protokollfehler führt, da die Arbitrierung nur auf die
CanId selbst angewendet wird. Der canhardwareinterne Fehlerzähler steigt
und das Telegramm wird wiederholt... natürlich auch von allen
gleichzeitig. usw.

Praktisch wird's allerdings meistens gut gehen...

Also: don't do this athome... ;-)

von Peter Dannegger (Gast)


Lesenswert?

"Kann ich mit der gleichen ID senden und empfangen!?"


Auf keinen Fall !!!

Damit ist ja eine Arbitrierung unmöglich !

D.h. sobald beide gleichzeitig den gleichen ID senden, wird in den
Datenbytes die Sendung fehlerhaft sein und abgebrochen, ein Retry
gestartet, wieder fehlerhaft ... bis die Errorcounter überlaufen und
beide in den Passiv-Status gehen. Dein CAN-Netz ist zusammengebrochen
(->Watchdog-Reset).


Um sowas zu vermeiden, sende ich im 29Bit-Identifier auch die einmalige
Senderadresse mit, dann gibt es keine Konflikte, auch wenn mal 2 Sender
den gleichen Empfänger adressieren.


Peter

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.