# RS-232

RS-232 (Recommended Standard 232, en español: "Estándar Recomendado 232"), también conocido como EIA/TIA RS-232C, es una interfaz que designa una norma para el intercambio en serie de datos binarios entre un equipo terminal de datos (Data Terminal Equipment, DTE), como por ejemplo una computadora, y un equipo de comunicación de datos (Data Communication Equipment, DCE), por ejemplo un módem. Existen otros casos en los que también se utiliza la interfaz RS-232. Una definición equivalente publicada por la UIT se denomina V.24.
El RS-232 consiste en un conector tipo DB-25 (de 25 pines), aunque es normal encontrar la versión de 9 pines (DE-9, o popularmente mal denominados DB-9), más barato e incluso más extendido para cierto tipo de periféricos (como el ratón serie de la PC).

## Reseña histórica

La primera especificación de esta interfaz se publicó en 1962 y desde entonces se ha ido revisando frecuentemente. Una de las revisiones más extendidas fue la EIA-232-C. El primer nombre que recibió esta interfaz fue RS-232, nombre que aún hoy se utiliza ampliamente, a pesar de que dicho estándar lo adoptaría la organización de estandarización norteamericana EIA (Electronic Industries Alliance, o hasta 1997 Electronic Industries Association) cambiando su nombre al actual EIA-232.
Posteriormente la ITU-T desarrolló las correspondientes recomendaciones basadas en la interfaz EIA-232. La recomendación V.24 especifica los aspectos funcionales y operacionales, es decir, se define qué circuitos o señales tienen que implementarse en la interfaz y la función de cada uno de ellos. Los aspectos eléctricos de la interfaz están definidos en la recomendación V.28.

## Conexiones

En la siguiente tabla se muestran las señales RS-232 más comunes según los pines asignados de:
| Señal | Señal | DB-25 | DE-9 (DB-9, TIA-574) | EIA/TIA 561 | Host | RJ-50 | MMJ |
| Common Ground | G | 7 | 5 | 4 | 4,5 | 6 | 3,4 |
| Transmitted Data | TD | 2 | 3 | 6 | 3 | 8 | 2 |
| Received Data | RD | 3 | 2 | 5 | 6 | 9 | 5 |
| Data Terminal Ready | DTR | 20 | 4 | 3 | 2 | 7 | 1 |
| Data Set Ready | DSR | 6 | 6 | 1 | 7 | 5 | 6 |
| Request To Send | RTS | 4 | 7 | 8 | 1 | 4 | - |
| Clear To Send | CTS | 5 | 8 | 7 | 8 | 3 | - |
| Carrier Detect | DCD | 8 | 1 | 2 | 7 | 10 | - |
| Ring Indicator | RI | 22 | 9 | 1 | - | 2 | - |

## Construcción física

La interfaz RS-232 está diseñada para imprimir documentos para distancias cortas, de hasta 15 metros según la norma , y para velocidades de comunicación bajas, de no más de 20 kbps. A pesar de esto, muchas veces se utiliza a mayores velocidades con un resultado aceptable. La interfaz puede trabajar en comunicación asíncrona o síncrona y tipos de canal simplex, half duplex o full duplex. En un canal simplex los datos siempre viajarán en una dirección, por ejemplo desde DCE a DTE. En un canal half duplex, los datos pueden viajar en una u otra dirección, pero solo durante un determinado periodo de tiempo; luego la línea debe ser conmutada antes que los datos puedan viajar en la otra dirección. En un canal full duplex, los datos pueden viajar en ambos sentidos simultáneamente. Las líneas de handshaking de la RS-232 se usan para resolver los problemas asociados con este modo de operación, tal como en qué dirección los datos deben viajar en un instante determinado.
Si un dispositivo de los que están conectados a una interfaz RS-232 procesa los datos a una velocidad menor de la que los recibe deben de conectarse las líneas handshaking que permiten realizar un control de flujo tal que al dispositivo más lento le dé tiempo de procesar la información. Las líneas de hand shaking que permiten hacer este control de flujo son las líneas RTS y CTS. Los diseñadores del estándar no concibieron estas líneas para que funcionen de este modo, pero dada su utilidad en cada interfaz posterior se incluye este modo de uso.

## Los circuitos y sus definiciones

