¿Quién decide el tiempo en la comunicación serial asíncrona basada en UART + RS232?

Según aquí , UART es un dispositivo de hardware que implementa el protocolo de comunicación serial asíncrona.

Y de acuerdo con here , RS-232 define las características eléctricas y el tiempo de las señales , el significado de las señales y el tamaño físico y el pinout de los conectores.

Creo que el UART solo es suficiente para determinar el momento de la comunicación con los bits de inicio/parada.

Y vi el siguiente gráfico desde aquí . También muestra que UART solo usa los pines 2 y 3 de RS-232, que son simplemente para datos RX y TX.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Entonces,

  • ¿Cómo participa el circuito RS-232 en la sincronización de la comunicación serial asíncrona si realmente lo hace?

  • Me parece que UART solo se preocupa por 2 pines de RS-232. RS-232 nació mucho antes que UART. Entonces, parece que UART esencialmente está habilitando la comunicación en serie asíncrona en el viejo hardware RS-232 al reutilizar los 2 pines de RS232 que tienen la misma semántica de Rx / Tx .

  • ¿Es apropiado considerar el UART IP como la parte lógica de todo el proceso de comunicación y el RS-232 solo como un mero conductor/portador ?


(inspirado en el comentario de @jonk)

Entonces, al habilitar UART en RS-232, debemos considerar las restricciones de RS-232. Pero si habilita UART en otras interfaces, se pueden lograr bps mucho más rápidos. Entonces, en este sentido, RS-232 también está afectando el tiempo.

Mi punto es que UART y RS-232 deberían desacoplarse conceptualmente , aunque vi que en muchas ocasiones se usan indistintamente.

El UART es un periférico y puede usar varios niveles lógicos. RS-232 es un estándar de interfaz e incluye muchos más detalles (como un 3 k Ω R EN 7 k Ω .) El UART establece el tiempo y el muestreo. RS-232 establece la señalización y otros detalles. , el UART maneja el tiempo desde un punto de vista simplista. Sin embargo, RS-232 se ocupa de los detalles analógicos. Esos detalles analógicos impactan en el tiempo. En general, RS-232 admite aproximadamente 19.2 kBPS . Cualquier cosa más allá de eso (a pesar de la UART) requerirá un análisis analógico cuidadoso.
@jonk Gracias. Entonces, al habilitar UART en RS-232, debemos considerar las restricciones de RS-232. Pero si habilita UART en otras interfaces, se pueden lograr bps mucho más rápidos. Mi punto es que UART y RS-232 deberían desacoplarse conceptualmente , aunque vi que en muchas ocasiones se usan indistintamente.
Sí, supongo que es un buen punto de vista. RS-232 establece algunas limitaciones. Pero también proporciona cierta inmunidad al ruido. Pero sí, puedes desacoplar los conceptos hasta cierto punto. Su UART puede impulsar algún tipo de salida lógica (una consideración analógica separada) a la velocidad que usted determine. Sin embargo, la señalización que use afectará la tasa máxima. Si usa RS-422 o RS-485, entonces tiene consideraciones diferentes que si usa RS-232. O, si simplemente mantiene los niveles lógicos como están, tiene otro conjunto de consideraciones. Todo en su sitio, por así decirlo.
Si desea una serie de mayor velocidad que la que logra un UART, hay interfaces mucho mejores y más modernas.

Respuestas (3)

La especificación RS-232 requiere que los voltajes eléctricos RS-232 tengan una tasa de cambio limitada, define una tasa de cambio de 30 voltios por microsegundo como máximo. Ese es el tiempo para la interfaz física y se aplicará a cualquier flujo de datos que deba transmitirse.

Los UART solo se preocupan por RX y TX es una declaración falsa. La mayoría de los UART en estos días también manejan las señales de apretón de manos, algunos incluso reaccionan a las señales de apretón de manos automáticamente para implementar el control de flujo en el hardware que en el software. Y las comunicaciones en serie asíncronas ciertamente eran posibles antes de UART e incluso antes de RS-232. Como sabrá, RS-232 es solo un estándar para una interfaz física publicado por primera vez en 1960, no define qué datos y cómo los envía. UART como un solo chip no estaba disponible públicamente antes de 1971, pero la misma funcionalidad estaba disponible como una PCB grande llena de chips lógicos en la década de 1950. Y las comunicaciones en serie asíncronas ciertamente han existido antes y se implementaron como interruptores mecánicos giratorios.

Su declaración final de que UART es la parte lógica y RS-232 la interfaz física es verdadera. Sí, puede usar UART sin una interfaz física para comunicaciones de nivel lógico entre chips, o puede usar UART con RS-485 o RS-422 o LVDS o CAN o cualquier otra interfaz física. El UART simplemente implementa el protocolo sobre cómo transmitir y recibir bits, y el protocolo que utiliza el UART se denomina trama de inicio y parada asíncrono y los bits se envían mediante la codificación de línea NRZ.

Mi punto es que UART y RS-232 deberían desacoplarse conceptualmente

Lo son, al menos cuando se usan correctamente (algunos dirían: pedantemente).

UART (creo que el nombre técnico, que nadie usa, es codificación sin retorno a cero) define la secuencia de 1 y 0 físicos utilizados para transmitir una palabra de datos. Con UART, esto es 1:1, más un bit de inicio, un bit de paridad opcional y un número variable de bits de parada.

RS232 (y algunas otras especificaciones de la familia RS) definen cómo se representa eléctricamente un 1 o 0 físico (niveles de voltaje), incluido el tiempo (forma) de las transiciones, el sobreimpulso permitido, etc. RS232 también especifica las impedancias del controlador y del receptor, Características del cable IIRC y límites de velocidad en baudios frente a la longitud del cable. Y agrega algunos conectores y pines 'secundarios', con funciones no claramente definidas.

Entonces, sí, UART y RS232 ESTÁN desacoplados, en el sentido de que, por ejemplo, puede usar UART sobre RS485 o codificación NRZI sobre RS232.

Información adicional para ayudar a los lectores que llegan a esta pregunta:

Douglas V. Hall en su libro “Microprocesadores e interfaces. El capítulo 13 titulado: RS-232C Serial Data Standard:” lo señala muy bien:

En 1960, con la amplia difusión de terminales de computadora y el desarrollo de módems para usar líneas telefónicas para la comunicación, la Asociación de Industrias Electrónicas (EIA) desarrolló el estándar EIA RS-232C. El estándar describe la función de 25 pines de señal y protocolo de enlace para la transferencia de datos.

El estándar también describe los niveles de voltaje, los niveles de impedancia, los tiempos de subida y bajada, la tasa de bits máxima y la capacitancia máxima para estas líneas de señal.

En resumen, RS-232C describe las características del hardware para su uso en la comunicación serie a través de un par de líneas (líneas telefónicas en este caso) entre un DTE (Equipo terminal de datos, es decir, computadoras y terminales) y un DCE (Equipo de comunicación de datos, es decir, módems). y otros tipos de equipos de comunicación).

Hall continúa describiendo el estándar que indica que el conector DTE DB-25P de 25 pines (aunque en el mercado se han utilizado conectores de otros tamaños) debe ser macho y el conector DCE hembra.

También describe los problemas de compatibilidad cuando se conectan equipos que utilizan el estándar RS-232C.

Es una buena lectura para comprender cómo surgió RS-232C y cómo interactúa con un UART como el Intel 8251A.