Razvijen od Philipsa 1980-ih, I2C je postao jedan od najčešćih protokola serijske komunikacije u elektronici. I2C omogućava komunikaciju između elektronskih komponenti ili IC-a na IC, bez obzira na to da li su komponente na istom PCB-u ili su povezane preko kabla. Ključna karakteristika I2C-a je mogućnost da na jednom komunikacijskom sabirničkom području postoji veliki broj komponenti sa samo dvije žice što čini I2C savršenim za aplikacije koje zahtevaju jednostavnost i niske troškove preko brzine.
Pregled I2C protokola
I2C je serijski komunikacijski protokol koji zahteva samo dve signalne linije koje su dizajnirane za komunikaciju između čipova na PCB-u. I2C je originalno dizajniran za komunikaciju od 100 Kb / s, ali su tokom godina razvijeni brži modovi prenosa podataka kako bi se postigli brzini do 3,4 Mbit. I2C protokol je uspostavljen kao zvanični standard, koji obezbeđuje dobru kompatibilnost između I2C implementacija i dobre kompatibilnosti za nazad.
Signali I2C
I2C protokol koristi samo dve dvosmerne linije signala da komunicira sa svim uređajima na I2C magistrali. Dva korišćena signala su:
- Serijska data linija (SDL)
- Serijski data sat (SDC)
Razlog zbog kojeg I2C može da koristi samo dva signala za komunikaciju sa više perifernih uređaja jeste kako se rukuje komunikacijom duž magistrale. Svaka I2C komunikacija počinje sa 7-bitnom (ili 10-bitnom) adresom koja naziva adresu periferije, a ostatak komunikacije ima za cilj da primi komunikaciju. Ovo dozvoljava višestrukim uređajima na I2C busu da igraju ulogu glavnog uređaja jer potrebe diktata sistema diktiraju. Za sprječavanje komunikacionih sudara, I2C protokol uključuje mogućnosti za otkrivanje sudara i sudara koji omogućavaju nesmetanu komunikaciju duž magistrale.
Prednosti i ograničenja
Kao komunikacijski protokol, I2C ima puno prednosti koje donosi je dobar izbor za mnoge ugrađene dizajnerske aplikacije. I2C donosi sledeće prednosti:
- I2C zahteva samo dve signalne linije
- Fleksibilne stope prenosa podataka
- Svaki uređaj na autobusu je nezavisno adresiran
- Uređaji imaju jednostavnu vezu Master / Slave
- I2C je sposoban rukovati višestrukim glavnim komunikacijama pružanjem arbitražne i komunikacijske detekcije sudara
- Dalja komunikacija na daljinu od SPI
Uz sve ove prednosti, I2C takođe ima nekoliko ograničenja koja bi možda trebala biti dizajnirana. Najvažnije I2C ograničenja uključuju:
- Pošto su dostupni samo 7 bita (ili 10 bita) za adresiranje uređaja, uređaji na istom busu mogu dijeliti istu adresu. Neki uređaji mogu da konfigurišu poslednjih nekoliko bita adrese, ali to i dalje nameće ograničenje uređaja na istoj magistrali.
- Dostupno je samo nekoliko ograničenih brzina komunikacije, a mnogi uređaji ne podržavaju veću brzinu prenosa. Djelimična podrška za svaku brzinu na sabirnici je neophodna kako bi se sporijim uređajima spriječilo uhvatiti delimične transmisije koji će rezultirati operativnim greškama.
- Deljena priroda I2C magistrale može da dovede do toga da se čitava magistrala visi kada jedan uređaj na autobusu prestane da radi. Vožnja bicikla na autobus može se koristiti za ponovno pokretanje sabirnice i vraćanje ispravnog rada.
- S obzirom da uređaji mogu podesiti brzinu komunikacije, sporiji operativni uređaji mogu odložiti rad bržih uređaja brzine.
- I2C povlači više snage nego drugi serijski komunikacijski autobusi zbog topologije otvorenog odvoda komunikacionih linija.
- Ograničenja I2C magistrale obično ograničavaju broj uređaja na autobusu na oko desetak uređaja.
Aplikacije
I2C bus je odlična opcija za aplikacije koje zahtevaju nisku cenu i jednostavnu implementaciju, a ne veliku brzinu. Na primer, čitanje određenih memorijskih ICs-a, pristupa DAC-u i ADC-u, senzorima za čitanje , prenošenjem i kontrolom akcija usmerenih na korisnike, čitanjem senzora hardvera i komuniciranjem sa više mikrokontrolera su uobičajene upotrebe I2C komunikacijskog protokola.