RM0401 Rev 3 211/771
RM0401 CRC calculation unit
214
10 CRC calculation unit
10.1 CRC introduction
The CRC (cyclic redundancy check) calculation unit is used to get a CRC code from a 32-bit
data word and a fixed generator polynomial.
Among other applications, CRC-based techniques are used to verify data transmission or
storage integrity. In the scope of the EN/IEC 60335-1 standard, they offer a way of verifying
the Flash memory integrity. The CRC calculation unit helps compute a signature of the
software during runtime, to be compared with a reference signature generated at link-time
and stored at a given memory location.
10.2 CRC main features
• Uses CRC-32 (Ethernet) polynomial: 0x4C11DB7
–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
• Single input/output 32-bit data register
• CRC computation done in four AHB clock cycles (HCLK)
• General-purpose 8-bit register (can be used for temporary storage)
The block diagram is shown in Figure 31.
Figure 31. CRC calculation unit block diagram
10.3 CRC functional description
The CRC calculation unit mainly consists of a single 32-bit data register, which:
• is used as an input register to enter new data in the CRC calculator (when writing into
the register)
• holds the result of the previous CRC calculation (when reading the register)
$+%EXV
ELWUHDGDFFHVV
'DWDUHJLVWHURXWSXW
&5&FRPSXWDWLRQSRO\QRPLDO[&'%
ELWZULWHDFFHVV
'DWDUHJLVWHULQSXW
DL