I2C (alternativno napisano I2C), ki ga je razvil Philips v osemdesetih letih, je postal eden najpogosteje uporabljenih serijskih komunikacijskih protokolov v elektroniki. I2C olajša komunikacijo med elektronskimi komponentami ali integriranimi vezji, ne glede na to, ali so komponente na istem tiskanem vezju ali povezane s kablom.
Kaj je protokol I2C?
I2C je serijski komunikacijski protokol, ki zahteva samo dve signalni liniji. Zasnovan je za komunikacijo med čipi na tiskanem vezju (PCB). I2C je bil prvotno zasnovan za komunikacijo 100 Kbps. Vendar pa so bili v preteklih letih razviti hitrejši načini prenosa podatkov za doseganje hitrosti do 3.4 Mbit.
Ključna značilnost I2C je možnost, da ima veliko komponent na enem komunikacijskem vodilu z le dvema žicama, zaradi česar je I2C popoln za preproste aplikacije. Protokol I2C je bil vzpostavljen kot uradni standard, ki omogoča povratno združljivost med implementacijami I2C.
I2C signali
Protokol I2C uporablja dve dvosmerni signalni liniji za komunikacijo z napravami na komunikacijskem vodilu. Dva uporabljena signala sta:
- Serijska podatkovna linija (SDL)
- Serijska podatkovna ura (SDC)
Razlog, da lahko I2C uporablja samo dva signala za komunikacijo z več perifernimi napravami, je v tem, kako poteka komunikacija vzdolž vodila. Vsaka komunikacija I2C se začne s 7-bitnim (ali 10-bitnim) naslovom, ki prikliče naslov periferne enote.
To omogoča več napravam na vodilu I2C, da igrajo vlogo primarne naprave, kot narekujejo potrebe sistema. Za preprečevanje komunikacijskih kolizij protokol I2C vključuje zmogljivosti arbitraže in zaznavanja kolizij, ki omogočajo nemoteno komunikacijo vzdolž vodila.
Prednosti I2C
Kot komunikacijski protokol ima I2C naslednje prednosti:
- Prilagodljive hitrosti prenosa podatkov.
- Komunikacija na daljše razdalje kot SPI.
- Vsaka naprava na vodilu je neodvisno naslovljiva.
- Naprave imajo preprosto primarno/sekundarno razmerje.
- Potrebuje samo dve signalni liniji.
- Zmožen je obravnavati več primarnih komunikacij z zagotavljanjem arbitraže in zaznavanjem komunikacijskih kolizij.
Omejitve I2C
Z vsemi temi prednostmi ima I2C tudi nekaj omejitev, ki jih bo morda treba načrtovati. Najpomembnejše omejitve I2C vključujejo:
- Ker je za naslavljanje naprav na voljo le 7-bitov (ali 10-bitov), lahko naprave na istem vodilu delijo isti naslov. Nekatere naprave lahko konfigurirajo zadnjih nekaj bitov naslova, vendar to nalaga omejitev naprav na istem vodilu.
- Na voljo je le nekaj omejenih komunikacijskih hitrosti in veliko naprav ne podpira prenosa pri višjih hitrostih. Delna podpora za vsako hitrost na vodilu je potrebna, da se počasnejšim napravam prepreči lovljenje delnih prenosov, ki lahko povzročijo napake pri delovanju.
- Skupna narava vodila I2C lahko povzroči, da celotno vodilo visi, ko ena naprava na vodilu preneha delovati. Preklop napajanja na avtobus lahko ponovno vzpostavi pravilno delovanje.
- Ker naprave same nastavijo hitrost komunikacije, lahko počasnejše naprave zakasnijo delovanje hitrejših naprav.
- I2C zaradi odprte topologije komunikacijskih linij porabi več energije kot druga serijska komunikacijska vodila.
- Omejitve vodila I2C običajno omejujejo število naprav na vodilu na okoli ducat.
Aplikacije I2C
I2C je odlična možnost za aplikacije, ki namesto visoke hitrosti zahtevajo nizke stroške in preprosto izvedbo. Pogoste uporabe komunikacijskega protokola I2C na primer vključujejo:
- Branje določenih pomnilniških IC-jev.
- Dostop do DAC in ADC.
- Pošiljanje in nadzor uporabnikovih dejanj.
- Branje senzorjev strojne opreme.
- Komunikacija z več mikrokontrolerji.