¿Qué significa 4 UART en un microcontrolador (Arduino)?

Un UART es un “dispositivo” implementado a menudo como un chip externo a la CPU / MCU o integrado en el microcontrolador. Su propósito es traducir los datos recibidos y enviados en alguna forma de interfaz en serie, más a menudo RS-232, RS-422, RS-432 o RS-485 (pero normalmente no incluye controladores de línea para ese propósito). Esencialmente, un UART es un par de registros de desplazamiento serie-paralelo (Rx) y serie-paralelo (Tx), envueltos con algo de lógica de buffering, apretón de manos e interrupción.

Como cualquier periférico, puede haber uno o más de ellos conectados o integrados en el sistema. Cada uno tendrá su complemento completo de registros, y estos se asignarán de forma exclusiva al mapa de memoria de la CPU. Cada uno formará la base de un puerto serie separado. Cada puerto serie puede comunicarse con un dispositivo externo separado y distinto utilizando parámetros de comunicación programados individualmente (baudios, paridad, etc.). En las comunicaciones en serie, hay una línea Rx y una Tx para cada puerto, por lo que cada puerto tendrá su propio par único.

La forma en que gestione los múltiples puertos seriales en el software dependerá de su diseño. Dado que la E / S basada en UART suele ser relativamente lenta, por lo general no es un desafío significativo mantenerse al día con las velocidades de datos. Puede haber desafíos introducidos por los niveles de interrupción compartidos y determinar qué UART generó una interrupción dada, pero esto dependerá del sistema. Por lo general, las memorias intermedias se utilizan para recopilar datos entrantes y poner en cola los datos salientes. Naturalmente, deberá mantener buffers separados para cada puerto. Es bastante posible crear un código genérico de controlador de dispositivo que ejecute todos los UART (suponiendo que sean idénticos), parametrizando las direcciones IO y otros detalles específicos de la instancia.

Los casos de uso para los UART se encuentran generalmente en dos categorías amplias. Un caso de uso común es el terminal serial interactivo que usted mencionó. El otro es controlar o monitorear dispositivos externos. Muchos dispositivos, como los dispositivos de prueba y medición, los controladores de automatización, las impresoras y otros equipos de oficina de la vieja escuela, etc., están equipados con interfaces seriales para permitirle usar software para conectarse con ellos.

Estás en lo correcto en la primera parte de tu pregunta, que también parcialmente da la respuesta …

Bueno, el funcionamiento de los 4 UARTS depende de la arquitectura de la MCU, es decir, si tienen un FIFO único o un FIFO diferente para cada uno de los UART.

Si se utiliza un solo FIFO, solo un UART puede hacer la transacción de datos en un solo momento. Mientras que, si hay FIFO separados para cada UART individual, entonces todos los UART pueden realizar la transacción de datos simultáneamente.

Pero, el procesamiento de los datos de todos los UART no se puede hacer simultáneamente, es decir, en cualquier instante de tiempo se pueden procesar los datos de uno de los muchos FIFO, pero es posible en MCU de múltiples núcleos …

Espero que hayas recibido la respuesta y la hayas entendido …


Hay 2 tipos de UART, 1 es hardware (que está predefinido por el fabricante del chip), otro es software (que se puede hacer usando bibliotecas UART con cualquier pin)

Como en su pregunta, 4 UART significa que el chip tendrá 4 pines TX RX predefinidos.