7.2.2.2 Comprobación de error de la trama de comunicación RTU
Varios factores (como las interferencias electromagnéticas) pueden causar errores en la transmisión de
datos. Por ejemplo, si el mensaje a enviar es un "1" lógico, la diferencia de potencial A-B en el RS485
debería ser 6V, pero en realidad, podría ser -6V debido a una interferencia electromagnética, y entonces los
otros equipos tomarían el mensaje enviado como una lógica "0". Si no existe la comprobación de error, los
equipos receptores no se darían cuenta de que el mensaje es erróneo y podrían dar respuestas incorrectas
que podrían derivar en resultados graves. Así pues, la comprobación es esencial para el mensaje.
La comprobación funciona de la siguiente manera: el remitente calcula los datos de envío de acuerdo a una
fórmula fija, y después envía el resultado con el mensaje. Cuando el receptor recibe el mensaje, calculará
otro resultado de acuerdo con el mismo método y lo comparará con el del envío. Si los dos resultados son
iguales, el mensaje es correcto. Si no, el mensaje es incorrecto.
La comprobación del error de la trama se puede dividir en dos partes: la comprobación de bit del byte y la
comprobación completa de los datos de la trama (comprobación CRC).
Comprobación de bit del byte
El usuario puede seleccionar distintas comprobaciones de bit, o no tener ninguna, lo que afecta al ajuste de bit
de comprobación de cada byte.
Definición de comprobación par: añade un bit de comprobación par antes de la transmisión de datos para
indicar si el número de "1" que contiene la transmisión de datos es un número par o impar. Cuando el resultado
es par, el byte de comprobación es "0", en caso contrario, el byte de comprobación es "1". Este método se
utiliza para estabilizar la paridad de los datos.
Definición de comprobación impar: añade un bit de comprobación impar antes de la transmisión de datos para
indicar si el número de "1" que contiene la transmisión de datos es un número par o impar. Cuando el resultado
es impar, el byte de comprobación es "0", en caso contrario, el byte de comprobación es"1". Este método se
utiliza para estabilizar la paridad de los datos.
Por ejemplo, cuando se transmite "11001110", existen cinco "1" en los datos. Si se aplica la comprobación par, el bit
de comprobación par es "1"; si se aplica la comprobación impar; el bit de comprobación impar es "0". El bit de
comprobación par e impar se calcula en la posición del bit de comprobación de la trama. Además, los equipos
receptores también llevan a cabo comprobación par e impar. Si la paridad de los datos de recepción es distinta al
valor de los enviados, se produce un error de comunicación.
Comprobación CRC
La comprobación utiliza formato de trama RTU. La trama incluye el campo de detección de error de trama, que está
basada en el método de cálculo CRC. El campo de cálculo CRC está compuesto por dos bytes, incluyendo así 16
números binarios. Éste se añade a la trama después de que el equipo transmisor lo calcule. El equipo receptor recalcula
el CRC de la trama recibida y lo compara con el valor contenido en el campo CRC recibido. Si los dos valores CRC son
distintos, existe un error de comunicación.
Durante el CRC, 0*FFFF será restaurado. Después tratará los siguientes 6 bytes continuos de la trama y el valor en el
registro. Para el CRC, sólo son efectivos datos de 8 bits por carácter. El bit de inicio, el de fin y el de comprobación par e
impar no se tienen en cuenta.
El cálculo del CRC utiliza los principios de comprobación CRC de un estándar internacional. Cuando el usuario está
editando cálculos CRC, éste se puede referir al cálculo estándar CRC para escribir el programa de cálculo CRC
requerido.
Para su referencia, a continuación se detalla una función simple para el cálculo CRC (programada en lenguaje C):
Protocolo de comunicación
121 - 160