Razvijen od strane Philips u 1980-ima, I2C je postao jedan od najčešćih serijskih komunikacijskih protokola u elektronici. I2C omogućuje komunikaciju između elektroničkih komponenti ili IC na IC, bez obzira na to jesu li komponente na istom PCB-u ili spojene preko kabela. Ključna značajka I2C je sposobnost da ima veliki broj komponenata na jednom komunikacijskom sabirnici sa samo dvije žice, što čini I2C savršenim za aplikacije koje zahtijevaju jednostavnost i nisku cijenu brzine.
Protokol I2C
I2C je serijski komunikacijski protokol koji zahtijeva samo dvije signalne linije. Namijenjen je za komunikaciju između čipova na PCB-u. I2C je izvorno dizajniran za komunikaciju od 100kbps, no tijekom godina su razvijeni brzi načini prijenosa podataka kako bi se postigle brzine do 3,4Mbit. I2C protokol je uspostavljen kao službeni standard, koji osigurava dobru kompatibilnost između I2C implementacija i dobre kompatibilnosti s unatrag.
I2C signali
I2C protokol koristi samo dvije dvosmjerne signalne linije za komunikaciju sa svim uređajima na I2C busu. Dva korištena signala su:
- Serijska podatkovna linija (SDL)
- Serijski datumski sat (SDC)
Razlog zbog kojeg I2C može koristiti samo dva signala za komunikaciju s brojnim perifernim uređajima jest način na koji se komunicira s autobusom. Svaka I2C komunikacija počinje s 7-bitnom (ili 10-bitnom) adresom koja poziva adresu perifernog, a ostatak komunikacije treba primiti komunikaciju. To omogućuje više uređaja na I2C busu da igraju ulogu glavnog uređaja kao potrebe sustava diktiraju. Kako bi spriječili komunikacijske sudare, I2C protokol uključuje arbitražu i sposobnosti otkrivanja sudara koji omogućuju glatku komunikaciju duž autobusa.
Prednosti i ograničenja
Kao komunikacijski protokol, I2C ima mnogo prednosti koje čine dobar izbor za mnoge ugrađene aplikacije dizajna. I2C donosi sljedeće prednosti:
- I2C zahtijeva samo dvije signalne linije
- Fleksibilne brzine prijenosa podataka
- Svaki uređaj na autobusu je neovisno adresiran
- Uređaji imaju jednostavan odnos Master / Slave
- I2C je sposoban upravljati višestrukim glavnim komunikacijama osiguravanjem arbitraže i otkrivanja sudara komunikacije
- Daljnja komunikacija od SPI
Uz sve te prednosti, I2C ima i nekoliko ograničenja koja bi trebala biti dizajnirana oko sebe. Najvažnija ograničenja I2C uključuju:
- Budući da su dostupni samo 7-bitni (ili 10-bitni) uređaji za adresiranje, uređaji na istoj bazi mogu dijeliti istu adresu. Neki uređaji mogu konfigurirati zadnjih nekoliko bitova adrese, ali to još uvijek nameće ograničenje uređaja na istom busu.
- Dostupne su 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 spriječili sporije pokretanje prijenosnih dijelova koji će dovesti do operativnih propusta.
- Zajednička priroda I2C autobusa može rezultirati cijelim autobusom koji visi kad se jedan uređaj na autobusu zaustavi. Vožnja autobusom može se koristiti za ponovno pokretanje sabirnice i vraćanje ispravnog rada.
- Budući da uređaji mogu postaviti brzinu komunikacije, sporiji radni uređaji mogu odgoditi rad bržih uređaja za brzinu.
- I2C privlači više snage od drugih serijskih komunikacijskih autobusa zbog topologije otvorenog ispusta komunikacijskih vodova.
- Ograničenja I2C bus obično ograničavaju broj uređaja na autobusu na desetak uređaja.
Prijave
I2C bus je izvrstan izbor za aplikacije koje zahtijevaju nisku cijenu i jednostavnu implementaciju, a ne veliku brzinu. Na primjer, čitanje određenih memorijskih IC-ova, pristupanje DAC-ima i ADC-u, čitanje senzora, prenošenje i kontrola korisnički usmjerenih radnji, čitanje hardverskih senzora i komuniciranje s više mikrokontrolera su uobičajene uporabe I2C komunikacijskog protokola.