Está en la página 1de 56

Curso de Robótica

Introducción al protocolo I2C

JHONATAN ZAPATA ARANGO


FABIAN ELADIO LONDOÑO
CAMILO ANDRES GALLEGO
Protocolo de Comunicación I2C
B
Índice
U
– Introducción
S – Conceptos Fundamentales
I – Funcionamiento
– Pasos para la Ejecución
2 – Un Maestro y varios Esclavos
– Varios Maestros y Varios esclavos
C
– Ventajas y Desventajas
– Ejemplos de dispositivos que utiliza el bus I2C
– Conclusiones
– Referencias
Protocolo de Comunicación I2C
B
Índice
U
– Introducción
S – Conceptos Fundamentales
I – Funcionamiento
– Pasos para la Ejecución
2 – Un Maestro y varios Esclavos
– Varios Maestros y Varios esclavos
C
– Ventajas y Desventajas
– Ejemplos de dispositivos que utiliza el bus I2C
– Conclusiones
– Referencias
Protocolo de Comunicación I2C
B Introducción
U
S
I Interconexión de dispositivos mediante bus Serie
2
Parámetros Generales
C
• Número de hilos de conexión
• Velocidad (bits/segundo)
• Distancia máxima y número de dispositivos
• Protocolo de acceso al medio compartido
• Política de direccionamiento
Protocolo de Comunicación I2C
B Introducción
U
Origen I2C:
S significa Circuito Interintegrado (Por sus siglas en Inglés
Inter- Integrated Circuit) es un protocolo de comunicación
I serial desarrollado por Phillips Semiconductors allá por la
década de los 80s. Básicamente se creó para poder
2 comunicar varios chips al mismo tiempo dentro de los
televisores.
C El I2C toma e integra lo mejor de los protocolos SPI y
UART. Con el I2C podemos tener a varios maestros
controlando uno o múltiples esclavos. Esto puede ser de
gran ayuda cuando se van a utilizar varios
microcontroladores para almacenar un registro de datos
hacia una sola memoria o cuando se va a mostrar
información en una sola pantalla.
Protocolo de Comunicación I2C
B
Introducción
U
S El I2C utiliza sólo dos vías o cables de
I comunicación, así como también lo hace el
protocolo UART.
2
C
Protocolo de Comunicación I2C
B Introducción
U
S SDA – Serial Data. Es la vía de comunicación entre el
maestro y el esclavo para enviarse información.
I SCL – Serial Clock. Es la vía por donde viaja la señal
de reloj.
2 I2C es un protocolo de comunicación serial.
Como podemos observar, el I2C envía información a
C través de una sola vía de comunicación. La información
es enviada bit por bit de forma coordinada.
I2C es un protocolo síncrono.
Al igual el protocolo SPI, el I2C trabaja de forma
síncrona. Esto quiere decir que el envío de bits por la
vía de comunicación SDA está sincronizado por una
señal de reloj que comparten tanto el maestro como el
esclavo a través de la vía SCL.
Protocolo de Comunicación I2C
B Introducción
U
S
FICHA TECNICA
I
Número de vías o cables: 2
2 Velocidad máxima Modo estándar (Sm):100kbps
Modo rápido (Fm) = 400kbps
C Modo High Speed (Fm+) = 3.4Mbps
Modo Ultra Fast (Hs- mode) = 5Mbps
Síncrono o Asíncrono: Síncrono
Paralelo o Serial: Serial
Número máximo de Maestros: Ilimitado
Número máximo de Esclavos: 1008
Protocolo de Comunicación I2C
B
Índice
U
– Introducción
S – Conceptos Fundamentales
I – Funcionamiento
– Pasos para la Ejecución
2 – Un Maestro y varios Esclavos
– Varios Maestros y Varios esclavos
C
– Ventajas y Desventajas
– Ejemplos de dispositivos que utiliza el bus I2C
– Conclusiones
– Referencias
Protocolo de Comunicación I2C
B CONCEPTOS FUNDAMENTALES
U
Maestro (Master):
S Dispositivo que determina los tiempos y la
dirección del tráfico en el bus. Es el único que
I aplica los pulsos de reloj en la línea SCL. Cuando
se conectan varios dispositivos maestros a un
2 mismo bus la configuración obtenida se denomina
«multi-maestro».
C
Esclavo (Slave): 
Todo dispositivo conectado al bus que no tiene la
capacidad de generar pulsos de reloj. Los
dispositivos esclavos reciben señales de comando
y de reloj generados desde el maestro.
Protocolo de Comunicación I2C
B CONCEPTOS FUNDAMENTALES
U
S Bus libre (Bus Free):
Estado en el que ambas líneas (SDA y SCL) están
I inactivas, presentando un estado lógico alto. Es el
único momento en que un dispositivo maestro
2 puede comenzar a hacer uso del bus.

