Anda di halaman 1dari 3

Circuito inter-integrado (I�C, del ingl�s Inter-Integrated Circuit) es un bus serie

de datos desarrollado en 1982 por Philips Semiconductors (hoy NXP Semiconductors,


parte de Qualcomm1). Se utiliza principalmente internamente para la comunicaci�n
entre diferentes partes de un circuito, por ejemplo, entre un controlador y
circuitos perif�ricos integrados.
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
I�C tambi�n es utilizado por algunos competidores para designar los sistemas
compatibles I�C Philips, incluyendo Siemens AG (posteriormente Infineon
Technologies AG), NEC, STMicroelectronics, Motorola (Freescale m�s adelante),
Intersil, etc. Hay un total de mil circuitos integrados diferentes de m�s de 50
fabricantes (seg�n datos de 2014).
Atmel introdujo por motivos de licencia la designaci�n TWI (interfaz de dos hilos)
actualmente utilizada por algunos otros fabricantes. Desde el punto de vista
t�cnico, TWI e I�C son id�nticos. Sin embargo, el 1 de octubre 2006, la patente
original caduc�, as� que ya no hay derechos de autor para el uso del t�rmino I�C.
I�C no es tampoco una marca comercial registrada de NXP Semiconductors, la
protecci�n de marca es s�lo para el logotipo.
Historia[editar]
El bus I�C fue introducido en 1982 por Philips para la comunicaci�n interna entre
circuitos integrados como por ejemplo juegos de CD y televisiones. Para ello, fue
desarrollada la familia de microcontrolador MAB8400, la cual pose�a un controlador
de bus I�C. La primera especificaci�n estandarizada 1.0 fue publicada en 1992. �sta
sustituy� el est�ndar original de 100 kbps por un nuevo modo r�pido 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 versi�n 2.0 de 1998 lleg� el modo de alta velocidad (Hs) con un m�ximo de
3,4 Mbps, aunque los requisitos de voltaje e intensidad de corriente fueron
reducidos. La versi�n 3.0 de 2007 incluy� un nuevo modo denominado Fm+ (modo r�pido
mejorado) con una velocidad m�xima de 1 Mbps que, al contrario que el modo Hs,
utiliza el mismo protocolo que los modos de 100 y 400 kbps.
En el a�o 2012 fue establecido con la versi�n V.4 un modo a�n m�s r�pido, el Ufm
(modo ultrarr�pido), el cual es compatible con velocidades de transferencia
unidireccionales de hasta 5 Mbps. En el mismo a�o fueron corregidos con la versi�n
actual de V.5 los errores de la versi�n anterior. En abril de 2014 fue presentada
la versi�n V.6 que volvi� a corregir algunos errores.
Sistema de bus[editar]
El I�C est� dise�ado 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 s�, 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 turn�ndose.
Definici�n el�ctrica[editar]
En el diagrama de la derecha se encuentran representados tres dispositivos. El I�C
precisa de dos l�neas de se�al: reloj (CLK, Serial Clock) y la l�nea de datos (SDA,
Serial Data). Ambas l�neas precisan resistencias de pull-up hacia VDD. Cualquier
dispositivo conectado a estas l�neas es de drenador o colector abierto (Open
Collector), lo cual en combinaci�n con las resistencias pull-up, crea un circuito
Wired-AND. El nivel alto debe ser de al menos 0,7 x VDD y el nivel bajo no debe ser
m�s de 0,3 x VDD. Las resistencias en serie Rs (no representadas en el diagrama),
en la entrada de los dispositivos, son opcionales y se usan como resistencias de
protecci�n. El Bus I�C trabaja con l�gica positiva, esto quiere decir que un nivel
alto en la l�nea de datos corresponde a un 1 l�gico, el nivel bajo a un 0.
Pulso y estado del bus[editar]
La se�al de reloj siempre es generada por el maestro. Para cada modo especificado,
est� predeterminado respectivamente un pulso de reloj m�ximo permitido. En general,
tambi�n pueden ser utilizadas se�ales de reloj m�s lentas, siempre y cuando sean
compatibles con la interfaz del maestro. Sin embargo, algunos circuitos integrados
(por ejemplo, un conversor o convertidor de se�al anal�gica-digital) requieren una
frecuencia m�nima con el fin de funcionar correctamente. En la tabla siguiente se
muestran los porcentajes m�ximos permisibles de reloj.
Si el esclavo necesita m�s tiempo que el dictado por el reloj del maestro, puede
mantener, entre la transferencia de bytes individuales, la se�al de reloj en nivel
bajo o low (clock-stretching) para frenar de este modo al maestro.
Los datos (bits individuales) s�lo son v�lidos si su nivel l�gico no cambia durante
una fase de reloj alta. Las excepciones son el inicio, la parada, y la se�al de
inicio repetida o reset. La se�al de arranque es un flanco descendente en SDA
mientras SCL se encuentra en nivel alto. La se�al de parada es un flanco ascendente
en SDA mientras SCL est� en en nivel alto. La se�al de reset se comporta de igual
manera que la se�al de inicio.
Una unidad de datos consta de 8 bits = 1 octeto (los cuales puede ser interpretados
como un valor o como una direcci�n, dependiendo del protocolo) y un bit de ACK.
Este bit de confirmaci�n (Acknowledge) es se�alizado 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 podr�an interpretar esto como una se�al de arranque.
Direccionamiento[editar]
La direcci�n de I�C est�ndar es el primer byte enviado por el maestro, aunque los
primeros 7 bits representan la direcci�n 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, I�C utiliza un espacio de direccionamiento de 7
bits, lo cual permite hasta 112 nodos en un bus (16 de las 128 direcciones posibles
est�n reservadas para fines especiales).
Cada uno de los circuitos integrados con capacidad de soportar un I�C tiene una
direcci�n predeterminada por el fabricante, de la cual los �ltimos tres bits
(subdirecci�n) pueden ser fijados por tres pines de control. En este caso, pueden
funcionar en un I�C hasta 8 circuitos integrados. Si no es as�, los circuitos
integrales (que precisan ser id�nticos) deben ser controlados por varios buses I�C
separados.
Debido a la escasez de direcciones, se introdujo m�s tarde un direccionamiento de
10 bits. Es compatible con el est�ndar de 7 bits mediante el uso de 4 de las 16
direcciones reservadas. Ambos modos de direccionamiento pueden utilizarse
simult�neamente, lo que permite hasta 1136 nodos en un �nico bus.
Protocolo de transferencia[editar]
El inicio de una transmisi�n es indicado por la se�al de inicio del maestro,
seguido de la direcci�n. �sta es confirmada por el ACK-Bit del esclavo
correspondiente. En funci�n 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 �le�do� es reconocido por el
maestro como un NACK (not acknowledge), para indicar el final de una transmisi�n.
Una transmisi�n es finalizada por la se�al de parada. Como alternativa, puede ser
enviada una se�al de reset al arranque de una nueva transmisi�n, sin necesidad de
parar la transmisi�n anterior con una se�al de parada.
Todos los bytes son transferidos de esta manera como �Most Significant Bit First�
(bit m�s significativo primero).
Para el modo de alta velocidad (High-Speed-Mode) es enviado un c�digo del maestro a
trav�s del modo est�ndar o r�pido, antes de cambiar al aumento de frecuencia.
Uso[editar]
Una de las propiedades del I�C es el hecho de que un microcontrolador puede
controlar toda una red de circuitos integrados con s�lo dos I/O-Pins (Input/Output)
y un software muy simple. Los buses de este tipo fueron realizados ya que una
proporci�n significativa del precio de un circuito integrado y la placa de circuito
depende del tama�o de la carcasa y del n�mero de pines. Una carcasa grande tiene
m�s pines, necesita m�s espacio en la placa de circuito y tiene m�s conexiones que
podr�an fallar. Todo esto aumenta los costes de desarrollo, producci�n y pruebas.
Aunque es m�s lento que los sistemas de bus m�s nuevos, I�C es beneficioso (debido
al bajo coste) para los sistemas perif�ricos que no necesitan ser r�pidos. A menudo
es usado para la transmisi�n de datos de control y configuraci�n, por ejemplo para
control de volumen, conversor de se�al anal�gica-digital o digital-anal�gica con
baja tasa de frecuencia de muestreo, relojes a tiempo real, peque�os espacios de
memoria o conmutadores bidireccionales y multiplexores. Incluso los sensores
electr�nicos integran con frecuencia un convertidor anal�gico-digital con un I�C.
Es posible a�adir o retirar microcontroladores al bus durante su funcionamiento
(Hot-Plugging).
Tambi�n es utilizado como base para ACCESS.bus y monitores de interfaz VESA (DCC,
Display Data Channel). El SMBus (del fabricante Intel) para la comunicaci�n de
componentes de la placa base, se parece mucho al bus I�C. La mayor�a de los
circuitos integrados soportan ambos buses.
El protocolo I�C tuvo gran importancia en el pasado en el �rea de las tarjetas
chip. La tarjeta sanitaria utilizada en Alemania hasta finales del 2014 era una
tarjeta I�C, es decir, debajo de la superficie dorada del chip, se encontraba una
simple I�C-EEPROM, que pod�a ser le�da y escrita por el lector de tarjetas a trav�s
de un protocolo de bus I�C.
Estabilidad[editar]
El protocolo del I�C es por definici�n 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 ning�n tipo de ruido,
problemas de compatibilidad electromagn�tica o diafon�as, ni problemas de contacto
(clavijas, enchufes). Asimismo, no es adecuado como puente entre grandes
distancias, como suele ser t�pico 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 tensi�n, gracias a lo cual la posible longitud
de potencia y la distancia de se�al de ruido aumenta. Una mayor distancia de ruido
es posible a trav�s de una implementaci�n sobre la capa f�sica del bus CAN, la cual
opera con se�ales diferenciales de colector abierto (drenador abierto). Las
irregularidades tanto de la se�al SDA como de la se�al SCL provocan que los datos
sean transmitidos incorrectamente. Estas irregularidades a menudo no se pueden
detectar, especialmente si son producidas en la se�al SDA. �nicamente con
perturbaciones o irregularidades de corto tiempo, como por ejemplo muy por encima
de la frecuencia de se�al, el sistema puede hacerse m�s estable a trav�s de se�ales
de procesamiento.
Un problema importante dentro de la especificaci�n de un I�C es la falta de un
tiempo de espera, que en ocasiones puede conducir a que los microcontroladores se
bloqueen. Si un esclavo se encuentra empujando la l�nea de datos a "0" y el reset
restablece al maestro, esta l�nea de datos permanece indefinidamente en "0". De
este modo, todo el bus I�C permanece bloqueado con todos los microcontroladores
conectados. A no ser que el esclavo tenga un propio reset, este bloqueo puede ser
resuelto �nicamente por pulsos de reloj generados manualmente, es decir, apagar o
encender el suministro de energ�a.