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?
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.
soul e. schrieb: > 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. Hat man eingesetzt, wurde jetzt von arxml abgelöst.
Christoph S. schrieb: > Hat man eingesetzt, wurde jetzt von arxml abgelöst. Beides wird eingesetzt. Es hängt in der Regel vom OEM ab.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.