mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bit-Stuffing CAN


Autor: Student (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!!

Ich sitz grad vor meinen Unterlagen und häng an nem kleinen
Problemchen. Da steht drin, dass das EOF Field aus 7 rezessiven Bits
besteht, und somit bewusst gegen die Bitstuffing-Regel verstoßen wird.
Warum wird bewusst dagegen verstoßen?

Fügt dann der Sender nach dem 5ten high ne 0 ein, oder wird das dann
beim EOF nicht gemacht?
Oder andersrum gefragt, prüft der Empfänger die komplette Nachricht
nach Bitstuffing-Fehlern oder wird nur ein bestimmter Bereich geprüft?

Wäre über jede Hilfe dankbar, übermorgen is Prüfung :-(

Autor: Student (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
weiß niemand was??

Autor: Falk Willberg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CAN kann icht nicht, bitstuffing ist mir aber von HDLC ein Begriff.

Da war die Definition so: Nach 5 Einsen kommt zwangsläufig eine Null,
die beim Empfänger ignoriert wird. Damit bei NRZ wird sichergestellt,
daß eine bestimmte "Mindestfrequenz" erreicht wird.

Die "Flags", die am Anfang und Ende eines Paketes gesendet wurden,
hatten 7 Einsen und waren damit eindeutig zu identifizieren.

Ich vermute, daß jeder Fehler im bitstuffing zu ungültigen Daten führen
dürfte, spätestens wenn der CRC-Check zuschlägt.

> übermorgen is Prüfung :-(
<Elternmodus>Und seit wann weißt Du das?</Elternmodus>

Viel Erfolg,
Falk

Autor: Peter Dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Da steht drin, dass das EOF Field aus 7 rezessiven Bits
besteht, und somit bewusst gegen die Bitstuffing-Regel verstoßen wird.
Warum wird bewusst dagegen verstoßen?"

Ganz einfach, um es von Daten unterscheiden zu können.


Peter

Autor: flyingwolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...
wenn ich es recht verstanden habe, dann sammelt der Controller die
Stuffing Bits wieder raus, so dass am Ende wieder die gemeinen Daten
rauskommen.

Autor: Indi2Go (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Da steht drin, dass das EOF Field aus 7 rezessiven Bits
>besteht, und somit bewusst gegen die Bitstuffing-Regel verstoßen
wird.
>Warum wird bewusst dagegen verstoßen?

Beim CAN will man einen Übertragungsfehler noch vor Abschluss der
betroffenen Nachricht an alle Teilnehmer melden. Wenn ein Teilnehmer
den DLC falsch liest (z.B.: 8 statt 4 Datenbyte) -> kommt er beim EOF
(da ja das Bit-Stuffing verletzt ist) drauf das der Rahmen schon zu
Ende ist und wird einen Fehler signalisieren...

>Fügt dann der Sender nach dem 5ten high ne 0 ein, oder wird das dann
>beim EOF nicht gemacht?
>Oder andersrum gefragt, prüft der Empfänger die komplette Nachricht
>nach Bitstuffing-Fehlern oder wird nur ein bestimmter Bereich
>geprüft?
Beim EOF wird bewußt das Bitstuffing verletzt um obigen Fehler zu
erkennen!

Autor: Thommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke euch schonmal.

Hmmm..naja gut ok. Aber wird dann bei der Übertragung das Stuff-Bit im
EOF rein gemacht oder nicht? Dass die Stuff-Bits beim Empfang wieder
raus gemacht werden is klar. Könnte man das auch so begründen, dass
somit gewährleistet ist, dass mindestens einmal pro Nachricht das
Stuff-Bit zur Synchronisation vorhanden ist?

Autor: Thommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"
Beim CAN will man einen Übertragungsfehler noch vor Abschluss der
betroffenen Nachricht an alle Teilnehmer melden. Wenn ein Teilnehmer
den DLC falsch liest (z.B.: 8 statt 4 Datenbyte) -> kommt er beim EOF
(da ja das Bit-Stuffing verletzt ist) drauf das der Rahmen schon zu
Ende ist und wird einen Fehler signalisieren...
"

Aber das widerum würde bedeuten, dass im EOF kein Stuff-Bit eingefügt
würde. Also gilt die Bit-Stuffing-Regel nicht für die ganze Nachricht,
sondern nur für nen bestimmten Teil?
Ok, das macht Sinn, aber dann muss der Empfänger eben auch das EOF
erkennen weil er sonst nen Bitstuffing Fehler meldet wenn 7  gleiche
Bits am tück kommen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.