mikrocontroller.net

Forum: Fahrzeugelektronik Bezeichnung von CAN-Daten


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Olli Z. (z80freak)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: soul e. (souleye)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christoph S. (christoph_s205)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Rolf M. (rmagnus)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Christoph S. schrieb:
> Hat man eingesetzt, wurde jetzt von arxml abgelöst.

Beides wird eingesetzt. Es hängt in der Regel vom OEM ab.

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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.