GE Multilin B30 Bus Differential System B-3
APPENDIX B B.1 MODBUS RTU PROTOCOL
B
Table B–3: MODBUS RTU 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? No: go to 8; Yes: G (+) A --> A and continue.
8. Is j = 8? No: go to 5; Yes: continue
9. i + 1 --> i
10. Is i = N? No: go to 3; Yes: continue
11. A --> CRC