Crc generation – Rainbow Electronics DS1972 User Manual

Page 21

Advertising
background image

DS1972: 1024-Bit EEPROM iButton

21 of 23



CRC GENERATION

With the DS1972 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 DS1972 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 DS1972 iButton (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 DS1972 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 DS1972. The DS1972 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

Advertising