Übertragung von 10 bit auf CAN-BUS richtig auswerten

Gast #2748045
Hallo,

habe gerade ein Problem beim Auslesen eines CAN-Buses.
Vom Hersteller weiß ich auf welcher ID an welcher Position die Daten 
ankommen.

lt. Hersteller ist die benötigte Information 10-Bit lang. Sie beginnt in 
Byte 1 bei Bit nr 0.
Das heißt doch, dass ich die Information in Byte 1 und den ersten beiden 
Bits von Byte 2 finde?

Nun bin ich mir nicht sicher wie die Bitwertigkeit hier ist.

Mein Gedanke war:

Byte 1                                 | Byte 2
Bit Nr. 0   1   2   3   4   5   6   7  | 0   1
Wert.  512 256 128 64  32  16  8   4   | 2   1

Wenn ich das so umrechne komme ich allerdings auf keinen vernünftigen 
Wert.
Habe ich hier einen Denkfehler drin?
Wird die Bitwertigkeit anders geregelt?
Wie ist das generell bei Daten die länger als 8 Bit sind? Wie werden 
diese normalerweise übertragen?

Kann mich evtl. jemand auf die richtige Spur bringen?
#2748126
Matthias schrieb:
> Byte 1                                 | Byte 2
> Bit Nr. 0   1   2   3   4   5   6   7  | 0   1
> Wert.  512 256 128 64  32  16  8   4   | 2   1


CAN überträgt zumindest bei der ID zuerst das MSB. Dann könnte es ev. 
auch so aussehen:

           Byte 1  | Byte 2                         | Byte 3
Bit Nr.     1   0  |  7   6   5   4   3   2   1   0 |  7   6
Wert.      xxx 512 | 256 128  64  32  16  8   4   2 |  1  xxx


Die Bytes können auch in unterschiedlicher Reihenfolge daher kommen.

           Byte 2  | Byte 1
Bit Nr.     1   0  |  7   6   5   4   3   2   1   0
Wert.      512 256 | 128  64  32  16  8   4   2   1

Siehe auch hier:
http://de.wikipedia.org/wiki/Endianness

Was konkret der Hersteller deines Gerätes treibt, kann man aus der Ferne 
nicht sagen. Sieh dir mal die Daten an und betrachte die verschiedenen 
Varianten. Dann solltest du raus finden können welche Möglichkeit passt.

Gruß
Reinhard
Gast #2748164
Vielen Dank für den Link!

Hat mir sehr weiter geholfen!
Nach solch einer Beschreibung hatte ich gesucht.

Ich kann die Bytes jetzt richtig interpretieren, bzw. konnte das Gerät 
so konfigurieren, dass die Bitreihenfolge wie gewünscht gesendet wird.

Danke nochmal für die schnelle Hilfe!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.