Bezeichnung von CAN-Daten

#5823472
Lesenswert?

In Standard CAN Frames erhalte ich ja bis zu 8 Datenbytes. In der 
Anzeige und im Logfile von CANhacker (und anderen Tools) wird das dann 
oft so dargestellt:
<ID> <DLC> <BYTES...>
720 8 00 04 AC 15 4F 00 0A FF
oder
433 3 0B 1E 40

Wie würde ich nun die Datenbytes (<BYTES...>) am besten benennen?
D0 ... D7
oder
D7 ... D0
oder
D1 ... D8
oder
D8 ... D1

Von der Übertragung her ist die Reihenfolge "links nach rechts", es wird 
das neu empfangene Byte hinter das zuletzt empfangene gestellt.
Also müsste es meiner Meinung nach so nummeriert werden
#1 #2 ... #8
und entspräche damit
D0 ... D7
sofern ich "Dx" für die Bezeichnung eines Datenbytes verwenden würde.
Ist das so üblich und verständlich?

Und wie ist das dann auf Bit-Ebene? Dort habe ich z.B. in einem Byte ein 
Flag, welches ich benennen möchte, sagen wir "Fahrertür geöffnet (=1)". 
Drücke ich das als Bitmaske aus (welche BITWISE-AND verknüpft das 
gewünschte Bit ausmaskiert):
0001 0000
Aus IT-Sicht sind die Bits so verteilt (MSB links, LSB rechts):
B8 B7 B6 B5 B4 B3 B2 B1
Damit wäre mein Signal auf Position "B5".

Also gibt man die Byte- und Bit-Positionen als 0-basierenden Index an 
(Programmiersprachen-nah) oder als 1-basierende Position?
Gast #5824201
Lesenswert?

Olli Z. schrieb:

> Wie würde ich nun die Datenbytes (<BYTES...>) am besten benennen?

In der CAN-Spezifikation gibt es keine Vorgabe, also ist es Dir 
überlassen. Du solltest Dich nach dem Datenblatt des von Dir verwendeten 
Controllers richten, der wird ja seine Mailboxregister irgendwie benannt 
haben.


> Also gibt man die Byte- und Bit-Positionen als 0-basierenden Index an
> (Programmiersprachen-nah) oder als 1-basierende Position?

Im Automobilbereich wird zur Beschreibung von CAN-Netzwerken das 
dbc-Format von Vector Informatik verwendet. Da zählt man ab Null. 
Startbit, Länge und Bytereihenfolge (Intel oder Motorola) werden für 
jede Variable einzeln festgelegt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren