Tabla de contenido
APÉNDICE B
El algoritmo CRC-16 trata toda la secuencia de datos (solo bits de datos; inicio, detención y paridad no se tienen en cuenta)
como un número binario continuo. Este número, primero, se desplaza a la izquierda 16 bits y, luego, se divide por un polino-
mio de característica (11000000000000101B). El resto de 16 bits de la división se añade al final del paquete, primero MSB-
yte. El paquete resultante que contenga CRC, cuando se divide por el mismo polinomio en el receptor dará un resto cero si
no se han producido errores de transmisión. Este algoritmo exige que el polinomio de característica esté en orden de bits
inverso. El bit más significativo del polinomio de característica se elimina, ya que no afecta al valor del resto.
Si se solicita, se puede proporcionar una implementación de lenguaje de programación C del algoritmo CRC.
Tabla B–2: ALGORITMO CRC-16
SÍMBOLOS:
-->
transferencia de datos
A
registro de trabajo de 16 bits
Alow
byte de orden bajo de A
Ahigh
byte de orden alto de A
CRC
CRC de 16 bits-Resultado 16
i,j
contadores de bucle
(+)
operador lógico EXCLUSIVE-OR
N
número total de bytes de datos
Di
byte de datos de i-th (i = 0 a N-1)
G
polinomio de característica de 16 bits = 1010000000000001 (binario) con MSbit descartado y orden de
bits invertido
shr (x)
operador de desviación hacia la derecha (el LSbit de x se desvía a un indicador de transporte, un '0' se
desvía al MSbit de x, todos los demás bits se desvían una posición a la derecha)
ALGORITMO:
1.
FFFF (hex) --> A
2.
0 --> i
3.
0 --> j
4.
Di (+) Alow --> Alow
5.
j + 1 --> j
6.
shr (A)
7.
¿Hay transporte?
8.
¿Es j = 8?
9.
i + 1 --> i
10.
¿Es i = N?
11.
A --> CRC
GE Multilin
No: ir a 8; Sí: G (+) A --> A y continuar.
No: ir a 5; Sí: continuar
No: ir a 3; Sí: continuar
Sistema de protección de generador G60
B.1 PROTOCOLO RTU DE MODBUS
B.1.4 ALGORITMO CRC-16
B
B-3

Hide quick links:

Tabla de contenido
loading

Tabla de contenido