¿Diferencia entre UART y RS-232?

80

La mayoría de las veces RS-232 y UART se unen en teorías de comunicación en serie. ¿Ambos son iguales? De mis lecturas concluí que UART es una forma de hardware del protocolo RS-232. ¿Estoy en lo correcto?

tollin jose
fuente
1
Las respuestas anteriores han dado ideas sobre las diferencias. Pero me gustaría agregar a esas respuestas agregando un enlace de National Instruments que discute este tema con gran detalle. El siguiente es el enlace: RS-232, RS-422, RS-485 Conceptos generales de comunicación en serie
devangmotwani

Respuestas:

80

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

UART es responsable de enviar y recibir una secuencia de bits. En la salida de un UART, estos bits generalmente están representados por voltajes de nivel lógico. Estos bits pueden convertirse en RS-232, RS-422, RS-485, o quizás en alguna especificación patentada.

RS-232 especifica niveles de voltaje . Observe que algunos de estos niveles de voltaje son negativos y también pueden alcanzar ± 15V. Una oscilación de voltaje más grande hace que el RS-232 sea más resistente a la interferencia (aunque solo en cierta medida).

Un microcontrolador UART no puede generar dichos niveles de voltaje por sí mismo. 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 revisa la hoja de datos, notará que este IC tiene una bomba de carga, que genera ± 10V desde + 5V.

ingrese la descripción de la imagen aquí ( fuente )

Nick Alexeev
fuente
44
La definición de RS-232 que he leído no habla sobre una secuencia de bits o temporización en absoluto. De hecho, nunca he encontrado un estándar oficial que describa el protocolo asincrónico NRZ start-stop.
Wouter van Ooijen
1
RS-232 no especifica la secuencia de bits.
slebetman
Aparentemente, el desarrollo del formato de caracteres UART estuvo tan dominado por la compañía telefónica de Bell que no surgieron variantes. Como resultado, el formato de bit de inicio / datos / paridad / parada nunca fue objeto de un estándar independiente. El uso en toda la industria era tan uniforme que no se requería una definición "oficial". Esto no era cierto para los enlaces físicos, por lo que se desarrolló RS-232.
WhatRoughBeast
3
Los formatos de caracteres UART son anteriores a los módems de Bell, estaba en hardware de teletipo (ocho bits con paridad) en ASCII y Baudot antes de eso.
Whit3rd
34

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

Esto es, esencialmente, una interfaz de comunicaciones en serie. La parte "universal" significa que se puede configurar para admitir muchos protocolos serie específicos diferentes. El término es genérico y no representa un estándar específico. Como mínimo, significa que tiene una TXy una RXlínea, que envía un flujo de datos en serie y recibe un flujo de datos en serie.

RS-232 : un estándar que define las señales entre dos dispositivos, define los nombres de las señales, su propósito, niveles de voltaje, conectores y clavijas.

Este es un estándar de interfaz específico que permite la interoperabilidad del equipo. Si bien dos piezas de hardware pueden tener UART, no sabe que se conectarán sin daños, o se comunicarán correctamente a menos que sepa que tienen los mismos estándares de voltaje y pines, o que incluyen un convertidor o un cable con cable 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. Entonces, sabe que un cable RS-232 estándar conectará los dos.

Sin embargo, ni el estándar UART ni el estándar RS-232 definen lo que se envía en las líneas TXy RX. En general, cuando las personas usan RS-232, usan una codificación NRZ simple de 8 bits con un bit de inicio y un bit de parada. La mayoría de los equipos fabricados actualmente usan esta codificación, pero no es necesario hacerlo. Puede encontrar equipos más antiguos que incluyen bits de paridad o que usan 7 o 9 bits. El UART puede ser configurado para soportar estos diversos protocolos en sus TXy RXlíneas.

Los UART no suelen interactuar directamente con RS-232. Deberá convertir la salida del UART al estándar de +/- 12V que requiere RS-232. Una interfaz RS-232 completa generalmente implicará un convertidor de nivel UART y un convertidor de nivel RS-232. Además, el estándar RS-232 incluye la definición de varios otros pines de señalización además , TXy RXque puede necesitar dependiendo del equipo al que necesite conectarse. Estos también deberán ser convertidos a nivel, y su UART puede, o no, admitir estas señales. Si no es así, tendrá que controlarlos directamente con su software / firmware.

Entonces, aunque un UART puede ayudarlo a implementar una interfaz RS-232, no es una interfaz RS-232 en sí misma.

Adam Davis
fuente
Cable estándar RS-232? No hay tal cosa. En mi bolsa de equipo llevo alrededor de una docena de adaptadores para RS-232. RS-232 especifica un conector DB-25, pero he visto DD-9, RJ45, din8 y otros conectores, y aparte de conectar un módem a una PC, nunca he podido usar un cable COTS para ningún proyecto rs232. Afortunadamente, el 90% del tiempo que hacen un par de adaptadores o un cable personalizado, son fáciles de hacer.
hildred
Solo para el registro: creo que la 'S' en USART significa "Sincrónico", no "Serie". Ver aquí . Los USART son "tensiones" sobre los chips UART más antiguos que también permiten modos de comunicación síncronos.
Lorenzo Donati
14

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

Don Slade
fuente
55
+1 para "convertir datos paralelos en datos en serie", ninguna otra respuesta aquí menciona esto.
TisteAndii