Fundamentos de la comunicación UART

La UART o Receptor Universal Asíncrono Transmisor es un hardware dedicado asociado a la comunicación en serie. El hardware para UART puede ser un circuito integrado en el microcontrolador o un IC dedicado. Esto contrasta con SPI o I2C, que son sólo protocolos de comunicación.

UART es una de las técnicas de comunicación en serie más simples y más utilizadas. Hoy en día, UART se utiliza en muchas aplicaciones como receptores GPS, módulos Bluetooth, módems GSM y GPRS, sistemas de comunicación inalámbricos, aplicaciones basadas en RFID, etc.

Si recuerdas los sistemas informáticos más antiguos, dispositivos como el ratón, la impresora y el módem se conectan utilizando un pesado conector en la parte posterior. Todos estos dispositivos se comunicaban utilizando UART.

Aunque el USB ha sustituido todo tipo de estándares de comunicación en los ordenadores y otros dispositivos, UART se sigue utilizando en las aplicaciones mencionadas anteriormente.

Casi todos los microcontroladores tienen hardware UART dedicado integrado en su arquitectura. La razón principal para integrar el hardware UART en los microcontroladores es que se trata de una comunicación en serie y requiere sólo dos cables para la comunicación.

Antes de entrar en la explicación más detallada de UART, cómo funciona y los pasos involucrados en la transmisión y recepción de datos, vamos a tratar de recordar algo de información sobre la comunicación en serie y una pequeña comparación entre las comunicaciones en serie y en paralelo.

Resumen

Breve nota sobre la Comunicación Paralela y Serial

La Transferencia de Datos Digitales de un dispositivo a otro se puede lograr de dos maneras: Transferencia de datos en paralelo y Transferencia de datos en serie. En la transferencia de datos en paralelo, todos los bits se transfieren desde el origen hasta el destino a la vez.

Esto es posible porque la transferencia de datos en paralelo utiliza múltiples carriles o cables entre el transmisor y el receptor para transferir los datos.

Los métodos de transferencia de datos en paralelo son más rápidos y caros, ya que necesitan más hardware y muchos cables. Las impresoras de antaño son el mejor ejemplo de comunicación paralela externa. Otros ejemplos son la RAM, PCI, etc.

Con el progreso de la tecnología de circuitos integrados, los CI digitales son cada vez más pequeños y más rápidos y, como resultado, las tasas de transferencia en la Comunicación Paralela con múltiples carriles han llegado a un cuello de botella.

La Comunicación Serial, por su parte, transfiere los datos bit a bit utilizando una sola línea o cable. Para la comunicación bidireccional entre el transmisor y el receptor, sólo necesitamos dos cables para la transferencia de datos en serie con éxito.

Dado que la comunicación en serie necesita menos circuitos y cables, el coste de implementación es menor. Como resultado, el uso de la comunicación en serie en circuitos complejos podría ser más práctico que la comunicación en paralelo.


Pero la única preocupación con las transferencias de datos en serie es la velocidad. Dado que la transferencia de datos se produce a través de una sola línea, la velocidad de transferencia en la comunicación en serie es menor que la de la comunicación en paralelo. Hoy en día, la velocidad de transferencia de datos en serie no es una preocupación, ya que los avances en la tecnología han llevado a velocidades de transferencia más rápidas.

Introducción a la comunicación UART

UART o Transmisor Receptor Asíncrono Universal es un dispositivo de comunicación en serie que realiza la conversión de datos de paralelo a serie en el lado del transmisor y la conversión de datos de serie a paralelo en el lado del receptor. Es universal porque los parámetros como la velocidad de transferencia, la velocidad de los datos, etc. son configurables.

Como se ha mencionado en la sección de introducción, la UART es una pieza de hardware que actúa como puente entre el procesador y el protocolo o puerto de comunicación serie. La siguiente imagen muestra brevemente esta interfaz. La comunicación serie puede ser cualquier cosa como USB, RS – 232, etc.


La letra ‘A’ en UART significa Asíncrono, es decir, no hay señal de reloj para sincronizar o validar los datos transmitidos desde el transmisor y recibidos por el receptor (Comunicación Serie Asíncrona).

Esto contrasta con la Comunicación Serial Sincronizada, que utiliza una señal de reloj que se comparte entre el transmisor y el receptor para «sincronizar» los datos entre ellos.

Si no hay reloj (o cualquier otra señal de sincronización) entre el transmisor y el receptor, entonces ¿cómo sabe el receptor cuándo leer los datos?

En UART, el transmisor y el receptor deben acordar los parámetros de sincronización de antemano. Además, UART utiliza bits especiales al principio y al final de cada palabra de datos para sincronizar el transmisor y el receptor. Más información sobre estos bits especiales en las secciones posteriores.

En la comunicación serie basada en UART, el transmisor y el receptor se comunican de la siguiente manera. La UART del dispositivo emisor, es decir, la UART transmisora, recibe los datos paralelos de la CPU (microprocesador o microcontrolador) y los convierte en datos serie.

Estos datos serie se transmiten a la UART del dispositivo receptor, es decir, la UART receptora. La UART receptora, al recibir los datos en serie, los convierte de nuevo en datos paralelos y los entrega a la CPU.

Conexión básica de la UART

El pin de la UART transmisora, que transmite los datos en serie, se llama TX y el pin de la UART receptora, que recibe los datos en serie, se llama RX.

