UART: ¿protocolo o hardware? [cerrado]

Algunos dicen que UART es hardware, otros dicen que UART es uno de los protocolos de comunicación en serie.

UART es un protocolo

UART es un protocolo

UART es hardware

UART es hardware

Si buscas las palabras en el acrónimo, el origen es claro. El uso común puede ser más habitual que correcto. Una pregunta que consta principalmente de 4 enlaces y pedir una opinión no está dentro de la misión de este sitio.
Veo que alguien mira Death Note, Sr. Yagami;) De todos modos, diría que son ambos. La forma en que transmite y recibe información a través del procesamiento de señales digitales es el protocolo y el chip que proporciona estos protocolos es el hardware.
Algunas personas dicen " Async Serial " cuando se refieren específicamente al protocolo y no al hardware. Sus orígenes se remontan al siglo XIX . No sé si está descrito en algún estándar internacional formal.
Algunas personas también dicen " RS-232 ", pero estrictamente hablando, RS-232 especifica la interfaz eléctrica entre un UART y un módem, sin decir mucho sobre el UART en sí.

Respuestas (5)

Sus dos primeros enlaces son, simplemente, incorrectos. Un UART es una pieza de hardware que puede implementar una serie de protocolos diferentes que se utilizan para enmarcar flujos de datos asíncronos. La U es un acrónimo de "Universal", y si bien es efectivamente correcto, no hay razón para que no se pueda usar un protocolo que confunda a la población actual de UART, aparte del hecho de que no vale la pena el esfuerzo.

Los diferentes protocolos manejados usan diferentes números de bits para detectar condiciones de inicio y fin, presencia o ausencia de un bit de paridad (y su polaridad) y longitudes de datos de trama. Por lo general, puede especificar 5, 6, 7 u 8 bits de datos por cuadro. Si alguien insistiera en que sus datos deben formatearse en marcos de 4 bits, ningún chip UART existente podría manejarlo.

En parte, esto es una cuestión de definición. Merriam-Webster, por ejemplo, define el protocolo (para este contexto) como

un conjunto de convenciones que rigen el tratamiento y especialmente el formateo de datos en un sistema de comunicaciones electrónicas

Tenga en cuenta que la implementación del hardware no forma parte de la definición.

Es un ambos en realidad. UA significa Universal Asynchronous, que maneja la transmisión en serie asíncrona. RT significa Receptor/Transmisor, que son claramente términos de hardware.

El UART es tanto el hardware que implementa el protocolo (UART). La parte del hardware se denomina principalmente "periférico" o dispositivo UART.

Sin embargo, el protocolo UART también puede implementarse solo por software (mediante el uso de 2 pines GPIO para recibir y transmitir). En su mayoría, esto consume severamente la potencia de la CPU (dependiendo de la velocidad de comunicación).

Debido a que la comunicación en serie es tan ampliamente utilizada, la mayoría de los microcontroladores tienen al menos un periférico UART de hardware para permitir que el hardware realice la mayor parte del manejo (como almacenamiento en búfer, dividir bytes en bits y enviar/recibir, agregar bits de inicio/parada, manejar el bit de paridad, etc.) .).

Entonces, UART es un protocolo de comunicación en serie y el microcontrolador puede tener un circuito de hardware dedicado para él.
Es cierto que la mayoría de los microcontroladores tienen al menos uno, algunos tienen hasta 8 (o tal vez incluso más).

UART (Universal Asynchronous Reciever/Transmitter) se refiere más apropiadamente a un bloque funcional (normalmente hardware pero ocasionalmente software) para transmitir y recibir datos en serie asíncronos que se pueden configurar para una selección de diferentes velocidades de transmisión, conteo de bits, paridad, etc.

Pero a pesar de lo "universal" en el nombre, la flexibilidad sigue siendo bastante limitada y el formato básico está fijo en gran medida. Hay un "bit de inicio" cuando la línea se aleja del estado inactivo para indicar el inicio de un "byte", un número (generalmente 7 u 8) de bits de datos, opcionalmente un bit de paridad y luego uno o dos "bits de parada". con la línea nuevamente en estado inactivo para garantizar que cada byte comience con una transición fuera del estado inactivo.

