39. Tema 1.1: Protocolo RS232

 ¿Qué es el RS-232?

El RS-232 (Recommended Standard 232) es un estándar para comunicación serie asíncrona que se popularizó en los años 60-70. Aunque hoy se usa menos, fue fundamental en computación e industria por décadas.

La comunicación serie RS232 no desaparecerá en poco tiempo. A pesar de las innovaciones en comunicación serie que han introducido otros protocolos como USB, WiFi y Ethernet, 

El RS-232 tiene sus raíces en la necesidad de transmitir datos de forma serial entre dispositivos.


¿Qué es el protocolo RS232?


La especificación formal del protocolo RS232 lo define como una interfaz de transmisión de datos binarios en serie entre el equipo DTE y el equipo DCE. Un DTE o equipo de terminal de datos, como un ordenador, se encuentra en un extremo de la conexión serie RS232. El equipo de comunicación de datos (DCE), como un módem, se encuentra en el otro extremo de la conexión.

RS232 es una forma de comunicación en serie, lo que significa que la información se envía entre dispositivos un bit a la vez. Es una forma de comunicación asincrónica, lo que significa que los dispositivos de envío y recepción pueden operar en diferentes momentos.

Ambos (RS-232 y RS-485) son comunicación SERIAL. ✅

Ambos son típicamente ASÍNCRONOS. ✅


Características principales:

1. Comunicación Serie

  • Los bits se envían uno tras otro por un solo cable

  • A diferencia del paralelo que envía múltiples bits simultáneamente

2. Transmisión Asíncrona

  • No requiere señal de reloj compartida

  • Cada dispositivo tiene su propio reloj interno

  • Usa bits de inicio y parada para sincronización

3. Características técnicas clave

  • Velocidad: 75 a 115,200 bps (bits por segundo)

  • Distancia máxima: ~15 metros (a menor velocidad, mayor distancia)

  • Niveles de voltaje:

    • Lógico 1 (MARK): -3V a -15V

    • Lógico 0 (SPACE): +3V a +15V

    • Estos niveles protegen contra ruido eléctrico

Conectores típicos:

DB-9 (9 pines) - El más común

text
Pin 1: DCD - Detección de portadora
Pin 2: RxD - Recepción de datos
Pin 3: TxD - Transmisión de datos
Pin 4: DTR - Terminal lista
Pin 5: GND - Tierra común
Pin 6: DSR - Modem listo
Pin 7: RTS - Solicitud para enviar
Pin 8: CTS - Listo para enviar
Pin 9: RI - Indicador de llamada

DB-25 (25 pines) - Menos común, usado en equipos antiguos

Configuración básica:

Para que dos dispositivos se comuniquen necesitan:

  • Misma velocidad (baud rate): 9600, 19200, etc.

  • Mismo formato: 8 bits de datos, sin paridad, 1 bit de parada (8N1)

  • Mismo control de flujo: hardware, software o ninguno

Tipos de conexión:

DTE ↔ DCE (Ej: computadora ↔ módem)

text
TxD → RxD
RxD ← TxD
  • Conexión directa

DTE ↔ DTE (Ej: computadora ↔ computadora)

Necesita cable cruzado (null modem):

text
TxD → RxD
RxD ← TxD

Control de flujo:

Hardware (RTS/CTS)

  • El emisor pregunta (RTS) si puede enviar

  • Receptor responde (CTS) cuando está listo

Software (XON/XOFF)

  • Receptor envía XOFF (ASCII 19) para pausar

  • XON (ASCII 17) para reanudar

Ventajas y desventajas:

✅ Ventajas

  • Simple de implementar

  • Ampliamente soportado

  • Robusto en entornos industriales

  • Distancias razonables para muchas aplicaciones

❌ Desventajas

  • Velocidad limitada comparada con estándares modernos

  • Sensible a ruido eléctrico a largas distancias

  • No permite conexión en red (punto a punto)

  • Requiere configuración manual

Aplicaciones actuales:

Aunque obsoleto para computación moderna, todavía se usa en:

  • Equipos industriales (PLC, CNC)

  • Dispositivos médicos antiguos

  • Sistemas embebidos simples

  • Conexión con consolas de equipos de red

  • Instrumentación científica

Ejemplo práctico:

Si conectas un Arduino a un PC vía RS-232:

text
PC (TxD) → Arduino (RxD)
PC (RxD) ← Arduino (TxD)
PC (GND) — Arduino (GND)

El RS-232 fue reemplazado por USB, Ethernet y otros estándares, pero su simplicidad lo mantiene vigente en aplicaciones específicas donde la robustez es más importante que la velocidad

 Protocolo RS-232: Todo lo que necesitas saber para no perder datos (y la paciencia)

Hablemos del primer gran protocolo de comunicación serie: el RS-232.

🔁 ¿Transmisión en serie o en paralelo?

  • RS-232 envía los datos bit por bit, a través de una sola línea.

  • Ventaja: Ideal para comunicaciones de larga distancia (metros, no centímetros).

  • Paralelo: Envía varios bits a la vez, pero necesita muchos cables y es para distancias cortas o velocidades muy altas.

