You are here

Projekt 21 - 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

 

AttachmentSize
PDF icon CRC Einführung615.42 KB
Package icon CRC Tool - Source Dateien12.39 KB
Package icon CRC Tool - Win32 Binary1.38 MB