Ordenando conceptos RS232, Max232, UART y TTL

He estado buscando adaptadores en amazon y aliexpress para trastear con cacharros y me he dado cuenta de que hay terminos que me resultan confusos, que los llevo usando bastante tiempo quizás de forma incorrecta. Por eso he decidido indagar en qué significan realmente estos términos, y explicarlo de manera sencilla, que se entienda y sin entrar a mucho detalle técnico. Prefiero una explicación sencilla y entendible que extensa y aburrida aún a riesgo de ser inexacta.

Durante la recopilación de información para este post, he encontrado mucha mucha documentación y casi toda excesivamente técnica y poco accesible.

Espero que el post sea de utilidad a personas que como yo, no tenemos claro qué es cada cosa.

RS-232 (Recommended Standard 232) o Puerto Serie

Conector DE-9
https://upload.wikimedia.org/wikipedia/commons/thumb/b/b3/Serial_port_%289-pin%29.jpg/324px-Serial_port_%289-pin%29.jpg

Si llevas un tiempo en trabajando con ordenadores o dispositivos quizás te suene ese adaptador. Es un puerto serie, concretamente un adaptador DE-9 o también llamados DB-9 aunque parece que es incorrecto y deberíamos llamarlo DE-9. El 9 por que tiene 9 pines o pinchitos. Durante mucho tiempo esta omnipresente en cualquier ordenador y la inmensa mayoría de dispositivos: modems, tpvs, hardware red, sais, etc…

¿ Pero qué RS-232 ?

El término RS-232 viene por Recomended Standard 232. El standard fué descrito por la E.I.A (Electronic Industries Association) el documento: Interface between data terminal equipment and data communication equipment employing serial binary data interchange en 1962, hace mucho mucho tiempo… El standard tuvo tres revisiones y la actual es la EIA-232-C, versión C, pero se llama comunmente RS-232.

El standard RS-232 se encuentra definido así en wikipedia:

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 de datos binarios serie entre un DTE (Data Terminal Equipment, «Equipo Terminal de Datos»)

https://es.wikipedia.org/wiki/RS-232

Esta definición es muy correcta pero… no explica de manera sencilla qué es RS-232. Así que voy a intentar explicarlo de manera simple con mis palabras.

El standard RS-232 es un conjunto de reglas que define cómo enviar bits de uno en uno entre dos cacharros conectados por un cable.

Para entender esto tenemos que pensar que en la década de los 70, aparecían problemas y soluciones a nuevas necesidades. Una de ellas poder conectar ordenadores a distancia. Una de las soluciones fué esta.

Esta solución es técnicamente sencilla y económica enviar bits usando en principio 3 cables: Receiver, Transmiter, GND o tierra. Requiere muchos menos cables que el envío por parallelo, un bit por cable, y es más lento usar serie, pero resulta sencillo y económico. Y cuando algo es sencillo y económico y además soluciona un problema, es muy probable que la industria lo adopte rápidamente… y ahí sigue 50 años después.

Esta solución tiene límites como un máximo de distancia de cable de hasta 15 metros y una velocidad en principio de no más de 20 kbps. Todo esto, en principio… como todo. Para conseguir estas distancias el voltaje puede llegar hasta +- 15V para evitar interferencias. Es muy diferente a la UART que trabaja entre 3V y 5V. Esto será importante para entender las diferencias.

Aunque hay más tipos de cables y conectores, este es el esquema del conector más difundido. Es un conector DE-9 en formato DTE y DCE. Lo más importante son los pines 2 RxD y 3 TxD en el DTE (Data Terminal Equiment) o lado de los pines, y 2 TxD y 3 RxD en el lado del receptáculo o DCE (Data Communication Equipment). Los usos de los pines tiene una explicación más detallada que no voy a incluir en este artículo.

Esquema de pines de conectores DE-9
https://commons.wikimedia.org/wiki/File:RS-232_DE-9_Connector_Pinouts.png

Para terminar, recordar que las conexiones entre dispositivos van «cruzadas» es decir que el cable que transmite TX tiene que ir al receptor del otro extremo RX y al revés. Aquí un pequeño esquema de conexión de cables RS-232.

GND (Pin 5) <-> GND (Pin 5)
RXD (Pin 2) <-> TXD ( Pin 3)
TXD (Pin 3) <-> RXD ( Pin 2)

Links:

UART (Universal Asynchronous Receiver-Transmitter)

Chip UART
https://commons.wikimedia.org/wiki/File:Yamaha_DME3000_Digital_Mixing_Engine_Teardown_(17122170569)_(cropped)_ST16C554DCQ.jpg

Esta es la descripción de UART de wikipedia:

UART son las siglas en inglés de Universal Asynchronous Receiver-Transmitter (en español: Transmisor-Receptor Asíncrono Universal), el dispositivo que controla los puertos y dispositivos serie. Se encuentra integrado en la placa base o en la tarjeta adaptadora del dispositivo.

https://es.wikipedia.org/wiki/Universal_Asynchronous_Receiver-Transmitter

No es muy claro, vamos a ver la definición en inglés

A Universal Asynchronous Receiver-Transmitter (UART/ˈjuːɑːrt/) is a protocol for asynchronous serial communication in which the data format and transmission speeds are configurable. It sends data bits one by one, from the least significant to the most significant, framed by start and stop bits so that precise timing is handled by the communication channel. The electric signaling levels are handled by a driver circuit external to the UART. Common signal levels are RS-232, RS-485, and raw TTL[1] for short debugging links. Early teletypewriters used current loops

https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter

Casi peor…., así que me atreveré a describir UART con mis palabras:

UART ( Universal Asynchronous Receiver-Transmitter ) es un protocolo de comunicación que se encarga de transmitir bytes transformándolos de bytes a bits de uno en uno, y recibir bits y transformalos a bytes de manera asíncrona.

¿ Pero no es lo mismo que RS-232 ?

Pues sí y no. Es muy muy parecido, de echo la UART es la que se encarga de que la comunicación via RS-232 funcione.

¿ Entonces qué diferencia hay ?

El medio de transmisión. En comunicación RS-232 se utiliza un cable con hilos de cobre, pero… ¿ y si fuera fibra óptica, o coaxial, o una señal de radio ? ¿ Quién gestiona ese soporte físico ?

En el caso de RS-232 se encarga un chip que implementa esto que generalmente es MAX232, que veremos más de adelante.

¿ Entonces qué es UART ?

Podríamos decir entonces que la es una forma de comunicarse de manera asíncrona estre chips que están conectados a un bus de datos. Este bus de datos recibe bytes, y la UART es capaz de transformalo a tramas de bits, de forma que se pueda enviar un bit de cada vez de forma «fiable».

¿ A dónde los envía ? Pues depende puede enviarlos a otra UART o más lejos. Aquí es importante el detalle del voltaje, ya que el voltaje que usa la UART puede estar entre 3V y 5V, por que está pensado en principio para conectarse con otra UART. Por tanto pueden estar dentro de un mismo dispositivo y no necesitan recorrer grandes distancias.

Como colofón, contar que UART sigue utilizándose a gran escala como protocolo de datos en serie, pero se ha ido reemplazando en los últimos años en algunas aplicaciones por tecnologías como SPI, I2C, USB y Ethernet.

links:

MAX232

Chip max232
https://upload.wikimedia.org/wikipedia/commons/thumb/c/cc/Max232.jpg/640px-Max232.jpg

Es un controlador que se encarga de transformar lo que le llega de la UART a RS-232. En resumen es una implementación física, un chip que va a traducir lo que pasa en RS232 a UART y viceversa.

links:

TTL (transistor-transistor logic)

TTL serial (transistor-transistor logic) es otra forma de llamar a la comunicación serie UART. La comunicación en serie a nivel de TTL siempre permanece entre los límites 0 V y Vcc, que a menudo es 5V o 3.3V. Un nivel lógico alto (‘1’) es representado por Vcc, mientras que un nivel lógico bajo (‘0’) es 0V.

Como resumen TTL sería lo mismo que hablar de UART.

links:

Resumen

Para poder conectarnos a un cacharro de forma externa y poder enviarle comandos y recibir información podemos usar un «puerto serie» con un conector DE-9, que usará unas reglas definidas en el standard RS-232 para comunicarse con mi máquina. El conector DE-9 usará un chip que implemente esto, posiblemente un MAX232, que a su vez estará conectado a una UART. La UART se encarga realmente de hacer toda la mandanga de procesar bytes a bits o al revés y podemos hacerlo de forma asíncrona, usando un cable para leer y otro para enviar.

Puede que este esquema ayude a entenderlo:

Esquema de conexión entre UART y RS-232

Espero que este artículo haya podido resumir de manera más o menos correcta qué es cada cosa y entender que función tiene cada uno


Publicado

en

por

Comentarios

Una respuesta a «Ordenando conceptos RS232, Max232, UART y TTL»

  1. […] En nuestro caso estamos enfocados en usar un adaptador USB con un chip UART TLL. Son dispositivos muy económicos y fácilmente encontrables en muchas plataformas online. Ver información ampliada en https://www.senin.org/2024/01/22/ordenando-conceptos-rs232-max232-uart-y-ttl/ […]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.