UART (Universal Asynchronous Transmitter Receiver), es el protocolo más común utilizado para la comunicación serial full-duplex. Se trata de un único chip LSI (integración a gran escala) diseñado para realizar una comunicación asíncrona. Este dispositivo envía y recibe datos de un sistema a otro.

En este tutorial, aprenderás los fundamentos de la comunicación UART, y el funcionamiento de la UART.

¿Qué es la UART?

«UART» significa receptor-transmisor asíncrono universal. Es un periférico de hardware que está presente dentro de un microcontrolador. La función de la UART es convertir los datos entrantes y salientes en el flujo binario en serie. Los datos en serie de 8 bits recibidos del dispositivo periférico se convierten en forma paralela utilizando la conversión de serie a paralelo y los datos paralelos recibidos de la CPU se convierten utilizando la conversión de serie a paralelo. Estos datos están presentes en forma de modulación y se transmiten a una tasa de baudios definida.

¿Por qué se utiliza la UART?

Protocolos como SPI (interfaz periférica en serie) y USB (Universal Serial Bus) se utilizan para la comunicación rápida. Cuando la transferencia de datos de alta velocidad no es necesaria se utiliza la UART. Es un dispositivo de comunicación barato con un solo transmisor/receptor. Requiere un solo cable para transmitir los datos y otro cable para recibir.

Interfaz UART

Interfaz UART

Se puede interconectar con un PC (ordenador personal) utilizando un conversor RS232-TTL o un conversor USB-TTL. Lo común entre RS232 y UART es que ambos no requieren un reloj para transmitir y recibir datos. La trama Uart consta de 1 bit de inicio, 1 o 2 bits de parada y un bit de paridad para la transferencia de datos en serie.

Diagrama de bloques

La UART consta de los siguientes componentes principales. Son el transmisor y el receptor. El transmisor está formado por el registro de retención de transmisión, el registro de desplazamiento de transmisión y la lógica de control. Del mismo modo, el receptor consiste en el registro de retención de recepción, el registro de desplazamiento de recepción y la lógica de control. En común, tanto el transmisor como el receptor cuentan con un generador de velocidad de transmisión.

Diagrama de bloques de la UART

Diagrama de bloques de la UART

El generador de velocidad de transmisión genera la velocidad a la que el transmisor y el receptor tienen que enviar/recibir los datos. El registro de retención de transmisión contiene el byte de datos a transmitir. El registro de desplazamiento de transmisión y el registro de desplazamiento del receptor desplazan los bits a la izquierda o a la derecha hasta que se envía/recibe un byte de datos.

Además de estos, se proporciona una lógica de control de lectura o escritura para indicar cuándo leer/escribir. El generador de velocidad de transmisión genera velocidades que van desde 110 bps (bits por segundo) hasta 230400. En general, los microcontroladores tienen tasas de baudios más altas, como 115200 y 57600, para una transferencia de datos más rápida. Dispositivos como el GPS y el GSM utilizan tasas de baudios más lentas en 4800 y 9600.

¿Cómo funciona la UART?

Para conocer el funcionamiento de la UART, es necesario entender la funcionalidad básica de la comunicación en serie. En resumen, el transmisor y el receptor utilizan el bit de inicio, el bit de parada y los parámetros de sincronización para sincronizarse entre sí. Los datos originales están en forma paralela. Por ejemplo, tenemos datos de 4 bits, para convertirlos a la forma serie, necesitamos un convertidor de paralelo a serie. Generalmente se utilizan flip-flops D o latches para diseñar los convertidores.

Funcionamiento de los flip-flop D

Basic D Flip-Flop

Basic D Flip-Flop

Los flip-flop D también conocidos como Data flip-flop cambian un bit del lado de entrada al lado de salida si y sólo, cuando el reloj cambia la transición de un estado alto a un estado bajo o de un estado bajo a un estado alto. Del mismo modo, si desea transferir cuatro bits de datos necesita 4 flip-flops.

Nota: Aquí,

‘D’ representa los datos de entrada.

‘CLK’ indica los pulsos de reloj.

‘Q’ denota los datos de salida. Ahora, vamos a diseñar un convertidor de paralelo a serie y de serie a paralelo.

Conversión de paralelo a serie

Conversión de paralelo a serie

Conversión de paralelo a serie

Conexión en cascada -. Paralelo a Serie

Conexión en cascada – Paralelo a Serie

