En este artículo, estaremos viendo el popular dispositivo UART. No es un protocolo de comunicación, sino más bien el circuito físico utilizado en microcontroladores o circuitos integrados independientes para transmitir y recibir datos en serie. Apoya la serie de artículos que hemos producido para examinar algunos de los diferentes tipos de Protocolos de Comunicación Serial disponibles.
Las comunicaciones seriales son el mecanismo perfecto para transmitir información entre dispositivos como microcontroladores, periféricos productores de datos y otros dispositivos inteligentes. Esperamos que encuentre este recurso invaluable la próxima vez que su diseño necesite incorporar un bus de comunicación serial. El UART también se conoce comúnmente como el Puerto Serie en un dispositivo. Sin embargo, esto a menudo puede confundirse con otro tipo de puerto serie, que utiliza el conector de estilo DB9 y usa RS-232 como un protocolo de hardware. No es raro tener un UART conectado a un transceptor RS-232 para que un periférico UART en un microcontrolador y un dispositivo basado en RS-232 puedan comunicarse entre sí.
UART significa Transmisor Receptor Asíncrono Universal. Este sistema de comunicación requiere dos pines, además del tierra. Uno está etiquetado como TX, el transmisor, y el otro como RX, el receptor. La aparición de la palabra asíncrono en el nombre significa que no requiere una señal de reloj. Como no tiene reloj, los dispositivos transmisor y receptor deben usar la misma tasa de baudios.
La tasa de baudios (Bd) es una unidad de medida de la velocidad de transmisión. Este parámetro determina la velocidad de comunicación sobre el canal de datos del transmisor y receptor. La tasa de baudios puede representarse como bits por segundo para simplificar. Así, una tasa de 1000 Bd significa que la velocidad de comunicación es de 1000 bits por segundo, o la duración de un bit es 1/1000 de segundo o 1 milisegundo. Las tasas de baudios tienen prefijos métricos estándar como kBd (kilobaudios), MBd (megabaudios) o GBd (Gigabaudios). La tasa de baudios incluye partes no relacionadas con los datos de un mensaje, como bits de inicio y de parada, lo que significa que la tasa de transmisión de información útil enviada del transmisor al receptor será ligeramente menor.
Algunas de las tasas de baudios UART predefinidas más populares incluyen:
A veces, la tasa de baudios de ambos dispositivos comunicantes se puede ajustar, mientras que otras veces, uno de los dispositivos tendrá una tasa de baudios fija que requiere que el otro cambie para coincidir con ella.
Entonces, para conectar los dos dispositivos usando los UARTs, el pin transmisor TX debe conectarse al pin receptor RX:
Conexión UART básica con TX, RX y tierra
En algunas configuraciones, tendrás pines RX y TX en ambos dispositivos, lo que te permite enviar comandos desde un microcontrolador a un CI dedicado y recibir órdenes o información en la dirección opuesta. Esto se llama una conexión dúplex. También hay aplicaciones cuando no se requiere retroalimentación del segundo dispositivo. Por lo tanto, solo es necesaria la comunicación en una dirección; por lo tanto, solo se necesita una línea de transmisión de TX a RX. Esto se llama una conexión simplex.
El dispositivo transmisor necesitará enviar un bit de inicio para iniciar las comunicaciones de ese dispositivo al dispositivo receptor. Este bit informa al dispositivo receptor que las comunicaciones han comenzado.
El dispositivo UART envía un bit de inicio (comenzando las comunicaciones)
Los bits de datos se envían entonces como una secuencia de ocho bits, representando los datos reales, donde el bit más significativo (MSB) se etiqueta como D7, y el bit menos significativo (LSB) se etiqueta como D0.
El primer dispositivo en la comunicación UART envía bits de datos después del primer bit de inicio.
Y al final de estos bits de datos, el transmisor envía entonces un bit de parada, que indica que este es el final del mensaje, y coloca el bus UART en su modo inactivo.
El primer dispositivo en la comunicación UART envía un bit de parada después de los bits de datos.
Podemos ver en este caso; el mensaje UART completo constará de 10 bits. En el modo inactivo, el bus UART se mantiene en alto, envía un bit de inicio que es bajo, y después vienen 8 bits de datos, seguidos por el bit de parada. El bit de parada no se limita a ser solo un bit; puede presentarse en varias configuraciones, dependiendo de qué tan rápida sea la tasa de comunicación. Esta configuración significa que el conjunto completo de bits del mensaje cambia constantemente el nivel de voltaje de la señal del bus de bajo a alto al menos una vez:
Ejemplo de paquete de comunicación serial UART
El bit más significativo D7 también puede usarse como bit de Paridad. Este bit proporciona un mecanismo de comprobación de errores rudimentario que aparece en los bloques más pequeños de las comunicaciones. El bit de paridad se puede utilizar para asegurar que el número total de bits altos o unos sea impar o par, dependiendo de la codificación. Para una comprobación de paridad par, si los bits de datos D0 a D6 están establecidos, consisten en un número par de bits altos, entonces el bit de paridad se establece en 0 (bajo). Por el contrario, si este conjunto de bits tiene un número impar de bits altos, entonces el bit de paridad se establece en 1 (alto). Esto asegura que el número total de bits altos en el mensaje será par. En caso de una comprobación de paridad impar, entonces si los bits de datos D0 a D6 están establecidos de tal manera que consisten en un número par de bits altos, el bit de paridad se establece en 1 (alto). Por el contrario, si este conjunto de bits tiene un número impar de bits altos, entonces el bit de paridad se establece en 0 (bajo). Esto asegura que el número total de bits altos en el mensaje será impar.
Entonces, mediante el uso del bit de paridad, los errores pueden ser detectados al verificar los bits establecidos. Supongamos que el número total de bits, incluyendo el bit de paridad, establecidos en alto es incorrecto. En ese caso, el bit de paridad ha permitido al receptor detectar un error durante la transmisión. Sin embargo, este tipo de protección contra errores no puede corregir el error, solo puede detectar que ha ocurrido uno ya que no hay forma de determinar cuál bit del conjunto total de bits es incorrecto. Solo puede detectar si un bit está en el estado equivocado; cualquier error que afecte a múltiples bits puede no ser detectado si la paridad total termina siendo correcta.
Si se detecta el error de paridad, entonces todo el mensaje debe ser descartado y retransmitido desde cero. En el caso de altos niveles de interferencia o ruido, podría llevar un tiempo significativo lograr una transmisión exitosa; sin embargo, ayuda a prevenir errores en el mensaje.
Además de eso, el lado receptor y transmisor de las comunicaciones UART deben usar exactamente la misma tasa de baudios y longitud de carácter, mecanismo de paridad y configuración de bit de parada para lograr comunicaciones exitosas.
También existe una variante del UART, que se llama USART. Este es un Transmisor Receptor Asíncrono Sincrónico Universal. Puede actuar tanto como un canal asíncrono (justo como el UART) como un canal sincrónico cuando los datos están sincronizados con un reloj. El reloj puede recuperarse de los propios datos o enviarse como una señal externa separada.
Cuando se utiliza un USART en su modo sincrónico, no se requieren bits de inicio y parada. Esto permite que las comunicaciones utilicen una tasa de datos más alta cuando operan de manera sincrónica porque los tiempos de bit tienen la referencia del reloj. Por lo tanto, se pueden usar más bits para datos en lugar de ser utilizados para los bits de inicio/parada.
Ejemplo de comunicación USART
UART |
USART |
El UART solo requiere una señal de datos |
El modo sincrónico del USART requiere tanto datos como un reloj. |
En el UART, los datos no tienen que transmitirse a una tasa fija. |
En el modo sincrónico del USART, los datos se transmiten a una tasa fija. |
En el UART, los datos se transmiten habitualmente un byte a la vez. |
En el USART, los datos sincrónicos se transmiten típicamente en forma de bloques de datos. |
En el UART, la velocidad de transferencia de datos se establece en torno a valores específicos como 4800, 9600, 38400 bps, etc. |
En el USART, el modo síncrono permite una tasa de transferencia de datos (DTR) más alta que el modo asíncrono si todos los demás factores se mantienen constantes. |
La velocidad del UART está limitada a alrededor de 115200 bps. |
USART puede alcanzar tasas superiores a 115 kbps. |
Comunicaciones full-duplex: los datos pueden enviarse en ambas direcciones simultáneamente. |
Comunicaciones half-duplex: los datos solo pueden enviarse en una dirección a la vez. |
El propósito principal del UART y USART es convertir los datos paralelos en las líneas de bus de la PC en datos seriales que pueden transmitirse usando controladores de línea a través de un bus que se ajusta a un estándar de protocolo de comunicaciones seriales como RS-232 o RS-485. Se requerirá un convertidor para hacer la interfaz entre el UART/USART y el bus externo. Esto permite que los datos sean leídos por un dispositivo similar sin que ambos necesiten usar exactamente el mismo formato de datos seriales. Mientras la transmisión entre los dos sea a un protocolo estándar comúnmente soportado, la implementación de las comunicaciones seriales dentro de cada dispositivo puede ser específica para ese dispositivo.
Aunque UART ha sido ampliamente superado por USB en el mercado de computadoras, todavía se utilizan ampliamente para comunicaciones seriales en dispositivos de bajo costo.
Este artículo ha examinado algunas de las características populares de los dispositivos UART y discutido algunas de sus ventajas y detalles de implementación. En el próximo artículo, Protocolos de Comunicaciones Seriales - Parte Tres: RS-232, examinaremos algunos de los protocolos de comunicación serial disponibles. ¿Te perdiste de algo? Revisa la introducción a Protocolos de Comunicación Serial.
Las herramientas de diseño en Altium Designer® contienen todo lo que necesitas para mantenerte al día con la nueva tecnología. Habla con nosotros hoy y descubre cómo podemos mejorar tu próximo Diseño de PCB.