Módulos UART y SPI
- Módulos UART y SPI
Cuando se habla de protocolos de
comunicación, UART, SPI son las interfaces de hardware más comunes usadas en el
desarrollo de microcontroladores. En este blog te contaremos las
características de estos protocolos, las ventajas e inconvenientes de cada uno
y algunos ejemplos de cómo se usan en los microcontroladores.
UART
El protocolo UART, viene de las
siglas en inglés ‘Universal Asynchronous Receiver-Transmitter’
(Receptor-transmisor asíncrono universal), mientras que USART son las siglas de
‘Universal Synchronous and Asynchronous Receiver-Transmitter’. La diferencia
entre ellos es obvia, UART realiza solo comunicación en serie asíncrona,
mientras que USART puede realizar procesos de comunicación en serie tanto
síncronos como asíncronos.
Las principales características
son:
Tiene dos líneas de datos, una
para transmitir (TX) y otra para recibir (RX), que se utilizan para comunicarse
a través del pin digital 0, pin digital 1.
TX y RX siempre están conectados
entre dos dispositivos. (por ejemplo, USB y un ordenador)
Admite la transmisión de datos
bidireccional, asíncrona y en serie.
También puede manejar problemas
de administración de sincronización entre ordenadores y dispositivos seriales
externos.
Funcionamiento
En cuanto a su funcionamiento es
simple, los datos que fluyen desde TX del UART transmisor hasta el RX del UART
receptor, una vez se haya conectado e iniciado la comunicación. Sin embargo, la
comunicación entre dispositivos puede realizarse de 3 formas:
• Símplex = transmisión de datos
en una dirección.
• Half-duplex = transmisión de
datos en cualquier dirección, pero no simultáneamente.
• Full-duplex = transmisión de
datos en ambas direcciones simultáneamente.
La transmisión de UART convierte
los datos en paralelo del dispositivo maestro (por ejemplo, la CPU) en forma de
serie y los transmite en serie a la UART receptora. Después volverá a convertir
los datos en serie en datos paralelos para el dispositivo receptor.
Además, al ser asíncrono, no hace
uso de relojes, el direccionamiento distribuye la información adecuadamente.
UART agrega bits de inicio y parada que se transfieren para representar el
inicio y el final de un mensaje, ayudando así al receptor a saber cuándo
comenzar y dejar de leer bits. Cuando el UART receptor detecta un bit de
inicio, leerá los bits equivalentes a la tasa de BAUD definida. Esta tasa
define la velocidad de transmisión de bits, la cual es similar a la de
símbolos, y normalmente la velocidad viene predeterminada en 115.200 baudios.
Es importante que ambos UART
tengan definida la misma velocidad en baudios, ya que si la diferencia es de
más del 10% la temporización de los bits puede estar desactivada y dejar los
datos inutilizables.
Protocolo
En cuanto al protocolo de trabajo
de un UART su funcionamiento es el siguiente. El que primero que quiere
transmitir datos, recibirá datos de un bus de datos que es enviado por otro
componente (por ejemplo, la CPU). Después de obtener los datos del bus de datos,
agregará un bit de inicio, un bit de paridad y un bit de parada para crear el
paquete de datos. Este paquete de datos se transmite luego por el pin TX donde
el UART receptor leerá el paquete de datos en su pin RX. Los datos se envían
hasta que no quedan datos en el UART transmisor, y se recibe el bit de
parada.
Por tanto, cada paquete UART
estará compuesto de los siguientes bits: 1 bit de inicio (nivel bajo), 8 bits
de datos, incluido el bit de paridad, 1 o 2 bits de parada (nivel alto).
Existe también una bandera
llamada FIFO (First Input, First Output): Primero en entrar, primero en salir.
Es un búfer UART que obliga a que cada byte se pase en secuencia al UART
receptor. Esta bandera tendrá el bit ‘BUSY’ (ocupado) que solo estará inactivo
después de que los datos hayan terminado de transmitirse, el FIFO se vacíe y
cada bit se haya transmitido, incluido el bit de parada.
Comentarios
Publicar un comentario