1. El bus I2C
REDES DE COMPUTADORES 2010-2011
AUTORES:
Moisés Palma Isern
Federico Prieto Cuesta
2. ¿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.
3. 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
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 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.
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 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
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 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.
11. 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.
14. Esquema Multimaestro
M1 y M2 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 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.
17. 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
18. 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.