Pregled I2C

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.

Pregled protokola I2C

I2C je serijski komunikacijski protokol koji zahtijeva samo dvije signalne linije koja je dizajnirana 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:

Razlog zbog kojeg I2C može koristiti samo dva signala za komunikaciju s brojnim perifernim uređajima je u tome kako se komunicira duž autobusa. 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:

Uz sve te prednosti, I2C ima i nekoliko ograničenja koja bi trebala biti dizajnirana oko sebe. Najvažnija ograničenja I2C uključuju:

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čkih usmjerenih radnji, čitanje hardverskih senzora i komuniciranje s višestrukim mikrokontrolerima uobičajene su uporabe I2C komunikacijskog protokola.