Paso#1:

Toma 4 Flip-flops. El número de flip-flops es equivalente al número de bits a transmitir. Del mismo modo, ponga Multiplexores delante de cada flip-flop, pero excluyendo el primero. Un multiplexor se coloca para combinar los datos y convertirlos en bits en serie. Tiene dos entradas, una de datos de bits paralelos y otra del flip-flop anterior.

Paso#2:

Ahora, carga los datos a la vez en los flip-flops D. Tirará de los datos paralelos y mueve el último bit del último flip-flop (cuatro), y luego el tercer bit, el segundo bit, y finalmente el primer bit. Ahora, para reconvertir los datos paralelos en forma serial se utiliza el convertidor serial a paralelo.

Conversión Serie a Paralelo

Conversión Serie a Paralelo

Conversión Serie a Paralelo

Conexión en cascada -. Conversión de serie a paralelo

Conexión en cascada – Conversión de serie a paralelo

Paso#1:

Toma 4 Flip-flops. El número de flip-flops es el mismo que el número de bits a transmitir.

Paso#2:

Inicialmente, desactive el bus paralelo. No lo habilite hasta que todos los bits estén cargados. Almacene los datos en la entrada del primer flip-flop. Ahora haga el reloj alto, esto desplazará el bit menos significativo a la entrada del segundo flip-flop y a la salida del primero. De forma similar, desplace todos los bits uno a uno haciendo que el pulso de reloj sea alto. El convertidor está en estado de retención hasta que todos los bits se transfieren a la salida.

Paso#3:

Ahora cada flip-flop contiene un bit de datos en serie. Erstwhile todos los bits se transfieren a la salida del flip-flop, habilitar el bus. Esto hará que el convertidor envíe todos los bits a la vez.

Formato del protocolo

La UART comienza la comunicación con un bit de inicio ‘0’. El bit de inicio inicia la transferencia de datos en serie y el bit de parada finaliza la transacción de datos.

Formato de protocolo de la UART

Formato de protocolo

También dispone de un bit de paridad (par o impar). El bit de paridad par se representa con ‘0’ (número par de 1’s) y el bit de paridad impar se representa con ‘1’ (número impar de 1’s).

Transmisión

La transmisión de datos se realiza utilizando una única línea de transmisión (TxD). Aquí el ‘0’ se considera espacio y el ‘1’ se conoce como estado de marca.

Trama de transmisión UART

Trama de transmisión

El transmisor envía un solo bit a la vez. Después de enviar un bit, se envía el siguiente. De este modo, todos los bits de datos se envían al receptor con una velocidad de transmisión predefinida. Habrá un cierto retraso en la transmisión de cada bit. Por ejemplo, para enviar un byte de datos a una velocidad de 9600 baudios, cada bit se envía con un retraso de 108 µs. Los datos se añaden con un bit de paridad. Por lo tanto, se requieren 10 bits de datos para enviar 7 bits de datos.

Nota: En la transmisión, siempre se envía primero el LSB (Least Significant Bit).

Recepción

Durante la recepción, la línea RxD (Receiver) se utiliza para recibir los datos.

Trama de recepción UART

Trama de recepción

Ejemplo de interconexión UART

Este ejemplo demuestra la interconexión de la UART del ESP8266 con el MAX232. Pero, antes de entrar en los detalles de la interconexión, permítanme compartir los detalles de los pines del controlador Max232.

Diseño de los pines del MAX232

Diseño de los pines del MAX232

El IC del MAX232 se alimenta con una fuente de 5V que incluye un generador de voltaje capacitivo para conducir 232 voltajes de nivel. Viene con transmisores duales también llamado el conductor (TIN, TOUT) y receptores (RIN y ROUT).

Aquí, he utilizado ESP8266 (microcontrolador de 32 bits) que ha incorporado UART. La comunicación se puede hacer con el ESP8266 utilizando comandos AT a través de RS232 a convertidor de nivel TTL (MAX232). La siguiente figura muestra la conexión del ESP8266 con el PC (ordenador personal).

Interfaz del ESP8266 con la UART

Interfaz del ESP8266 con la UART

Al solicitar comandos AT válidos a través del PC el chip Wi-Fi responderá con un acuse de recibo. No quiero profundizar en el ESP8266 y se explicará en los futuros tutoriales.

Aquí están los pasos para implementar la comunicación serie con el PC.

  1. Conectar el transmisor (TX) del ESP8266 al receptor (TX) del conversor de nivel RS232 a TTL (MAX232) y al RX del PC.
  2. Conectar el receptor (RX) del ESP8266 al TX del PC y al RX del conversor TTL.

Comandos del ESP8266

AT+CIPSERVER=1,23<CR><LF>OK<CR><LF>
Comando AT (Enviado desde el PC) Respuesta del ESP8266 (recibido por PC)
AT<CR><LF> OK<CR><LF>
AT+CIPMUX=1 OK<CR><LF>

La siguiente captura de pantalla muestra la respuesta dada por el módulo ESP8266.

Comandos del ESP8266 - Programa Docklight

Comandos del ESP8266 – Programa Docklight

UART vs USART

USART es la forma básica de UART. Técnicamente, no son lo mismo. Pero, la definición es la misma para ambos. Son periféricos del microcontrolador que convierten los datos en paralelo en bits en serie y viceversa.

La principal diferencia entre UART y USART es, que UART sólo soporta la comunicación asíncrona, mientras que USART soporta la comunicación síncrona así como la asíncrona. Para una fácil comprensión, aquí está la comparación entre USART y UART.

UART USART
El Reloj es generado internamente por el microcontrolador. El dispositivo emisor generará el reloj.
La velocidad de datos es lenta. La velocidad de datos es mayor debido al reloj externo. Protocolo de estandarización Soporta múltiples protocolos como LIN, RS-485, IrDA, Smart Card, etc.
Se debe conocer la tasa de baudios antes de la transmisión. No es necesario conocer la tasa de baudios antes.
Adecuado para comunicaciones de baja velocidad Adecuado para comunicaciones de alta velocidad.
Reducción de la huella energética. Maneja la comunicación serie durante el alto consumo de energía

RS232 y UART

Los niveles lógicos representan los niveles de tensión de funcionamiento que un dispositivo puede soportar para operar en una zona segura. Aquí están los niveles de voltaje para RS232 y TTL.

RS232 Lógico:

Niveles de tensión RS232

Nivel lógico Rango de tensión
Salida lógica alta u OFF -5V a -15V
Salida lógica baja o ON +5V a +15V
Entrada lógica alta o OFF -3V a -15V
Entrada lógica baja o ON +3V a +15V

En la mayoría de los casos los niveles de RS232 van de -12V a +12V. Por ejemplo, un valor ASCII para un carácter ‘A’ en RS232 es 65 y 41 en Hexadecimal. Así que en un formato binario de 8 bits, es 0100 0001. Aquí se muestra la representación de los niveles lógicos del RS232 para el ASCII ‘A’.

Señal del RS232 para el ASCII Letra A

Señal del RS232 para el ASCII Letra A

Lógica TTL/CMOS:

La UART funciona en lógica TTL.

Señal TTL CMOS para ASCI Letra A

Señal TTL CMOS para ASCI Letra A

  • Inicialmente, la línea serie está en el estado de reposo comúnmente llamado estado de Marca (Lógico 1). Ahora, la transmisión de datos comienza con un bit de inicio (lógico 0).
  • Además, se envían ocho bits de datos a través de la línea serie, uno tras otro, con el LSB (bit menos significativo) en primer lugar.
  • Después de que toda la transmisión haya terminado, se encuentra un bit de parada (lógico 1).
  • Ventajas

    La ventaja de la UART es que soporta la comunicación full-duplex utilizando dos cables. Además, no requiere reloj externo para la comunicación de datos. Soporta la comprobación de errores utilizando un bit de paridad y la longitud de los datos se puede cambiar fácilmente.

    Desventajas

    La mayor desventaja de UART es que no soporta la configuración multiesclavo o multimaster. Y, el tamaño del paquete de datos está limitado a 9 bits. La UART no es adecuada para la comunicación en serie de gran peso durante el alto consumo de energía.

    Aplicaciones

  1. El puerto de depuración en serie utiliza el controlador UART para imprimir los datos procedentes del mundo externo.
  2. Podemos utilizarlo para enviar y recibir comandos hacia y desde los dispositivos embebidos.
  3. La comunicación en GPS, módem GSM/GPRS, chips Wi-Fi, etc funciona con UART.
  4. Se utiliza en el acceso a Mainframe para conectar diferentes ordenadores.

.

Deja una respuesta

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