La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

EL BUS INTER-INTEGRATED CIRCUITS I2C

Presentaciones similares


Presentación del tema: "EL BUS INTER-INTEGRATED CIRCUITS I2C"— Transcripción de la presentación:

1 EL BUS INTER-INTEGRATED CIRCUITS I2C
El bus I2C Microcontroladores EL BUS INTER-INTEGRATED CIRCUITS I2C M.C. Carlos E. Canto Quintal

2 El bus I2C Microcontroladores EL BUS I2C Para simplificar la interconexión de dispositivos al microprocesador, Philips desarrolló un sencillo bus bidireccional basado en dos hilos por el que se trasmiten los datos vía serie y lo llamó El Bus I2C. EL Bus I2C (Inter- Integrated Circuits) fue desarrollado al principio de los 80’s. Su propósito original fue el de proporcionar una manera fácil de conectar un CPU a los chips periféricos en un equipo de TV. EL PROBLEMA A RESOLVER: Los dispositivos periféricos en sistemas embebidos se conectan al mControlador como dispositivos de E/S mapeados en memoria usando las líneas paralelas del bus de dirección y de datos. Esto produce una gran cantidad de pistas en el PCB para enrutar las líneas de direcciones y de datos, sin mencionar un número de decodificadores de direcciones y lógica adicional para conectar todo. Muchas líneas de control implican que el sistema sea más susceptible a perturbaciones por Interferencia Electromagnética (EMI) y Descarga Electrostática (ESD). M.C. Carlos E. Canto Quintal

3 Las características más importantes del bus I2C son:
Microcontroladores Las características más importantes del bus I2C son:   Comunicación serial, utilizando un conductor para manejar el timming (SCL) (pulsos de reloj) y otro para intercambiar datos (SDA), que transportan información entre los dispositivos conectados al bus. Las líneas SDA (Serial Data) y SCL (Serial Clock) etán conectadas a la fuente de alimentación a través de las resistencias de pull-up. Cuando el bus está libre, ambas líneas están en nivel alto. Los dispositivo puede ser considerado como Mastero (Master) o esclavo (Slave). El Maestro es el dispositivo que inicia la transferencia en el bus y genera la señal de Clock. El Slave (esclavo) es el dispositivo direccionado. Maestro Esclavo1 Esclavo2 Esclavo3 SDA SCL M.C. Carlos E. Canto Quintal

4 Transmisión de bits – Los bits de datos van por SDA
El bus I2C Microcontroladores Transmisión de bits – Los bits de datos van por SDA – Por cada bit de información es necesario un pulso de SCL – Los datos sólo pueden cambiar cuando SCL está a nivel bajo M.C. Carlos E. Canto Quintal

5 Los datos transitan en la bajada del reloj
El bus I2C Microcontroladores Los datos transitan en la bajada del reloj El dato es recibido en el borde de bajada del reloj El bit más significativo se envía primero El nodo que recibe debe manejar un acknowledge (bajo en SDA) después de completado el byte El nodo maestro siempre genera el reloj M.C. Carlos E. Canto Quintal

6 Las características más importantes del bus I2C son:
Microcontroladores Las características más importantes del bus I2C son:   Cada dispositivo es reconocido por una única dirección (si es un microcontrolador, LCD, memoria o teclado) y cualquiera puede operar como transmisor o receptor de datos, dependiendo de la función del dispositivo. Un display es solo un receptor de datos mientras que una memoria recibe y transmite datos. M.C. Carlos E. Canto Quintal

7 Las características más importantes del bus I2C son:
Microcontroladores Las características más importantes del bus I2C son:   Trasferencia de datos: Los datos y direcciones que se transmiten por SDA son de 8 bits. Tras cada bloque debe recibirse una señal de reconocimiento. . M.C. Carlos E. Canto Quintal

8 Las características más importantes del bus I2C son:
Microcontroladores Las características más importantes del bus I2C son:   La cantidad de dispositivos que se pueden conectar al bus está limitada, solamente, por la máxima capacidad permitida de 400 pF. El bus permite la conexión de varios Masters, ya que incluye un detector de colisiones. El protocolo de transferencia de datos y direcciones posibilita diseñar sistemas completamente definidos por software. M.C. Carlos E. Canto Quintal

