Forum: Mikrocontroller und Digitale Elektronik CAN Arbitrierung für dummies


von dummyXYZ (Gast)


Lesenswert?

Hallo,
es heißs ja die CAN busarbitrierung garantiert verlustfreie Übertragung. 
Aber wie funktioniert das?

Bsp.: (zum Kurz Halten gehe ich von StartBit + IDlen = 2bit + 5 bit 
daten,EOF,... aus)


Node a: 01101100 ( Start=0; ID=11; Daten, EOF..=0110 )
Node B: 01010010

Node A gewinnt die Arbitrierung, d.h. Node B hört beim dritten Bit mit 
Senden auf. Wenn Node A jetzt fertig ist, sendet Node B

ABER: Wenn es verlustfrei wäre, müsste B ja jetzt nur noch sechs Bit 
senden, da es ja bereits das Startbit und das erste bit seiner ID 
gesendet hatte (bevor es gegen A verlor). Aber andere Busteilnehmer 
haben davon ja keine Ahnung, also wie läuft das ab, wiederholt Node B 
die ganze Bitfolge?

Danke & Gruß
Dmy

von adsf (Gast)


Lesenswert?

dummyXYZ schrieb:
> Wenn es verlustfrei wäre, müsste B ja jetzt nur noch sechs Bit
> senden, da es ja bereits das Startbit und das erste bit seiner ID
> gesendet hatte (bevor es gegen A verlor).

Verlustfrei heißt nicht, dass nicht Bits doppelt gesendet werden.

von Anja (Gast)


Lesenswert?

dummyXYZ schrieb:
> Node A gewinnt die Arbitrierung,

Nö, Node B gewinnt, da die ID den niedrigeren Wert hat.
Die 0-Bits sind dominant auf dem Bus.

http://www.bosch-semiconductors.de/media/pdf_1/canliteratur/can2spec.pdf

Gruß Anja

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

Wer seine Botschaft nicht schicken konnte versucht es Idealfall - sobald 
der Bus wieder frei ist - noch mal.

von Bronco (Gast)


Lesenswert?

Stell Dir vor, zwei Kerle sagen gleichzeitig:
A: Isch geh Kino
B: Isch geh Disco

A gewinnt. Wenn er fertig ist, sagt B nicht nur "Disco" sondern noch mal 
von vorne "Isch geh Disco".

Ist auch ganz logisch, denn es muß ja neu arbitriert werden. Es könnte 
ja sein, daß sich C einmischt, nachdem A fertig ist:

B: Isch geh Disco
C: Isch geh auch Kino

Wenn nun C sich gegen B durch setzt, muß B ein drittes mal ansetzen.

von Rolf M. (rmagnus)


Lesenswert?

dummyXYZ schrieb:
> ABER: Wenn es verlustfrei wäre, müsste B ja jetzt nur noch sechs Bit
> senden, da es ja bereits das Startbit und das erste bit seiner ID
> gesendet hatte (bevor es gegen A verlor). Aber andere Busteilnehmer
> haben davon ja keine Ahnung, also wie läuft das ab, wiederholt Node B
> die ganze Bitfolge?

Verlustfrei heist hier nur, daß die Botschaft des Gewinners durch das 
gleichzeitige Senden nicht zerstört wird. Der Verlierer muß trotzdem 
seine Botschaft danach komplett senden.

von dummyXYZ (Gast)


Lesenswert?

Hi,
War verwirrt; eben für Dummies :D

Anja (Gast) Schrieb:
>Nö, Node B gewinnt, da die ID den niedrigeren Wert hat.
>Die 0-Bits sind dominant auf dem Bus.
Ups mein fehler, ...

Danke euch allen, jetzt hab ichs kapiert :)

Gruß
DMY

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.