Hey, ich habe nun einen RFID reader (Datenblatt hier: http://www.chafon.com/DownLoadFile.aspx?fid=85) der eine CRC-16 Pruefsumme erwartet. Da ich mit Riot OS arbeiten, habe ich bereits eine fertige Implementierung genommen. Siehe: https://riot-os.org/api/group__sys__checksum__crc16__ccitt.html und https://riot-os.org/api/group__sys__checksum__ucrc16.html Nun habe ich aber das Ergebnis der beiden Implementierungen mit diesem Online-Tool und meinen Byte Array vergleich. Das Array: 0x04 0x00 0x21 Ergebnis Online Tool: 0xE883 Nun, je nachdem welche implementierung ich waehle und Startwert komme ich auf andere Pruefsummen. Eigentlich sollte das ja nicht sein oder sehe ich das falsch? Ich habe folgende Konfigurationen wie im Datenblatt verwendet: #define PRESET_VALUE 0xFFFF #define POLYNOMIAL 0x8408 Das Datenblatt beschreibt ausserdem folgende implementierung: https://pastebin.com/MSezmVxC
> Nun, je nachdem welche implementierung ich waehle und Startwert komme > ich auf andere Pruefsummen. Eigentlich sollte das ja nicht sein oder > sehe ich das falsch? Ja, das siehst Du falsch. Startwerte und Co. beeinflussen ∗natürlich∗ das Ergebnis.
Philipp B. schrieb: > Eigentlich sollte das ja nicht sein oder > sehe ich das falsch? Kurze Antwort: Ja. Wikipedia führt 5 verschiedene CRC-16 auf, d.h. verschiedene Polynome. Und die kann man mit verschiedenen, eigentlich beliebigen Startwerten kombinieren. Georg
georg schrieb: > Und die kann man mit verschiedenen, eigentlich beliebigen Startwerten > kombinieren. Und dann schlägt noch endianess zu, wenn man das Polynom nicht spiegelt.
Das hier könnte hilfreich sein: http://www.ross.net/crc/crcpaper.html Da gibt es auch Tabellen, mit denen du, wenn du Glück hast, aus den gegebenen CRC die richtigen Parameter rausfinden kannst.
Oder mit dem tool reveng (Kurzform für reverse engineering). Das probiert per bruteforce alle Varianten durch, geht bei crc16 noch relativ schnell<1min. Du musst nur die Daten übergeben und wieviele bit davon die checksumme sind. LG Scyte
Okay, danke fuer die Antworten. Dachte es gaebe irgendwie einen Standard.
Der folgende Katalog listet allein 30 verschiedene CRC-16 Konfigurationen auf die in freier Wildbahn bereits beobachtet wurden: http://reveng.sourceforge.net/crc-catalogue/16.htm
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.