El estándar RS485, también conocido como EIA/TIA-485, se ha consolidado como una piedra angular en el ámbito de las comunicaciones industriales. Su simplicidad, robustez y la gratuidad de su uso lo convierten en una opción predilecta para la interconexión de una vasta gama de dispositivos, desde sensores y actuadores hasta procesadores como Arduino, permitiendo la lectura y escritura de datos en entornos exigentes. Este artículo explora en profundidad las conexiones de bucle de corriente en el contexto del RS485, desentrañando su funcionamiento, aplicaciones y las mejores prácticas para su implementación.

Fundamentos del RS485: Más Allá de un Simple Cable
El RS485 es un protocolo de capa física según el modelo OSI, lo que significa que define las características eléctricas y los métodos de transmisión de señal, pero no impone restricciones sobre el contenido o la codificación de los mensajes. Esta flexibilidad permite su uso para transmitir cualquier tipo de señal digital, como datos binarios, PWM, o incluso servir como capa física para protocolos de nivel superior como Modbus.
La comunicación RS485 se basa en un esquema de señalización balanceado y diferencial utilizando dos conductores, denominados A (no inversor) y B (inversor). Para minimizar la interferencia de ruido, se emplea comúnmente un cable de par trenzado. La lógica de transmisión se basa en la inversión de la tensión entre estos dos hilos: la combinación de A+ y B- se interpreta como estado LOW, mientras que A- y B+ se consideran estado HIGH. Esta transmisión diferencial confiere al RS485 una notable inmunidad al ruido en modo común, una ventaja crucial en entornos industriales.
Una de las características más destacadas del RS485 es su capacidad de transmisión a larga distancia. El alcance está inversamente relacionado con la velocidad de transmisión: es posible alcanzar 35 Mbps en distancias inferiores a 10 metros, y mantener hasta 100 Kbps en tramos de hasta 1200 metros. Esta escalabilidad en distancia y velocidad lo hace adaptable a diversas aplicaciones, desde la automatización de plantas industriales hasta la monitorización de sistemas fotovoltaicos.
El estándar RS485 soporta configuraciones multipunto, permitiendo la conexión de hasta 32 estaciones de forma nativa. Con el uso de repetidores, este número puede incrementarse significativamente, y es posible acceder hasta 32, 128 o 254 estaciones empleando un único par trenzado, dependiendo de la configuración específica y los transceptores utilizados.
Modos de Comunicación RS485
El RS485 permite establecer comunicación en tres modos fundamentales:
- Simplex: La comunicación se realiza en una sola dirección. Un dispositivo actúa como transmisor y otro como receptor de forma continua, sin posibilidad de intercambio bidireccional.
- Half-Duplex: La comunicación es bidireccional, pero no simultánea. Los dispositivos pueden actuar como emisores o receptores, pero no al mismo tiempo. Para lograr esto, los pines RE (receiver enable) y DE (driver enable) del transceptor se controlan para alternar entre los modos de recepción y transmisión.
- Full-Duplex: La comunicación es bidireccional y simultánea. Para implementar esta modalidad en RS485, se requiere el uso de dos canales de comunicación independientes (dos pares de hilos A/B) y un transceptor capaz de operar simultáneamente como emisor y receptor en cada terminal. Esto a menudo implica el uso de dos conversores RS485 por dispositivo.

