Product manual
Secure Digital (SD) Card Protocol Description
4-16 SanDisk Industrial Grade SD Product Manual, Rev. 1.0 © 2003 SANDISK CORPORATION
Figure 4-10. CRC7 Generator/Checker
CRC16
When one DAT line is used (as in the MultiMediaCard), the CRC16 is used for payload protection in block transfer
mode. The CRC check sum is a 16-bit value and is computed as follows:
generator polynomial G(x) = x16 + x12 +x5 +1
M(x) = (first bit) * xn + (second bit)* xn-1 +...+ (last bit) * x0
CRC[15...0] = Remainder [(M(x) * x16 ) / G(x)]
The first bit is the first data bit of the corresponding block. The degree n of the polynomial denotes the number of
bits of the data block decreased by one. For example, n = 4,095 for a block length of 512 bytes. The generator
polynomial G(x) is a standard CCITT polynomial. The code has a minimal distance d=4 and is used for a payload
length of up to 2,048 bytes (n ≤ 16,383). The same CRC16 method is used in single DAT line mode and in wide bus
mode. In wide bus mode, the CRC16 is done on each line separately.
Figure 4-11. CRC16 Generator/Checker