Can bus: Rückmeldung(ACK) während des Sendens?

Gast #3822848
Lesenswert?

Hallo Leute,

in Can bus ist es ja so, dass zur gleicher Zeit immer nur ein Teilnehmer 
Sendet. Wenn er fertig ist, erst dann folgt die nächste Prüfung wer 
jetzt senden darf. Nun Ok, aber:
Ein Frame enthählt ja diese ACK, welche die Rückmeldung von anderen 
Teilnehmern bei korrektem Empfang der Nachricht ist.
Hier meine Frage:
Wie kann es sein, dass ein Teilnehmer, während des Sendens eine 
Rückmeldung empfangen kann? Was habe ich hier übersehen?

vielen Dank und Grüße
#3822862
Lesenswert?

Bei CAN kann es ja durchaus zu Kollisionen kommen. Das passiert ja wenn 
ausgehandelt wird wer den BUS als nächstes bekommt.
Da ist die "0" dominant. Wenn ein Teilnehmer die sendet ist der BUS auf 
"0". Das empfangen dann ja alle Sender und die mit einer "1" ziehen sich 
zurück.
Beim ACK wird das wohl genauso sein.
Ist bestimmt schon 20 Jahre her das ich mich mal mit CAN beschäftigt 
hatte.
Gast #3822868
Lesenswert?

Ja, der Sender schaltet beim ACK Bit auf "empfangen" um, die die 
Empfänger schalten auf "Senden" um, und senden das ACK bit. Da das ACK 
bit automatisch vom CAN-Controller aller Empfänger gesendet wird, ist es 
keine Möglichkeit um festzustellen, ob die Nachricht beim gewünschten 
Ziel angekommen ist und ob das Ziel überhaupt noch "lebt".
(Firma: Vescomp) #3822871
Lesenswert?

Heizer schrieb:
> Wie kann es sein, dass ein Teilnehmer, während des Sendens eine
> Rückmeldung empfangen kann? Was habe ich hier übersehen?

 Vielleicht RS485 und CAN verwechselt ?
 Natürlich kann beim CAN nicht gleichzeitig gesendet und empfangen
 werden. Aber Log.0 ist dominant, d.h. wer auch immer den CAN-Bus auf
 Log.0 zieht, hat gewonnen. ;-)
 So etwas nennt man Arbitration und deswegen verliert eine 0xFFF Adresse
 immer gegen eine 0x001 Adresse.
Gast #3822887
Lesenswert?

Angenommen diese 3 Teilnehmer sind im Netz.

sie senden(die länge stimmt natürlich nicht aber nur als beispiel):

A 1 0 0 1 0 1 1
B 1 0 0 0 0 1 1
C 1 0 0 1 0 1 1

die letzten 2 Bits (1 1) sollen ACK sein.

B gewinnt ya ab der 4. Bitfolge. D.h B wird senden egal was die anderen 
haben. Wie kann es dann sein, dass ab der 6. bitfolge ACK von anderen 
überschrieben wird?
(Firma: Vescomp) #3822902
Lesenswert?

Heizer schrieb:
> B gewinnt ya ab der 4. Bitfolge. D.h B wird senden egal was die anderen
> haben. Wie kann es dann sein, dass ab der 6. bitfolge ACK von anderen
> überschrieben wird?

 Nein.
 Bit senden, CAN-Bus überprüfen.
 Wenn gleich, weitersenden.
 Wenn nicht, sofort aufhören.
 A und C kommen gar nicht bis ACK.
 Und nur der Empfänger auf B zieht beim ACK den CAN-Bus auf Log.0.
 Natürlich besteht da keine Möglichkeit festzustellen, wer nun den
 Empfang bestätigt hat, aber da A und C nicht zu Ende gesendet haben...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren