Appendix C ______________________________________________________ CRC-16 Computation
VAISALA______________________________________________________________________ 199
APPENDIX C
CRC-16 COMPUTATION
The computation of the CRC is performed on the data response before
parity is added. All operations are assumed to be on 16 bit unsigned
integers. The least significant bit is on the right. Numbers preceded by
0x are in hexadecimal. All shifts shift in a zero. The algorithm is:
Initialize the CRC to zero. For each character beginning
with the address, up to but not including the carriage
return (<cr>), do as follows:
{
Set the CRC equal to the exclusive OR of the character
and itself
for count =1 to 8
{
if the least significant bit of the CRC is one
{
right shift the CRC one bit
set CRC equal to the exclusive OR of 0xA001 and
itself
}
else
{
right shift the CRC one bit
}
}
}