UART vs SPI vs I2C Diferencias entre protocolos.

Los protocolos de comunicación entre procesadores pueden ser de diferentes tipos, debemos recordar que estos tres protocolos UART, SPI y I2C, definen el tipo de comunicación pero no por ejemplo algunos valores como el voltaje. Por ejemplo I2C en Arduino es con 5v y en Raspberry con 3.3v por ello si pretendemos comunicar ambos debemos usar un conversor de voltajes:

Conversor de 3.3v a 5V Necesario para comunicar Arduino y Raspberry.

UART SPI I2C
Nombre Completo Universal Asynchronous Receiver/Transmitter Serial Peripheral Interface Inter-Integrated Circuit
Diagrama

Comunicación UART
Comunicación UART

Comunicación SPI
Comunicación SPI

Comunicación I2C
Comunicación I2C
Designación de Pines TxD: Transmisión de datos.
RxD: Recepción de datos.
SCLK: Reloj Serial
MOSI: Salida de maestro, entrada de esclavo.
MISO: Entrada del maestro y salida del esclavo.
SS: Selector de esclavo.
SDA: Datos
SCL: Reloj Seria
Velocidad de Datosº LA comunicación máxima puede ser entre 230Kbbs a 460kbb Normalmente soporta entre 10Mbbs a 20Mbbs Hasta 3.4Mbbs algunas variantes pueden llegar a 1Mbbs
Distancia Menos de 15 metros Esta pensada para comunicaciones dentro de la placa. Igual que la anterior, comunicaciones dentro de la placa.
Tipo comunicación Asincrona Sincrona Sincrona
Coplejidad del Hardare poco. media bastante, según los maestros.
Numero de Masters No hay masteres. Uno Varios
Reloj Cada dispositivo usa el suyo interno. Una señal de reloj entre master y esclavo. Una señal de reloj común entre múltiples masters y esclavos.
Protocolo 8bits con un bit de start y un bit de stop. Cada compañía usa su propio protocolo. Usa un bit de start y otro de stop, un bit de acuse de recibo (ACK) cada 8 bits.
Direccionamiento de Software La comunicación es entre dos dispositivos, no es necesario. Se usa el SS (SS1, SS2…) para seleccionar que dispositivo, cuantos más dispositivos más salidas SS necesitamos. Todos los maestros pueden comunicarse con todos los esclavos, podemos colocar 27 esclavos y colocar la dirección en el protocolo I2C.
Ventajas Muy simple, permite conectar de forma rápida dos dispositivos, suele usarse con RS232 o RS485 por ejemplo.
  • Simple.
  • Dispone de comunicación full duplex.
  • SPI usa push-pull y gran velocidad de datos.
  • Requiere menos energía que I2C
  • Más de un maestro.
  • Solo necesita dos cables para la comunicación.
  • Es más sencillo que SPI, al necesitar menos líneas.
  • Concepto de colector abierto
  • Tiene control de flujo.
Desventajas
  • Esta limitado a la comunicación entre dos dispositivos.
  • La velocidad se debe acordar al principio de la conexión en caso de no ser la misma dará lecturas erróneas.
  • Cuanto más esclavos, más conexiones se necseitan.
  • Añadir un dispositivo requiere una conexión adicional.
  • No hay control de flujo.
  • Se incrementa la complejidad del circuito cuando aumentan los masteres y los esclavos.
  • I2C es half duplex
  • El software puede sobrecargar el procesador.

Fuente: http://www.rfwireless-world.com/Terminology/UART-vs-SPI-vs-I2C.html (ingles)

Summary
Comparación de protocolos para micros
Article Name
Comparación de protocolos para micros
Description
Comparación de los tres protocolos más importantes en microcontroladores, UART, SPI y I2C.
Author
Publisher Name
Drouiz
Publisher Logo

Leave a Reply

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

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.