C Comienzo (Start): 
Se produce cuando un dispositivo maestro ocupa
el bus, generando la condición. La línea de datos
(SDA) toma un estado bajo mientras que la línea
de reloj (SCL) permanece alta.
Protocolo de Comunicación I2C
B CONCEPTOS FUNDAMENTALES
U
S Parada (Stop): 
Un dispositivo maestro puede generar esta
I condición, dejando libre el bus. La línea de datos
y la de reloj toman un estado lógico alto.
2
C Dato válido (Valid Data): 
Situación presente cuando un dato presente en la
línea SDA es estable al tiempo que la
línea SCL está a nivel lógico alto.
Protocolo de Comunicación I2C
B CONCEPTOS FUNDAMENTALES
U
S Formato de Datos (Data Format):
 La transmisión de un dato a través de este bus
I consiste de 8 bits de dato (1 byte). A cada byte
transmitido al bus le sigue un noveno pulso de
2 reloj durante el cual el dispositivo receptor del
byte debe generar un pulso de reconocimiento.
C
Reconocimiento (Acknowledge): 
El pulso de reconocimiento, conocido como ACK
(del inglés Acknowledge), se logra colocando la
línea de datos a un nivel lógico bajo durante el
transcurso del noveno pulso de reloj.
Protocolo de Comunicación I2C
B CONCEPTOS FUNDAMENTALES
U Dirección de envío – Address.
El I2C no cuenta con una línea de selección de esclavos (Como lo hace el
S protocolo SPI), así que se debe establecer una forma de notificación al
Esclavo, para que éste se prepare para recibir información del Maestro.
I Mediante la sección de Dirección (Address) en el mensaje es como se
notifica al Esclavo, es por eso que va en seguida del Bit de Inicio (Start).
2 Así que esta es la secuencia que se sigue para el direccionamiento de
esclavos.
C 1.- El Maestro envía la dirección del Esclavo con el que quiere
comunicarse, esta dirección se envía a todos los Esclavos que estén
conectados.
2.- Cada Esclavo recibe la dirección, y la compara con su propia dirección.
3.- Si la dirección coincide con el Esclavo, en seguida el Esclavo envía un
bit ACK con nivel de voltaje Bajo, de regreso al Maestro.
4.- Si la dirección no coincide con el Esclavo, simplemente no se hace
nada, y la vía SDA permanecerá en nivel de voltaje Alto.
Protocolo de Comunicación I2C
B CONCEPTOS FUNDAMENTALES
U
S
Bit de Lectura/Escritura – Read/ Write Bit.
I
Después de la dirección en el mensaje, se envía un bit,
2 notificando al Esclavo si el Maestro quiere escribir
información o leer información de él. Si el Maestro
C quiere enviarle información al Esclavo (Escribir),
entonces manda un Bajo. Si el Maestro quiere solicitar
información al Esclavo (Leer), el bit Read/ Write será de
nivel Alto.
Protocolo de Comunicación I2C
B CONCEPTOS FUNDAMENTALES
Frame de información – Data Frame.
U Después de que el Maestro recibe el bit ACK del Esclavo, la
primer sección o Frame de información está lista para ser
S enviada al Esclavo.
El Frame para transportar información siempre es de 8 bits y se
I envía primero el bit más significativo. Después de enviar un
Frame de información, inmediatamente se envía un bit
2 ACK/NACK, para comprobar que el Frame de información
efectivamente se ha llegado a su destino y se ha recibido
C satisfactoriamente. Independientemente de quién envía el Frame
de información, si el Esclavo o el Maestro, siempre se debe
enviar en seguida el bit ACK/NACK, antes de que se envíe el
segundo Frame de información.
Una vez que se envían ambos Frames de información, el
Maestro puede activar un condición de paro (Stop), y con esto se
va a detener la transmisión. La condición de paro (Stop) es un
cambio de voltaje de nivel Bajo a nivel Alto, en la vía SDA, y se
activa cuando en la vía SCL se pasa de un nivel Bajo a un nivel
Alto (La vía SCL, posteriormente, permanecerá en nivel Alto).
Protocolo de Comunicación I2C
B
Índice
U
– Introducción
S – Conceptos Fundamentales
I – Funcionamiento
– Pasos para la Ejecución
2 – Un Maestro y varios Esclavos
– Varios Maestros y Varios esclavos
C
– Ventajas y Desventajas
– Ejemplos de dispositivos que utiliza el bus I2C
– Conclusiones
– Referencias
Protocolo de Comunicación I2C
B Funcionamiento
U
S Con el I2C la información viaja en mensajes. Los
mensajes van divididos en tramas de datos. Cada mensaje
I lleva un trama con una dirección la cuál transporta la
dirección binaria del esclavo al que va dirigido el mensaje,
2 y una o más tramas que llevan la información del mensaje.
También el mensaje contiene condiciones de inicio y paro,
C lectura y escritura de bits, y los bits ACK y NACK. Todo
esto va entre cada sección de datos.
Protocolo de Comunicación I2C
B Funcionamiento
U
Para que pueda quedar más claro aquí se ilustra un
S mensaje enviado a través del I2C.
I
2
C
Protocolo de Comunicación I2C
B Funcionamiento
U
S
I
2
C
Protocolo de Comunicación I2C
B Funcionamiento
U
Transmisión de bits
S – Los bits de datos van por SDA
– Por cada bit de información es necesario un pulso de SCL
I – Los datos sólo pueden cambiar cuando SCL está a nivel bajo
2
C