9 Las características más importantes del bus I2C son:
Microcontroladores Las características más importantes del bus I2C son:   La especificación original, o modo de estandar, fue para transferencia de datos hasta 100 Kbps. El bus serial I2C ha sido extendido para soportar velocidades de hasta 3.4 Mbits/s. Combinado con una función de desplazamiento del nivel de voltaje, en modo High-speed (Hs-mode) ofrece una solución ideal para los sistemas de tecnología mezclada, donde las altas velocidades y la variedad de voltajes (5 V, 3 V o menor) son comúnmente usados. El reloj determina la velocidad de transmisión de los datos. M.C. Carlos E. Canto Quintal

10 Los modos de transferencia de datos del bus I2C
Microcontroladores Las características más importantes del bus I2C son:   Los modos de transferencia de datos del bus I2C Modo Estándar (S-mode) aproximadamente a 100 kBits/Seg. Modo Rápido (F-mode) aproximadamente a 400kbits/Seg. Modo Alta velocidad (Hs-mode) mas de 3,4 Mbits/Seg. M.C. Carlos E. Canto Quintal

11 El bus I2C Microcontroladores Definiciones o términos utilizados en relación con las funciones del bus I2C Maestro (Master): Dispositivo que determina la temporización y la dirección del tráfico de datos en el bus. Es el único que aplica los pulsos de reloj en la línea SCL. Cuando se conectan varios dispositivos maestros a un mismo bus la configuración obtenida se denomina "multi-maestro". Esclavo (Slave): Cualquier dispositivo conectado al bus incapaz de generar pulsos de reloj. Reciben señales de comando y de reloj proveniente del dispositivo maestro. Bus Desocupado (Bus Free): Estado en el cual ambas líneas (SDA y SCL) están inactivas, presentando un estado lógico alto. Unicamente en este momento es cuando un dispositivo maestro puede comenzar a hacer uso del bus. Comienzo (Start): Sucede cuando un dispositivo maestro hace ocupación del bus, generando esta condición. La línea de datos (SDA) toma un estado bajo mientras que la línea de reloj (SCL) permanece alta. Parada (Stop): Un dispositivo maestro puede generar esta condición dejando libre el bus. La línea de datos toma un estado lógico alto mientras que la de reloj permanece también en ese estado. M.C. Carlos E. Canto Quintal

12 El bus I2C Microcontroladores Definiciones o términos utilizados en relación con las funciones del bus I2C Dato Válido (Valid Data): Sucede cuando un dato presente en la línea SDA es estable mientras la línea SCL está a nivel lógico alto. Formato de Datos (Data Format): La transmisión de datos a través de este bus consta de 8 bits de datos (ó 1 byte). A cada byte le sigue un noveno pulso de reloj durante el cual el dispositivo receptor del byte debe generar un pulso de reconocimiento, conocido como ACK (del inglés Acknowledge). Esto se logra situando la línea de datos a un nivel lógico bajo mientras transcurre el noveno pulso de reloj. Dirección (Address): Cada dispositivo diseñado para funcionar en este bus dispone de su propia y única dirección de acceso, que viene pre-establecida por el fabricante. Hay dispositivos que permiten establecer externamente parte de la dirección de acceso. Esto permite que una serie del mismo tipo de dispositivos se puedan conectar en un mismo bus sin problemas de identificación. La dirección 00 es la denominada "de acceso general", por la cual responden todos los dispositivos conectados al bus. Lectura/Escritura (Bit R/W): Cada dispositivo dispone de una dirección de 7 bits. El octavo bit (el menos significativo ó LSB) enviado durante la operación de direccionamiento corresponde al bit que indica el tipo de operación a realizar. Si este bit es alto el dispositivo maestro lee información proveniente de un dispositivo esclavo. En cambio, si este bit fuese bajo el dispositivo maestro escribe información en un dispositivo esclavo. M.C. Carlos E. Canto Quintal

13 Terminología básica del Bus I2C
Microcontroladores Terminología básica del Bus I2C Términos Descripción Transmisor El dispositivo que envía datos al Bus Receptor El dispositivo que recibe datos desde el Bus Master (Maestro) El dispositivo que inicia una transferencia, genera las señales del reloj y termina un envío de datos Slave (Esclavo) El dispositivo direccionado por un master Multi-Master Mas de un master puede controlar el bus al mismo tiempo sin corrupción de los mensajes Arbitraje Procedimiento que asegura que si uno o mas master simultáneamente deciden controlar el Bus solo uno es permitido a controlarlo y el mensaje saliente no es deteriorado Sincronización Procedimiento para sincronizar las señales del reloj de dos o mas dispositivos M.C. Carlos E. Canto Quintal

