El bus I2C
 REDES DE COMPUTADORES 2010-2011




AUTORES:
Moisés Palma Isern
Federico Prieto Cuesta
¿Que es un bus?

Un bus es un conjunto de conexiones físicas que sirven como
medio de transporte para la información entre distintos dispositivos
de hardware.
El propósito de los buses es reducir el número de rutas necesarias
para la comunicación entre los distintos componentes, al realizar las
comunicaciones a través de un solo canal de datos.
Los buses de datos representan la columna vertebral de todo
sistema de redes en la actualidad.
Conceptos basicos en los buses
●   Ancho de banda: es la cantidad de bits que pueden ser transmitidos
     a la vez por el canal o bus.

●   Velocidad de transmisión: es la cantidad de información que puede
     transmite por segundo en un hilo de comunicación.

●   Errores en la transmisión: afecta a la cantidad de datos enviados
     pues parte de la información codificada en una transmisión va
     enfocada al control y corrección de errores.
     ● Atenuación

     ● Distorsión de retardo

     ● Ruido
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.
●   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ó bus I2C.
●   La metodología de comunicación de datos del bus I2C es en serie y
    sincróna. Una de las señales del bus marca el tiempo (pulsos de reloj)
    y la otra se utiliza para intercambiar datos.
●   Existe una relación maestro-esclavo entre todos los componentes y
    cada dispositivo conectado al bus es direccionado por software en una
    única dirección, es decir, es un bus unidireccional.
Conceptos basicos de la
tecnologia maestro-esclavo y el
            bus I2C
●   Maestro: Este dispositivo es el que genera la señal de reloj
    y controla los direccionamientos a los dispositivos
    esclavos.
●   Esclavo: Este dispositivo es el que recibe las señales del
    nodo maestro y actua en consecuencia a las peticiones que
    recibe.
●   Start: Señal enviada por el maestro a todos los esclavos al
    principio de la transmisión junto con una dirección para
    indicar con que esclavo quiere interactuar el maestro.
●   Dirección: Con la señal de start se envia una cadena de 8
    bits, los 7 primeros hacen referencia a una dirección.
●   Bit de lectura/escritura (R/W): El octavo bit corresponde al
    modo en el cual se direccionaran el maestro y el esclavo.
●   Reconocimiento: Cuando se realiza una transmisión hay
    varios puntos en los que el maestro o el esclavo tienen que
    dar un reconocimiento(acknowledge) de que la transmisión
    se esta produciendo correctamente.
●   Bus desocupado: Cuando en las dos lineas del I2C no se
    estan realizando operaciones, ambas se encuentran en
    nivel logico alto, en este momento es el único en el que
    puede empezar la transmisión de una trama.
Tecnologia Maestro-Esclavo
La tecnologia Maestro-Esclavo es un modelo de
comunicaciones muy utilizado en el que un dispositivo o
proceso de la red tiene control sobre todos los demas




El maestro suele ser uno elegido de entre un grupo de
dispositivos, mientras que los demas se convierten en esclavos,
pero sus roles pueden intercambiarse todas las veces que sean
necesarios
Principales características del
               bus I2C
