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.