Razvijen od strane Philips-a 1980-ih, I2C (alternativno napisano I2C) postao je jedan od najčešće korištenih serijskih komunikacijskih protokola u elektronici. I2C olakšava komunikaciju između elektronskih komponenti ili integrisanih kola, bilo da su komponente na istoj PCB ili povezane kablom.
Šta je I2C protokol?
I2C je serijski komunikacijski protokol koji zahtijeva samo dvije signalne linije. Dizajniran je za komunikaciju između čipova na štampanoj ploči (PCB). I2C je prvobitno dizajniran za komunikaciju od 100 Kbps. Međutim, tokom godina su se razvijali brži načini prijenosa podataka kako bi se postigle brzine do 3.4 Mbit.
Ključna karakteristika I2C je mogućnost da ima mnogo komponenti na jednoj komunikacijskoj magistrali sa samo dvije žice, što I2C čini savršenim za jednostavne aplikacije. I2C protokol je uspostavljen kao zvanični standard, omogućavajući kompatibilnost unatrag između I2C implementacija.
I2C signali
Protokol I2C koristi dvije dvosmjerne signalne linije za komunikaciju sa uređajima na komunikacijskoj magistrali. Dva korištena signala su:
- Linija serijskih podataka (SDL)
- Sat serijskih podataka (SDC)
Razlog zbog kojeg I2C može koristiti samo dva signala za komunikaciju sa nekoliko perifernih uređaja je u načinu na koji se upravlja komunikacijom duž magistrale. Svaka I2C komunikacija počinje sa 7-bitnom (ili 10-bitnom) adresom koja poziva adresu perifernog uređaja.
Ovo omogućava da više uređaja na I2C magistrali igraju ulogu primarnog uređaja kako potrebe sistema nalažu. Da bi se spriječile komunikacijske kolizije, I2C protokol uključuje arbitražu i mogućnosti detekcije sudara, koje omogućavaju nesmetanu komunikaciju duž magistrale.
Prednosti I2C
Kao komunikacijski protokol, I2C ima sljedeće prednosti:
- Fleksibilne brzine prijenosa podataka.
- Komunikacija na daljinu nego SPI.
- Svaki uređaj u autobusu je nezavisno adresiran.
- Uređaji imaju jednostavan primarni/sekundarni odnos.
- Zahtijeva samo dvije signalne linije.
- Moguć je rukovati više primarnih komunikacija pružanjem arbitraže i detekcije komunikacijskih kolizija.
Ograničenja I2C
Sa svim ovim prednostima, I2C također ima nekoliko ograničenja koja će možda morati biti dizajnirana. Najvažnija I2C ograničenja uključuju:
- Pošto su samo 7-bitni (ili 10-bitni) dostupni za adresiranje uređaja, uređaji na istoj magistrali mogu dijeliti istu adresu. Neki uređaji mogu konfigurirati posljednjih nekoliko bitova adrese, ali to nameće ograničenje uređaja na istoj magistrali.
- Dostupno je samo nekoliko ograničenih brzina komunikacije, a mnogi uređaji ne podržavaju prijenos pri većim brzinama. Potrebna je djelomična podrška za svaku brzinu na sabirnici kako bi se spriječilo da sporiji uređaji hvataju djelomične prijenose koji mogu dovesti do operativnih grešaka.
- Zajednička priroda I2C magistrale može dovesti do toga da cijela magistrala visi kada jedan uređaj na sabirnici prestane da radi. Prebacivanje napajanja na sabirnicu može vratiti ispravan rad.
- Pošto uređaji postavljaju svoju brzinu komunikacije, sporiji uređaji mogu odgoditi rad bržih uređaja.
- I2C crpi više snage od ostalih serijskih komunikacionih sabirnica zbog topologije komunikacijskih linija otvorenog odvoda.
- Ograničenja I2C magistrale obično ograničavaju broj uređaja na sabirnici na desetak.
I2C aplikacije
I2C je odlična opcija za aplikacije koje zahtijevaju nisku cijenu i jednostavnu implementaciju umjesto velike brzine. Na primjer, uobičajene upotrebe I2C komunikacijskog protokola uključuju:
- Čitanje određenih memorijskih IC-ova.
- Pristup DAC-ovima i ADC-ovima.
- Prenos i kontrola radnji koje usmjerava korisnik.
- Očitavanje hardverskih senzora.
- Komunikacija sa više mikrokontrolera.