Modo RTU:
El CRC (Control de Redundancia Cíclica) se calcula de la siguiente forma:
Paso 1: Cargar un registro de16-bit (llamado registro CRC) con FFFFH.
Paso 2: O exclusivo, el primer byte de 8-bit del mando del mensaje con un byte de orden bajo
del registro de CRC de 16-bit, se introduce el resultado en el registro de CRC.
Paso 3: Examinar el LSB del regisro CRC.
Paso 4: Si la LSB (Bit menos significativo) del registro CRC es igual a 0, se debe mover un bit
del registro de CRC hacia la derecha con el MSB en cero, y después repetir el paso 3. Si la
LSB (Bit menos significativo) del registro del CRC (Control de Redundancia Cíclica) es igual a
1, se debe mover un bit del registro de CRC hacia la derecha con MSB en cero, OR exclusivo,
el registro del CRC con un valor polinomial de A001H, y después se repite el paso 3.
Paso 5: Repita el paso 3 y 4 hasta que se hayan realizado los ocho desplazamientos
Después de terminar esto, se procesa un byte de 8-bit completo.
Paso 6: Para el siguiente byte de 8-bit del mensaje del mando, se repiten los pasos del 2
hasta el 5. Continúe haciendo esto hasta que todos los byts hayan sido procesados. Los
contenidos finales del registro de CRC son el valor CRC.Al transmitir el valor del CRC en el
mensaje, los bytes superior e inferior del valor del CRC se deben intercambiar, es decir, el
byte de orden bajo se transmitirá primero.
El siguiente es un ejemplo de la generación de CRC usando el lenguaje C. La función toma
dos argumentos:
Datos de los Caractere
Longitud de los caracteres
mensajes
La función regresa al valor del CRC como un tipo de enteros sin signo (unsigned integer).
Enteros sin signos (Unsigned int crc_chk)(datos de kis caracteres sin signo (unsigned char)* ,
longitud de los caracteres sin signo){
Revisión Noviembre 2007, 03EE, SW--PW V1.10/CTL V2.10
Dirección
Función
Dirección inicial de los
datos
Cantidad de datos
(Contados por palabra)
CRC CHK baja
CRC CHK alta
sin signo (Unsigned char)* un indicador para el buffer de mensajes
sin signo (Unsigned char) la cantidad de bytes en el buffer de
Capítulo 4 Parameters|
01H
03H
21H
02H
00H
02H
6FH
F7H
4-127