14 Respaldo Tecnológico:
El bus I2C Microcontroladores Respaldo Tecnológico: Tanto Philips como como otros fabricantes de dispositivos compatibles con I2C disponen de una amplia gama de circuitos integrados, incluyendo memorias RAM y EEPROM, microcontroladores, puertos de E/S, codificadores DTMF, tranceptores IR, conversores A/D y D/A, relojes de tiempo real, calendarios, etc Dado que no siempre se requiere alta velocidad de transferencia de datos este bus es ideal para sistemas donde es necesario manejar información entre muchos dispositivos y, al mismo tiempo, se requiere poco espacio y líneas de circuito impreso. Por ello es común ver dispositivos I2C en video grabadoras, sistemas de seguridad, electrónica automotriz, televisores, equipos de sonido y muchas otras aplicaciones más. M.C. Carlos E. Canto Quintal

15 Respaldo Tecnológico:
El bus I2C Microcontroladores Respaldo Tecnológico: Incluso, y gracias a  que el protocolo es lo suficientemente simple, usualmente se ven dispositivos I2C insertados en sistemas microcontrolados que no fueron diseñados con puertos I2C, siendo el protocolo generado por el firmware. También hay dispositivos de adaptación que permiten conectar buses originalmente paralelos a sistemas I2C. Tal es el caso del chip PCD 8584 de Philips el cual incorpora en el chip todo lo necesario para efectuar dicha tarea. Hay, además, circuitos integrados cuya única misión es adaptar los niveles presentes en el bus I2C y TTL, permitiendo resolver fácil y rápidamente la interconexión de dispositivos de dicha familia con el I2C. M.C. Carlos E. Canto Quintal

16 El protocolo del Bus I2C El bus I2C Microcontroladores
M.C. Carlos E. Canto Quintal

17 Formato del Mensaje Un protocolo orientado a BIT Handshaking
El bus I2C Microcontroladores Formato del Mensaje Un protocolo orientado a BIT Handshaking Bidireccional M.C. Carlos E. Canto Quintal

18 Maestro envía datos a un esclavo
El bus I2C Microcontroladores Maestro envía datos a un esclavo M.C. Carlos E. Canto Quintal

19 Transferencia de datos:
El bus I2C Microcontroladores Transferencia de datos: El Maestro genera la condición de Start. Cada palabra puesta en el bus SDA debe tener 8 bits, la primera palabra transferida contiene  la dirección del Esclavo seleccionado. Tras el envío del start o inicio, en los siguientes 7 bits se codifica la dirección del dispositivo. Y el octavo bit indica si se hace lectura(1) o escritura(0). Después de cada 8 bits, el master debe esperar una señal de reconocimiento como respuesta por parte del esclavo, lee el estado de la línea SDA, si vale 0 (impuesto por el esclavo), el proceso de transferencia continúa. Si vale 1, indica que el circuito direccionado no valida la comunicación, entonces, el Maestro genera un bit de stop para liberar el bus I2C. Este acuse de recibo se denomina ACK (acknowledge) y es una parte importante del protocolo I2C. Al final de la transmisión, el Maestro genera la condición de Stop y libera el bus I2C, las líneas SDA y SCL pasan a estado alto. M.C. Carlos E. Canto Quintal

20 – La transmisión la inicia el maestro
El bus I2C Microcontroladores Inicio de transmisión – La transmisión la inicia el maestro – Flanco de bajada en SDA con SCL a nivel alto – Cuando nadie accede al bus hay un nivel alto en SCL y SDA M.C. Carlos E. Canto Quintal

21 Condiciones de START y STOP:
El bus I2C Microcontroladores Condiciones de START y STOP: START: la línea SDA cae a cero mientras SCL permanece en nivel alto. A partir de este momento comienza la transferencia de datos. Una vez finalizada la comunicación se debe informar de esta situación (condición de Stop). La línea SDA pasa a nivel alto mientras SCL permanece en estado alto. M.C. Carlos E. Canto Quintal

22 Start y Stop SDA baja antes que SCL SCL alta antes que SDA
El bus I2C Microcontroladores Start y Stop SDA baja antes que SCL SCL alta antes que SDA Start –SDA baja cuando el reloj (SCL) es alto Stop – SDA sube cuando SCL es alto (Normalmente no hay transición cuando el reloj es alto) M.C. Carlos E. Canto Quintal

23 Enviando a un Esclavo El bus I2C Microcontroladores
M.C. Carlos E. Canto Quintal

