Zum Hauptinhalt springen

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.

CRC Tool

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

Downloads