Prezentare generală și beneficii ale autobuzului I2C
Dezvoltat de Philips în anii 1980, I2C (scris alternativ I2C) a devenit unul dintre cele mai frecvent utilizate protocoale de comunicații seriale în electronică. I2C facilitează comunicarea între componente electronice sau integrate circuite, dacă componentele sunt pe aceeași PCB sau conectat cu un cablu.

Ce este protocolul I2C?
I2C este un protocol de comunicație serială care necesită doar două linii de semnal. A fost conceput pentru comunicarea între cipuri de pe o placă de circuit imprimat (PCB). I2C a fost proiectat inițial pentru 100 Kbps comunicare. Cu toate acestea, de-a lungul anilor au fost dezvoltate moduri mai rapide de transmisie a datelor pentru a atinge viteze de până la 3,4 Mbit.
Caracteristica cheie a I2C este capacitatea de a avea mai multe componente pe o singură magistrala de comunicatii cu doar două fire, ceea ce face ca I2C să fie perfect pentru aplicații simple. Protocolul I2C a fost stabilit ca standard oficial, permițând compatibilitatea inversă între implementările I2C.
Semnale I2C
Protocolul I2C utilizează două linii de semnal bidirecționale pentru a comunica cu dispozitivele de pe magistrala de comunicație. Cele două semnale utilizate sunt:
- Linie de date seriale (SDL)
- Ceas de date serial (SDC)
Motivul pentru care I2C poate folosi doar două semnale pentru a comunica cu mai multe periferice este modul în care este gestionată comunicarea de-a lungul magistralei. Fiecare comunicare I2C începe cu un 7-pic (sau pe 10 biți) adresa care strigă adresa perifericului.
Acest lucru permite mai multor dispozitive de pe magistrala I2C să joace rolul dispozitivului principal, așa cum o impun nevoile sistemului. Pentru a preveni coliziunile de comunicare, protocolul I2C include capabilități de arbitrare și de detectare a coliziunilor, care permit o comunicare lină de-a lungul magistralei.
Beneficiile I2C
Ca protocol de comunicare, I2C are următoarele avantaje:
- Rate flexibile de transmisie a datelor.
- Comunicare la distanță mai mare decât SPI.
- Fiecare dispozitiv de pe magistrală este adresabil independent.
- Dispozitivele au o relație simplă primar/secundar.
- Necesită doar două linii de semnal.
- Este capabil să gestioneze mai multe comunicații primare, oferind arbitraj și detectarea coliziunilor de comunicare.
Limitări ale I2C
Cu toate aceste avantaje, I2C are, de asemenea, câteva limitări care ar putea trebui proiectate. Cele mai importante limitări I2C includ:
- Deoarece doar 7 biți (sau 10 biți) sunt disponibili pentru adresarea dispozitivelor, dispozitivele de pe aceeași magistrală pot partaja aceeași adresă. Unele dispozitive pot configura ultimii câțiva biți ai adresei, dar acest lucru impune o limitare a dispozitivelor pe aceeași magistrală.
- Sunt disponibile doar câteva viteze de comunicare limitate și multe dispozitive nu acceptă transmisia la viteze mai mari. Este necesar un suport parțial pentru fiecare viteză de pe autobuz pentru a preveni dispozitivele mai lente să prindă transmisii parțiale care pot duce la erori de funcționare.
- Natura comună a magistralei I2C poate duce la blocarea întregului autobuz atunci când un singur dispozitiv din autobuz încetează să funcționeze. Comutarea alimentării autobuzului poate restabili funcționarea corectă.
- Deoarece dispozitivele își stabilesc propria viteză de comunicare, dispozitivele operaționale mai lente pot întârzia funcționarea dispozitivelor mai rapide.
- I2C consumă mai multă putere decât alte magistrale de comunicație seriale datorită topologiei cu scurgere deschisă a liniilor de comunicație.
- Limitările magistralei I2C limitează de obicei numărul de dispozitive pe un autobuz la aproximativ o duzină.
Aplicații I2C
I2C este o opțiune excelentă pentru aplicațiile care necesită un cost redus și o implementare simplă, mai degrabă decât viteză mare. De exemplu, utilizările comune ale protocolului de comunicare I2C includ:
- Citirea anumitor circuite integrate de memorie.
- Accesarea DAC-urilor și ADC-urilor.
- Transmiterea și controlul acțiunilor direcționate de utilizator.
- Citirea senzorilor hardware.
- Comunicarea cu mai multe micro-controlere.