Razvijen od strane Philipsa 1980-ih, I2C (alternativno napisan I2C) postao je jedan od najčešće korištenih serijskih komunikacijskih protokola u elektronici. I2C olakšava komunikaciju između elektroničkih komponenti ili integriranih sklopova, bilo da su komponente na istoj tiskanoj ploči ili povezane kabelom.
Što je I2C protokol?
I2C je serijski komunikacijski protokol koji zahtijeva samo dvije signalne linije. Dizajniran je za komunikaciju između čipova na tiskanoj ploči (PCB). I2C je izvorno dizajniran za 100 Kbps komunikaciju. Međutim, brži načini prijenosa podataka razvijeni su tijekom godina kako bi se postigle brzine do 3.4 Mbit.
Ključna značajka I2C je mogućnost da ima mnogo komponenti na jednoj komunikacijskoj sabirnici sa samo dvije žice, što I2C čini savršenim za jednostavne primjene. Protokol I2C uspostavljen je kao službeni standard, što omogućuje kompatibilnost unazad između I2C implementacija.
I2C signali
I2C protokol koristi dvije dvosmjerne signalne linije za komunikaciju s uređajima na komunikacijskoj sabirnici. Dva korištena signala su:
- Serijska podatkovna linija (SDL)
- Sat serijskih podataka (SDC)
Razlog zašto I2C može koristiti samo dva signala za komunikaciju s nekoliko perifernih uređaja je način na koji se rukuje komunikacijom duž sabirnice. Svaka I2C komunikacija počinje sa 7-bitnom (ili 10-bitnom) adresom koja poziva adresu periferije.
Ovo omogućuje više uređaja na I2C sabirnici da igraju ulogu primarnog uređaja prema potrebama sustava. Kako bi se spriječili sukobi u komunikaciji, I2C protokol uključuje mogućnosti arbitraže i otkrivanja sudara, što omogućuje glatku komunikaciju duž sabirnice.
Prednosti I2C
Kao komunikacijski protokol, I2C ima sljedeće prednosti:
- Fleksibilne brzine prijenosa podataka.
- Komunikacija na većoj udaljenosti od SPI.
- Svaki uređaj na sabirnici je neovisno adresabilan.
- Uređaji imaju jednostavan primarni/sekundarni odnos.
- Zahtijeva samo dvije signalne linije.
- Može upravljati višestrukim primarnim komunikacijama pružajući arbitražu i otkrivanje kolizije u komunikaciji.
Ograničenja I2C
Uz sve ove prednosti, I2C također ima nekoliko ograničenja koja bi se možda trebala dizajnirati. Najvažnija I2C ograničenja uključuju:
- Budući da je samo 7-bita (ili 10-bita) dostupno za adresiranje uređaja, uređaji na istoj sabirnici mogu dijeliti istu adresu. Neki uređaji mogu konfigurirati posljednjih nekoliko bitova adrese, ali to nameće ograničenje uređaja na istoj sabirnici.
- Dostupno je samo nekoliko ograničenih komunikacijskih brzina, 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 uhvate djelomične prijenose koji mogu rezultirati smetnjama u radu.
- Zajednička priroda I2C sabirnice može rezultirati zastojem cijele sabirnice kada jedan uređaj na sabirnici prestane raditi. Isključivanje napajanja autobusa može vratiti pravilan rad.
- Budući da uređaji sami postavljaju svoju brzinu komunikacije, sporiji uređaji mogu odgoditi rad bržih uređaja.
- I2C troši više energije nego druge serijske komunikacijske sabirnice zbog topologije otvorenog odvoda komunikacijskih linija.
- Ograničenja I2C sabirnice obično ograničavaju broj uređaja na sabirnici na oko desetak.
I2C aplikacije
I2C je izvrsna 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 i ADC.
- Prijenos i upravljanje radnjama koje usmjerava korisnik.
- Očitavanje hardverskih senzora.
- Komunikacija s više mikrokontrolera.