Por eso, la comunicación serie domina en industria y embebidos ✅.

⚙️ Velocidad en baudios (bps) = ¡Configura esto bien!

El RS-232 soporta desde 110 hasta 230.400 bps, pero las velocidades típicas son:
1.200, 9.600, 19.200, 38.400, 115.200 bps.

⚠️ ¡Atención aquí!
Cuando compres un sensor o dispositivo RS-232, lee el datasheet.
Si tú configuras a 9.600 bps y el fabricante lo dejó a 115.200 bps, te llegarán caracteres raros (¡sí, ya me pasó!).

Experiencia personal: Una vez trabajé con una celda de carga con salida RS-232. Mi terminal recibía puro "ÿÿÿÿ" y símbolos extraños. ¿El problema? Velocidad mal configurada. Cambié al valor correcto y ¡listo! Datos limpios y coherentes.

✅ Regla de oroLa velocidad debe ser la misma en ambos extremos de la comunicación.

🛠️ ¿Cómo elegir la velocidad?

  1. Distancia:

    • Más velocidad → Menos distancia.

    • Menos velocidad → Más distancia.

    • Ejemplo: Si necesitas enviar datos a 100 metros, usa 4.800 bps (lento pero seguro). Si estás a 2 metros, usa 115.200 bps (rápido y estable).

  2. Cantidad de datos:

    • Si envías muchos bytes seguidos (ej: 20-30 bytes de sensores: acelerómetro, GPS, presión, etc.), una velocidad baja como 9.600 bps puede crear un delay que afecte tu código.

    • Solución: Aumenta la velocidad para reducir el tiempo de transmisión.

🔌 Conector DB-9: Solo necesitas 3 pines

En la práctica, solo usas:

  • Pin 2 (RX): Recepción.

  • Pin 3 (TX): Transmisión.

  • Pin 5 (GND): Tierra común.

✅ Consejo: Al conectar dos dispositivos (ej: PC ↔ Arduino), cruza los cables:

  • TX del dispositivo A → RX del dispositivo B.

  • RX del dispositivo A → TX del dispositivo B.

  • GND con GND.

📡 Estructura de la trama RS-232 (vista en osciloscopio)

  1. Bit de inicio (Start bit).

  2. Datos (5-8 bits, generalmente en ASCII).

  3. Bit de paridad (opcional, para detección de errores).

  4. Bits de parada (Stop bits).

Todo esto ocurre ordenadamente y sin reloj compartido (asíncrono).

🔄 ¿Por qué usar un MAX232 (o similar)?

Los microcontroladores (Arduino, PIC, etc.) trabajan con niveles TTL (0V = 0 lógico, 5V = 1 lógico).
El RS-232 requiere niveles de voltaje diferentes:

  • Lógico 1 (Mark): -3V a -15V.

  • Lógico 0 (Space): +3V a +15V.

El MAX232 (o CH340, FT232) convierte los niveles TTL a niveles RS-232 (y viceversa).

Nota: En la salida del MAX232, la señal puede aparecer invertida en el osciloscopio (0 lógico en alto, 1 lógico en bajo). No te preocupes, el protocolo lo maneja internamente.

🛒 Opciones prácticas de conexión

  1. Módulo USB a TTL (ej: FT232, CH340):

    • Conéctalo directamente al Arduino (RX, TX, 5V, GND).

    • Ventaja: Simple, barato, ideal para distancias cortas (menos de 1 metro).

    • Desventaja: No sirve para distancias largas (caída de voltaje en TTL).

  2. Módulo RS-232 con DB9 + MAX232:

    • Convierte TTL a RS-232 y usa cable DB9 apantallado.

    • Ventaja: Ideal para distancias largas (hasta 15-100 metros, dependiendo de la velocidad).

    • Desventaja: Necesitas más componentes y cableado.

  3. Convertidor USB a RS-232 industrial:

    • Ya incluye protección y aislamiento.

    • Ventaja: Robustez para entornos industriales.

🏭 ¿Por qué sigue usándose RS-232 en la industria?

  • Distancias largas con cable apantallado.

  • Inmunidad al ruido eléctrico (niveles de ±12V).

  • Simplicidad y robustez: 3 cables básicos (RX, TX, GND).

  • USB no es industrial: Limitado en distancia (5 metros máximo sin repetidores) y sensible a interferencias.

✅ Ejemplo industrial: Comunicación entre PLC y HMI (interfaz humana) mediante RS-232. Solo necesitas conectar 3 pines entre dispositivos.

💡 Conclusión clave

  1. Configura bien la velocidad (igual en ambos dispositivos).

  2. Elige la velocidad según distancia y cantidad de datos.

  3. Usa un convertidor de niveles (MAX232 o integrado en módulos).

  4. Para industria/largas distancias → RS-232 clásico.

  5. Para prototipos/cortas distancias → USB a TTL.

¿Tienes experiencias o preguntas con RS-232? ¡Comenta! 


Comentarios

Entradas populares de este blog

¿Qué es el Modelo OSI?

bit -El codigo ASCII

38. Tema 1: Protocolos de comunicación.