Entendiendo el UART

¿Está interesado?

R&S®Essentials | Aspectos básicos de osciloscopios digitales y sondas

Entendiendo el UART

¿Qué es UART?

UART significa receptor/transmisor asíncrono universaly define un protocolo, o conjunto de reglas para intercambiar datos en serie entre dos dispositivos. El UART es muy simple y solo utiliza dos cables entre el transmisor y receptor para transmitir y recibir en ambas direcciones. Ambos terminales también tienen una conexión a tierra. La comunicación en UART puede ser simplex(los datos se envían en una sola dirección), semidúplex(cada lado transmite, pero solo uno a la vez), o dúplex completo(ambos lados pueden transmitir en simultáneo). Los datos en el UART se transmiten en la forma de tramas. El formato y el contenido de estas tramas se describe y explica brevemente.

Los datos en el UART se transmiten en la forma de tramas

¿Dónde se usa el UART?

El UART fue uno de los primeros protocolos en serie. Los puertos en serie que alguna vez tuvieron un uso muy extendido siempre se basan en el UART. Los dispositivos que utilizan interfaces RS-232, módems externos, etc. son ejemplos comunes de donde se utiliza el UART.
En los últimos años, la popularidad del UART ha disminuido: protocolos con SPI e I2C han estado reemplazando el UART entre chips y componentes. En lugar de comunicarse por medio de un puerto en serie, la mayoría de computadoras y periféricos modernos usan ahora tecnologías como Ethernet y USB. Sin embargo, el UART aún se utiliza para aplicaciones de menor velocidad y de menor rendimiento, porque es muy simple, de bajo costo y de fácil implementación.

Temporización y sincronización de los protocolos UART

Una de las grandes ventajas del UART es que es asíncrono: el transmisor y el receptor no comparten una señal de reloj común. Aunque esto simplifica enormemente el protocolo, pone ciertos requisitos al transmisor y al receptor. Dado que no comparten un reloj, ambos terminales deben transmitir a la misma velocidad preestablecida para que tengan la misma sincronización de bits. Las velocidades de baudios del UART más comunes que se utilizan en estos días son 4800, 9600, 19.2 K, 57.6 K y 115.2 K. Además de tener la misma velocidad en baudios, ambos lados de una conexión UART también deben utilizar los mismos parámetros y estructura de trama. La mejor manera de entender esto es mirar una trama UART.

Formato de trama UART

Las tramas UART contienen bits de inicio y parada, bits de datos, y un bit de paridad opcional, los cuales se explicarán a continuación.

Como la mayoría de los sistemas digitales, un nivel de voltaje «alto» se utiliza para indicar un «1» lógico y un nivel de voltaje «bajo» se usa para indicar un «0» lógico. Dado que el protocolo UART no define voltajes o rangos de voltaje específicos para estos niveles, a veces a alto también se le llama «marca» mientras que a bajo se le llama «espacio». Note que en el estado de reposo (donde no se transmiten datos), la línea se mantiene alta. Esto permite una fácil detección de una línea o transmisor dañado.

Bits de inicio y de parada

Ya que el UART es asíncrono, el transmisor necesita indicar que los bits de datos están llegando. Esto se logra utilizando el bit de inicio. El bit de inicio es una transición del estado alto de reposo a un estado bajo, y seguido inmediatamente por bits de datos de usuario.
Después de que se terminan los bits de datos, el bit de parada indica el fin de datos de usuario. El bit de parada es una transición de regreso al estado alto o de reposo o permanece en el estado alto por un tiempo de bit adicional. Se puede configurar un segundo bit de parada (opcional), generalmente para darle tiempo al receptor de prepararse para la siguiente trama, pero esto no es común en la práctica.

Bits de datos

Los bits de datos son los datos de usuario o bits «útiles» y vienen inmediatamente después del bit de inicio. Puede haber de 5 a 9 bits de datos de usuario, aunque de 7 o 8 bits es lo más común. Estos bits de datos normalmente se transmiten primero con el bit menos importante.

Ejemplo:
si queremos mandar la «S» mayúscula en código ASCII de 7 bits, la secuencia de bits es 1 0 1 0 0 1 1. Primero y antes de enviarlos, invertimos el orden de los bits para ponerlos en el orden de bit menos importante, que es 1100101. Después de que se envía el último bit de datos, se utiliza el bit de parada para finalizar la trama y la línea regresa al estado de reposo.

  • Código ASCII de 7 bits para «S» (0x52) = 1 0 1 0 0 1 1
  • Orden de bits menos significativo = 1 1 0 0 1 0 1

Bits de inicio y de parada

Bits de datos

Bit de paridad

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

  • En la paridad par, este bit se configura para que el total de números 1 en la trama será par.
  • En la paridad impar, este bit se configura para que el total de números 1 en la trama será impar.

Ejemplo:
“S” mayúscula (1 0 1 0 0 1 1) contiene un total de tres ceros y cuatro unos. Si se usa la paridad par, el bit de paridad es cero porque ya hay un número par de unos. Si se usa la paridad impar, entonces el bit de paridad tiene que ser uno para hacer que la trama tenga un número impar de unos.
El bit de paridad solamente puede detectar un solo bit invertido. Si hay más de un bit invertido, no hay manera de detectarlos de manera confiable usando un solo bit de paridad.

Ejemplo de bit de paridad

Entendiendo el UART

Mire nuestro video «Understanding UART» para aprender más

Este video explica la reseña técnica del protocolo en serie UART (Transmisor-Receptor Asíncrono Universal), que incluye una descripción de la estructura de trama y la significado de cada bit de la trama.

Resumen

  • UART significa Transmisor-Receptor Asíncrono Universal y es un protocolo simple de dos cables para intercambiar datos en serie.
  • Asíncrono significa que no hay reloj compartido, entonces para que el UART funcione, debe configurarse el mismo bit o la velocidad de baudios en ambos lados de la conexión.
  • Se utilizan bits de inicio o de parada para indicar donde los datos de usuario empiezan y terminan, o para «tramar» los datos.
  • Un bit de paridad opcional puede utilizarse para errores de bit único.
  • El UART es aún un protocolo de datos en serie ampliamente utilizado, pero en los ultimamos años, se ha visto reemplazado en algunas aplicaciones por tecnologías como SPI, I2C, USB y Ethernet.

¿Tiene alguna pregunta sobre el UART o sobre algún otro protocolo en serie? Nuestros expertos lo ayudarán.