top of page
Buscar

PROTOCOLOS DE COMUNICACIÓN SPI/I2C/UART/UART

  • Foto del escritor: UDAyT
    UDAyT
  • 6 abr 2018
  • 3 Min. de lectura

Comparación entre protocolos de comunicación en serie

(SPI, I2C & USART)


La comunicación en serie es una de las metodologías de comunicación más usadas en sistemas integrados.


¿Qué es la comunicación en serie?

Como su nombre indica, se trata de una comunicación en serie, es decir los datos son enviados uno tras otro (y no todo junto como lo hace la comunicación en paralelo) en la Figura 1 se observa dicho comportamiento; sin embargo, se necesita de algún tipo de sincronización (reloj) para realizar una comunicación exitosa.

Figura 1 Comunicación en serie & Comunicación en paralelo

Se debe tener muy claro que en la comunicación serial, la comunicación se realiza en serie mientras que el procesamiento de los datos es de manera paralela (en forma de registros).


Tipos de comunicación serial

Síncrona

En este tipo de comunicación, tanto el transmisor como el receptor comparten un reloj común para permanecer sincronizados entre sí.

Asíncrona

Este tipo de comunicación serial no requiere ninguna fuente de reloj común entre el transmisor y el receptor, ambos lados funcionan de acuerdo con sus relojes independientes.


Protocolos de comunicación en serie

Interfaz Periférica Serial (SPI, Serial Peripheral Interface)

Este es un protocolo de comunicación en serie de tipo síncrono que consta de dos líneas de datos (MOSI y MISO), una línea de reloj (SCK) y una línea de selección esclava (SS).

Tabla 1 Términos de la comunicación SPI

Toda la comunicación es manejada por el maestro; ningún esclavo puede enviar datos por su propia voluntad. El maestro envía datos a través de MOSI mientras los esclavos responden a través de la línea MISO. En todo el proceso SCK (reloj serie) juega un papel muy importante, cada dispositivo esclavo depende de este reloj para leer datos de MOSI y responder a través de MISO. SS (Slave Select) se usa para hacer que un esclavo en particular esté despierto y el maestro quiera comunicarse (ver Figura 2).


Figura 2 Protocolo SPI

Circuito inter integrado (I2C, del inglés Inter-Integrated Circuit)

I2C utiliza dos cables para todo el proceso: SDA (datos en serie) y SCL (reloj en serie). El protocolo I2C puede admitir múltiples dispositivos esclavos, pero a diferencia de SPI, que solo admite un dispositivo maestro, I2C también puede admitir múltiples dispositivos maestros.

Cada dispositivo envía / recibe datos usando solo un cable que es SDA mientras que SCL mantiene la sincronización entre los dispositivos a través del reloj común que proporciona el maestro activo como se observa en la Figura 3.

Cada esclavo tiene su propia dirección única de 7 a 10 bits que el maestro usa para identificarlos. Cada vez que el maestro desea enviar datos, primero genera una solicitud que tiene una dirección particular de ese esclavo.

Cada esclavo hace coincidir esta dirección con la suya la del maestro que corresponde. Cada mensaje se inicia con una condición de inicio y finaliza con una condición de detención.

Un solo mensaje puede contener múltiples bytes de datos, cada uno con un bit de reconocimiento (ACK) o reconocimiento negativo (NACK) entre ellos.

Las resistencias pull-up con SDA y SCL son necesarias para ejecutar este protocolo.


UART/USART

La diferencia entre ellos es que UART solo realiza comunicación en serie asíncrona, mientras que USART puede realizar un proceso de comunicación en serie tanto síncrono como asíncrono.

UART ---> Receptor y Transmisor Asíncrono Universal

USART ---> Receptor y Transmisor Sincrónico Universal y Asíncrono.


Para el modo asíncrono, este protocolo utiliza solo dos cables, es decir, Rx y TX. Como aquí no se necesita ningún reloj, ambos dispositivos deben hacer uso de sus relojes internos independientes para funcionar. Sin embargo, existe un término llamado tasa en baudios que ayuda a que estos dispositivos permanezcan sincronizados al fijar la velocidad del intercambio de datos. La velocidad en baudios se refiere a la cantidad de bits de datos transmitidos por segundo, por lo que ambos dispositivos deberían funcionar con la misma velocidad en baudios para mantener su correcto funcionamiento.


UART / USART tiene una gran limitación que solo dos dispositivos pueden comunicarse usando este protocolo a la vez. El pin TX de un dispositivo transmite datos al pin RX de otro dispositivo y, de forma similar, el TX de este último transmite datos al RX del dispositivo anterior. Así es como se produce el intercambio de datos tal como se aprecia en la Figura 4.


Figura 4 Comunicación UART modo asíncrono

Para el modo Sincrónico (Figura 5), se usa un pin XCK adicional para proporcionar el reloj. El reloj es generado por el dispositivo que envía datos en ese momento.

Figura 5 Comunicación UART modo síncrono
 
 
 

4 Comments


pedro lopez
pedro lopez
Apr 06, 2021

Excelente

Like

Valeria Peña
Valeria Peña
Apr 06, 2018

Muy buena información, es clara y digerible. Espero sigan subiendo más información útil como esta!

Like

Betsabe Reyes
Betsabe Reyes
Apr 06, 2018

Buena información y clara, justo lo que buscaba

Like

Samuel Ortega Diaz
Samuel Ortega Diaz
Apr 06, 2018

muy buena información

Like

© 2020 por Unidad de Desarrollo Académico y Tecnológico. 

  • Facebook icono social
  • Icono social Twitter
  • Icono social de YouTube
  • Google Places icono social
bottom of page