Las personas necesitan un nombre para esta familia de codificaciones, simplemente podrían usar el término "serie asíncrona", pero eso es demasiado vago. Hay muchas codificaciones en serie asíncronas que son muy diferentes de las que puede manejar un UART. Entonces, para bien o para mal, este método de codificación se denomina "serie UART" o simplemente "UART". Esencialmente, la codificación recibe el nombre del hardware utilizado para implementarla.

En algunas circunstancias, puede haber 1 1/2 bits de parada, especialmente cuando se utiliza una partición de 5 bits.

UART/USART es de hecho hardware. De hecho, incluso antes de comenzar la discusión de la terminología, aquí hay un ejemplo popular de los años 80: UART 8250 , que es

"...un circuito integrado diseñado para implementar la interfaz para comunicaciones seriales".

Si revisa la terminología, verá que se hace referencia a elementos de hardware. Por ejemplo, en la presentación de Microchip 'Using the USART in Asynchronous Mode' , notará que se mencionan cosas como el reloj, los pines, el dúplex y la interfaz:

USART son las siglas de Universal Synchronous Asynchronous Receiver Transmitter. A veces se le llama interfaz de comunicaciones en serie o SCI. La operación síncrona usa un reloj y una línea de datos mientras que no hay un reloj separado que acompañe a los datos para la transmisión asíncrona. Dado que no hay señal de reloj en la operación asíncrona, se puede usar un pin para la transmisión y otro pin para la recepción. Tanto la transmisión como la recepción pueden ocurrir al mismo tiempo; esto se conoce como operación de dúplex completo . La transmisión y la recepción se pueden habilitar de forma independiente. Sin embargo, cuando el puerto serieestá habilitado, el USART controlará ambos pines y uno no se puede usar para E/S de propósito general cuando el otro se usa para transmisión o recepción.

Veamos ahora el documento de TI 'Circuitos de interfaz para TIA/EIA-232-F' :

Mirando la interfaz DB9 un paso atrás en el sistema digital, hay, en la mayoría de los casos, un receptor/transmisor asíncrono universal (UART) o un elemento de comunicación asíncrono (ACE). El ACE proporciona la conversión de paralelo a serie y los bits de inicio/parada necesarios, la generación de bits de paridad y la verificación de la transmisión de datos sin errores .

Para citar FPGA Prototyping by Verilog Ejemplos: Xilinx Spartan-3 Versión :

Un receptor y transmisor asíncrono universal (UART) es un circuito que envía datos paralelos a través de una línea serie . Los UART se utilizan con frecuencia junto con el estándar EIA (Electronic Industries Alliance) RS-232, que especifica las características eléctricas, mecánicas, funcionales y de procedimiento de dos equipos de comunicación de datos.

Y un poco más:

Un UART incluye un transmisor y un receptor. El transmisor es esencialmente un registro de desplazamiento especial

Lo mismo ocurre con la descripción en Wikipedia , esencialmente enumeran qué elementos de hardware debe tener la interfaz UART.


¿Dónde entra en juego el aspecto del software? Eso lo maneja el propio protocolo serial asíncrono. El libro 'Programación de microcontroladores PIC de 16 bits en C: Aprendiendo a volar el PIC 24' proporciona una muy buena introducción en el Capítulo 8: en aviación tienes un protocolo preciso de cómo y qué se debe decir, quién habla primero y segundo, etc. y esto es lo mismo para la comunicación en serie. El software controlará el hardware suministrado por UART para transmitir (enviar el bit de inicio, los datos, luego el bit de parada) y cuándo escuchar.

Lo importante a tener en cuenta es que UART no tiene que estar vinculado al conector DB-9: UART no es DB-9. Actualmente tiene Raspberry Pi, Arduino y muchos otros sistemas integrados que usan solo 4 líneas de cables. A veces hay convertidores de USB a RS-232. Por ejemplo, trabajé con la placa PICDEM PIC18 que puede usar DB-9 o USB para la comunicación en serie. Los datos en serie también se pueden enviar a través de líneas Ethernet .

Es hardware que, como su nombre lo indica, incluye un transmisor físico y un receptor físico. No es ni puede ser un protocolo porque un protocolo es un sistema de reglas (que obviamente no es una entidad física).