English
Language : 

MC9S08AC60 Datasheet, PDF (132/348 Pages) Freescale Semiconductor, Inc – Microcontrollers
Chapter 8 Cyclic Redundancy Check (S08CRCV1)
8.4.1 ITU-T (CCITT) Recommendations and Expected CRC Results
The CRC polynomial 0x1021 (x16 + x12 + x5 + 1) is popularly known as CRC-CCITT since it was initially
proposed by the ITU-T (formerly CCITT) committee.
Although the ITU-T recommendations are very clear about the polynomial to be used, 0x1021, they accept
variations in the way the polynomial is implemented:
• ITU-T V.41 implements the same circuit shown in Figure 8-2, but it recommends a SEED =
0x0000.
• ITU-T T.30 and ITU-T X.25 implement the same circuit shown in Figure 8-2, but they recommend
the final CRC result to be negated (one-complement operation). Also, they recommend a SEED =
0xFFFF.
Moreover, it is common to find circuits in literature slightly different from the one suggested by the
recommendations above, but also known as CRC-CCITT circuits (many variations require the message to
be augmented with zeros).
The circuit implemented in the CRC module is exactly the one suggested by the ITU-T V.41
recommendation, with an added flexibility of a programmable SEED. As in ITU-T V.41, no augmentation
is needed and the CRC result is not negated. Table 8-4 shows some expected results that can be used as a
reference. Notice that these are ASCII string messages. For example, message “123456789” is encoded
with bytes 0x31 to 0x39 (see ASCII table).
Table 8-4. Expected CRC results
ASCII String Message
SEED
(initial CRC value)
CRC result
“A”
0x0000
0x58e5
“A”
0xffff
0xb915
“A”
0x1d0f1
0x9479
“123456789”
0x0000
0x31c3
“123456789”
“123456789”
0xffff
0x1d0f1
0x29b1
0xe5cc
A string of 256 upper case “A”
characters with no line breaks
0x0000
0xabe3
A string of 256 upper case “A”
characters with no line breaks
0xffff
0xea0b
A string of 256 upper case “A”
characters with no line breaks
0x1d0f1
0xe938
1 One common variation of CRC-CCITT require the message to be
augmented with zeros and a SEED=0xFFFF. The CRC module will
give the same results of this alternative implementation when
SEED=0x1D0F and no message augmentation.
MC9S08AC60 Series Data Sheet, Rev. 2
132
Freescale Semiconductor