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.
- Cómo convertirse en un buen programador integrado
- ¿Cuáles son algunos lenguajes c-to-gates de última generación?
- Cómo medir el uso de ROM y RAM de funciones individuales de una biblioteca que debe ejecutarse en un sistema integrado
- ¿Cómo comenzar con 8051 para hacer mi primer proyecto? Cómo hacer un diagrama de circuito EXTERNO que se requiere para el funcionamiento del microcontrolador
- ¿Cuáles son las ventajas y desventajas de usar C ++ para sistemas integrados en comparación con la programación en C?
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.