Integración con Arduino y Otros Dispositivos
La integración de RS485 con plataformas de desarrollo como Arduino es sorprendentemente sencilla y económica. Los conversores de RS485, como el popular módulo basado en el MAX485, son dispositivos de bajo costo, a menudo disponibles por menos de un euro en plataformas de comercio electrónico internacionales.
Esquema de Montaje Básico
La conexión de un módulo RS485 a un Arduino sigue un patrón general:
- Alimentación: El módulo se alimenta conectando los pines Vcc y Gnd a los correspondientes de 5V y Gnd del Arduino.
- Conexión del Bus: Los conductores A y B del par trenzado que constituye el bus RS485 se conectan a los terminales designados en el módulo. Estos mismos hilos se conectarán a todos los dispositivos que formen parte del mismo bus.
- Control de Dirección (Emisor/Receptor): Los pines RE (Receiver Enable) y DE (Driver Enable) del módulo se utilizan para configurar su estado. Conectarlos a Vcc lo configura como emisor, mientras que conectarlos a Gnd lo configura como receptor.
- Conexión de Datos: El pin DI (Drive Input) del módulo se conecta a la salida de transmisión de datos del microcontrolador (por ejemplo, el pin TX de la UART de Arduino) cuando actúa como emisor. El pin RO (Receiver Output) se conecta a la entrada de recepción de datos del microcontrolador (por ejemplo, el pin RX de la UART de Arduino) cuando actúa como receptor.
Para la comunicación half-duplex, donde un dispositivo debe alternar entre emitir y recibir, los pines RE y DE se conectan conjuntamente a una salida digital del Arduino. Esto permite cambiar su estado de Gnd a Vcc según sea necesario, alternando la función del módulo.
Si la aplicación solo requiere una función fija de emisor o receptor, se puede simplificar la conexión. Por ejemplo, para un receptor permanente, RE se conecta a Gnd y DE se deja desconectado o se conecta a Gnd. Para un emisor permanente, DE se conecta a Vcc y RE se deja desconectado o se conecta a Vcc.

Comunicación Full-Duplex con Múltiples Módulos
Como se mencionó, la comunicación full-duplex (simultánea emisión y recepción) con RS485 requiere dos conversores por dispositivo y dos buses RS485 paralelos e independientes: uno dedicado a la transmisión (TX) y otro a la recepción (RX). Cada conversor se configura para operar exclusivamente en uno de estos roles y se conecta a su respectivo bus.
RS485 en Combinación con Otros Protocolos y Estándares
El RS485 a menudo se encuentra como la capa física para la implementación de protocolos de comunicación de nivel superior, siendo Modbus uno de los más prevalentes en la industria.
RS485 vs. Modbus vs. 4-20mA
Es común encontrar los términos Modbus, RS485 y 4-20mA en el contexto de la comunicación industrial, pero es crucial entender sus roles distintos:
- Modbus: Es un protocolo de comunicación, no una capa física. Define las reglas para el intercambio de datos entre dispositivos en una red, típicamente en una configuración maestro-esclavo (o cliente-servidor). Modbus puede operar sobre diversas capas físicas, incluyendo RS-485, RS-232 y TCP/IP. Se utiliza ampliamente para transmitir datos de medición y control de procesos en la automatización industrial.
- RS485: Es un estándar de capa física que especifica cómo se transmiten eléctricamente los datos a través de un medio físico. Permite la comunicación semidúplex o full-duplex a largas distancias y soporta topologías multipunto. RS485 es frecuentemente la capa física elegida para Modbus debido a su robustez.
- 4-20mA: Es un estándar de señal analógica, no un protocolo digital. En un bucle de corriente de 4-20mA, la magnitud de la corriente representa la medición de un sensor (por ejemplo, 4mA para 0% y 20mA para 100%). Es resistente al ruido eléctrico y a la pérdida de señal en largas distancias, siendo común para transmitir datos de sensores analógicos como temperatura o presión.
En resumen, RS485 es el "carretera" por la que viajan los datos, Modbus es el "vehículo" y las "reglas de tráfico" que definen cómo se transportan esos datos, y 4-20mA es un tipo de "señal analógica" que representa mediciones continuas.
Comparativa RS232 vs. RS485
El RS485 surgió como una evolución del RS232 para superar sus limitaciones. Mientras que el RS232 está diseñado para comunicaciones punto a punto (un transmisor y un receptor) y está limitado a distancias de aproximadamente 15 metros con velocidades de hasta 1 Mb/s, el RS485 ofrece:
- Mayor Distancia: Hasta 1200 metros (4000 pies).
- Mayor Velocidad: Hasta 10 Mb/s a 15 metros, y velocidades más bajas a mayores distancias.
- Multipunto: Soporte para múltiples dispositivos en el mismo bus.
- Robustez: Mayor inmunidad al ruido gracias a la transmisión diferencial.
La interfaz RS232 utiliza niveles de tensión y es sensible a las diferencias de potencial de tierra, mientras que el RS485 emplea un sistema de tensión diferencial que lo hace eficaz en entornos con mayor ruido eléctrico.
Consideraciones Críticas para un Diseño de Red RS485 Exitoso
El diseño e implementación de una red RS485 robusta requiere atención a varios detalles clave:
Selección del Cableado
El sistema de transmisión RS485 se beneficia enormemente del uso de cables de par trenzado para maximizar sus características de rechazo de ruido. Se recomienda una impedancia característica del cable de 120 ohmios. Marcas como Belden, Alpha Cable, General Cable, Connect-Air y Grupo CAE ofrecen cables adecuados (por ejemplo, Belden 9841, 9842, 82841, 82842, 89841, 89842; Alpha Cable 6412, 6413; General Cable C0841A, C0842A; Connect-Air W241P2050FRIB; Grupo CAE B9842NHT500), típicamente de calibre 24 AWG (0.20 mm²), con uno o dos pares. Es importante evitar el uso de cable Ethernet estándar y ceñirse a las especificaciones recomendadas.

