Bytes verdreht bei CAN-Kommunikation Little-Endian / Big Endian µC

OP #1575287
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.
Gast #1575292
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

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.