APPENDIX B
Table B–3: CRC-16 ALGORITHM
SYMBOLS:
-->
data transfer
A
16 bit working register
Alow
low order byte of A
Ahigh
high order byte of A
CRC
16 bit CRC-16 result
i,j
loop counters
(+)
logical EXCLUSIVE-OR operator
N
total number of data bytes
Di
i-th data byte (i = 0 to N-1)
G
16 bit characteristic polynomial = 1010000000000001 (binary) with MSbit dropped and bit order reversed
shr (x)
right shift operator (th LSbit of x is shifted into a carry flag, a '0' is shifted into the MSbit of x, all other bits
are shifted right one location)
ALGORITHM:
1.
FFFF (hex) --> A
2.
0 --> i
3.
0 --> j
4.
Di (+) Alow --> Alow
5.
j + 1 --> j
6.
shr (A)
7.
Is there a carry?
8.
Is j = 8?
9.
i + 1 --> i
10.
Is i = N?
11.
A --> CRC
GE Multilin
No: go to 8; Yes: G (+) A --> A and continue.
No: go to 5; Yes: continue
No: go to 3; Yes: continue
G30 Generator Protection System
B.1 MODBUS RTU PROTOCOL
B
B-3