24 Eventos del bus I2C : leyendo un Acknowledge de un Esclavo
Microcontroladores Eventos del bus I2C : leyendo un Acknowledge de un Esclavo Cuando se ha transmitido al bus un byte de dirección o de dato éste debe ser “ RECONOCIDO” por el o los esclavos. En el caso de una dirección: Si la dirección concuerda con la propia entonces ese esclavo y solamente ese esclavo enviará un acuse de recibido de la dirección con un ACK. También se responde con un ACK en el caso de un byte transmitido a un esclavo ya direccionado . El esclavo que va a dar un ACK pone a bajo la línea SDA inmediatamente después de la recepción del octavo bit, o, en caso de un byte de dirección , inmediatamente después de la evaluación de su dirección. Esto significa que tan pronto como el maestro baja SCL para completar la transmisión del bit (1), SDA será puesto a bajo por el esclavo (2). El maestro ahora emite un pulso de reloj en la línea SCL (3) El esclavo liberará la línea SDA hasta la terminación de este pulso (4) de reloj. El Bus queda disponible de nuevo para que el maestro continúe enviando datos o generar una condición de STOP. En caso de que un dato vaya a ser escrito al esclavo, este ciclo debe completarse antes de que se genere una condición STOP. El esclavo estará bloqueando el bus (la línea SDA es mantenida en bajo por el esclavo) hasta que el maestro haya generado un pulso de reloj en la línea SCL. M.C. Carlos E. Canto Quintal

25 Reconocimiento (Acknowledge) :
El bus I2C Microcontroladores Reconocimiento (Acknowledge) : M.C. Carlos E. Canto Quintal

26 Reconocimiento El bit de reconocimiento es obligatorio en la transferencia de datos. El pulso de reloj correspondiente al bit de reconocimiento (ACK) es generado por el Master. El Transmisor desbloquea la línea SDA ("1") durante el pulso de reconocimiento. El receptor debe poner a "0" la línea SDA durante el pulso ACK de modo que siga siendo "0" durante el tiempo que el master genera el pulso "1" de ACK. Normalmente un receptor cuando ha sido direccionado esta obligado a generar un ACK después de que cada byte a sido recibido. Cuando un dispositivo esclavo no genera el bit ACK (porque esta haciendo otra cosa y no puede atender el Bus) debe mantener el esclavo la línea SDA a nivel "1" durante el bit ACK. El Master entonces puede generar una condición de STOP abortando la transferencia de datos o repetir la condición de Inicio enviando una nueva transferencia de datos. Si un Esclavo-receptor que esta direccionado no desea recibir mas bytes, el master debe detectar la situación y no enviar mas bytes. Esto se indica porque el esclavo no genera el bit ACK en el primer byte que sigue. El esclavo pone la línea SDA a "1" lo que es detectado por el Master el cual genera la condición de Stop o repite la condición de Inicio. Si un Master-receptor esta recibiendo datos de un Esclavo-transmisor debe generar un bit ACK tras cada byte recibido de transmisor, para finalizar la transferencia de datos no debe generar el ACK tras el ultimo byte enviado por el esclavo. El esclavo-transmisor debe permitir desbloquear la línea SDA generando el master la condición de Stop o de Inicio.

27 Transferencia completa
El bus I2C Microcontroladores Transferencia completa M.C. Carlos E. Canto Quintal

28 RELACIÓN ENTRE LOS NIVELES DE SDA Y SCL
El bus I2C Microcontroladores RELACIÓN ENTRE LOS NIVELES DE SDA Y SCL Todos los maestros deben generar una subida en la línea SCL (2), leer el nivel en SDA (3) y generar una caida en la línea SCL (4). El Esclavo no debe cambiar el dato durante el tiempo que SCL es alto ( de lo contrario podría generarse una condición START o STOP imprevista) . Durante (1) y (5), el esclavo puede cambiar el estado de la línea SDA.  En total está secuencia debe ser realizada 8 veces para completar el byte dato. Los bytes siempre son transmitidos con el Bit Más Significativo primero. M.C. Carlos E. Canto Quintal

29 Maestro lee datos de un esclavo

30 Eventos del Bus I2C : Recibiendo un byte de un Esclavo
Microcontroladores Una vez que el esclavo ha sido direccionado y el esclavo ha reconocido ésto, el maestro puede recibir un byte del esclavo si el bit R/W en la dirección se puso en modo READ ( puesto a ‘1’) La sintaxis del protocolo es la misma que cuando se transmite un byte a un esclavo, excepto que ahora no se le permite al maestro tocar la línea SDA. Previo al envió por la línea SCL,de los 8 pulsos de reloj necesarios para el envió del byte , el maestro libera la línea SDA. Ahora el esclavo tomará el control de esta línea. La línea se irá a alto si se desea transmitir un ‘1’ o si el esclavo desea mandar un ‘0’, se mantiene en bajo. M.C. Carlos E. Canto Quintal