Terminación del Bus
A medida que el cable se alarga, actúa como una línea de transmisión, y las señales pueden reflejarse en los extremos. Para suprimir estas reflexiones y asegurar la integridad de la señal, es crucial instalar resistencias de terminación entre los pares de señales en ambos extremos físicos del bus.
- Valor de la Resistencia: La resistencia de terminación debe coincidir con la impedancia característica del cable. Para cables de 120 ohmios, se utilizan resistencias de 120 ohmios.
- Ubicación Correcta: Las resistencias deben colocarse en ambos extremos del cable. No se deben instalar más de dos resistencias de terminación en un solo bus. Muchos dispositivos RS485 (como los de BioStar) incorporan resistencias de terminación que se pueden habilitar mediante interruptores o configuración de software, simplificando la instalación si un dispositivo se encuentra en uno de los extremos.
Número Máximo de Dispositivos
Un dispositivo maestro puede gestionar hasta 31 dispositivos esclavos en una red RS485 estándar. Sin embargo, en aplicaciones específicas como las de BioStar, el número máximo de dispositivos de huellas dactilares que se pueden conectar a través de RS485 puede ser menor (por ejemplo, 8), y se recomienda considerar el número de usuarios y dispositivos conectados para evitar lentitud en la coincidencia.
Dispositivos como CoreStation pueden tener especificaciones diferentes, ofreciendo múltiples puertos RS485 y admitiendo un número total de dispositivos esclavos considerablemente mayor (por ejemplo, hasta 31 por puerto y un total de 64).
Topología y Cableado
- Evitar "Talones" Largos: Se deben evitar derivaciones o "talones" largos desde el bus principal hacia los dispositivos. Estos talones actúan como líneas de transmisión cortas y deben mantenerse lo más cortos posible.
- No Usar Cableado en Estrella: El cableado en forma de estrella complica significativamente la supresión de reflexiones de línea y no es compatible con la naturaleza de línea de transmisión del bus RS485. La topología de bus lineal o en cadena margarita es la recomendada.
Configuracion de módulos Ebyte de adquisición datos Red Modbus RTU. (entradas digitales y analogas)
Conexión a Tierra
Un error común es pensar que RS485 solo requiere dos hilos. Sin embargo, se recomienda un tercer hilo de tierra (0V) para igualar las diferencias de voltaje entre los nodos. Las diferencias de potencial de tierra pueden degradar la calidad de la señal y la fiabilidad del transceptor, por lo que deben mantenerse lo más bajas posible dentro de la red.
Aplicaciones Industriales del RS485
La versatilidad y robustez del RS485 lo han convertido en un estándar de facto en numerosas aplicaciones industriales:
- Automatización de Plantas Industriales: Conexión de PLCs, sensores, actuadores y sistemas de control distribuido.
- Automatización de Edificios: Control de sistemas HVAC, iluminación, seguridad y acceso.
- Monitorización de Sistemas Fotovoltaicos: Recopilación de datos de inversores, medidores y sensores ambientales.
- Control de Iluminación y Sonido: Gestión de grandes sistemas en eventos, conciertos y teatros.
- Automoción y Aeronáutica: Interconexión de dispositivos y subsistemas.
- Sistemas de Seguridad: Conexión de cámaras, sensores y unidades de control.
- Medidores Inteligentes (Smart Meters): Comunicación en redes de distribución eléctrica y de gas.
Ejemplos de Código y Comunicación
El RS485, al ser una capa física, puede ser utilizado para implementar diversos protocolos de comunicación. Los ejemplos de código para Arduino que utilizan el puerto serie son directamente aplicables, adaptando la configuración del conversor RS485.
Comunicación Simplex
En un escenario simplex, un Arduino emisor envía un byte a un Arduino receptor. El código en el emisor utiliza Serial.write() para enviar datos, mientras que el receptor utiliza Serial.available() y Serial.read() para capturarlos.
Código Emisor (Ejemplo):
void setup() { Serial.begin(9600); // Inicializa la comunicación serial}void loop() { Serial.print("Mensaje desde emisor: "); Serial.println(millis() / 1000); // Envía el tiempo transcurrido en segundos delay(1000);}Código Receptor (Ejemplo):
void setup() { Serial.begin(9600); // Inicializa la comunicación serial}void loop() { if (Serial.available()) { String data = Serial.readStringUntil('\n'); Serial.print("Recibido: "); Serial.println(data); }}
Comunicación Half-Duplex
Para la comunicación half-duplex, se necesita controlar los pines RE y DE para alternar entre transmisión y recepción. Un pin digital del Arduino se dedica a esta tarea. El ejemplo simula una solicitud de datos de un maestro a un esclavo. El maestro envía un carácter ('H'), y el esclavo responde con un valor numérico.
Código Maestro (Ejemplo):
const int DE_RE_PIN = 2; // Pin conectado a DE y REvoid setup() { Serial.begin(9600); pinMode(DE_RE_PIN, OUTPUT); digitalWrite(DE_RE_PIN, LOW); // Inicialmente como receptor}void loop() { digitalWrite(DE_RE_PIN, HIGH); // Configurar como emisor Serial.write('H'); // Enviar solicitud digitalWrite(DE_RE_PIN, LOW); // Configurar como receptor unsigned long startTime = millis(); while (millis() - startTime < 100) { // Esperar respuesta if (Serial.available()) { int response = Serial.read(); Serial.print("Respuesta recibida: "); Serial.println(response); break; } } delay(2000);}Código Esclavo (Ejemplo):
const int DE_RE_PIN = 2; // Pin conectado a DE y REvoid setup() { Serial.begin(9600); pinMode(DE_RE_PIN, OUTPUT); digitalWrite(DE_RE_PIN, LOW); // Inicialmente como receptor}void loop() { if (Serial.available()) { char request = Serial.read(); if (request == 'H') { int dataToSend = 42; // Dato de ejemplo digitalWrite(DE_RE_PIN, HIGH); // Configurar como emisor Serial.write(dataToSend); // Enviar dato digitalWrite(DE_RE_PIN, LOW); // Configurar como receptor } }}
Conclusión
El RS485, con su robustez, alcance y flexibilidad, sigue siendo un estándar de comunicación indispensable en la industria moderna. Las conexiones de bucle de corriente, cuando se implementan correctamente con el cableado adecuado, terminaciones correctas y una comprensión clara de los modos de operación, aseguran una transferencia de datos fiable y eficiente, incluso en los entornos más desafiantes. Su capacidad para servir como capa física para protocolos como Modbus consolida aún más su posición como una tecnología fundamental para la automatización y el control industrial.