Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El bus I2C cuenta con dos lineas SDA(datos) y SCL(clock) ademas de masa.
Como hemos visto en SPI a cada flanco de SCL se captura un bit de SDA,
aunque la forma de transmitir la informacin es diferente. Ademas hay que
tener en cuenta que la linea SDA solo puede cambiar de valor en caso de que
la linea SCL este a 0.
1. Bit de start: Este es un bit especial ya que como hemos dicho antes la
linea SDA no puede cambiar a menos que SCL este a 0. Este bit rompe
dicha norma y provoca un cambio de 1 a 0 cuando SCL esta a nivel alto.
4. ACK: Este bit esta presente al final de cada byte que enviamos y nos
permite asegurarnos que el byte ha llegado a su destino. De este modo
el que enva deja el bit a 1 y si alguien a recibido el mensaje fuerza ese
bit a 0. De esta manera confirma que le ha llegado el byte y
la transmisin puede continuar.
Trama I2C
Lo explicado anteriormente es una trama tpica de I2C aunque en realidad
puede haber algunas variantes, ya que en caso de que el mismo Master quiera
seguir comunicndose no es necesario terminar la transmisin con un Stop y
luego volver a empezar una transmisin .El protocolo permite que en medio de
una trama se realice otro Start por lo que se tendr que volver a enviar
la direccin y el R/W, as que se puede cambiar el modo de comunicacin y
pasar a una lectura o a otra escritura y acceder a otro sensor o a otro registro
del mismo sensor. En la siguiente imagen se puede ver una trama de este tipo.
Una vez iniciado el bus podemos empezar a transmitir. Para ello se usan 3
instrucciones:
i2c_1.zip
Descargar archivo
i2c_2.zip
Descargar archivo
i2c_3.zip
Descargar archivo
Cdigo del Master.
i2c_4.zip
Descargar archivo
2. Control de flujo.
Desventajas:
El sistema original fue desarrollado por Philips a principios de 1980 con el fin de controlar
varios chips en televisores de manera sencilla. Desde mediados de 1990 el IC tambin es
utilizado por algunos competidores para designar los sistemas compatibles IC Philips,
incluyendo Siemens AG (posteriormente Infineon Technologies AG), NEC,
STMicroelectronics, Motorola (Freescale ms adelante), Intersil, etc. Hay un total de mil
circuitos integrados diferentes de ms de 50 fabricantes (segn datos de 2014).
Atmel introdujo por motivos de licencia la designacin TWI (interfaz de dos hilos)
actualmente utilizada por algunos otros fabricantes. Desde el punto de vista tcnico, TWI e
IC son idnticos. Sin embargo, el 1 de octubre 2006, la patente original caduc, as que ya
no hay derechos de autor para el uso del trmino IC. IC no es tampoco una marca
comercial registrada de NXP Semiconductors, la proteccin de marca es slo para el
logotipo.
ndice
[ocultar]
1Historia
2Sistema de bus
o 2.1Definicin elctrica
o 2.3Direccionamiento
o 2.4Protocolo de transferencia
3Uso
4Estabilidad
5Alternativas
6Vase tambin
7Enlaces externos
Historia[editar]
El bus IC fue introducido en 1982 por Philips para la comunicacin interna entre circuitos
integrados como por ejemplo juegos de CD y televisiones. Para ello, fue desarrollada la
familia de microcontrolador MAB8400, la cual posea un controlador de bus IC. La primera
especificacin estandarizada 1.0 fue publicada en 1992. sta sustituy el estndar original
de 100 kbps por un nuevo modo rpido con 400 kbps y expandi el espacio de
direccionamiento a un modo de 10 bits, de tal manera que en vez de los 112 nodos
originales, ahora es compatible con hasta 1136 nodos.
Con la versin 2.0 de 1998 lleg el modo de alta velocidad (Hs) con un mximo de 3,4
Mbps, aunque los requisitos de voltaje e intensidad de corriente fueron reducidos. La
versin 3.0 de 2007 incluy un nuevo modo denominado Fm+ (modo rpido mejorado) con
una velocidad mxima de 1 Mbps que, al contrario que el modo Hs, utiliza el mismo
protocolo que los modos de 100 y 400 kbps.
En el ao 2012 fue establecido con la versin V.4 un modo an ms rpido, el Ufm (modo
ultrarrpido), el cual es compatible con velocidades de transferencia unidireccionales de
hasta 5 Mbps. En el mismo ao fueron corregidos con la versin actual de V.5 los errores
de la versin anterior. En abril de 2014 fue presentada la versin V.6 que volvi a corregir
algunos errores.
Sistema de bus[editar]
El IC est diseado como un bus maestro-esclavo. La transferencia de datos es siempre
inicializada por un maestro; el esclavo reacciona. Es posible tener varios maestros
mediante un modo multimaestro, en el que se pueden comunicar dos maestros entre si, de
modo que uno de ellos trabaja como esclavo. El arbitraje (control de acceso en el bus) se
rige por las especificaciones, de este modo los maestros pueden ir turnndose.
Un ejemplo esquemtico con un maestro (un microcontrolador) y tres nodos esclavos (un ADC,
un DAC, y otro microcontrolador) con resistencias pull-up Rp.
Definicin elctrica[editar]
La seal de reloj siempre es generada por el maestro. Para cada modo especificado, est
predeterminado respectivamete un pulso de reloj mximo permitido. En general, tambin
pueden ser utilizadas seales de reloj ms lentas, siempre y cuando sean compatibles con
la interfaz del maestro. Sin embargo, algunos circuitos integrados (por ejemplo, un
conversor o convertidor de seal analgica-digital) requieren una frecuencia mnima con el
fin de funcionar correctamente. En la tabla siguiente se muestran los porcentajes mximos
permisibles de reloj.
Si el esclavo necesita ms tiempo que el dictado por el reloj del maestro, puede mantener,
entre la transferencia de bytes individuales, la seal de reloj en nivel bajo o low (clock-
stretching) para frenar de este modo al maestro.
Los datos (bits individuales) slo son vlidos si su nivel lgico no cambia durante una fase
de reloj alta. Las excepciones son el inicio, la parada, y la seal de inicio repetida o reset.
La seal de arranque es un flanco descendiente en SDA mientras SCL se encuentra en
nivel alto. La seal de parada es un flanco ascendiente en SDA mientras SCL est en en
nivel alto. La seal de reset se comporta de igual manera que la seal de incio.
Una unidad de datos consta de 8 bits = 1 octeto (los cuales puede ser interpretados como
un valor o como una direccin, dependiendo del protocolo) y un bit de ACK. Este bit de
confirmacin (Acknowledge) es sealizado por un esclavo como NACK (not acknowledge)
con un nivel alto, durante un nivel bajo en SDA y el noveno nivel alto de SCL (que sigue
siendo generado por el maestro). El esclavo debe poner un nivel bajo en SDA antes de
que SCL cambie a nivel alto, de lo contrario otros participantes podran interpretar esto
como una seal de arranque.
Direccionamiento[editar]
La direccin de IC estndar es el primer byte enviado por el maestro, aunque los primeros
7 bits representan la direccin y el octavo bit (R/W-Bit) es el que comunica al esclavo si
debe recibir datos del maestro (low/bajo) o enviar datos al maestro (high/alto). Por lo tanto,
IC utiliza un espacio de direccionamiento de 7 bits, lo cual permite hasta 112 nodos en un
bus (16 de las 128 direcciones posibles estn reservadas para fines especiales).
Cada uno de los circuitos integrados con capacidad de soportar un IC tiene una direccin
predeterminada por el fabricante, de la cual los ltimos tres bits (subdireccin) pueden ser
fijados por tres pines de control. En este caso, pueden funcionar en un IC hasta 8 circuitos
integrados. Si no es as, los circuitos integrales (que precisan ser idnticos) deben ser
controlados por varios buses IC separados.
El inicio de una transmisin es indicado por la seal de incio del maestro, seguido de la
direccin. sta es confirmada por el ACK-Bit del esclavo correspondiente. En funcin del
R/W-Bit se escriben bytes de datos (datos al esclavo) o se leen (datos al maestro). El ACK
es enviado desde el esclavo al escribir, y desde el maestro al leer. El ltimo byte ledo es
reconocido por el maestro como un NACK (not acknowledge), para indicar el final de una
transmisin. Una transmisin es finalizada por la seal de parada. Como alternativa, puede
ser enviada una seal de reset al arranque de una nueva transmimsin, sin necesidad de
parar la transmisin anterior con una seal de parada.
Todos los bytes son transferidos de esta manera como Most Significant Bit First (bit ms
significativo primero).
Uso[editar]
Tambin es utilizado como base para ACCESS.bus y monitores de interfaz VESA (DCC,
Display Data Channel). El SMBus (del fabricante Intel) para la comunicacin de
componentes de la placa base, se parece mucho al bus IC. La mayora de los circuitos
integrados soportan ambos buses.
Estabilidad[editar]
El protocolo del IC es por definicin bastante simple, pero a la vez muy susceptible a las
interferencias. Este hecho limita su uso nicamente a entornos de poca interferencia, en
los cuales no se ha de esperar nign tipo de ruido, problemas de compatibilidad
electromagntica o diafonas, ni problemas de contacto (clavijas, enchufes). Asimismo, no
es adecuado como puente entre grandes distancias, como suele ser tpico para los buses
de campo, por ejemplo.
Sin embargo, el bus puede ser implementado por conductores especiales a un mayor nivel
de intensidad de corriente o tensin, gracias a lo cual la posible longitud de potencia y la
distancia de seal de ruido aumenta. Una mayor distancia de ruido es posible a travs de
una implementacin sobre la capa fsica del bus CAN, la cual opera con seales
diferenciales de colector abierto (drenador abierto). Las irregularidades tanto de la seal
SDA como de la seal SCL provocan que los datos sean transmitidos incorrectamente.
Estas irregularidades a menudo no se pueden detectar, especialmente si son producidas
en la seal SDA. nicamente con perturbaciones o irregularidades de corto tiempo, como
por ejemplo muy por encima de la frecuencia de seal, el sistema puede hacerse ms
estable a travs de seales de procesamiento.
Alternativas[editar]