Desenvolupat per Philips a la dècada de 1980, l'I2C s'ha convertit en un dels protocols de comunicació sèrie més comuns en electrònica. I2C permet la comunicació entre components electrònics o IC a IC, ja sigui que els components estiguin en el mateix PCB o connectats mitjançant un cable. La característica clau de I2C és la capacitat de disposar d'un gran nombre de components en un únic bus de comunicació amb només dos cables, el que fa que l'I2C sigui perfecte per a aplicacions que exigeixen simplicitat i baix cost a la velocitat.
El protocol I2C
I2C és un protocol de comunicació en sèrie que només requereix dues línies de senyal. Va ser dissenyat per a la comunicació entre xips en una PCB. I2C es va dissenyar originalment per a la comunicació de 100 kbps, però s'han desenvolupat modes de transmissió de dades més ràpids al llarg dels anys per aconseguir velocitats de fins a 3.4Mbit. El protocol I2C s'ha establert com un estàndard oficial, que proporciona una bona compatibilitat entre les implementacions I2C i una bona compatibilitat amb versions anteriors.
Senyals I2C
El protocol I2C utilitza només dues línies de senyal bidireccional per comunicar-se amb tots els dispositius de l'autobús I2C. Els dos senyals utilitzats són:
- Línia de dades en sèrie (SDL)
- Rellotge de dades sèrie (SDC)
La raó per la qual I2C pot utilitzar només dos senyals per comunicar-se amb una sèrie de perifèrics és com es gestiona la comunicació al llarg de l'autobús. Cada comunicació I2C comença amb una adreça de 7 bits (o 10 bits) que crida l'adreça del perifèric, la resta de la comunicació vol rebre la comunicació. Això permet que diversos dispositius a l'autobús I2C ocupin el paper del dispositiu mestre a mesura que les necessitats del sistema dictin. Per evitar col·lisions de comunicació, el protocol I2C inclou capacitats d'arbitratge i detecció de col·lisions que permeten una comunicació suau al llarg del bus.
Avantatges i limitacions
Com a protocol de comunicació, I2C té molts avantatges que fan que sigui una bona opció per a moltes aplicacions de disseny incrustat. I2C presenta els següents avantatges:
- I2C només requereix dues línies de senyal
- Tarifes flexibles de transmissió de dades
- Cada dispositiu a l'autobús és directament adreçat
- Els dispositius tenen una relació simple de màster / esclau
- I2C és capaç de manejar múltiples comunicacions mestres proporcionant detecció d'arbitratge i col·lisió de comunicacions
- Comunicació més llarga que SPI
Amb tots aquests avantatges, I2C també té algunes limitacions que poden necessitar ser dissenyades al voltant. Les limitacions més importants de l'I2C inclouen:
- Atès que només hi ha 7 bits (o 10 bits) disponibles per a l'adreça del dispositiu, els dispositius del mateix bus poden compartir la mateixa adreça. Alguns dispositius són capaços de configurar els últims bits de l'adreça, però això encara imposa una limitació dels dispositius en el mateix bus.
- Només hi ha algunes velocitats de comunicació limitades disponibles i molts dispositius no admeten la transmissió a velocitats més altes. Es necessita suport parcial per a cada velocitat a l'autobús per evitar dispositius més lents de captar transmissions parcials que generin fallades operatives.
- La naturalesa compartida de l'autobús I2C pot donar lloc a la suspensió total de l'autobús quan un únic dispositiu a l'autobús deixi de funcionar. Ciclotejar la potència de l'autobús es pot utilitzar per reiniciar l'autobús i restaurar l'operació adequada.
- Atès que els dispositius poden establir la seva velocitat de comunicació, els dispositius operatius més lents poden retardar el funcionament dels dispositius de velocitat més ràpida.
- I2C obté més energia que altres autobusos de comunicació en sèrie a causa de la topologia de les línies de comunicació de drenatge obert.
- Les limitacions del bus I2C limiten normalment la quantitat de dispositius en un autobús a una dotzena de dispositius.
Aplicacions
L'autobús I2C és una excel·lent opció per a aplicacions que requereixen un baix cost i una implementació senzilla en comptes d'una velocitat elevada. Per exemple, llegir determinats CI de memòria, accedir a DAC i ADC, llegir sensors, transmetre i controlar accions dirigides per l'usuari, llegir sensors de maquinari i comunicar-se amb múltiples microcontroladors són usos comuns del protocol de comunicació I2C.