La mayoría de las veces , RS-232 y UART se unen en las teorías de comunicación en serie. ¿Son los dos iguales? De mis lecturas, concluí que UART es una forma de hardware del protocolo RS-232. ¿Estoy en lo correcto?
No, UART y RS-232 no son lo mismo.
UART es responsable de enviar y recibir una secuencia de bits. A la salida de un UART, estos bits suelen estar 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 propietaria.
RS-232 especifica los niveles de voltaje . Tenga en cuenta que algunos de estos niveles de voltaje son negativos y también pueden alcanzar ±15V. Una mayor oscilación de voltaje hace que el RS-232 sea más resistente a las interferencias (aunque solo hasta cierto punto).
Un microcontrolador UART no puede generar tales 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.
( fuente )
UART (o USART): receptor/transmisor asíncrono universal (sincrónico)
Esta es, esencialmente, una interfaz de comunicaciones en serie. La parte "universal" significa que se puede configurar para admitir 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 una TX
y una RX
lí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, los niveles de voltaje, los conectores y los pines.
Este es un estándar de interfaz específico que permite la interoperabilidad de los equipos. Si bien dos piezas de hardware pueden tener UART, no sabe si se conectarán sin daños o si se comunicarán correctamente a menos que sepa que tienen los mismos estándares de pinout y voltaje, o que incluyan un convertidor o un cable especialmente cableado 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 estándar RS-232 conectará los dos.
Sin embargo, ni el UART ni el estándar RS-232 definen lo que se envía en las líneas TX
y RX
. Generalmente, 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 que se fabrican en la actualidad utilizan esta codificación, pero no es obligatorio hacerlo. Puede encontrar equipos más antiguos que incluyen bits de paridad o usan 7 o 9 bits. El UART se puede configurar para admitir estos diversos protocolos en sus líneas TX
y RX
.
Los UART no suelen interactuar directamente con RS-232. Deberá convertir la salida del UART al estándar de +/-12 V que requiere RS-232. Una interfaz RS-232 completa generalmente involucrará tanto un UART como 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 de TX
y RX
, que puede necesitar usar según el 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, si bien un UART puede ayudarlo a implementar una interfaz RS-232, no es una interfaz RS-232 en sí misma.
El UART funciona para convertir datos paralelos de líneas de bus de PC a datos en serie para la transmisión a través de controladores de línea a dispositivos RS-232, RS-422 y RS-485 . El pin de reloj del chip UART es alimentado por una fuente de reloj programable. La velocidad del reloj está determinada por la configuración de velocidad en baudios que utilizará el dispositivo. La velocidad del 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 dividirla por 16 es una forma de determinar una tasa de baudios desconocida.
RS-232 es solo una especificación. Define los requisitos de señalización para la comunicación en serie, al establecer reglas y pautas con respecto a:
RS-232 no cubre nada que tenga que ver con el hardware electrónico digital que utiliza para implementar y cumplir con esas especificaciones y, lo que es más importante , no cubre la trama de datos o la corrección de errores ni ningún aspecto del tipo "capa de enlace de datos". En otras palabras, RS-232 es lo más cercano a una especificación de "capa física", en el modelo OSI .
A veces escucha el término "protocolo RS-232", pero no es un protocolo, es un estándar de señalización.
El hardware real que utiliza para implementar comunicaciones compatibles con RS-232 se divide en general en dos categorías, ninguna de las cuales forma parte de la especificación RS-232 (excepto en el sentido de que si hacen algo que viola RS-232, no puede legítimamente llame a su sistema "RS-232"):
Transceptores de línea . Estos son los dispositivos que se traducirán entre las señales compatibles con RS-232, que son robustas, bipolares (los voltajes van tanto negativos como positivos con respecto a tierra) y el circuito lógico digital sensible dentro del dispositivo de comunicación, que generalmente es un UART en funcionamientocon niveles lógicos estándar de 3,3 V o 5 V. Los transceptores de línea también caen bajo la "capa física" del modelo OSI.
UART . Esta es una lógica digital compleja, que generalmente opera con niveles lógicos estándar de 5 V o 3,3 V, y que es responsable de codificar y decodificar datos paralelos en y desde la forma en serie. Se ocupa del encuadre (bits de inicio y parada), la corrección de errores (bits de paridad), la velocidad de datos (velocidad en baudios), el control de flujo (control de señales como DCD, CTS, RTS, etc.) y muchos otros aspectos. Como tal, podría verse como parte de la "capa de enlace de datos" en el modelo OSI.
RS-232 está antes de UART.
UART es un dispositivo que puede definir un protocolo lógico para la comunicación, mientras que RS-232 es un dispositivo que sirve como medio físico para la comunicación.
Cuando decimos UART + RS232
, en realidad significa a communication protocol runs on some media
, con chips como MAX232 para adaptar los voltajes.
También podemos usar (editar) También podemos usar chips basados en USB para proporcionar alguna funcionalidad UART virtual (editar), con los chips de Prolific Technology, FTDI, Microchip, etc., donde reemplazamos el simple medio RS-232 con un más medios USB complejos/recientes. UART + USB
Ni siquiera necesitamos el hardware UART porque se puede implementar a través de USB de forma puramente software.
Vea la imagen de abajo. Tenga en cuenta que en el lado derecho no hay hardware UART sino solo hardware USB (editar) el hardware UART está integrado en dichos chips y se usa un nuevo controlador USB UART en el lado integrado (editar). Y con algunos conductores adicionales.
La imagen es de aquí .
devangmotwani
david c