Cyclic Redundancy Check Data Link Error Detection / Correction Method

CRC error detection computes the remainder of a polynomial division of a generator polynomial into a message. The remainder, which is usually 16 or 32 bits, is then appended to the message. When another remainder is computed, a nonzero value indicates an error. Depending on the generator polynomial's size, the process can fail in several ways, however. It is very difficult to determine how effective a given CRC will be at detecting errors.

The probability p that a completely random (bad) message will be incorrectly accepted as valid (not detected as a CRC error), is completely a function of the code rate: p = 2-r = 2-(n - k). Where

Use of the CRC technique for error correction normally requires the ability to send retransmission requests back to the data source.

Comments:

David A Cary Says:

16-bit CRC routine (isochronous) for the polynomial 0x8005
Scott Dattalo, Dave Dribin (2002-08-24)
http://www.piclist.com/techref/postbot.asp?by=time&id=piclist\2002\08\24\233838a&tgt=post

A quick guide to CRC: With example calcuation of CRC 16 by Pierre Desrochers

See also:

Code: