6bit CRC check on SENT slow channel Nachricht

OP #7583387
Lesenswert?

Hallo bin gerade an einem SENT Bus Decoder. Die Fast Channel Nachricht kann ich mittels CRC 4 des SENT Frame dekodieren. Wenn ich nun 18 Nachrichten einer Slow Channel Nachricht dekodiere scheint diese auch zu stimmen. Ich finde aber nichts wie man die 6 Bit CRC der Slow Message berechnet. Hat da jemand eine Tipp für mich.

Die ersten 6 Bit der zwei Datenströme sind 111111b beim B3 und im B2 Strom eine CRC von 13d Dann folgen: Bit2 Datenstrom ist 110000000000b Bit3 Datenstrom ist 001100000000b Ist dekodiert eine Message ID von 0x06 und einem Datenwert von 0x03. Das stimmt mit dem Datenblatt bzw. SAE J2716 überein. Nur weiß ich nicht wie ich auf die CRC von 13d komme.

Vielen Dank

OP #7583549
Lesenswert?

Hab ihn mal mit einer Trial geöffnet. Hilft aber nicht wirklich. Sagt nämlich wenig aus darüber welche Daten in die Funktion gehen. Es gibt da eine Masterarbeit die kurz erwähnt, dass die Daten "in einer bestimmten Reihenfolge" in die CRC Funktion reinfließen müssen. Hätte das mal nachgebaut mit dem Polynom von der Matlab Funktion funktioniert aber nicht. Und die Masterarbeit beschreibt die CRC nicht weiter im Detail. (Seite 28) https://diglib.tugraz.at/download.php?id=5b6d299123406&location=browse

OP #7590786
Lesenswert?

Der Vollständigkeit Halber:

1
static const unsigned char crc6_table[] = {
2
    0, 25, 50, 43, 61, 36, 15, 22, 35, 58, 17, 8, 30, 7, 44, 53,
3
    31, 6, 45, 52, 34, 59, 16, 9, 60, 37, 14, 23, 1, 24, 51, 42,
4
    62, 39, 12, 21, 3, 26, 49, 40, 29, 4, 47, 54, 32, 57, 18, 11,
5
    33, 56, 19, 10, 28, 5, 46, 55, 2, 27, 48, 41, 63, 38, 13, 20
6
};
7

8
static unsigned char SYS_sent_calculateCRC6(unsigned char *data) {
9
  unsigned char checkSum6 = 21; // initialize checksum
10

11
  for(int i=0; i<4; i++){
12
    checkSum6 = data[i] ^ crc6_table[checkSum6];
13
  }
14
  checkSum6 = 0 ^ crc6_table[checkSum6]; 
15

16
  return checkSum6;
17
}

Der Pointer data muss dabei auf die 4 aufbereiteten Bytes zeigen so wie sie in der Masterarbeit beschrieben sind.

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