Las UART o U(S)ART (Transmisor y Receptor Asíncrono Universal) se diseñaron para convertir las señales que maneja la CPU y transmitirlas al exterior. Las UART deben resolver problemas tales como la conversión de tensiones internas del DCE con respecto al DTE, gobernar las señales de control, y realizar la transformación desde el bus de datos de señales en paralelo a serie y viceversa. Deben ser robustas y deberán tolerar circuitos abiertos, cortocircuitos y escritura simultánea sobre un mismo pin, entre otras consideraciones. Es en las UART en donde se implementa la interfaz.
Generalmente, cuando se requiere conectar un microcontrolador (con señales típicamente entre 3,3 y 5 V) con un puerto RS-232 estándar se utiliza un driver de línea, típicamente un MAX232 o compatible, el cual mediante dobladores de tensión positivos y negativos, permite obtener la señal bipolar (típicamente alrededor de +/- 6V) requerida por el estándar.
Para los propósitos de la RS-232 estándar, una conexión es definida por un cable desde un dispositivo al otro. Hay 25 conexiones en la especificación completa, pero es muy probable que se encuentren menos de la mitad de éstas en una interfaz determinada. La causa es simple, una interfaz full duplex puede obtenerse con solamente 3 cables.
Existe una cierta confusión asociada a los nombres de las señales utilizadas, principalmente porque hay tres convenios diferentes de denominación (nombre común, nombre asignado por la EIA, y nombre asignado por el CCITT).
En la siguiente tabla se muestran los tres nombres junto al número de pin del conector al que está asignado (los nombres de señal están desde el punto de vista del DTE (por ejemplo para Transmit Data los datos son enviados por el DTE, pero recibidos por el DCE):
| PIN | EIA | CCITT / V.24 | E/S | Función DTE-DCE |
| 1 | CG | AA 101 | | Tierra del Chasis |
| 2 | TD | BA 103 | Salida | Datos Transmitidos |
| 3 | RD | AA 104 | Entrada | Datos Recibidos |
| 4 | RTS | CA 105 | Salida | Solicitud de Envío |
| 5 | CTS | CB 106 | Entrada | Listo para Enviar |
| 6 | DSR | CC 107 | Entrada | Equipo de Datos Listo |
| 7 | SG | AB 102 | --- | Tierra de Señal |
| 8 | DCD | CF 109 | Entrada | Portadora Detectada |
| 9* | | | Entrada | Test de Voltaje Positivo |
| 10* | | | Entrada | Test de Voltaje Negativo |
| 11 | | | | (no se usa) |
| 12+ | SCDC | SCF 122 | Entrada | Portadora Detectada-Secundario |
| 13+ | SCTS | SCB 121 | Entrada | Listo para Enviar-Secundario |
| 14+ | SBA 118 | | Salida | Datos Transmitidos-Secundario |
| 15# | TC | DB 114 | Entrada | Reloj de Transmisión |
| 16+ | SRD | SBB 119 | Entrada | Datos Recibidos-Secundario |
| 17# | RC | DD 115 | Entrada | Reloj de Recepción |
| 18 | | | | (no se usa) |
| 19+ | SRTS | SCA 120 | Salida | Solicitud de Envío Secundario |
| 20 | DTR | CD 108,2 | Salida | Terminal de Datos Listo |
| 21* | SQ | CG 110 | Entrada | Calidad de Señal |
| 22 | RI | CE 125 | Entrada | Indicador de Timbre |
| 23* | DSR | CH 111 | Salida | Equipo de Datos Listo |
| | | CI 112 | Salida | Selector de Tasa de Datos |
| 24* | XTC | DA 113 | Salida | Reloj de Transmisión Externo |
| 25* | | | Salida | Ocupado |
En la tabla, el carácter que sigue al número de pin:
* (*) raramente se usa.
* (+) usado únicamente si se implementa el canal secundario.
* (#) usado únicamente sobre transmisiones síncronas.
También, la dirección de la flecha indica cuál dispositivo (DTE o DCE) origina cada señal, a excepción de las líneas de tierra (---).
Sobre los circuitos, todos las tensiones están con respecto a la señal de tierra.
Las convenciones que se usan son las siguientes:
| Tensión | Señal | Nivel Lógico | Control |
| +3 a +15 | Espacio | 0 | On |
| -3 a –15 | Marca | 1 | Off |
Los valores de tensión se invierte con respecto a los valores lógicos. Por ejemplo, el valor lógico positivo corresponde a la tensión negativa. También un 0 lógico corresponde a la señal de valor verdadero o activada. Por ejemplo, si la línea DTR está al valor 0 lógico, se encuentra en la gama de tensión que va desde +3 a +15 V, entonces DTR está listo (ready).
El canal secundario a veces se usa para proveer un camino de retorno de información más lento, de unos 5 a 10 bits por segundo, para funciones como el envío de caracteres ACK o NAK, en principio sobre un canal half duplex. Si el módem usado acepta esta característica, es posible para el receptor aceptar o rechazar un mensaje sin tener que esperar el tiempo de conmutación, un proceso que usualmente toma entre 100 y 200 milisegundos.

## Características eléctricas de cada circuito

Los siguientes criterios son los que se aplican a las características eléctricas de cada una de las líneas:
* La magnitud de una tensión en circuito abierto no excederá los 25 V.
* El conductor será apto para soportar un corto con cualquier otra línea en el cable sin daño a sí mismo o a otro equipamiento, y la corriente de cortocircuito no excederá los 0,5 A.
* Las señales se considerarán en el estado de MARCA, (nivel lógico “1”), cuando la tensión sea más negativa que -3 V con respecto a la línea de Signal Ground. Las señales se considerarán en el estado de ESPACIO, (nivel lógico “0”), cuando la tensión sea más positiva que +3 V con respecto a la línea Signal Ground. La gama de tensiones entre -3 V y +3 V se define como la región de transición, donde la condición de señal no está definida.
* La impedancia de carga tendrá una resistencia a DC de menos de 7000 Ω al medir con una tensión aplicado de entre 3 a 25 V pero mayor de 3000 Ω cuando se mida con una tensión de menos de 25 V.
* Cuando la resistencia de carga del terminal encuentra los requerimientos de la regla 4 anteriormente dicha, y la tensión de la terminal de circuito abierto está a 0 V, la magnitud del potencial de ese circuito con respecto a Signal Ground estará en el rango de 5 a 15 V.
* El driver de la interfaz mantendrá una tensión entre -5 a –15 V relativos a la Signal Ground para representar una condición de MARCA. El mismo driver mantendrá una tensión de entre 5 V a 15 V relativos a Signal Ground para simbolizar una señal de ESPACIO. Obsérvese que esta regla junto con la Regla 3, permite 2 V de margen de ruido. En la práctica, se utilizan –12 y 12 V respectivamente.
* El driver cambiará la tensión de salida hasta que no se excedan 30 V/µs, pero el tiempo requerido a la señal para pasar de –3 V a +3 V de la región de transición no podrá exceder 1 ms, o el 4% del tiempo de un bit.
* La desviación de capacitancia del terminal no excederá los 2500 pF, incluyendo la capacitancia del cable. Obsérvese que cuando se está usando un cable normal con una capacitancia de 40 a 50 pF/Pie de longitud, esto limita la longitud de cable a un máximo de 50 Pies, (15 m). Una capacitancia del cable inferior permitiría recorridos de cable más largos.
* La impedancia del driver del circuito estando apagado deberá ser mayor que 300 Ω.
Existen en el mercado muchos circuitos integrados disponibles, (los chips 1488 y 1489, Max 232, etc) los cuales implementan drivers y receptores TTL, para una RS-232 de forma compatible con las reglas anteriores.
* Se utiliza codificación NRZ-L, es decir el cero lógico se codifica con un pulso positivo y uno lógico se codifica con un pulso negativo, con unos rangos de tensión permitidos de entre 3 y 15 v y de entre -3 y -15 v. La tensión nominal es de 12 v. Y la tensión máxima de 25 v.
* De los 25 sólo, cuatro son utilizados para datos. El resto son de control, temporización, tierra y pruebas. La especificación eléctrica para estos circuitos es igual que para los datos, considerando el estado ON equivalente al cero lógico y OFF al uno lógico.
* La tasa de bits máxima que se recomienda en la norma para la distancia máxima de 15 metros es de 20 kbps. Esta velocidad se puede aumentar si se disminuye la distancia de conexión. En la recomendación V.28 se especifica que en determinadas condiciones se podría llegar hasta 64 kbps.

## Especificaciones mecánicas

* Se utiliza un cable de 25 conductores, cada uno de ellos con una función específica. En la mayor parte de las aplicaciones no se utilizan todos los conductores.
* En los extremos del cable se utiliza un conector DB-25 macho en uno de los extremos y un conector DB-25 hembra en el otro. La norma no obliga a la utilización de este conector. De hecho existe una variante que utiliza conectores DE-9.
* Se utiliza la norma ISO 2110 desarrollada por la ISO donde se incluyen las especificaciones mecánicas y asignación de pines del conector DB-25. Para las especificaciones mecánicas y asignación de pines del conector DE-9 se utiliza la norma ISO-4092.
* El conector macho se utiliza para el DTE (ordenador) y el conector hembra para el DCE (módem).
* La longitud del cable no puede exceder los 15 metros.
* Existen usos no contemplados en el estándar. En particular, existen ocasiones en que interesa conectar otro tipo de equipos entre sí, como pueden ser dos computadoras o dos módems. En el caso de dos computadoras, se requerirá la conexión de un DTE con otro DTE. Para ello se utiliza una conexión entre los dos DTE sin usar un módem, por ello el cable utilizado se llama normalmente de módem nulo (null modem) y su configuración puede variar según el fabricante del equipo terminal.

## Ejemplo de comunicación entre un DTE y un DCE

A continuación se mostrará una temporización típica utilizada para la comunicación entre un DTE y un DCE cuando el DCE es un módem y se desea transmitir datos al DCE remoto. El proceso se puede dividir en 3 fases:

### Fase 1

Conexión DTE-DCE preparada. La primera fase se utiliza para comprobar que los dispositivos DTE y DCE están operativos:
* El DTE activa la señal DTR (DTE listo).
* El DCE activa la señal DSR (DCE listo).

### Fase 2

Establecimiento de la conexión DTE-DCE y transferencia de datos:
* El DTE activa la señal RTS (Petición para enviar) para solicitar el envío de datos al módem.
* El módem realiza la conexión con el módem remoto.
* Cuando el módem remoto acepta la comunicación se activa la señal DCD (Detector de portadora) para indicar que la conexión ha sido establecida.
* El DCE activa la señal CTS (Listo para enviar) para indicar al DTE que ya está listo para enviar datos.
* Se lleva a cabo la transferencia de datos por las líneas de transmisión y recepción.

### Fase 3

Finalización de la conexión:
* El DTE desactiva la señal DTR para indicar que se desea finalizar la conexión.
* El módem cuelga la línea, desactiva la señal DCD y a continuación desactiva DSR.