Forum: Mikrocontroller und Digitale Elektronik CAN Bus: ACK Error bei falscher Message ID?


von Bert S. (kautschuck)


Lesenswert?

Hi,

Ich habe eine spezifische Frage zum CAN Protokoll:

Ich habe 2 Knoten A und B wobei Knoten A Nachrichten mit Message ID 1 
sendet und B empfängt nur Nachrichten mit Message ID 1. Wenn nun A eine 
Nachricht mit Message ID 2 schickt, dann wird ja diese vom Knoten B 
nicht bestätigt, gibt das dann ein ACK Fehler oder ist das auf 
Transceiver Ebene, wo die Nachricht trotzdem bestätigt wird, obwohl B 
damit nichts anfangen kann?

von Jürgen (temp1234)


Lesenswert?

Wenn der Knoten die Message richtig empfängt macht er ein ACK egal ob 
sie ihn interessiert oder nicht. Außer man hat den Knoten so 
konfiguriert, dass er nur ein "stiller Beobachter" ist.

von Bert S. (kautschuck)


Lesenswert?

Ok, danke dir.

ACK wird also von jedem Teilnehmer gesendet, egal ob die Nachricht 
relevant für ihn ist? Wie weiss aber der Sender der Nachricht, wie viele 
ACKs er zu erwarten hat, meldet sicher jeder Knoten zu Beginn an?

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


Lesenswert?

Bert S. schrieb:
> Wie weiss aber der Sender der Nachricht, wie viele ACKs er zu erwarten hat
So lange der Bus mindestens 2 Teilnehmer hat und funktioniert, reicht es 
aus, wenn 1 einziger Teilnehmer die Message korrekt empfängt und (s)ein 
ACK sendet. Im Normalfall werden aber alle Teilnehmer gleichzeitig das 
ACK senden.

Nur, wenn alle Teilnhemer einen Übertragungsfehler feststellen, wird 
keiner ein ACK senden.

: Bearbeitet durch Moderator
von Thomas F. (igel)


Lesenswert?

Bert S. schrieb:
> Wie weiss aber der Sender der Nachricht, wie viele
> ACKs er zu erwarten hat..

Das weiß er nicht und will es auch nicht wissen. Ein ACK besagt für den 
Sender lediglich dass die Botschaft gültig an mindestens einem Knoten 
angekommen ist.
Ist die Botschaft am Bus gültig so haben die Empfänger selber dafür zu 
sorgen dass sie diese auch verarbeiten.

von Harald A. (embedded)


Lesenswert?

Kann man auch schön am Scope beobachten, dass das ACK bei mehreren 
Teilnehmern etwas deutlicher in der Amplitude ausfällt, da eben mehrere 
Teilnehmer parallel "ziehen".

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.