UART - El receptor-transmisor asíncrono universal
La UART es una interfaz serie full duplex. Permite que dos dispositivos se comuniquen a través de sólo tres hilos y admite velocidades variables.
Características de la UART
Como su nombre indica, UART es una interfaz asíncrona. A diferencia de SPI o I2C, no hay necesidad de un reloj dedicado. Los dos dispositivos sólo necesitan utilizar la misma velocidad de transmisión. La velocidad de transmisión es variable y dicta cuántos bits puede enviar el bus cada segundo (bits/s).
El formato de los datos también es configurable. Por lo tanto, otra forma de medir la velocidad de transmisión es la tasa de baudios (baudios/s), donde un baudio es un símbolo o carácter. Así, si un baudio consta de 8 bits, significa que una tasa de bits de 115200 bits/s equivale a 14400 baudios/s.
La UART utiliza dos cables de datos, por lo que en la mayoría de los casos la comunicación es full duplex (ambas direcciones al mismo tiempo). Además, ambos dispositivos UART necesitan un cable para compartir la tensión de referencia de tierra. En resumen, esto significa que sólo necesitas tres cables.
Cableado
Un dispositivo UART necesita tres pines para comunicarse. RX para leer, TX para transmitir y GND para la referencia de tierra.
Conecta los pines RX de ambos dispositivos a los pines TX del otro dispositivo. Conecta ambos pines GND y ya has terminado con la configuración del hardware.
En teoría, incluso podrías conectar los pines RX de varios dispositivos en el pin TX de un dispositivo. De esta manera, si sabes lo que estás haciendo, puedes dejar que un dispositivo transmita los datos a múltiples dispositivos. Pero el RX de cualquier dispositivo sólo puede conectarse a un pin TX a la vez.
Comunicación UART
Debe ajustar ambos dispositivos a la misma velocidad de transmisión. Si difiere en más de 3% los datos se corromperán. Las velocidades más comunes son 4800, 9600, 19200 y 115200, entre otras. Además, ambos dispositivos deben acordar el mismo formato de datos y el mismo bit de paridad. El bit de paridad es un medio para comprobar que los datos transmitidos no tienen errores.
Cada vez que un dispositivo quiere transmitir datos, comienza enviando el bit de inicio.
El estado de reposo del cable de datos es ALTO, por lo que el transmisor lo pone en BAJO durante un ciclo de reloj. A continuación, tira del cable en LOW para un 0 y en HIGH para un 1 en la frecuencia exacta de la tasa de baudios. Después de cada trama de datos envía un bit de paridad si se desea la comprobación de errores. Luego pone el cable en ALTO para señalar el bit de parada.
Ventajas, desventajas y aplicaciones
Ventajas
La ventaja más llamativa es la sencillez de la UART. Tanto el software como el hardware son extremadamente fáciles de configurar. La velocidad variable permite mantener un consumo de energía muy bajo. Y, por supuesto, la interfaz permite una comunicación full duplex.
Además, los datos pueden viajar a grandes distancias, hasta 1000 metros.
Desventajas
La interfaz se limita básicamente a dos dispositivos. Además, no hay reloj para controlar y cambiar la velocidad de transmisión durante la misma. En la mayoría de los casos es más lento que, por ejemplo, SPI o I2C.
Aplicaciones UART
La UART es muy capaz de enviar pequeñas cantidades de datos. Es utilizado por muchos receptores GPS, módulos Bluetooth, sistemas de comunicación inalámbrica o aplicaciones basadas en RFID.
También puedes utilizar la interfaz para conectar tu Raspberry Pi a tu Raspberry Pi Pico como mostramos en este vídeo.
También funciona bien en aplicaciones de largo alcance donde SPI e I2C no son una opción.
[...] UART - El receptor-transmisor asíncrono universal [...]
[...] UART - El receptor-transmisor asíncrono universal [...]