Dado que la UART implica la conversión de datos de paralelo a serie y de serie a paralelo, los registros de desplazamiento son una parte esencial del hardware de la UART (dos registros de desplazamiento para ser específicos: Registro de desplazamiento del transmisor y Registro de desplazamiento del receptor).

¿Cómo funciona la UART?

En la comunicación serie UART, los datos se transmiten de forma asíncrona, es decir, no hay ningún reloj u otra señal de sincronización entre el emisor y el receptor. En lugar de la señal de reloj, la UART utiliza unos bits especiales llamados bits de inicio y de parada.

Estos bits se añaden al paquete de datos real al principio y al final respectivamente. Estos bits adicionales permiten a la UART receptora identificar los datos reales.

La imagen anterior muestra una conexión UART típica. La UART transmisora recibe los datos del dispositivo controlador a través del bus de datos. El dispositivo controlador puede ser cualquier cosa como una CPU de un microprocesador o un microcontrolador, unidad de memoria como una RAM o ROM, etc. Los datos recibidos por la UART transmisora desde el bus de datos son datos paralelos.

A estos datos, la UART añade bits de inicio, paridad y parada para convertirlos en un paquete de datos. A continuación, el paquete de datos se convierte de paralelo a serie con la ayuda del registro de desplazamiento y se transmite bit a bit desde el pin TX.

La UART receptora recibe estos datos en serie en el pin RX y detecta los datos reales identificando los bits de inicio y parada. El bit de paridad se utiliza para comprobar la integridad de los datos.

Al separar los bits de inicio, paridad y parada del paquete de datos, los datos se convierten en datos paralelos con la ayuda del registro de desplazamiento. Estos datos paralelos se envían al controlador en el extremo receptor a través de un bus de datos.

Estructura del paquete de datos o trama

Los datos en la comunicación serie UART se organizan en bloques llamados paquetes o tramas. La estructura de un típico paquete de datos UART o el encuadre estándar de los datos se muestra en la siguiente imagen.

Veamos cada pieza de la trama.

Bit de inicio: El bit de inicio es un bit de sincronización que se añade antes de los datos reales. El bit de inicio marca el comienzo del paquete de datos. Normalmente, una línea de datos inactiva, es decir, cuando la línea de transmisión de datos no está transmitiendo ningún dato, se mantiene a un nivel de tensión alto (1).

Para iniciar la transferencia de datos, la UART transmisora tira de la línea de datos desde el nivel de tensión alto al nivel de tensión bajo (de 1 a 0). La UART receptora detecta este cambio de alto a bajo en la línea de datos y comienza a leer los datos reales. Normalmente, sólo hay un bit de inicio.

Bit de parada: El bit de parada, como su nombre indica, marca el final del paquete de datos. Suele tener dos bits, pero a menudo sólo se utiliza un bit. Para finalizar la transmisión, la UART mantiene la línea de datos a alta tensión (1).

Bit de Paridad: La paridad permite al receptor comprobar si los datos recibidos son correctos o no. La paridad es un sistema de comprobación de errores de bajo nivel y viene en dos variedades: Paridad par e impar. El bit de paridad es opcional y en realidad no se utiliza mucho.

Bits de datos: Los bits de datos son los datos reales que se transmiten del emisor al receptor. La longitud de la trama de datos puede estar entre 5 y 9 (9 bits si no se usa paridad y sólo 8 bits si se usa). Normalmente, el LSB es el primer bit de datos que se transmite (a menos que se especifique lo contrario).

Reglas de UART

Como se ha mencionado anteriormente, no hay señal de reloj en UART y el transmisor y el receptor deben acordar algunas reglas de comunicación en serie para la transferencia de datos sin errores. Las reglas incluyen:

  • Bits de sincronización (bits de inicio y parada)
  • Bit de paridad
  • Bits de datos y
  • Tasa de baudios
  • Hemos visto sobre los bits de sincronización, el bit de paridad y los bits de datos. Otro parámetro importante es el Baud Rate.

    Baud Rate: La velocidad a la que se transmiten los datos se menciona utilizando la Tasa de Baudios. Tanto la UART transmisora como la UART receptora deben estar de acuerdo con la tasa de baudios para que la transmisión de datos sea exitosa.

    La tasa de baudios se mide en bits por segundo. Algunas de las tasas de baudios estándar son 4800 bps, 9600 bps, 19200 bps, 115200 bps, etc. De estas, la velocidad de 9600 bps es la más utilizada.

    Veamos una trama de datos de ejemplo en la que se deben transmitir dos bloques de datos, es decir, 00101101 y 11010011. El formato de la trama es 9600 8N1 es decir, 9600 bps con 8 bits de datos, sin paridad y 1 bit de parada. En este ejemplo, no hemos utilizado el bit de paridad.

    Ventajas de la UART

    • Sólo requiere dos cables para la transmisión de datos full dúplex (aparte de las líneas de alimentación).
    • No necesita reloj ni ninguna otra señal de sincronización.
    • El bit de paridad garantiza la comprobación de errores básicos integrada en la trama del paquete de datos.

    Desventajas de la UART

    • El tamaño de los datos en la trama es limitado.
    • La velocidad para la transferencia de datos es menor en comparación con la comunicación en paralelo.
    • El transmisor y el receptor deben estar de acuerdo con las reglas de transmisión y se debe seleccionar la velocidad de transmisión adecuada.
  • La velocidad de transmisión es menor en comparación con la comunicación en paralelo.

Deja una respuesta

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