Forum: Mikrocontroller und Digitale Elektronik Übertragung von 10 bit auf CAN-BUS richtig auswerten


von Matthias (Gast)


Lesenswert?

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?

von Reinhard R. (reinhardr)


Lesenswert?

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

von Matthias (Gast)


Lesenswert?

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!

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.