Cyclic Redundancy Code (CRC)
CRC Tool
Viele Übertragungsprotokolle benutzen den CRC um Übertragungsfehler zu erkennen. Die Grundlagen habe ich in einem Dokument (siehe Anhang) zusammengefasst. Für schnelle Implementierungen befinden sich unter den Code-Schnipseln Beispiel-Implementierungen.
Das CRC-Tool hilft dabei die eigenen CRC-Funktionen leichter zu überprüfen. Man kann unterschiedliche Generator-Polynome testen und die Implementierung (forward, reverse) auswählen. Des weiteren können für bestimmte Generator-Polynome dessen Look-Up-Tabellen generiert werden.
Release Verlauf
- 1.0.0.0 08.03.2013 Initiale Version mit fixer Berechnungsmethode
- 1.1.0.0 08.09.2020 Bit/Byte-Umkehr-Möglichkeit, Auswahl der Berechnung
- 1.1.1.0 16.02.2022 Bug-Fix der Hex-Zahl Konvertierungsfunktion
Beispiel CRC Konfigurationen
CRC16 Modbus
- polinomial 0xA001
- start value 0xFFFF
- final XOR 0x0000 (=no final XOR)
- reverse CRC
- crc for 0x1234 is for example 0xC70C
CRC16-CCITT (without preceding zeros)
- polinomial 0x1021
- start value 0xFFFF
- final XOR 0x0000 (=no final XOR)
- forward CRC
- crc for 0x1234 is for example 0x0EC9
CRC16-CCITT (with preceding zeros)
- polinomial 0x1021
- start value 0xFFFF
- final XOR 0x0000 (=no final XOR)
- forward CRC
- crc for 0x00001234 is for example 0x9706
CRC16-CCITT version 2 (with preceding zeros)
- polinomial 0x1021
- start value 0x1D0F
- final XOR 0x0000 (=no final XOR)
- forward CRC
- crc for 0x1234 is for example 0x9706