General communications format, Cyclical redundancy check (crc), Crc hardware description and polynomial figure 4 – Rainbow Electronics DS1616 User Manual
Page 21

DS1616
21 of 28
General Communications Format
Communication with the DS1616 in both synchronous and asynchronous modes is accomplished by first
writing a command to the device. The command is then followed by the parameters and/or data required
by the command. The command set for the DS1616 can be seen in Table 3. Reads and writes to the
DS1616 differ in that writes are performed one byte at a time while reads are performed in page long (up
to 32-byte) bursts. Writing 1 byte at a time means that a write command has to be issued before each byte
of data that is written. For example, writing to the user NV RAM requires that the Write User NV RAM
command be written followed by the address to be written and then the actual data byte. Writing a
second data byte would require the same procedure with a new address specified. Reads, however, are
accomplished in bursts. For example, if an end user wants to read data from a specific page he would
first issue the Read Page command, followed by the address to begin reading. After the DS1616 receives
the command and starting address, it will immediately transmit the data that resides at the given address
location. However, rather than stop with that single byte of data, the DS1616 will continue transmitting
the next byte of data and will continue transmitting data until the page boundary is reached. A page read
can begin at any address, but will always end at the page boundary. Thus, a page read can range from 1
to 32 bytes. It should be noted that a read can be terminated at any time when communicating in
synchronous mode by pulling
RST
to ground. However, in asynchronous mode, the DS1616 will not
stop transmitting data until the page boundary is reached.
Cyclical Redundancy Check (CRC)
When communicating in the asynchronous mode, a 16-bit CRC is transmitted by the DS1616 following
the transmission of all data. When communicating in synchronous mode, no CRC is transmitted.
The 16-bit CRC (Cyclical Redundancy Check) is used to insure the accuracy of the data that is read from
the DS1616. The CRC is generated according to the standardized CRC16-polynomial function X16 +
X15 + X2 + 1. Figure 4 illustrates the function of the generator. The CRC is generated by clearing the
CRC generator and then shifting in data from the register set being read. A 16-bit CRC is transmitted by
the DS1616 after the last register of any page of memory is read. In other words, a CRC is generated at
the end boundary of every page that is read. The CRC is transmitted starting with bit 15 and ending with
bit 0.
CRC HARDWARE DESCRIPTION AND POLYNOMIAL Figure 4
BIT0
BIT1
BIT2
BIT3
BIT4
BIT5
BIT6
BIT7
BIT8
BIT9
XOR
XOR
XOR
BIT10
BIT11
BIT12
BIT13
BIT14
BIT15
CRC
OUTPUT
INPUT
DATA
X
0
X
1
X
8
X
9
X
11
X
12
X
10
X
13
X
14
X
15
X
2
X
3
X
4
X
5
X
6
X
7
Polynomial = X
16
+ X
15
+ X
2
+ 1
X
16