Las líneas SDA (Serial Data) y SCL (Serial Clock) está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.
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.
         (

                                                                    SDA
        Maestro
        Maestro
                                                                    SCL

                        Esclavo1
                         Esclavo1      Esclavo2
                                        Esclavo2      Esclavo3
                                                       Esclavo3
Principales caracteristicas del
               bus I2C
●   El bus I2C tiene 3 posibles velocidades:
          –   Modo estandar(S - Mode): 100 Kbps
          –   Modo rapido(F -Mode): 400 Kbps
          –   Modo alta-velocidad(HS -Mode): 3,4 Mbps
●   Estas son las velocidades teoricas, pero debido a ciertos factores, la
    velocidad real siempre será menor.
●   La capacidad, en principio estara limitada por la maxima capacidad
    soportada por el circuito, que es de 400 pF y por el número máximo
    de bits que pueden direccionar 7 bits, es decir, 128 direcciones,
    menos 16 reservadas, 112 direcciones.
Esquema temporal de la
        transmisión en buses I2C
El dato es recibido en el flanco de bajada del reloj
El bit más significativo se envía primero y luego se envian el resto
El nodo maestro siempre genera el reloj y manda la dirección
El nodo esclavo recibe la dirección enviada por el maestro y
   comprueba si coincide con su propia dirección, en caso
   afirmativo comenzara a interactuar con el.
El Maestro genera el start y pone en el bus SDA una palabra de 8 bits.
Esta palabra tiene en sus 7 primeros bits la dirección del esclavo al cual el
Maestro quiere “dirigirse” y mientras el esclavo también mira el octavo
bit para saber si tiene que leer o escribir
Llegado el caso que el numero de dirección coincidiera con la dirección
entonces este le mandaria una señal de ACK y comenzaria la
comunicación.
En la transimsión de cada trama el esclavo le mandara al maestro el ACK
para indicarle que siga mandandole señales.
Después de eso continuará la transmisión con la siguiente trama.
Este ciclo se producira hasta que todas las tramas hayan sido recibidas, en
cuanto el maestro reciba la ultima señal de ACK, generara la señal de
STOP, que liberara las lineas SDA y SCL pasandolas a nivel alto,
producira despues la señal de idle(ocioso) durante un corto periodo de
tiempo y con eso dejara al bus listo para una nueva transmisión.
Transmisión de una trama en el
           bus I2C
Grafico de la transmisión en I2C
Esquema Multimaestro
M1 y M2 son dos dispositivos conectados en el mismo bus,
ambos con privilegios de maestro, el resto de dispositivos
                     son esclavos.
Protocolo Multimaestro
    Conflicto de prioridad entre Maestros, la solución radica en
                       la ARBITRARIEDAD

                     Arbitrariedad basada en :
●   El criterio de arbitrariedad da preferencia a los niveles bajos
     que hayan emitido los maestros
      Un maestro envia un nivel alto y escucha un nivel bajo,
                        simultaneamente:
●   Otro maestro ya esta usando el bus. Deja de transmitir y
     espera a que la línea quede libre (condición de STOP)
Ventajas de los buses I2C
●   Compatibilidad con la mayoría de los semiconductores
     manufacturados de bajo coste
●   Tiene un tamaño aproximado de 8 pines, optimización del
     espacio utilizado por su espacio reducido
●   Se pueden conectar muchos dispositivos esclavos solamente
     usando dos pines del microcontrolador
●   Diseño simple
●   La simplicidad y la flexibilidad son las características clave que
     hacen de este bus muy útil para muchas aplicaciones.
Desventajas de los buses I2C
●La transmisión es relativamente lenta pero
eficaz en transmisiones de pocos datos
●Tiene un protocolo de comunicaciones
complicado y dificil de programar
●Cada esclavo tiene unos parámetros únicos
de dirección, por lo que deben estar
registrados en hojas de datos
Alternativas al bus I2C
●   SPI: En esta tecnologia las lineas de datos y clock son
    unidireccionales, por lo tanto hay 4 en lugar de 2, ademas que
    funciona con una tecnica (pulsar/soltar) que le da mucha mas
    velocidad que al I2C.
●   SMBus: El SMBus es un bus bidireccional simple creado con el
    propósito de la comunicación de una información de tamaño
    pequeño. Su aplicación mas utilizada es en los dispositivos ON/OFF
    para encender y apagar los ordenadores.
●   RS-485: El RS-485 es un standard de comunicaciones en bus de la
    capa física del modelo OSI. Es un sistema que alcanza grandes
    velocidades en distancias largas y que soporta muy bien el ruido
    ademas al tratarse de un standard muy común, es altamente
    configurable.

Bus iic

  • 1.
    El bus I2C REDES DE COMPUTADORES 2010-2011 AUTORES: Moisés Palma Isern Federico Prieto Cuesta
  • 2.
    ¿Que es unbus? Un bus es un conjunto de conexiones físicas que sirven como medio de transporte para la información entre distintos dispositivos de hardware. El propósito de los buses es reducir el número de rutas necesarias para la comunicación entre los distintos componentes, al realizar las comunicaciones a través de un solo canal de datos. Los buses de datos representan la columna vertebral de todo sistema de redes en la actualidad.
  • 3.
    Conceptos basicos enlos buses ● Ancho de banda: es la cantidad de bits que pueden ser transmitidos a la vez por el canal o bus. ● Velocidad de transmisión: es la cantidad de información que puede transmite por segundo en un hilo de comunicación. ● Errores en la transmisión: afecta a la cantidad de datos enviados pues parte de la información codificada en una transmisión va enfocada al control y corrección de errores. ● Atenuación ● Distorsión de retardo ● Ruido
  • 4.
    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. ● 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ó bus I2C. ● La metodología de comunicación de datos del bus I2C es en serie y sincróna. Una de las señales del bus marca el tiempo (pulsos de reloj) y la otra se utiliza para intercambiar datos. ● Existe una relación maestro-esclavo entre todos los componentes y cada dispositivo conectado al bus es direccionado por software en una única dirección, es decir, es un bus unidireccional.
  • 5.
    Conceptos basicos dela tecnologia maestro-esclavo y el bus I2C ● Maestro: Este dispositivo es el que genera la señal de reloj y controla los direccionamientos a los dispositivos esclavos. ● Esclavo: Este dispositivo es el que recibe las señales del nodo maestro y actua en consecuencia a las peticiones que recibe. ● Start: Señal enviada por el maestro a todos los esclavos al principio de la transmisión junto con una dirección para indicar con que esclavo quiere interactuar el maestro.
  • 6.
    Dirección: Con la señal de start se envia una cadena de 8 bits, los 7 primeros hacen referencia a una dirección. ● Bit de lectura/escritura (R/W): El octavo bit corresponde al modo en el cual se direccionaran el maestro y el esclavo. ● Reconocimiento: Cuando se realiza una transmisión hay varios puntos en los que el maestro o el esclavo tienen que dar un reconocimiento(acknowledge) de que la transmisión se esta produciendo correctamente. ● Bus desocupado: Cuando en las dos lineas del I2C no se estan realizando operaciones, ambas se encuentran en nivel logico alto, en este momento es el único en el que puede empezar la transmisión de una trama.
  • 7.
    Tecnologia Maestro-Esclavo La tecnologiaMaestro-Esclavo es un modelo de comunicaciones muy utilizado en el que un dispositivo o proceso de la red tiene control sobre todos los demas El maestro suele ser uno elegido de entre un grupo de dispositivos, mientras que los demas se convierten en esclavos, pero sus roles pueden intercambiarse todas las veces que sean necesarios
  • 8.
    Principales características del bus I2C Las líneas SDA (Serial Data) y SCL (Serial Clock) está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. 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. ( SDA Maestro Maestro SCL Esclavo1 Esclavo1 Esclavo2 Esclavo2 Esclavo3 Esclavo3
  • 9.
    Principales caracteristicas del bus I2C ● El bus I2C tiene 3 posibles velocidades: – Modo estandar(S - Mode): 100 Kbps – Modo rapido(F -Mode): 400 Kbps – Modo alta-velocidad(HS -Mode): 3,4 Mbps ● Estas son las velocidades teoricas, pero debido a ciertos factores, la velocidad real siempre será menor. ● La capacidad, en principio estara limitada por la maxima capacidad soportada por el circuito, que es de 400 pF y por el número máximo de bits que pueden direccionar 7 bits, es decir, 128 direcciones, menos 16 reservadas, 112 direcciones.
  • 10.
    Esquema temporal dela transmisión en buses I2C El dato es recibido en el flanco de bajada del reloj El bit más significativo se envía primero y luego se envian el resto El nodo maestro siempre genera el reloj y manda la dirección El nodo esclavo recibe la dirección enviada por el maestro y comprueba si coincide con su propia dirección, en caso afirmativo comenzara a interactuar con el.
  • 11.
    El Maestro generael start y pone en el bus SDA una palabra de 8 bits. Esta palabra tiene en sus 7 primeros bits la dirección del esclavo al cual el Maestro quiere “dirigirse” y mientras el esclavo también mira el octavo bit para saber si tiene que leer o escribir Llegado el caso que el numero de dirección coincidiera con la dirección entonces este le mandaria una señal de ACK y comenzaria la comunicación. En la transimsión de cada trama el esclavo le mandara al maestro el ACK para indicarle que siga mandandole señales. Después de eso continuará la transmisión con la siguiente trama. Este ciclo se producira hasta que todas las tramas hayan sido recibidas, en cuanto el maestro reciba la ultima señal de ACK, generara la señal de STOP, que liberara las lineas SDA y SCL pasandolas a nivel alto, producira despues la señal de idle(ocioso) durante un corto periodo de tiempo y con eso dejara al bus listo para una nueva transmisión.
  • 12.
    Transmisión de unatrama en el bus I2C
  • 13.
    Grafico de latransmisión en I2C
  • 14.
    Esquema Multimaestro M1 yM2 son dos dispositivos conectados en el mismo bus, ambos con privilegios de maestro, el resto de dispositivos son esclavos.
  • 15.
    Protocolo Multimaestro Conflicto de prioridad entre Maestros, la solución radica en la ARBITRARIEDAD Arbitrariedad basada en : ● El criterio de arbitrariedad da preferencia a los niveles bajos que hayan emitido los maestros Un maestro envia un nivel alto y escucha un nivel bajo, simultaneamente: ● Otro maestro ya esta usando el bus. Deja de transmitir y espera a que la línea quede libre (condición de STOP)
  • 16.
    Ventajas de losbuses I2C ● Compatibilidad con la mayoría de los semiconductores manufacturados de bajo coste ● Tiene un tamaño aproximado de 8 pines, optimización del espacio utilizado por su espacio reducido ● Se pueden conectar muchos dispositivos esclavos solamente usando dos pines del microcontrolador ● Diseño simple ● La simplicidad y la flexibilidad son las características clave que hacen de este bus muy útil para muchas aplicaciones.
  • 17.
    Desventajas de losbuses I2C ●La transmisión es relativamente lenta pero eficaz en transmisiones de pocos datos ●Tiene un protocolo de comunicaciones complicado y dificil de programar ●Cada esclavo tiene unos parámetros únicos de dirección, por lo que deben estar registrados en hojas de datos
  • 18.
    Alternativas al busI2C ● SPI: En esta tecnologia las lineas de datos y clock son unidireccionales, por lo tanto hay 4 en lugar de 2, ademas que funciona con una tecnica (pulsar/soltar) que le da mucha mas velocidad que al I2C. ● SMBus: El SMBus es un bus bidireccional simple creado con el propósito de la comunicación de una información de tamaño pequeño. Su aplicación mas utilizada es en los dispositivos ON/OFF para encender y apagar los ordenadores. ● RS-485: El RS-485 es un standard de comunicaciones en bus de la capa física del modelo OSI. Es un sistema que alcanza grandes velocidades en distancias largas y que soporta muy bien el ruido ademas al tratarse de un standard muy común, es altamente configurable.