Qué es UART

¿Desea saber más?

R&S®Essentials | Principios básicos del osciloscopio digital y las sondas

Qué es UART

¿Qué es UART?

UART (universal asynchronous receiver / transmitter, por sus siglas en inglés) define un protocolo o un conjunto de normas para el intercambio de datos en serie entre dos dispositivos. UART es sumamente simple y utiliza solo dos hilos entre el transmisor y el receptor para transmitir y recibir en ambas direcciones. Ambos extremos tienen una conexión a masa. La comunicación en UART puede ser simplex(los datos se envían en una sola dirección), semidúplex(cada extremo se comunica, pero solo uno al mismo tiempo), o dúplex completo(ambos extremos pueden transmitir simultáneamente). En UART, los datos se transmiten en forma de tramas. A continuación se describe y explica el formato y el contenido de estas tramas de forma sucinta.

En UART, los datos se transmiten en forma de tramas

¿Dónde se utiliza UART?

UART fue uno de los primeros protocolos en serie. Los puertos en serie, que en su día proliferaron a gran escala, se basan casi siempre en el protocolo UART, y los dispositivos que utilizan interfaces RS-232, módems externos, etc. son ejemplos típicos de la aplicación de UART.
En los últimos años la popularidad de UART ha disminuido, y se ha ido sustituyendo por protocolos como SPI e I2C para la comunicación entre chips y componentes. En lugar de comunicarse por un puerto en serie, la mayoría de los ordenadores y periféricos modernos utilizan hoy tecnologías como Ethernet y USB. Sin embargo, UART se sigue utilizando para aplicaciones de baja velocidad y bajo rendimiento, puesto que es muy simple, económico y fácil de integrar.

Temporización y sincronización de protocolos UART

Una de las mayores ventajas de UART es que es asíncrono: el transmisor y el receptor no comparten la misma señal de reloj. Si bien esto simplifica en gran medida el protocolo, plantea determinados requisitos en el transmisor y el receptor. Puesto que no comparten un reloj, ambos extremos deben transmitir a la misma velocidad, previamente concertada, con el fin de mantener la misma temporización de los bits. Las velocidades en baudios más habituales en UART que se utilizan actualmente son 4800, 9600, 19,2 K, 57,6 K, y 115,2 K. Además de tener la misma velocidad en baudios, ambos extremos de una conexión UART deben utilizar también la misma estructura y parámetros de trama. La forma más sencilla de entender esto es observando una trama UART.

Formato de trama en UART

Las tramas UART contienen bits de inicio y de parada, bits de datos, y un bit opcional de paridad, que se explicará más adelante.

Como en la mayoría de los sistemas digitales, un nivel de tensión «alto» se utiliza para indicar un «1» lógico, y un nivel de tensión «bajo» se emplea para indicar un «0» lógico. Dado que el protocolo UART no define tensiones específicas o rangos de tensión para estos niveles, a veces se denomina al nivel alto «marca» y al bajo «espacio». Obsérvese que en el estado de reposo (cuando no se transmiten datos) la línea se mantiene en el estado alto. Esto permite detectar con facilidad una línea o un transmisor averiado.

Bits de inicio y de parada

Puesto que UART es asíncrono, el transmisor necesita señalizar que los bits de datos están llegando. Este se realiza con el bit de inicio. El bit de inicio es una transición del estado de reposo alto a un estado bajo, seguido inmediatamente de bits de carga útil (de datos).
Una vez que finalizan los bits de datos, el bit de parada indica el fin de la carga útil. El bit de parada es o bien una transición de retorno al estado alto o de reposo, o bien la permanencia en el estado alto por un tiempo de bit adicional. Se puede configurar un segundo bit de parada (opcional), normalmente para dar al receptor tiempo para prepararse para la siguiente trama, si bien no es una práctica muy común.

Bits de datos

Los bits de datos son la carga útil o los bits «útiles», y llegan inmediatamente después del bit de inicio. Puede haber de 5 a 9 bits de carga útil, si bien lo más habitual son 7 u 8 bits. Estos bits de datos se transmiten generalmente con el bit menos significativo primero.

Ejemplo:
Si deseamos enviar la letra mayúscula «S» en ASCII de 7 bits, la secuencia de bits es 1 0 1 0 0 1 1. Primero invertimos el orden de los bits para colocarlos en el orden del bit menos significativo, es decir, 1 1 0 0 1 0 1, antes de enviarlos. Una vez que se han enviado los últimos bits de datos, el bit de parada se utiliza para finalizar la trama y la línea retrocede al estado de reposo.

  • «S» en ASCII con 7 bits (0x52) = 1 0 1 0 0 1 1
  • Orden de bit menos significativo = 1 1 0 0 1 0 1

Bits de inicio y de parada

Bits de datos

Bit de paridad

Una trama UART también puede contener un bit de paridad opcional que se utiliza para la detección de errores. Este bit se inserta entre los bits de fin de datos y el bit de parada. El valor del bit de paridad depende del tipo de paridad utilizado (par o impar):

  • En la paridad par, este bit se ajusta de tal modo que el número total de unos en la trama será par.
  • En la paridad impar, este bit se ajusta de tal modo que el número total de unos en la trama será impar.

Ejemplo:
La letra «S» mayúscula (1 0 1 0 0 1 1) contiene en total tres ceros y cuatro unos. Si se utiliza la paridad par, el bit de paridad es cero, puesto que ya existe un número par de unos. Si se utiliza la paridad impar, entonces el bit de paridad deberá ser uno para que la trama tenga un número impar de unos.
El bit de paridad solo puede detectar un único bit invertido. Si hay más de un bit invertido, no es posible detectarlo con fiabilidad utilizando un único bit de paridad.

Ejemplo de bit de paridad

Qué es UART

Obtenga más información en nuestro vídeo «Qué es UART»

Este vídeo explica el esquema técnico del protocolo en serie UART (universal asynchronous receiver/transmitter), incluyendo una descripción de la estructura de trama y el significado de cada bit de trama.

Resumen

  • UART (universal asynchronous receiver/transmitter, por sus siglas en inglés), es un protocolo simple de dos hilos para el intercambio de datos en serie.
  • Asíncrono quiere decir que los extremos no comparten un reloj, de modo que para que UART funcione debe estar configurada la misma velocidad de bits o baudios en ambos extremos de la conexión.
  • Los bits de inicio y de parada se utilizan para indicar dónde empiezan y terminan los datos de usuario, o para «enmarcar» los datos.
  • Se puede utilizar un bit de paridad opcional para detectar errores de bit únicos.
  • UART sigue utilizándose a gran escala como protocolo de datos en serie, pero se ha ido reemplazando en los últimos años en algunas aplicaciones por tecnologías como SPI, I2C, USB y Ethernet.

¿Tiene preguntas sobre el protocolo UART u otros protocolos en serie? Nuestros expertos le asesorarán con mucho gusto.