
Cyclic Redundancy Checker (CRC) Unit
MPC5644A Microcontroller Reference Manual, Rev. 6
Freescale Semiconductor
1237
Chapter 29
Cyclic Redundancy Checker (CRC) Unit
29.1
Overview
The CRC module provides a fast on-chip capability for verifying code and data integrity. This capability
is particularly important in safety applications. Examples include:
•
Verifying memory integrity by setting it to a known value, calculating a checksum and comparing
the calculated checksum against a stored checksum value
•
Verifying code integrity by comparing its calculated checksum to its stored checksum value
•
Verifying the integrity of data received from a network by comparing its received checksum to its
calculated checksum
CRC functionality can be implemented in software but there are significant speed advantages to be gained
by offloading CRC computation tasks from the processor core to the CRC module. Further gains are made
when data is written to the CRC module via DMA.
NOTE
This chapter does not discuss the details of computing CRC checksums but
there are many articles to be found via internet searches. One that might be
of particular interest is “A Painless Guide to CRC Error Detection
Algorithms” by Ross Williams.
29.2
Features
The CRC module on the MPC5644A includes the following features:
•
3 “contexts”—A context is a CRC engine with its own independent set of configuration and data
registers. The MPC5644A CRC module can process up to three separate data streams concurrently.
•
Each context supports CRC-16-CCITT and CRC-32 ethernet polynomials
•
Bit-swap and bit-inversion operations can be applied on the final CRC signature
•
Support for byte/half-word/word width of the input data stream
•
Computation is performed with zero wait states
29.2.1
Access and performance
All CRC registers are accessible (read/write) in each access mode: user, supervisor or test.
The following bus operations (contiguous byte enables) are supported:
•
32-bit data read/write operations to any register
•
Low and high half-word read/write operations to any register
1
•
Byte data write/read operations to any register
2
1. 16-bit operations must be aligned to 16-bit boundaries, i.e., bits 0–15 or bits 16–31. Any unaligned operation results in a bus
error.
Summary of Contents for MPC5644A
Page 2: ...MPC5644A Microcontroller Reference Manual Rev 6 2 Freescale Semiconductor...
Page 24: ...MPC5644A Microcontroller Reference Manual Rev 6 24 Freescale Semiconductor...
Page 26: ...MPC5644A Microcontroller Reference Manual Rev 6 26 Freescale Semiconductor...
Page 52: ...Introduction MPC5644A Microcontroller Reference Manual Rev 6 52 Freescale Semiconductor...
Page 56: ...Memory Map MPC5644A Microcontroller Reference Manual Rev 6 56 Freescale Semiconductor...
Page 1228: ...Decimation Filter MPC5644A Microcontroller Reference Manual Rev 6 1228 Freescale Semiconductor...
Page 1440: ...FlexCAN Module MPC5644A Microcontroller Reference Manual Rev 6 1440 Freescale Semiconductor...