Dato Dato
válido válido
Protocolo de Comunicación I2C
B Funcionamiento
U Transmisión de bits
S – Los bits de datos van por SDA
– Por cada bit de información es necesario un pulso de SCL
I – Los datos sólo pueden cambiar cuando SCL está a nivel bajo
2
C

Dato Dato
válido válido
Protocolo de Comunicación I2C
B Funcionamiento
U
S
I
2
C
Protocolo de Comunicación I2C
B Funcionamiento
U
S
I
2
C
Protocolo de Comunicación I2C
B Funcionamiento
U
S
I
2
C
Protocolo de Comunicación I2C
B Funcionamiento
U
S
I
2
C
Protocolo de Comunicación I2C
B Funcionamiento
U
S Casos particulares de respuesta
– Esclavo ocupado y no responde al ACK de dirección
I • Maestro genera condición de STOP
– El esclavo quiere interrumpir una recepción periódica de datos
2 • El esclavo no responde a un dato con ACK
C • El maestro genera la condición de STOP
– El maestro quiere interrumpir una recepción de datos de un esclavo
• El maestro no responde con ACK
• El esclavo deja de transmitir
• El maestro genera condición de STOP
Protocolo de Comunicación I2C
B Funcionamiento
U
S
I
2
C
Protocolo de Comunicación I2C
B
Índice
U
– Introducción
S – Conceptos Fundamentales
I – Funcionamiento
– Pasos para la Ejecución
2 – Un Maestro y varios Esclavos
– Varios Maestros y Varios esclavos
C
– Ventajas y Desventajas
– Ejemplos de dispositivos que utiliza el bus I2C
– Conclusiones
– Referencias
Protocolo de Comunicación I2C
B Pasos de ejecución
U
1.- El Maestro envía la condición de Inicio (Start) a cada
S Esclavo que esté conectado en la vía SDA, cambia el
nivel de voltaje a Bajo, y deja la vía SCL en estado Alto.
I
2
C
Protocolo de Comunicación I2C
B Pasos de ejecución
U
2.- El Maestro envía la dirección de 7 a 10 bits, a
S cada uno de los Esclavos para identificar al
Esclavo con el que se quiere comunicar.
I
2
C
Protocolo de Comunicación I2C
B Pasos de ejecución
U 3.- Cada Esclavo recibe la dirección y la compara con su
propia dirección. Si la dirección coincide, el Esclavo envía
S un bit ACK, y pone la vía SDA en nivel Bajo de voltaje. Si
la dirección no es la misma, entonces los Esclavos no hacen
I nada y dejan la vía SDA en el mismo nivel de voltaje Alto.
2
C
Protocolo de Comunicación I2C
B Pasos de ejecución
U
4.- El Maestro envía o recibe los Frames de
S información.
I
2
C
Protocolo de Comunicación I2C
B Pasos de ejecución
U
5.- Después de que cada Frame de información fue
S enviado, el dispositivo que recibe ( ya sea Esclavo o
Maestro) va a enviar un bit ACK al remitente, para
I notificarle que la información se recibió exitosamente.

