VFD-L Series
Modo RTU:
ADR
CMD
Dirección de
inicio
Número de datos
(nº palabras)
CRC CHK Bajo
CRC CHK Alto
CRC (Cyclical Redundancy Check, comprobación de redundancia cíclica) se calcula
mediante los siguientes pasos:
Paso 1 : Cargar un registro de 16 bits (llamado registro CRC) con FFFFH.
Paso 2: OR exclusiva en los primeros 8 bits del mensaje con el byte de bajo orden del
registro CRC de 16 bits, insertando el resultado en el registro CRC.
Paso 3: Examinar el LSB (Less Significant Bit, bit menos significativo) del registro
CRC.
Paso 4: Si el LSB del registro CRC es 0, desplazar el registro CRC un bit a la derecha
colocando un cero en el MSB (Most Significant Bit, bit más significativo) y
repitiendo el paso 3. Si el LSB del registro CRC es 1, desplazar el registro CRC
un bit a la derecha colocando un cero en el MSB. Realizar OR exclusiva en el
registro CRC con el valor A001H. Repetir el paso 3.
Paso 5: Repetir los pasos 3 y 4 hasta realizar ocho desplazamientos. Una vez realizados
se habrá procesado un byte.
Paso 6: Repetir los pasos del 2 al 5 para los siguientes 8 bits del mensaje. Continuar con
los pasos hasta haber procesado los restantes 8 bits. El contenido final del
registro CRC es el valor CRC. Cuando se transmita el valor CRC, el byte alto
y el byte bajo del registro tienen que intercambiarse (el byte bajo se
transmitirá primero).
El siguiente es un ejemplo de generación del CRC utilizando el lenguaje C. La función tiene
dos razonamientos:
Dato de tipo char* sin signo
Longitud de char sin signo
01H
03H
21H
02H
00H
02H
6FH
F7H
un puntero al buffer del mensaje
la cantidad de bytes en el buffer del mensaje
78
DELTA ELECTRONICS, INC. ALL RIGHTS RESERVED