31 El bus I2C Microcontroladores Para operar un esclavo sobre el Bus I2C solo son necesarios seis simples códigos, suficientes para enviar o recibir información. Un bit de Inicio 7-bit o 10-bit de direccionamiento Un bit R/W que define si el esclavo es transmisor o receptor Un bit de reconocimiento Mensaje dividido en bytes Un bit de Stop M.C. Carlos E. Canto Quintal

32 Esquema básico de conexiones
El bus I2C Microcontroladores Esquema básico de conexiones Las líneas SDA y SCL son del tipo drenador abierto, similares a las de colector abierto pero asociadas a un transistor de efecto de campo (ó FET).. Se deben poner en estado alto (conectar a la alimentación por medio de resistores Pull-Up) para construir una estructura de bus tal que se permita conectar en paralelo múltiples entradas y salidas M.C. Carlos E. Canto Quintal

33 Esquema básico de conexiones
El bus I2C Microcontroladores Esquema básico de conexiones Características de una conexión en colector abierto – Permite conectar varias fuentes de datos a un mismo hilo – Nivel alto en el bus – Si ningún dispositivo accede al bus – Si ningún dispositivo transmite un cero – Nivel bajo en el bus – Si un dispositivo pone un nivel bajo – Si dos dispositivos escriben a la vez siempre prevalecen los ceros • AND cableada – Si un dispositivo escribe un nivel alto pero lee un cero indica que otro dispositivo está también accediendo al b M.C. Carlos E. Canto Quintal

34 Esquema básico de conexiones
El bus I2C Microcontroladores Esquema básico de conexiones Inconvenientes de la conexión en colector abierto – Las capacidades de la línea se cargan a través del pull-up – Se puede solucionar utilizando una carga activa en lugar de un resistor M.C. Carlos E. Canto Quintal

35 Esquema básico de conexiones
El bus I2C Microcontroladores Esquema básico de conexiones Las dos líneas de comunicación disponen de niveles lógicos altos cuando están inactivas. De entrada el número de dispositivos que se puede conectar al bus es ilimitado, pero las líneas tienen una especificación de capacidad de carga máxima de 400pF. M.C. Carlos E. Canto Quintal

36 Terminación de Bus El bus I2C Microcontroladores
M.C. Carlos E. Canto Quintal

37 El Bus I2C Microcontroladores El bus I2C Ejemplo de una configuración del bus I2C usando dos microcontroladores M.C. Carlos E. Canto Quintal

38 Configuración Multi-Maestro
El bus I2C Microcontroladores Configuración Multi-Maestro Cuando el MCU1 emite una condición start e enviá una dirección, todos los esclavos escucharán ( incluyendo a MCU2 el cual en ese momento es considerado un esclavo también) . Si la dirección no concuerda con la dirección del CPU2, este dispositivo debe mantenerse de regreso a cualquier actividad hasta que el bus se desocupe de nuevo después de una condición stop. As long as the two MCU's monitor what is going on on the bus (start and stop) and as long as they are aware that a transaction is going on because the last issued command was not a STOP, there is no problem. Let's assume one of the MCU's missed the START condition and still thinks the bus is idle, or it just came out of reset and wants to start talking on the bus which could very well happen in a real-life scenario. This could lead to problems. M.C. Carlos E. Canto Quintal

39 Configuración Multi-Maestro
Protocolo multimaestro – Con dos maestros en el bus existe posibilidad de conflicto Arbitración: procedimiento para asegurar que sólo un maestro tiene el control del bus en un instante – Si un maestro está utilizando el bus no puede ser interrumpido por otro. • Desde START hasta STOP – Si dos maestros intentan comenzar a utilizar el bus a la vez: • Conexión del bus en colector abierto 􀃆 prevalecen los ceros • A la vez que ponen datos en el bus, escuchan la línea. • Si un maestro está intentando enviar un nivel alto y lee un nivel bajo – Existe otro maestro utilizando el bus – Deja de transmitir esperando que la línea quede libre (condición de STOP)


Descargar ppt "EL BUS INTER-INTEGRATED CIRCUITS I2C"

Presentaciones similares


Anuncios Google