2
C
Protocolo de Comunicación I2C
B Pasos de ejecución
U
6.- Para concluir la transmisión de información, el
S Maestro envía al Esclavo la condición de paro (Stop)
con un nivel Alto en la vía SDA, cuando cambia el
I estado de SCL a Alto.

2
C
Protocolo de Comunicación I2C
B
Índice
U
– Introducción
S – Conceptos Fundamentales
I – Funcionamiento
– Pasos para la Ejecución
2 – Un Maestro y varios Esclavos
– Varios Maestros y Varios esclavos
C
– Ventajas y Desventajas
– Ejemplos de dispositivos que utiliza el bus I2C
– Conclusiones
– Referencias
Protocolo de Comunicación I2C
B Un Maestro y varios esclavos

U
S Como ya lo hemos visto, en I2C el Maestro controla
a los esclavos por medio de una dirección, por lo
I tanto, un sólo Maestro puede controlar muchos
Esclavos. Usando 7 bits de dirección se pueden
2 obtener hasta 128 dispositivos conectados (En
realidad son sólo 112, ya que los 16 restantes son
C
utilizados para fines especiales).
Para 10 bits de dirección se pueden obtener hasta
1024 dispositivos conectados (Es muy raro utilizar
10 bits).
Protocolo de Comunicación I2C
B Un Maestro y varios esclavos

U ¿Cómo conectar un Maestro con muchos Esclavos en I2C?


Para conectar múltiples Esclavos a un sólo Maestro vamos
S a seguir el siguiente diagrama. Con una resistencia de 4.7K
Ohms en modo pull-up conectaremos las vías SDA y SCL a
I voltaje Vcc (V+).
2
C
Protocolo de Comunicación I2C
B
Índice
U
– Introducción
S – Conceptos Fundamentales
I – Funcionamiento
– Pasos para la Ejecución
2 – Un Maestro y varios Esclavos
– Varios Maestros y Varios esclavos
C – Ventajas y Desventajas
– Ejemplos de dispositivos que utiliza el bus I2C
– Conclusiones
– Referencias
Protocolo de Comunicación I2C
B Varios Maestros y Varios Esclavos

U
Muchos Maestros se pueden conectar a múltiples
S
Esclavos pero puede haber problemas cuando dos o
I más Maestros intentan enviar u obtener información
al mismo tiempo en la vía SDA. Esto se puede
2 resolver si cada Maestro tiene la capacidad de leer el
estado del SDA, para saber si se encuentra ocupado o
C no, antes de enviar información. Si el SDA se
encuentra en Bajo, quiere decir que algún otro
Maestro se encuentra utilizando la vía SDA, por lo
tanto habría que esperar a que se desocupe. Si el
estado del SDA es Alto, significaría que se puede
enviar información de forma segura sin causar
conflictos.
Protocolo de Comunicación I2C
B Varios Maestros y Varios Esclavos

U Para conectar múltiples Maestros con múltiples


