El cálculo del CRC es iniciado primeramente cargándose una variable de 16 bits (referenciado a partir de ahora
como variable CRC) con el valor FFFFh. Después se ejecutan los pasos de acuerdo con la siguiente rutina:
1. Se somete el primer byte del mensaje (solamente los bits de datos - start bit , paridad y stop bit no son
utilizados) a una lógica XOR (O exclusivo) con los 8 bits menos significativos de la variable CRC, retornando
el resultado en la propia variable CRC;
2. Entonces, la variable CRC es desplazada a una posición a la derecha, en dirección al bit menos significativo,
y la posición del bit más significativo es completada con 0 (cero);
3. Luego del desplazamiento, el bit de flag (bit que fue desplazado fuera de la variable CRC) es analizado,
ocurriendo lo siguiente:
Si el valor del bit es 0 (cero), nada será hecho;
Si el valor del bit es 1, el contenido de la variable CRC es sometido a una lógica XOR con un valor
constante de A001h y el resultado es retornado a la variable CRC.
4. Se repiten los pasos 2 y 3 hasta que hayan sido hechos ocho desplazamientos;
5. Si repite los pasos 1 a 4, utilizando el próximo byte del mensaje, hasta que todo el mensaje haya sido
procesado.
El contenido final de la variable CRC es el valor del campo CRC que es transmitido en el final del telegrama. La
parte menos significativa es transmitida por primero (CRC-) y a continuación la parte más significativa (CRC+).
Tiempo entre Mensajes:
En el modo RTU no existe un carácter específico que indique el inicio o el fin de un telegrama. De esta forma, lo
que indica cuando un nuevo mensaje empieza o cuando termina es la ausencia de transmisión de datos en la red
por un tiempo mínimo de 3,5 veces el tiempo de transmisión de una palabra de datos (11 bits). Siendo así, en caso
de que un telegrama se haya iniciado luego de transcurrido este tiempo mínimo sin transmisión, los elementos
de la red asumirán que el carácter recibido representa el inicio de un nuevo mensaje. Y, de la misma forma, los
elementos de la red asumirán que el telegrama llegó al fin luego de transcurrido nuevamente este tiempo.
Si durante la transmisión de un telegrama, el tiempo entre los bytes fuera mayor que este tiempo mínimo, el
telegrama será considerado inválido, ya que el convertidor descartará los bytes ya recibidos y montará un nuevo
telegrama con los bytes que estén siendo transmitidos.
La tabla a seguir en los muestra los tiempos para tres tasas de comunicación distintas.
Figura 9.19: Tiempos implicados durante la comunicación de un telegrama
t
= tiempo para transmitir una palabra del telegrama.
11 bits
tiempo entre bytes = tiempo entre bytes (no puede ser mayor que T3,5x).
t
= intervalo mínimo para indicar el inicio y el fin del telegrama (3,5 x T 11bits).
3,5x
t
t
t
3,5x
11bits
Telegrama
Tabla 9.21: Tiempo de transmisión del telegrama
Tasa de comunicación [kbps]
9600
19200
38400
REDES DE COMUNICACIÓN
t
entre los bytes
3,5x
t
[μs]
t
[ms]
11 bits
3,5x
1146
4,010
573
2,005
285
1,003
9
MVW3000 | 9-39