Articles

Comunicación en serie

Posted on
Colaboradores: jimblom

Favorito 88

Compartir

Utiliza esta URL para compartir:

UARTs

La pieza final de este rompecabezas en serie es encontrar algo tanto para crear los paquetes en serie como para controlar esas líneas físicas de hardware. Introduzca la UART.

Un receptor/transmisor asíncrono universal (UART) es un bloque de circuitos responsable de implementar la comunicación en serie. Esencialmente, la UART actúa como un intermediario entre las interfaces paralela y serie. En un extremo de la UART hay un bus de ocho o más líneas de datos (más algunos pines de control), en el otro están los dos cables en serie – RX y TX.

UART simplificada

Interfaz UART súper simplificada. Paralelo en un extremo, serie en el otro.

Las UART existen como circuitos integrados independientes, pero es más común encontrarlas dentro de los microcontroladores. Tendrás que comprobar la hoja de datos de tu microcontrolador para ver si tiene alguna UART. Algunos no tienen ninguna, otros tienen una, otros tienen muchas. Por ejemplo, el Arduino Uno -basado en el «viejo fiel» ATmega328- tiene una sola UART, mientras que el Arduino Mega -construido sobre un ATmega2560- tiene la friolera de cuatro UARTs.

Como la R y la T en el acrónimo dictan, las UARTs son responsables tanto de enviar como de recibir datos en serie. En el lado de transmisión, una UART debe crear el paquete de datos – añadiendo bits de sincronización y paridad – y enviar ese paquete por la línea de transmisión con una sincronización precisa (de acuerdo con la tasa de baudios establecida). En el extremo de recepción, la UART tiene que muestrear la línea de RX a un ritmo acorde con la tasa de baudios esperada, recoger los bits de sincronización y escupir los datos.

UART Interna
Diagrama de bloques de la UART Interna (cortesía de la hoja de datos del Exar ST16C550)

Las UARTs más avanzadas pueden lanzar sus datos recibidos en un buffer, donde pueden permanecer hasta que el microcontrolador venga a buscarlos. Las UARTs usualmente liberan sus datos en el buffer en base al primero en entrar, primero en salir (FIFO). Los búferes pueden ser tan pequeños como unos pocos bits, o tan grandes como miles de bytes.

UARTs de software

Si un microcontrolador no tiene una UART (o no tiene suficiente), la interfaz en serie puede ser de bits – controlada directamente por el procesador. Este es el enfoque que toman las bibliotecas de Arduino como SoftwareSerial. El cambio de bits requiere un uso intensivo del procesador, y no suele ser tan preciso como una UART, pero funciona en caso de necesidad.

Comparte

Usa esta URL para compartir:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *