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.
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.
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 | ||||
---|---|---|---|---|
Número de pieza | TP240141 | TP500110 | TP500110 | TP320121 |
Protocolos compatibles | I2C | I2C | I2C | I2C, MDIO, SPI-Solo E/S |
Función | Adaptador de host maestro/esclavo | Adaptador de host maestro/esclavo | Adaptador de host maestro/esclavo | Monitor de bus en tiempo real |
Velocidad del reloj maestro | 800 kHz | 1 MHz | 3.4 MHz | 24 MHz |
Velocidad del reloj esclavo | 800 kHz | 1 MHz | 3.4 MHz | 24 MHz |
Selección Chip/Esclavo | 1 | N/A | N/A | Monitor 1 selección esclavo |
Capacidad esclavo> | <=6 | Avanzado | Ultra | N/A |
Nivel de tensión (V) | 3.3-5V | 0.9-3,45 V, 5 V | 0.9-3,45 V, 5 V | 3.3-5V |
Potencia objetivo | 5 V, 30 mA disponibles | 2 Independientes, 1 Programable, (0,9-3,45 V), 1 Conmutable (3,3-5V) 200mA disponibles | 2 Independientes, 1 Programable, (0,9-3,45 V), 1 Conmutable (3,3-5V) 200mA disponibles | 5 V, 30 mA disponibles |
Conexión | USB de alta velocidad | USB de alta velocidad, Ethernet | USB de alta velocidad, Ethernet | USB de alta velocidad |