www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik BitStuffing & CAN


Autor: Timm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
BitStaffing bei CAN bedeutet ja das nach fünf gleichen Bits
ein invertiertes eingeführt wird
aber was passiert bei folgenden bitmuster?
0000 0100 00

macht er daraus 0000 0110 000

MFG Timm

Autor: Wolfgang Birner (logox2)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja

Autor: Timm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das bedeutet dann das wenn ich direckt auf dem Bus messe
das ich dan zb zwei gleiche id sehen kann wenn ich die stuffing bits
nicht berücksichtige

Autor: Wolfgang Birner (logox2)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ahm, ist vom Ausdruck ger etwas schwer zu interpretieren, was Du fragen 
wolltest, aber wenn Du auf dem Bus 5 gleiche aufeinander folgende 
Zustände siehst, ignorierst Du einfach das darauf folgende.
Etwas anderes würde der CAN-Protokollhändler auch nicht machen - von 
seiner Fehlererkennung mal abgesehen.

Autor: Lutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab ich mich auch schon gefragt. Aber einfach das darauf folgende Bit 
ignorieren würde ja bedeuten, daß ich die m. W. festgelegte 
Telegrammlänge beim Can-Protokoll um dieses Stuffingbit verlängern 
müßte, um die ursprünglich festgelegte Bitlänge eines Telegramms zu 
erreichen?

Autor: Timm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Stufing Bits velängern auf jeden Fall das Protokol

Autor: Timm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habt ihr schon einmal so einen CAN Controller in Betriebgenommen
zb den MCP2515

Autor: Lutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In Betrieb genommen noch nicht, aber im Datenblatt fleißig am Lesen. Der 
Wikieintrag http://de.wikipedia.org/wiki/Bitstopfen sagt ja:

"Beim Bitstuffing werden nach fünf gleichen Bits ein inverses Bit 
eingefügt, und dadurch wird eine monotone Folge unterbrochen. Der 
Empfänger kennt dieses Verfahren und entfernt beim Empfang einer Folge 
von fünf gleichen Bits das folgende sechste Bit und erhält damit die 
ursprünglichen Daten."

Bei CAN habe ich so einiges noch nicht verstanden, z.B.:

1.) Auf S. 10 des Datenblattes des MCP2515 wird angezeigt, in welchem 
Bereich des Telegramms Bitstuffing bei Bedarf durchgeführt wird. Nur ist 
in der ganzen Beschreibung jedes Bit an seiner Position im Telegramm 
schon festgelegt, so daß ein Zusatzbit da gar nicht reinpaßt. Das einzig 
Variable am ganzen Telegramm ist die Anzahl der "Nutzbytes" (Data Field 
0 <= N <= 8). Ein Standard Data Frame ist z.B. 44 + 8N bit lang, also 
fix. Oder wird das Telegramm erst im Message Assembly Buffer "durch den 
Präprozessor gejagt" und dann "korrigiert" in die Receive-Buffer 
geschrieben?

2.) Woran erkennt das Protokoll nun, ob nicht sowieso nach 5 gleichen 
Bits "zufällig" ein inverses Bit kommt? Das wäre dann allerdings egal, 
wenn es so ablaufen würde, wie unter 1.) am Ende vermutet.

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Bit an seiner Position im Telegramm schon festgelegt

Nun, ich kenne micht nicht im Detail mit Bitstopfen aus, aber ich würde 
das mal so sehen:

Das Telegramm, welches zu senden ist, folgt aus dem Protokoll (hier CAN)
Darin ist die Bedeutung und die Position jedes Bits festgelegt.

Dieses Telegramm ist nun zu senden. Beim Senden ist die Bedeutung der 
Bits egal. Es geht nur um HIGH/LOW. Hier müssen entsprechende 
Mechanismen greifen, um die Übertragung möglichst störsicher zu machen, 
zB Bitstopfen.

Diese können beim Empfänger entfernt werden, danach erscheint das 
auszuwertende Telegramm.

Hm..

Autor: Timm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also Bit Stuffing ist klar

Es geht jetzt mehr um das Bittimig
da kann man ja verschiedene Dinge berechnen.
zb
SYNC
PROPSEG
PSEG1 und 2
usw

hat das schon mal jemand gemacht

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Suche nach

  can-bus bit timing

o.ä. liefert alles, was du wissen möchtest, einschließlich mehrerer
Online-Rechner, z.B. diesen hier:

  http://www.kvaser.com/can/protocol/timing_calc.htm

Autor: Lutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Es geht jetzt mehr um das Bittimig da kann man ja verschiedene Dinge >berechnen.
>zb
>SYNC
>PROPSEG
>PSEG1 und 2
>usw

Da kann Dir vielleicht die Appnote von Microchip (Understanding 
Microchips CAN Module Bit Timing) weiterhelfen:

http://ww1.microchip.com/downloads/en/AppNotes/00754.pdf

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.