mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bytes verdreht bei CAN-Kommunikation Little-Endian / Big Endian µC


Autor: Holger B. (rst-el)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe folgendes Problem:
Ich arbeite an einer CAN-Kommunikation zwischen einem 16-Bit Infineon 
XE167 und einem 8-Bit Infineon XC886 .
Die Prozessoren arbeiten mit umgekehrter Speicherreihenfolge, d.h. ein 
Prozessor mit Little Endian und der andere mit Big Endian Format.

Jetzt habe ich folgendes Problem:

Auf der einen Seite (Infineon XC886) zerlege ich eine long-Int Variable 
ulSend = 0x44332211 in 4 Einzelbytes:
ubDB[0] = 0x11
ubDB[1] = 0x22
ubDB[2] = 0x33
ubDB[3] = 0x44

Die CAN-Botschaft wird gesendet, der Analyzer zeigt folgende Datenbytes 
auf dem CAN-Bus:
d0 = 0x44, d1 = 0x22, d2 = 0x33, d3 = 0x44

Auf der Empfängerseite (Infineon XE167) steht in den Datenbytes des 
Empfangsobjektes folgender Inhalt:
ubData[0] = 0x44
ubData[1] = 0x33
ubData[2] = 0x22
ubData[3] = 0x11

So wie ich die Sache sehe muß ich im XC886 die Bytes vor dem Senden 
vertauschen - dann funktioniert der Datenaustausch.
Diese Lösung gefällt mir gar nicht. Gibt es eine andere Möglichkeit - 
hat jemand Erfahrungen mit so etwas ?

Wie gesagt, bei der Kommunikation zwischen 2 Controllern, die mit 
derselben Speicherformat arbeiten, funktioniert alles reibungslos.

Gruß Holger B.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bist du dir bei
> Die CAN-Botschaft wird gesendet, der Analyzer zeigt folgende Datenbytes
> auf dem CAN-Bus:
> d0 = 0x44, d1 = 0x22, d2 = 0x33, d3 = 0x44

sicher? Dort kommt die 0x11 gar nicht vor.

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.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

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