Forum: FPGA, VHDL & Co. CRC-16-IBM LFSR Initialisierung unterschiedlich


von Klaus (Gast)


Lesenswert?

Moin!

Ich habe einen Sender, der an das Datenpaket eine CRC-16 Checksumme 
anhängt. Diese wird in einem LFSR erzeugt, welches mit Einsen 
vorinitialisiert ist.

Empfangen wird das Paket in einem Empfänger mit demselben LFSR, wobei 
dieses allerdings mit Nullen vorinitialisiert ist. Wenn ich mit dem 
eigentlichen Empfänger ein Paket sende und mir die Checksumme betrachte 
sehe ich auch direkt den Unterschied:

DATA: 0x0001020300
CRC SENDER1 (LFSR mit Einsen vorinitialisiert): 0x3a28
CRC SENDER1 (LFSR mit Nullen vorinitialisiert): 0x1e28

Das LFSR hat diese Form: http://ghsi.de/CRC/index.php

Ich denke da wird man nichts machen können, aber vielleicht hat ja doch 
jemand eine Idee, wie man das Problem vielleicht mit einem "Trick" oder 
so umgehen könnte? Lässt sich da irgendwas machen? Da es sich um fertige 
Chips handelt lässt sich die Vorinitialisierung leider nicht verändern.
Danke für Eure Ideen!

von Klaus (Gast)


Lesenswert?

Ach ja das Polynom lautet: x^16 + x^15 + x^2 + 1 (CRC-16-IBM)

von Klaus (Gast)


Lesenswert?

* CRC SENDER2 soll es natürlich heissen ;)

von Duke Scarring (Gast)


Lesenswert?

Klaus schrieb:
> Empfangen wird das Paket in einem Empfänger mit demselben LFSR, wobei
> dieses allerdings mit Nullen vorinitialisiert ist.
Dann ist es nicht mehr das selbe LFSR, da es einen anderen Startwert 
hat. Damit sollte (bei einem guten Polynom) auch eine andere Folge 
entstehen...

Duke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.