0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Data In
Shift Clock
D
Q
16
D
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Q
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Data In
Shift Clock
D
Q
Cyclic Redundancy Check (CRC32) Module Introduction
715
SLAU356I – March 2015 – Revised June 2019
Copyright © 2015–2019, Texas Instruments Incorporated
CRC32 Module
15.1 Cyclic Redundancy Check (CRC32) Module Introduction
The CRC module produces a signature for a given sequence of data values. These signatures are defined
bit serial in various standard specifications. For CRC16-CCITT, a feedback path from data bits 4, 11, and
15 is generated (see
). This CRC signature is based on the polynomial given in the
CRC
‑
CCITT with f(x) = x
16
+ x
12
+ x
5
+ 1.
Figure 15-1. LFSR Implementation of CRC-CCITT as Defined in Standard (Bit0 is MSB)
For CRC32-IS3309, a feedback path from data bits 0, 1, 3, 4, 6, 7, 9, 10, 11, 15, 21, 22, 26, and 31 is
generated (see
). This CRC signature is based on the polynomial given in the
CRC32
‑
ISO3309 with f(x) = x
32
+ x
26
+ x
23
+ x
22
+ x
16
+ x
12
+ x
11
+ x
10
+ x
8
+ x
7
+ x
5
+ x
4
+ x
2
+ x + 1.
Figure 15-2. LFSR Implementation of CRC32-ISO3309 as Defined in Standard (Bit0 is MSB)
Identical input data sequences result in identical signatures when the CRC is initialized with a fixed seed
value, whereas different sequences of input data, in general, result in different signatures for a given CRC
function.
The CRC32 module supports 16-bit and 32-bit CRC generation independent from each other (supported
by two dedicated register sets).
15.2 CRC Checksum Generation
The CRC generators are first initialized by writing the
seed
to the CRC Initialization and Result
(CRC16INIRES or CRC32INIRES) registers. Any data that should be included into the CRC calculation
must be written to the CRC Data Input (CRC16DI or CRC32DI) registers in the same order that the
original CRC signatures were calculated. The actual signature can be read from the CRC16INIRES or
CRC32INIRES registers to compare the computed checksum with the expected checksum. Signature
generation describes a method on how the result of a signature operation can be calculated. The
calculated signature, which is computed by an external tool, is called checksum in this chapter. The
checksum is stored in the MCU memory and is used to check the correctness of the CRC operation result.