Im Datenblatt für den ET1200 EtherCAT ASIC (Seite 94) wird mir mitgeteilt, dass ich eine CRC einiger der 16-Bit-Daten in seinem EEPROM berechnen muss. Die einzige Beschreibung dieses CRC lautet:
Das niedrige Byte [von Wort 7] enthält den Rest der Division von Wort 0 zu Wort 6 als vorzeichenlose Zahl geteilt durch das Polynom (Anfangswert 0xFF).
Aus irgendeinem Grund lässt mein Gehirn schmelzen, wenn ich die Wikipedia-Seite über die Berechnung eines CRC lese . Zumal der Beispielcode in einer speziellen Sprache geschrieben ist.
Kann mir bitte jemand sagen, was ich zu was hinzufügen muss, und wohin und so weiter? In C vorzugsweise.
Das klingt nach dem CRC-8 / ROHC-Algorithmus. Gemäß dem Katalog parametrisierter CRC-Algorithmen sind seine Parameter:
Beachten Sie, dass CRC-8 dasselbe Polynom verwendet, jedoch einen Anfangswert von
0x00
nicht verwendet0xFF
. Es ist auch ein "nicht reflektierter" Algorithmus (Bits sind zuerst MSbit). Seine Parameter sind:Diese Parameter können mit verschiedenen Tools verwendet werden, die CRCs berechnen oder CRC-Code generieren können, z. B. Online-CRC-Berechnung oder pycrc, ein kostenloser CRC-Quellcode-Generator .
quelle