Esclavos utilizaremos el siguiente diagrama con
S una resistencia en SDA y SCL haciendo pull-up
hacia Vcc (V+).
I
2
C
Protocolo de Comunicación I2C
B
Índice
U
– Introducción
S – Conceptos Fundamentales
I – Funcionamiento
– Pasos para la Ejecución
2 – Un Maestro y varios Esclavos
– Varios Maestros y Varios esclavos
C
– Ventajas y Desventajas
– Ejemplos de dispositivos que utiliza el bus I2C
– Conclusiones
– Referencias
Protocolo de Comunicación I2C
B Ventajas y Desventajas
U
S
I Debido a su funcionalidad y ampliamente utilizado el
I2C parecería que no se podría comparar con otros
2 protocolos. Pero sí es importante mencionarte algunos
puntos que deberías saber para tomar una decisión sobre
C cuándo sí y cuando no es viable utilizar I2C.
Protocolo de Comunicación I2C
B Ventajas y Desventajas
U
S
Ventajas.
I
• Sólo utiliza 2 cables de comunicación.
2 • Soporta múltiples Maestros y múltiples Esclavos,
haciendo las conexiones adecuadas.
C • Hay confirmación de información recibida con éxito.
Usando los bits ACK/NACK.
• El hardware es menos complicado que el protocolo
UART.
• Es un protocolo ampliamente conocido y utilizado.
Protocolo de Comunicación I2C
B Ventajas y Desventajas
U
S
Desventajas.
I
•Es más lento que el protocolo SPI.
2
C •El tamaño de paquetes de información de
transferencia está limitado a 8 bits.

•El hardware es más complicado que el protocolo


SPI.
Protocolo de Comunicación I2C
B
Índice
U
– Introducción
S – Conceptos Fundamentales
I – Funcionamiento
– Pasos para la Ejecución
2 – Un Maestro y varios Esclavos
– Varios Maestros y Varios esclavos
C
– Ventajas y Desventajas
– Ejemplos de dispositivos que utiliza el bus I2C
– Conclusiones
– Referencias
Protocolo de Comunicación I2C
B Ejemplos de Dispositivos con I2c
U
S Termómetro / Termostato
DS1621
I
• Margen de temperatura: -55 a +125ºC
2 • Resolución: 0.5ºC
• Tª almacenada en 9 bits (2 bytes)
C • Rango de alimentación: 2.7-5.5V
• Tiempo de conversión: 1 seg.
• Parámetros del termostato (TH y TL)
almacenados en memoria no volátil (eeprom)
• No requiere circuitería externa.
Protocolo de Comunicación I2C
B Ejemplos de Dispositivos con I2c
U Termómetro / Termostato

S
I
2
C
Protocolo de Comunicación I2C
B Ejemplos de Dispositivos con I2c
U Termómetro / Termostato

S
I
2
C
Protocolo de Comunicación I2C
B Ejemplos de Dispositivos con I2c
U
S
I
2 Ver simulación
C en Proteus
Protocolo de Comunicación I2C
B
Índice
U
– Introducción
S – Conceptos Fundamentales
I – Funcionamiento
– Pasos para la Ejecución
2 – Un Maestro y varios Esclavos
– Varios Maestros y Varios esclavos
C
– Ventajas y Desventajas
– Ejemplos de dispositivos que utiliza el bus I2C
– Conclusiones
– Referencias
Protocolo de Comunicación I2C
B
Conclusiones
U
S
Conclusiones
I • Un bus serie permite reducir el tamaño general del
circuito
2
• El protocolo del bus I2C contempla
C Conexión de nivel físico
Intercambio de datos
• El protocolo se puede
implementar
Utilizando puertos de entrada/salida  maestro
Unidad específica
• Gran cantidad de dispositivos compatibles con
I2C
Protocolo de Comunicación I2C
B
Índice
U
– Introducción
S – Conceptos Fundamentales
I – Funcionamiento
– Pasos para la Ejecución
2 – Un Maestro y varios Esclavos
– Varios Maestros y Varios esclavos
C
– Ventajas y Desventajas
– Ejemplos de dispositivos que utiliza el bus I2C
– Conclusiones
– Referencias
Protocolo de Comunicación I2C
B
Referencias
U
Enlaces de Internet
S The I2C FAQ
http://www.ping.be/~ping0751/i2cfaq/i2cindex.htm
I
2 Robots Didácticos
http://robots-argentina.com.ar/didactica/descripcion-y-funcionamiento-del-bus-i2c /
C
Fundamentos del I2C
https://teslabem.com/nivel-intermedio/fundamentos/
Protocolo de Comunicación I2C
B
Preguntas
U
S
I
2
C
Protocolo de Comunicación I2C
B
U
S
I
2
C

También podría gustarte