107 votos

¿Diferencia entre UART y RS232?

La mayoría de las veces el RS232 y la UART se unen en teorías de comunicación en serie. ¿Son ambos lo mismo? De mis lecturas concluí que la UART es una forma de hardware del protocolo RS232. ¿Estoy en lo cierto?

1 votos

Las respuestas anteriores han permitido conocer las diferencias. Pero me gustaría añadir a esas respuestas un enlace de National Instruments que discute este tema en buen detalle. El siguiente es el enlace: Comunicación serie RS-232, RS-422, RS-485 Conceptos generales

0 votos

Parece que su enlace ya no existe. Aquí hay un archivo de Wayback machine de la última versión que pude encontrar: web.archive.org/web/20181225120315/http://www.ni.com:80/

110voto

Nick Alexeev Puntos 20994

No, UART y RS-232 no son lo mismo.

La UART se encarga de enviar y recibir una secuencia de bits. A la salida de una UART estos bits suelen estar representados por tensiones de nivel lógico. Estos bits pueden convertirse en RS-232, RS-422, RS-485, o quizás en alguna especificación propietaria.

RS-232 especifica niveles de tensión . Observe que algunos de estos niveles de tensión son negativos, y que también pueden alcanzar los ±15V. Una mayor oscilación de la tensión hace que el RS-232 sea más resistente a las interferencias (aunque sólo hasta cierto punto).

Una UART de microcontrolador no puede generar esos niveles de tensión por sí misma. Esto se hace con la ayuda de un componente adicional: El controlador de línea RS-232. Un ejemplo clásico de un controlador de línea RS-232 es MAX232 . Si revisas la hoja de datos, verás que este CI tiene una bomba de carga, que genera ±10V a partir de +5V.

enter image description here ( fuente )

6 votos

La definición de RS-232 que he leído no habla en absoluto de una secuencia de bits o de una temporización. De hecho, nunca he encontrado una norma oficial que describa el protocolo asíncrono NRZ start-stop.

3 votos

RS-232 no especifica la secuencia de bits.

2 votos

Al parecer, el desarrollo del formato de caracteres UART estuvo tan dominado por la compañía telefónica Bell que no surgieron variantes. Como resultado, el formato de bits de inicio/datos/paridad/parada nunca fue objeto de un estándar independiente. El uso en toda la industria era tan uniforme que no era necesaria una definición "oficial". No ocurrió lo mismo con los enlaces físicos, por lo que se desarrolló el RS-232.

48voto

Federico Builes Puntos 1940

UART (o USART) - Receptor/transmisor asíncrono universal (síncrono)

Se trata, esencialmente, de una interfaz de comunicaciones en serie. La parte "universal" significa que puede configurarse para soportar muchos protocolos seriales específicos diferentes. El término es genérico y no representa un estándar específico. Como mínimo, significa que tiene un TX y un RX que envía un flujo de datos en serie y recibe un flujo de datos en serie.

RS-232 - Norma que define las señales entre dos dispositivos, definiendo los nombres de las señales, su finalidad, los niveles de tensión, los conectores y los pinouts.

Se trata de una norma de interfaz específica que permite la interoperabilidad de los equipos. Aunque dos piezas de hardware pueden tener UART, no se sabe si se conectarán sin dañarse o si se comunicarán correctamente, a menos que se sepa que tienen los mismos estándares de pines y de voltaje, o que se incluya un convertidor o un cable especial específico para la interconexión de estos dos dispositivos específicos. Para evitar la necesidad de convertidores o cables especiales, los fabricantes pueden optar por seguir el estándar RS-232. De este modo, se sabe que un cable RS-232 estándar conectará los dos.

Sin embargo, ni la UART, ni el estándar RS-232 definen lo que se envía en el TX y RX líneas. Por lo general, cuando se utiliza el RS-232, se emplea una codificación NRZ simple de 8 bits con un bit de inicio y un bit de parada. La mayoría de los equipos que se fabrican hoy en día utilizan esta codificación, pero no es obligatorio hacerlo. Puedes encontrar equipos más antiguos que incluyan bits de paridad, o que utilicen 7 o 9 bits. La UART puede ser configurada para soportar estos diversos protocolos en su TX y RX líneas.

Las UART no suelen interactuar directamente con RS-232. Tendrás que convertir la salida de la UART al estándar +/-12V que requiere RS-232. Una interfaz RS-232 completa suele incluir tanto una UART como un convertidor de nivel RS-232. Además, el estándar RS-232 incluye la definición de otros pines de señalización además de TX y RX que puede ser necesario utilizar en función del equipo al que se tenga que conectar. Estos también necesitarán ser convertidos a nivel, y su UART puede, o no, soportar estas señales. Si no lo hace, tendrás que controlarlas con tu software/firmware directamente.

Por tanto, aunque una UART puede ayudarte a implementar una interfaz RS-232, no es una interfaz RS-232 en sí misma.

0 votos

¿Cable estándar RS-232? No existe tal cosa. En mi bolsa de equipo llevo una docena de adaptadores para RS-232. El RS-232 especifica un conector DB-25, pero he visto conectores DD-9, RJ45, din8 y otros, y aparte de conectar un módem a un PC nunca he podido utilizar un cable COTS para ningún proyecto rs232. Afortunadamente el 90% de las veces basta con un par de adaptadores o un cable a medida, son fáciles de hacer.

1 votos

Sólo para que conste: Creo que la 'S' de USART significa "Synchronous", no "Serial". Ver aquí . Los USARTs son "extensiones" sobre los antiguos chips UARTs que permiten también modos de comunicación síncrona.

1 votos

El único conector RS-232 "estándar" es el conector D de 25 pines, pero el cumplimiento de ese estándar es poco frecuente. Como escribió @hildred, los ordenadores y los periféricos han utilizado una gran variedad de conectores a lo largo de los años. En general, yo fingiría que no hay un conector estándar y sólo asumiría que RS-232 significa que los voltajes y las señales serán compatibles.

22voto

krishan Puntos 264

La UART funciona para convertir los datos paralelos de las líneas de bus del PC en datos serie para su transmisión a través de conductores de línea a RS-232, RS-422 y RS-485 dispositivos. El pin de reloj del chip UART es alimentado por una fuente de reloj programable. La velocidad de reloj está determinada por la configuración de la tasa de baudios que utilizará el dispositivo. La velocidad de reloj es 16 X la tasa de baudios. Colocar una sonda de osciloscopio en el pin de reloj de un chip UART y determinar la frecuencia, luego dividir por 16 es una forma de determinar una velocidad de transmisión desconocida.

8 votos

+1 para "convertir los datos paralelos en datos en serie", ninguna otra respuesta aquí lo menciona.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X