I2C-Protocol-header

Bus I²C (Circuito Integrado)

A principios de los 80, Philips desarrolló el bus de datos serie I2C para controlar fácilmente los distintos chips de un televisor . I2C está diseñado como un bus maestro-esclavo. Una transferencia de datos siempre la inicia un maestro, el esclavo al que se dirige mediante una dirección reacciona a ella. Debido a su sencillo concepto y a su exitosa implementación, el I2C se ha convertido en el estándar. En la actualidad, más de 1.000 circuitos integrados diferentes de más de 50 fabricantes utilizan la tecnología I2C.

Beispiel_fuer_implentation_I2C_Bus

Cómo funciona el bus I2C

El protocolo de comunicación I²C utiliza sólo dos líneas bidireccionales de colector abierto o de drenaje abierto, la línea de datos serie (SDA) y la línea de reloj serie (SCL), que se tensan con resistencias. Tradicionalmente, los voltajes típicos utilizados eran +5 V o +3,3 V; sin embargo, más recientemente se han hecho más comunes +2,5 V, +1,8 V y +1,2 V.

Ejemplo de implementación de I2C

Independientemente del número de unidades esclavas conectadas al bus I2C, sólo se conectan dos señales a todas ellas. En consecuencia, hay una sobrecarga adicional, ya que se necesita un mecanismo de direccionamiento para que la unidad maestra se comunique con una unidad esclava concreta.

Como toda la comunicación se realiza a través de sólo dos hilos, todas las unidades deben tener una dirección única que las identifique en el bus. Los dispositivos esclavos tienen una dirección predefinida, pero los bits inferiores de la dirección pueden asignarse para permitir múltiples dispositivos iguales en el bus.

La llegada del Internet de las Cosas ("IOT"), combinada con el bajo número de pines de la comunicación serie I2C, ha provocado un resurgimiento del uso de I2C. las aplicaciones más comunes son la gestión de datos en serie, incluida la transferencia de datos en serie a/desde sensores, la programación de EEPROMs y la recuperación de datos de sensores de sondeo/recepción.

Teoría de funcionamiento

I2C tiene un protocolo maestro/esclavo. El maestro inicia la comunicación. La secuencia de acontecimientos es

La unidad maestra emite una condición de inicio. Esta condición ordena a todos los dispositivos esclavos que busquen instrucciones en la línea de datos serie.
El dispositivo maestro envía la dirección del dispositivo esclavo de destino y un indicador de lectura/escritura.
El dispositivo esclavo con la dirección coincidente responde con una señal de reconocimiento.
La comunicación continúa entre el maestro y el esclavo en el bus de datos. Tanto el maestro como el esclavo pueden recibir o enviar datos, según se trate de una comunicación de lectura o de escritura. El emisor envía datos de 8 bits al receptor, que responde con un acuse de recibo de 1 bit.
Cuando finaliza la comunicación, el maestro emite una condición de parada indicando que todo ha terminado.

i2c-protocol

Protocolo de comunicación I2C

Como sólo hay dos hilos, este protocolo incluye la sobrecarga adicional de un mecanismo de direccionamiento y un mecanismo de acuse de recibo

Características

I2C tiene muchas características importantes que merece la pena mencionar. Admite varias velocidades de datos: Modo estándar (100 kbps), Modo rápido (400 kbps), Modo rápido plus, Modo de alta velocidad (3,4 Mbit/s) y Modo ultrarrápido (5,0 Mbit/s) de comunicación I2C.

Otras funciones son

  • Detección de colisiones integrada
  • direccionamiento de 10 bits
  • Soporte multimaestro
  • Transmisión de datos (llamada general).
     

Ventajas y desventajas

Como sólo se necesitan dos hilos, I2C es muy adecuado para placas con muchos dispositivos conectados al bus. Esto ayuda a reducir el coste y la complejidad del circuito cuando se añaden dispositivos adicionales al sistema.

Debido a la presencia de sólo dos hilos, hay una complejidad adicional en el manejo de la sobrecarga de direccionamiento y acuse de recibo. Esto puede resultar ineficaz en configuraciones sencillas y puede ser preferible una interfaz de conexión directa como SPI.

visión general de las herramientas de desarrollo I2C

Comparación de modelos I2C

Aardvark-I2C-Host-adapter-small
Adaptador I2C/SPI Aardvark

Promira I2C/SPI/eSPI Plattform
Promira I2C nivel 1

Promira I2C/SPI/eSPI Plattform
Promira I2C nivel 2

beagle i2c/spi protocol analyzer small
Analizador de protocolo Beagle I2C/SPI

Número de piezaTP240141TP500110TP500110TP320121
Protocolos compatiblesI2CI2CI2CI2C, MDIO,
SPI-Solo E/S
FunciónAdaptador de host maestro/esclavoAdaptador de host maestro/esclavoAdaptador de host maestro/esclavoMonitor de bus en tiempo real
Velocidad del reloj maestro800 kHz1 MHz3.4 MHz24 MHz
Velocidad del reloj esclavo800 kHz1 MHz3.4 MHz24 MHz
Selección Chip/Esclavo1N/AN/AMonitor 1 selección esclavo
Capacidad esclavo><=6AvanzadoUltraN/A
Nivel de tensión (V)3.3-5V0.9-3,45 V, 5 V0.9-3,45 V, 5 V3.3-5V
Potencia objetivo5 V, 30 mA disponibles2 Independientes, 1 Programable, (0,9-3,45 V), 1 Conmutable (3,3-5V) 200mA disponibles2 Independientes, 1 Programable, (0,9-3,45 V), 1 Conmutable (3,3-5V) 200mA disponibles5 V, 30 mA disponibles
ConexiónUSB de alta velocidadUSB de alta velocidad, EthernetUSB de alta velocidad, EthernetUSB de alta velocidad