Download MANUAL DE REFERENCIA DE BASIC DE

Transcript
Capítulo 8: Avanzado
1 Comunicaciones con CRC-16 automático
El control por redundancia cíclico (CRC) es un medio confiable de verificación para saber si
hay errores de comunicación. Un algoritmo de CRC es mucho más eficaz que los algoritmos
2
de paridad y verificación de suma (Checksum). BASIC ampliado de FACTS Eng. utiliza un
CRC de 16 bits y se refiere así como CRC-16. Esta implementación del CRC se puede
3
configurar para comunicarse con otros dispositivos que usen un CRC de 16 bits, tal como el
protocolo Modbus RTU.
4
Operación del CRC
El dispositivo que transmite genera dos caracteres CRC-16 para cada transmisión y agrega esos
caracteres al fin de la transmisión. El dispositivo de recepción después calcula el CRC-16 en los
5
datos entrantes y verifica que el resultado es igual que los caracteres reales CRC-16 recibidos.
La función CRC-16 requiere que los dispositivos de transmición y de recepción usen el mismo
6
algoritmo CRC, usen el mismo resto inicial, y transmitan los caracteres del CRC en la misma
orden. La función del CRC se habilita y se deshabilita según lo mostrado abajo.
7
10 SYSTEM(2)=NOT(0): REM habilita la función del CRC
10 SYSTEM(2)=0 del CRC: REM deshabilita la función del CRC
8
Transmitiendo con CRC
Cuando se habilita la función CRC, BASIC calcula dos caracteres CRC-16 para cada
9
declaración PRINT. Cada carácter transmitido por cualquier declaración PRINT se incluye en
el cálculo. Por defecto, BASIC agrega los dos caracteres CRC-16, primero el byte más
significativo (MSB) y al último el byte menos significativo (LSB) al fin de la transmisión. La
10
orden en la cual se agregan los caracteres CRC-16 en el fin de la transmisión se puede
seleccionar por el programa de usuario según lo mostrado abajo.
11
10 SYSTEM(3)=0: REM Tx MSB primero, LSB al último
10 SYSTEM(3)=NOT(0): REM Tx LSB primero, MSB al último
12
Recepción con el CRC
Cuando se habilita la función CRC, BASIC calcula dos caracteres CRC-16 para cada
13
declaración INPUT. Cada carácter recibido por cualquier una declaración INPUT
se
incluye en el cálculo. Por defecto, BASIC mira los dos últimos caracteres INPUT para los dos
14
caracteres CRC-16, MSB primero y LSB al último. BASIC busca los caracteres CRC-16 en la
misma orden en la cual BASIC transmitiría los caracteres. Si los caracteres no son iguales, ha
ocurrido un error de comunicación. BASIC configura un bit de error de comunicación,
A
COMERR, todos 1s cuando hay un error de CRC. Si se reciben caracteres correctos CRC-16,
BASIC configura COMERR a 0.
B
Resto inicial
El resto inicial (los caracteres iniciales de CRC) son todos 1s después de un reset. El resto inicial
C
se puede cambiar por el programa de usuario según lo mostrado abajo.
10 WORD(132H) = 0:REM cambia resto inicial a todos 0s
D
10 WORD(132H) = 0FFFFH: REM cambia resto inicial a todos 1s
8–6
Manual de referencia de BASIC de FACTS Eng.