Can-Controller von OpenCore

Gast #927681
Lesenswert?

Moin Leute,
weiß jemand welches Generatorpolynom der CAN-Controller von OpenCore 
verwendet, um den CRC auszurechnen?
Das gängige Polynom (x15 + x14 + x10 + x8 + x7 + x4 + x3 + 1) ist es 
nicht, denn da passt die Bitfolge hinten und vor nicht zusammen mit der 
errechneten.

Nachricht: 0110010001001100011100000000001100000010
Polynom: x15 + x14 + x10 + x8 + x7 + x4 + x3 + 1 (100010110011001)
errechnetes CRC: 11111101000001

vom CAN-Controller errechnetes CRC: 010010010000000

Kennt sich jemand damit aus und kann mir dabei weiterhelfen?
Gast #929673
Lesenswert?

Bloss kurz eingeworfen.

Wir haben den selben Core vor kurzen mit einem CAN Protocol Tester
geprüft und die Pakete wurden richtig gesendet und empfangen.

Heisst der implementierte CRC sollte korrekt sein und implizit
der von Dir verwendete CRC sollte noch einmal überdacht werden.
Also ähnlicher Feedback wie mein Vorredner

Gruss

Lupi
Gast #933631
Lesenswert?

Hi,
so ich hab mir jetzt nochmal den CRC des Controllers angesehen, aber ich 
glaube ich bin zu blöd um das zu Verstehen was er macht.
Ich gehe davon aus das man den CRC des Can- Protokolls genauso 
ausrechnet wie sonst auch oder sehe ich das falsch?

Eine kleines Beispiel:
Nachricht (M):10011010
Polynom (P): 1011
aufzufüllende Nullen (N): 3
Rest von der Division (R): 001 --> M / P
Formel zum Errechnen der zu sendenden Nachricht: M * x^k + R
x^k = 1000 (Binär)

Danach erhalte ich folgende Nachricht: 10011010001

Wo liegt mein Denkfehler?

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