CRC(Cyclical Redundancy Check) is calculated by the following
steps:
Step 1. Load a 16-bit register (called CRC register) with FFFFH.
Step 2. Exclusive OR the first 8-bit byte of the command mes-
sage with the low order byte of the 16-bit CRC register,
putting the result in the CRC register.
Step 3. Shift the CRC registers one bit to the right with MSB zero
filling.
Extract and examine the LSB.
Step 4. If the LSB of CRC register is 0, repeat step 3, else Exclu-
sive OR the CRC register with the polynomial value
A001H.
Step 5. Repeat step 3 and 4 until eight shifts have been per-
formed. When this is done, a complete 8-bit byte will
have been processed.
Step 6. Repeat steps 2 to 5 for the next 8-bit byte of the com-
mand message. Continue doing this until all bytes have
been processed.
The final contents of the CRC register are the CRC
value.
LRC (Longitudinal Redundancy Check) is calculated by summing
up, module 256, the values of the bytes from Address to last data
character then calculating the hexadecimal representation of the
2’s-complement negation of the sum.
For example, refer to 06H CD04
34+06+00+04+05+DC=1FH
LRC HI=E(45), LRC LO=1(33)
the 2’s-complement negation of FH is E1H
43