User Manual

Secure Digital (SD) Bus Protocol Description
4-16 TriFlash with SD Interface Product Manual (Preliminary), Rev. 1.2 © 2002/2003 SANDISK CORPORATION
Figure 4-10. CRC7 Generator/Checker
CRC16
When one DAT line is used (as in the MultiMediaCard bus), the CRC16 is used for payload protection in block
transfer mode. The CRC checksum is a 16-bit value and is computed as follows:
generator polynomial G(x) = x
16
+ x
12
+x
5
+1
M(x) = (first bit) * x
n
+ (second bit)* x
n-1
+...+ (last bit) * x
0
CRC[15...0] = Remainder [(M(x) * x
16
) / 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 a 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