Existe una gran cantidad de opciones para comunicaciones seriales remotas, la escogencia de la
opción adecuada debe hacerse basándose en los requisitos de la aplicación. Las opciones más
populares son el RS-232, RS-422 y RS-485, todas tienen el mismo formato de codificación, por lo
que hacer interfaces para comunicarlos entre sí, es bastante sencillo.
En la transmisión serial los datos son enviados por una línea de transmisión en forma de bits
separados en el tiempo, el receptor los toma según indique una señal de reloj, el cual puede venir
del equipo emisor o ser generado internamente por el receptor, con lo que disponemos de dos
alternativas de sincronización.
- Transmisión síncrona (con señal de reloj): este tipo de transmisión se realiza con dos señales, una
de las líneas lleva los datos y la otra, llamada reloj, indica el momento para la toma,
adicionalmente puede existir una señal de activación. El receptor está preparado para detectar el
final del mensaje según el número de ciclos del reloj (ancho de caracter en bits). La figura 1
muestra un ejemplo de transmisión de un caracter con toma de dato en flanco de subida, el inicio
se detecta mediante una línea de activación y el ancho es de ocho bits por caracter. Nótese que en
ejemplo se envía el bit menos significativo primero.
Activación
Reloj
Fig. 1. Transmisión serial
síncrona del caracter E5h
Datos con señal de reloj
1 0 1 0 0 1 1 1
Menor Mayor
tiempo
Daniel E. Vega M. COMUNICACIONES SERIALES REMOTAS Emisión:
16/05/03 P. 2 / 6
Ingeniero Electricista
La ventaja de este tipo de transmisión, es que a nivel de hardware es bastante sencilla, solo deben
cumplirse las consideraciones de tiempo mínimo, ya que la transición seleccionada (puede ser de
bajada o de subida, como en el ejemplo) activa la toma de dato (igual que en un registro de
desplazamiento) por lo que el reloj no necesariamente debe tener período fijo. Ejemplos de este
tipo de transmisión son los estándares SPI y el I2C.
- Transmisión asíncrona (sin señal de reloj): las características referentes a la organización de bits
por caracter deben ser consistentes para cualquier tipo de comunicación serial, ahora si fijamos una
rata de transmisión igual en todos los equipos, podemos prescindir de la señal externa de reloj (se
tiene un período establecido); de modo que sólo queda garantizar la sincronización inicial. Para
esto, se añade un bit (=1) de inicio, que no forma parte del caracter y sirve para que el receptor
sincronice la toma de los bits siguientes, la figura 2 muestra una transmisión de este tipo.
Inicio Parada
Datos
1 0 1 0 0 1 1 1
Mayor Menor
Período
Espera
Reloj generado
tiempo
Fig. 2. Transmisión serial asíncrona del caracter A7h
El bit de inicio señala el comienzo de la transmisión del caracter , el período queda definido como
1/rata_de_transmisión y la espera inicial corresponde a 1,5 veces el período. Dentro de la espera,
mitad de periodo podemos revisar si realmente se trata de un inicio o es ruido. Después de eso, se
toman los bits según indique el reloj generado. La zona sombreada corresponde a los indicadores
para sincronización y no forman parte del caracter transmitido. Puede aparecer un bit de paridad
antes del bit de de parada.
Un protocolo es un conjunto de normas que rigen al proceso de comunicación, éste se refiere a los
formatos de transmisión e interpretación de mensajes. Las características eléctricas quedan
Daniel E. Vega M. COMUNICACIONES SERIALES REMOTAS Emisión:
16/05/03 P. 3 / 6
Ingeniero Electricista
definidas por el estándar de transmisión. En algunos casos las características del estándar forma
parte del protocolo.
Variable eléctrica manipulada: Una transmisión se realiza manipulando una variable transmisible
en un conductor, el punto que nos interesa es el de las variables eléctricas y un mensaje puede
transmitirse variando alguna propiedad transmisible. La variable manipulada puede ser voltaje o
corriente, ya sea en nivel, frecuencia o fase. Por ejemplo, mediante una línea telefónica (que
transmite señales alternas), un mensaje se transmite variando la frecuencia de una señal presente.
Este método se conoce como modulación de frecuencia y fué muy utilizado para registro digital en
medios magnéticos de audio casero en la década de los ochenta, actualmente se utiliza
extensamente en el acceso telefónico a redes. La figura 3 muestra un ejemplo de manipulación de
variables para codificar un mensaje.
Voltaje o
corriente
1 0 1 0 0 1 1 1
Frecuencia
tiempo
Fig. 3. Transmisión serial por variación de voltaje, corriente o frecuencia
Niveles de detección: cualquiera sea la propiedad manipulada, deben definirse niveles de detección
para discriminar un uno lógico de un cero. Cuando se comunican periféricos a corta distancia y
baja frecuencia en ambientes poco ruidosos pueden aplicarse los criterios que gobiernan las
compuertas lógicas TTL. Pero para transmisiones a mayor distancia, las cosas se complican, y la
selección de niveles de detección debe orientarse a minimizar efectos del ruido electromagnético y
pérdidas. Bajo esa premisa se definen los niveles de detección para cada estándar según su
aplicación.
Frecuencia máxima: las características anteriores se definen para una frecuencia máxima de
trabajo, generalmente las frecuencias están normalizadas y en el caso de transmisiones asíncronas,
definirlas es requisito indispensable. La rata de transmisión se define en baudios que significa bits
por segundo.
Transmisión y recepción simultáneas: Cuando se conectan solo dos equipos y existen líneas
separadas para transmisión y recepción (como en RS232C), los mismos pueden transmitir a la vez
Daniel E. Vega M. COMUNICACIONES SERIALES REMOTAS Emisión:
16/05/03 P. 4 / 6
Ingeniero Electricista
que reciben, pero de no ser así, debe establecerse un control para la línea de transmisión, esto lo
define el estándar, que establece la posibilidad de existencia de un dispositivo maestro y el modo
de control de la línea, así como la simultaneidad de recepción y transmisión (full duplex) o su
separación en el tiempo (half duplex).
Dispositivos por línea de transmisión: Los estándares definen el número máximo de equipos que
pueden conectarse a una línea de transmisión (una línea puede tener varios conductores).
Otras particulares: Algunos protocolos definen además de las características antes mencionadas,
otras como son características del conector (incluyendo dimensiones), colores de los cables,
materiales y otras.
Selección del destino de comunicación: Cuando varios dispositivos están conectados a una línea, el
protocolo debe establecer la forma de discriminar entre ellos, el índice para discriminación se
llama dirección y por lo general, el ancho en bits de la dirección determina el número máximo de
dispositivos conectables.
No todos los protocolos son normalizados, es más, podemos crear y definir protocolos según los
requisitos de la aplicación.
3. El estandar RS-232
En 1960 fué introducido el estándar RS-232 por la EIA (Electronic Industry Association) para
comunicación de computadoras con periféricos (impresoras, terminales, etc.) y todavía es uno de
los más utilizados.
El estándar RS-232 define niveles de voltaje referidos a tierra, y lo hace de la siguiente manera: la
tensión para transmisión es de +3 a +25V para un cero lógico, y una tensión de –3 a –25V
corresponde a un uno lógico. Para recepción los niveles de detección corresponden a ±3V. De –3 a
+3 V hay una zona muerta para inmunidad al ruido. Normalmente los niveles para transmisión se
implementan de 5 a 12 V y en algunas versiones los niveles de la zona muerta puede bajar hasta
±1V. También quedan definidas las características de velocidad originalmente hasta 19200 bps.
Daniel E. Vega M. COMUNICACIONES SERIALES REMOTAS Emisión:
16/05/03 P. 5 / 6
Ingeniero Electricista
Ya definido el estándar, debe establecerse la forma en que se organizan los bits que serán
transmitidos, el emisor debe separar el carácter en bits para enviarlo y el receptor debe reintegrarlo
de forma consistente, para eso el receptor debe detectar el final de un carácter para recibir el
siguiente (si lo hay). Esto se hace asignando un número fijo de bits por caracter. Para la
separación/integración hay dos opciones lógicas, se transmite de izquierda a derecha, lo que
corresponde al bit más significativo primero o de derecha a izquierda, que corresponde al bit
menos significativo antes (normalmente utilizado).
Un bit de paridad puede estar presente al final de cada caracter, este se recalcula en el receptor para
detectar caracteres mutilados, el bit en cuestión está asociado a la cantidad de unos o ceros en el
caracter, sirve para detectar alteraciones sencillas, cuando cambia un bit, se detecta con el el bit de
paridad; si cambian dos bits, el detector de paridad es consistente y no refleja el error.
Para mensajes de texto, se definió en los Estados Unidos de Norteamérica el código ASCII (de las
siglas de American Standard Code for Information Interchange) en versiones de 7 y 8 bits, pero
evidentemente no todos los mensajes transmitidos son de texto, de modo que una transmisión
serial presenta varias opciones para cantidad de bits por carácter, y la cantidad debe quedar bien
definida para una correcta comunicación.
Para el estandar RS-232 y sus variantes posteriores (RS-422 y RS-485), se define el formato de
caracter según las características presentadas a continuación:
La figura 4 muestra los niveles de recepción y transmisión para el caracter D (44h) 8 bits por
caracter, ninguna paridad y 1 bit de parada (lsb primero)
+12 V.
0 0 1 0 0 0 1 0
lsb msb
El estándar RS-232 además posee señales adicionales para establecer cual es el dispositivo que
tiene el control de la comunicación, sin embargo eso depende del protocolo específico de
comunicación. Hoy en día la mayoría de las comunicaciones seriales basadas en el estándar RS-
Daniel E. Vega M. COMUNICACIONES SERIALES REMOTAS Emisión:
16/05/03 P. 6 / 6
Ingeniero Electricista
232 se hacen con dos conductores (transmisión y recepción) más tierra, con éstos es suficiente para
una comunicación efectiva. La figura 5 muestra la distribución de terminales en los conectores más
populares asociados a este tipo de estándar y la tabla 2 los describe brevemente.
Los sistemas digitales trabajan en niveles lógicos positivos, por lo tanto se requiere de un circuito
interfaz que transforme los voltajes TTL o CMOS a niveles RS-232, existen varias opciones para
eso, a continuación las figuras 6 y 7 muestran dos circuitos de aplicación.
+5V
1K
1 5
TX RX
2
4
1K 4N3
5
DTR*
1K
5 1
RX TX
4 2
4N3 1K
RTS* 5
RS-485 MODBUS
1- Introducción
El estándar RS422 es una variación para largas distancias que refleja directamente al RS232 y
sirve para comunicar dos equipos entre sí, utiliza cuatro conductores en pares diferenciales además
del apantallamiento (frente a los dos más tierra del RS232) y permite comunicación bidireccional
completa (Full Duplex), es decir puede transmitir y recibir simultáneamente.
El estándar RS485 es similar al RS422, pero utiliza un solo par de cables para recibir y transmitir,
es decir que mientras hay transmisión, no hay recepción en un mismo equipo, o en todo caso,
recibe lo que está enviando el mismo (half duplex).
El RS485 por utilizar un solo par (además del apantallamiento) se conecta de forma igual en todos
los dispositivos, solo debe respetarse la polaridad, así el puerto de comunicación es bidireccional;
esto permite conectar varios dispositivos a la vez, la cantidad de estos está normalizada a 32 por
cada lazo, todos conectados al mismo par.
El formato de comandos (protocolo) debe ser capaz de direccionar al dispositivo con el cual se
Daniel E. Vega M. RS-485 MODBUS Emisión:
16/05/03 P. 2 / 10
Ingeniero Electricista
desea establecer comunicación; la forma de hacerlo depende del criterio de los diseñadores de un
dispositivo en especial. Al enviar un comando, el dispositivo direccionado responde solo si está
conectado y el comando resulta válido.
Mediante RS-485 se pueden establecer redes de usuarios de computadoras, donde cada equipo
responde a una dirección, sin embargo la aplicación más trascendente que tiene este estándar la
constituye una red de dispositivos esclavos (controladores por ejemplo) encuestados por un
dispositivo maestro.
El dispositivo maestro puede ser una computadora con capacidad de comunicación RS485 o un
PLC, el dispositivo maestro no tiene dirección y su función es la de encuestar y modificar el estado
de cada dispositivo esclavo. Cabe destacar que para elaborar una red de este tipo, se requiere
estudiar a fondo la compatibilidad de los equipos encuestados, pues según la marca, los comandos
y direccionamiento pueden cambiar y hasta ser conflictivos entre sí, por esto se recomienda
conectar dispositivos de una sola familia por lazo, pudiendo haber varios lazos en un PC o PLC
maestro.
1200 m.
CONVERTIDOR
RS-232 / RS-485
Una vez encuestados y procesados los datos, el programa puede almacenar, elaborar registros de
variables en el tiempo, generar alarmas, cambiar configuraciones de los dispositivos esclavos,
generar acciones correctivas y hasta generar archivos de estado en formatos reconocibles para que
otros usuarios conectados en red al maestro puedan procesar esa información. Con esto, se pueden
generar hasta instrumentos virtuales como registradores o procesadores que permitan obtener
variables calculadas a partir de las primarias sensadas.
Por las características descritas anteriormente, RS485 es el estándar industrial por excelencia a
nivel mundial, utilizado para monitorizar y comandar PLCs, instrumentos remotos, controladores y
otros dispositivos, ofreciendo un manejo inmediato y certero, y si además el maestro tiene
conexión a una red de información (ver figura 3), los datos estarán al alcance de cualquier
departamento interesado en monitorizar las variables y acciones tomadas.
Daniel E. Vega M. RS-485 MODBUS Emisión:
16/05/03 P. 3 / 10
Ingeniero Electricista
Servidor
de la Red
Datos
compartidos
1200 m.
CONVERTIDOR
RS-232 / RS-485
Ruido electromagnético
en planta: motores, PLC 1 PLC 2 PLC 3 PLC 32
balastos, tiristores
CONTROLADORES EN PLANTA
Linea de transmisión: Par trenzado con apantallamiento, hasta 1200 metros de cableado.
Comunicación serial asícrona half duplex con ratas de transmisión estándar de RS232.
Variable manipulada: Voltaje diferencial.
Equipos por lazo: 32, algunos fabricantes reportan hasta 128.
Daniel E. Vega M. RS-485 MODBUS Emisión:
16/05/03 P. 4 / 10
Ingeniero Electricista
El cableado para una red RS485 es bastante sencillo, la conexión se hace en paralelo y solo existe
un brazo por cada lazo, debe respetarse la polaridad y poner impedancias terminales en los
extremos del cableado según lo recomendado por el fabricante de la interfaz y los equipos. Por
ejemplo como indica la figura 4. El cable recomendado es de dos conductores multifilares
trenzados y apantallados del tipo Belden 9271 Twinax o similar.
120 Ω
Maestro
D+
D-
Pant.
120 Ω
Si se dispone de un convertidor RS422, deben conectarse el terminal TX + con RX+, al igual que
TX – con RX- para hacer dos únicos puntos de conexión Data + y Data -.
120 Ω
RX+
+
Maestro con RX-
conexión
RS422 TX+
TX-
+
Pant.
Como características heredadas de la transmisión serial RS232 parte de las definiciones están
orientadas a establecer parámetros básicos como velocidad de transferencia (en baudios), bits por
dato y tipo de paridad, adicionalmente se establece un formato de codificación propio para cada
modelo de equipo. Por ser una comunicación semi duplex, también se establece la detección de fin
Daniel E. Vega M. RS-485 MODBUS Emisión:
16/05/03 P. 5 / 10
Ingeniero Electricista
del mensaje, algunos definen un caracter o una secuencia de éstos y otros utilizan “tiempos
muertos” que se miden para detectar el final de un comando, si no hay transmisión en un periodo
mayor, se asume que el mensaje está completo aunque carezca de sentido. Los protocolos más
difundidos soportados por los controladores son el protocolo ASCII y el protocolo Modbus
Remote Terminal Unit (RTU), este último más comúnmente implementado con vistas a una
estandarización.
Protocolo ASCII:
Es un protocolo sencillo, pero es distinto para cada tipo de equipo, trabaja con un modelo de
pregunta y respuesta mediante cadenas de caracteres de 7 bits de ancho (ASCII). El dispositivo
maestro codifica en un paquete la dirección del dispositivo encuestado más la pregunta o comando
más argumento (si es el caso), el dispositivo encuestado procesa el mensaje, espera un tiempo y
responde (si es el caso) en un formato similar. La cadena de comando puede incluir un apéndice
calculado con los códigos de los caracteres del mensaje para detectar posibles pérdidas de
información, una especie de paridad del mensaje completo, este proceso es normalmente conocido
como “checksum” y es particular según el modelo del equipo.
Es muy funcional y algo complejo. Anteriormente llamado Gould Modicon, es el protocolo más
difundido para comunicaciones RS-485, y apunta a una estandarización. El formato de
comunicación es serial con bit de inicio, 8 bits de datos (LSB primero), con paridad opcional y bit
de parada. Las ratas de transferencia son las mismas del RS-232. La encuesta y configuración de
equipos se simplifica a escritura (configuración) y lectura (inspección) de bits y registros de 16
bits. La filosofía es que mediante este protocolo, el equipo esclavo permite que el maestro
manipule directamente la tabla de registros que contienen la información y los parámetros de
configuración del equipo, o al menos lo simula. La ubicación de la información, permisos de
accesos y número de máximo de argumentos dependen del modelo del equipo. La transmisión se
hace mediante paquetes, el paquete contiene la dirección del equipo, un campo para el comando, y
un campo para uno o varios datos. Adicionalmente incluye un campo de seguridad de 16 bits para
detectar errores conocido como CRC (de las siglas en ingles de Cyclic Redundancy Check-sum)
que se transmite en dos bytes.
Código Función
01 Lectura de salida digital (lee un bit)
02 Lectura de entrada digital (lee un bit)
03 Lectura de registros internos (lee un grupo de registros)
04 Lectura de registros de entrada (lee un grupo de registros)
05 Escritura de salida digital (escribe un bit)
06 Escribe un solo registro
08 Prueba de comunicación y diagnóstico
16 (10h) Escribe varios registros
Daniel E. Vega M. RS-485 MODBUS Emisión:
16/05/03 P. 6 / 10
Ingeniero Electricista
El primer caracter, es la dirección del dispositivo esclavo, un rango válido es 0 a 255. El segundo
caracter es el código de la función. Las funciones que permite el protocolo Modbus, están
codificadas en enteros de ocho bits (0-255) y las más comunes se indican en la tabla 2. Algunos
fabricantes agrupan funciones indiferentemente si se tratan de salidas o entradas, refieriéndose a
los campos como registros internos sin importar su función. Luego de una secuencia de caracteres,
un tiempo muerto de 30 bits o 3 caracteres a la rata de transmisión seleccionada, será interpretado
por los dispositivos esclavos como final del mensaje y se procederá a su interpretación.
La respuesta viene en un formato similar que incluye un campo para especificar la cantidad de
bytes que conforman la sección de datos.
el formato de la respuesta es
ff = prende ; 00 = apaga
Si el comando fué efectivo, la respuesta es un mensaje idéntico (eco) enviado por el esclavo.
Ejemplo: Prender salida digital 06 del esclavo 2.
Mensaje enviado (mismo recibido luego): 02 05 00 06 FF 00 CRC CRC
Si el comando fué efectivo, la respuesta es un mensaje idéntico (eco) enviado por el esclavo.
Ejemplo: Escriba 1F2h en registro 00FAh de esclavo 2.
Mensaje enviado (igual al recibido luego): 02 06 00 FA 01 F2 CRC CRC
Si el comando fué efectivo, la respuesta es un mensaje idéntico (eco) enviado por el esclavo.
Ejemplo: Escriba 1F2h en registro 00FAh de esclavo 2.
Mensaje enviado (igual al recibido luego): 02 06 00 FA 01 F2 CRC CRC
Dir func. Dir. Inicial Num. de Reg. bytes Dato 1 Dato n CRC16
16 HI LO HI LO HI LO HI LO
Daniel E. Vega M. RS-485 MODBUS Emisión:
16/05/03 P. 8 / 10
Ingeniero Electricista
Algoritmos de cálculo del CRC16 se muetran a continuación, no existe un orden normalizado para
la transmisión de los bytes de CRC, pudiendo ser HI-LO o LO-HI, esto lo informa el fabricante.
Comando: 28 08 55 66 77 88
CRC: 31 B7
Paquete: 28 08 55 66 77 88 31 B7
Comando: 09 06 00 07 00 C8
CRC: 38 D5
Paquete: 09 06 00 07 00 C8 38 D5
Nótese que en este caso se transmite primero el byte menos significativo del CRC.
4- Recomendaciones
• Disponga del cable adecuado y las terminaciones correctas, de otro modo, no se cumplirán las
especificaciones de 1200 metros e inmunidad al ruido eléctrico.
• Utilice convertidores con control automático de flujo (automatic flow control), éstos se
configuran para la velocidad deseada, ancho de carácter y paridad. En teoría, el dispositivo
maestro puede controlar el flujo mediante su programa, éste debe tener instrucciones para
liberar la línea de comunicación justo al finalizar una transmisión de modo que pueda tener
lugar la recepción. En la práctica los integrados controladores de comunicación serial tienen
buffers y no siempre se sabe en qué momento se ha transmitido completamente un comando, si
se espera demasiado, se puede superar el tiempo muerto (unos pocos ms), lo que trae como
consecuencia una pérdida en el paquete recibido como respuesta.
• Eficiencia: Con las ratas actuales de transferencia serial, es posible encuestar todas las
variables de una red completa de dispositivos (hasta 32) en el peor de los casos en un tiempo
no superior a los 10 s.; es decir desde la activación de una alarma hasta su información a un
usuario remoto nunca transcurrirán mas de 10 segundos; adicionalmente, si el programa se
elabora previendo este caso, la encuesta se puede separar en dos partes, una de chequeo previo
general (para las variables más dinámicas) y luego establecer prioridades de consulta. Con esto
los tiempos de retardo en actualización bajan considerablemente.
• Seguridad: Evite las complicaciones innecesarias, las aplicaciones deben exhibir robustez, un
programa sencillo tiene menos posibilidades de colapso, y es que una aplicación de este tipo no
puede “trancarse” y perder información, mucho menos configurar erróneamente algún equipo.
En este mismo sentido, prevea la existencia de errores de comunicación para que no hagan
colapsar al sistema. Es frecuente que al mutilarse un mensaje, una aplicación mal diseñada
quede en un ciclo infinito en espera del final del mismo. La filosofía del tiempo muerto en el
programa maestro, como indicador de fin de mensaje es válida y muy recomendable.
Daniel E. Vega M. RS-485 MODBUS Emisión:
16/05/03 P. 10 / 10
Ingeniero Electricista
RO Vcc=5V
RX
RE B Fig. 6. Interfaz entre USART
DE A TTL y bus RS-485
DI GND
TX
MAX487
CONTROL DEL D-
BUS D+
Programa en ensamblador PIC para calcular el checksum CRC16 (ejemplo para un PIC16F627).
movlw 0xFF;
movwf CRCLO;
movwf CRCHI; en CRC 0xffff
movf INIP, W;
movwf FSR; apuntador
decf FSR;
OTROCAR incf FSR;