beautypg.com

Crc generation – Rainbow Electronics DS2431 User Manual

Page 21

background image

DS2431: 1024-Bit, 1-Wire EEPROM

21 of 23

CRC GENERATION

With the DS2431 there are two different types of CRCs. One CRC is an 8-bit type and is stored in the most
significant byte of the 64-bit ROM. The bus master can compute a CRC value from the first 56 bits of the 64-bit
ROM and compare it to the value stored within the DS2431 to determine if the ROM data has been received error-
free. The equivalent polynomial function of this CRC is X

8

+ X

5

+ X

4

+ 1. This 8-bit CRC is received in the true

(noninverted) form. It is computed at the factory and lasered into the ROM.

The other CRC is a 16-bit type, generated according to the standardized CRC16-polynomial function x

16

+ x

15

+ x

2

+ 1. This CRC is used for fast verification of a data transfer when writing to or reading from the scratchpad. In
contrast to the 8-bit CRC, the 16-bit CRC is always communicated in the inverted form. A CRC generator inside the
DS2431 chip (Figure 13) calculates a new 16-bit CRC, as shown in the command flow chart (Figure 7). The bus
master compares the CRC value read from the device to the one it calculates from the data, and decides whether
to continue with an operation or to reread the portion of the data with the CRC error.

With the Write Scratchpad command, the CRC is generated by first clearing the CRC generator and then shifting in
the command code, the Target Addresses TA1 and TA2, and all the data bytes as they were sent by the bus
master. The DS2431 transmits this CRC only if E2:E0 = 111b.

With the Read Scratchpad command, the CRC is generated by first clearing the CRC generator and then shifting in
the Command code, the Target Addresses TA1 and TA2, the E/S byte, and the scratchpad data as they were sent
by the DS2431. The DS2431 transmits this CRC only if the reading continues through the end of the scratchpad.
For more information on generating CRC values, refer to Application Note 27.

Figure 13. CRC-16 Hardware Description and Polynomial

Polynomial = X

16

+ X

15

+ X

2

+ 1

X

0

X

1

X

2

X

3

X

4

X

5

X

6

X

7

X

8

X

9

X

10

X

11

X

12

X

13

X

14

X

15

X

16

1

st

STAGE

2

nd

STAGE

3

rd

STAGE

4

th

STAGE

6

th

STAGE

5

th

STAGE

7

th

STAGE

8

th

STAGE

9

th

STAGE

10

th

STAGE

11

th

STAGE

12

th

STAGE

13

th

STAGE

14

th

STAGE

15

th

STAGE

16

th

STAGE

INPUT DATA

CRC
OUTPUT

COMMAND-SPECIFIC 1-Wire COMMUNICATION PROTOCOL—COLOR CODES

Master to slave

Slave to master

Programming