Fragen zu CAN protocol

OP #5570324
Lesenswert?
• ▲
▼
Hi
paar blöde Fragen zu CAN:
Ich habe 50 CAN Steuergeräte an meinem CAN Bus:

1. wird das acknowledge bit von allen runter gesetzt?
2. Wenn ja, wo ist der Sinn, warum alle?
3. Ack Feld hat 2 bits. ack und delimiter. Wozu ist der Delimiter gut?
4. Aus wiki: "Der Acknowledge-Slot wird verwendet, um den Empfang eines 
korrekten CAN-Frames zu quittieren". Was heisst hier Korrekt? Dass CRC 
stimmt?
5. Wenn eine falsche Message geschickt wird, und ein einziger der 50 
Teilnehmer aufgrund einer Frequenzproblematik das ACK fälschlicherweise 
runterzieht, gilt die Nachricht für den Sender dann als korrekt?

Danke
#5570413
Lesenswert?
• ▲
▼
H. R. schrieb:
> Ich habe 50 CAN Steuergeräte an meinem CAN Bus:
>
> 1. wird das acknowledge bit von allen runter gesetzt?
Theoretisch ja, da alle die Nachricht empfangen. Praktisch reicht aber 
einer. Das ACK dient ja in erster Linie dem Absender der Nachricht um 
festzustellen ob wenigstens einer am Bus lauscht.

> 2. Wenn ja, wo ist der Sinn, warum alle?
Das liegt im Design des CAN-Bus. Der ist ja Nachrichtenorientiert und es 
gibt daher für den Absender keine Möglichkeit festzustellen ob jemand 
sich für seine Info interessiert hat.

> 3. Ack Feld hat 2 bits. ack und delimiter. Wozu ist der Delimiter gut?
> 4. Aus wiki: "Der Acknowledge-Slot wird verwendet, um den Empfang eines
> korrekten CAN-Frames zu quittieren". Was heisst hier Korrekt? Dass CRC
> stimmt?
Siehe oben. Mit "korretem Empfang" ist halt gemeint, das nur wenn 
wenigstens EIN Teilnehmer an Deinem Bus das Paket vollständig, also mit 
gültiger CRC empfangen hat, dieses Bit gesteuert wird und zwar vom 
Empfänger.

> 5. Wenn eine falsche Message geschickt wird, und ein einziger der 50
> Teilnehmer aufgrund einer Frequenzproblematik das ACK fälschlicherweise
> runterzieht, gilt die Nachricht für den Sender dann als korrekt?
Kommt drauf an was Du als "falsche Message" definierst. Wenn es einen 
Übertragungsfehler aufgrund Störeinstrahlung oder elektrischem einwirken 
gegeben hat, stimmt die CRC nicht und dann wird auch kein ACK gesteuert.

Und ob nun ALLE Teilnehmer am Bus die Nachricht korrekt empfangen haben 
oder nicht, ist aus Sicht der Nachricht egal. Wenn es aufgrund des 
darüberliegenden Protokolls oder Anwendung wichtig ist dies 
sicherzustellen, muss hier eine Transportsicherungsschicht implementiert 
werden. Das ist nicht Bestandteil von CAN. In Netzwerktopologie 
ausgedrückt ist CAN zu sehen wie Ethernet, es definiert nur die 
elektrische Übertragung  (OSI Layer 1) und Adressierung (OSI Layer 2).
Gast #5570461
Lesenswert?
• ▲
▼
Olli Z. schrieb:
> ob nun ALLE Teilnehmer am Bus die Nachricht korrekt empfangen haben
> oder nicht, ist aus Sicht der Nachricht egal. Wenn es aufgrund des
> darüberliegenden Protokolls oder Anwendung wichtig ist dies
> sicherzustellen, muss hier eine Transportsicherungsschicht implementiert
> werden. Das ist nicht Bestandteil von CAN. In Netzwerktopologie

Hmm, die Error-Frames sind doch Bestandteil von CAN..

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.