Razvil Philips v osemdesetih, je I2C postal eden najpogostejših serijskih komunikacijskih protokolov v elektroniki. I2C omogoča komunikacijo med elektronskimi komponentami ali IC v IC, ali so komponente na istem PCB ali so priključene prek kabla. Ključna značilnost I2C je zmožnost, da ima na enem komunikacijskem vodilu veliko komponent z samo dvema žicama, kar naredi I2C kot nalašč za aplikacije, ki zahtevajo enostavnost in nizke stroške nad hitrostjo.
Protokol I2C
I2C je serijski komunikacijski protokol, ki zahteva samo dve signalni liniji. Namenjen je komunikaciji med žetoni na PCB. I2C je bil prvotno zasnovan za komunikacijo s 100kbps, vendar so bili v preteklih letih razviti hitrejši načini prenosa podatkov, da bi dosegli hitrost do 3,4Mbit. Protokol I2C je bil ustanovljen kot uradni standard, ki zagotavlja dobro združljivost med I2C implementacijami in dobro nazaj združljivost.
Signali I2C
Protokol I2C uporablja samo dve dvosmerni signalni liniji za komuniciranje z vsemi napravami na I2C vodilu. Uporabljeni sta naslednji signali:
- Serijska podatkovna vrstica (SDL)
- Ura serijskih podatkov (SDC)
Razlog, da lahko I2C uporablja le dva signala za komunikacijo s številnimi zunanjimi napravami, je v tem, kako se ravna po komunikaciji vzdolž vodila. Vsaka komunikacija I2C se začne s 7-bitnim (ali 10-bitnim) naslovom, ki pokriva naslov obrobne strani, preostanek sporočila pa naj bi prejeli sporočilo. To omogoča več napravam na I2C vodilu, da igrajo vlogo glavne naprave, saj to narekujejo potrebe sistema. Za preprečevanje komunikacijskih trkov, protokol I2C vključuje zmožnosti odkrivanja arbitraže in trčenja, ki omogočajo gladko komunikacijo vzdolž vodila.
Prednosti in omejitve
Kot komunikacijski protokol ima I2C veliko prednosti, ki omogočajo, da je dobra izbira za mnoge vgrajene aplikacije. I2C prinaša naslednje prednosti:
- I2C potrebuje le dve signalni liniji
- Hitrosti prenosa podatkov
- Vsaka naprava na avtobusu je neodvisno naslovljiva
- Naprave imajo preprosto razmerje Master / Slave
- I2C je sposoben upravljati več glavnih komunikacij z zagotavljanjem arbitražnega in komunikacijskega odkrivanja trkov
- Večja komunikacija na daljavo kot SPI
Z vsemi temi prednosti ima I2C tudi nekaj omejitev, ki jih je morda treba oblikovati okrog. Najpomembnejše omejitve I2C so:
- Ker je za naslovovanje naprav na voljo samo 7-bitov (ali 10-bitov), lahko naprave istega vodila delijo isti naslov. Nekatere naprave lahko konfigurirajo zadnjih nekaj bitov naslova, vendar to še vedno omejuje naprave na istem vodilu.
- Na voljo je le nekaj omejenih komunikacijskih hitrosti, številne naprave pa ne podpirajo prenosa pri večjih hitrostih. Potrebna je delna podpora za vsako hitrost na avtobusu, da se počasnejšim napravam prepreči ujeti delne prenose, ki bodo povzročili operativne glitke.
- Skupna narava I2C vodila lahko povzroči, da se celotna vodna enota vleče, ko se ena naprava na avtobusu ustavi. Kolesarjenje moči do avtobusa se lahko uporabi za ponovni zagon avtobusa in ponovno vzpostavitev pravilnega delovanja.
- Ker naprave lahko nastavijo svojo komunikacijsko hitrost, počasnejše operativne naprave lahko odložijo delovanje naprav hitrejše hitrosti.
- I2C porabi več energije kot druge serijske komunikacijske avtobuse zaradi topologije odprtega odtočka komunikacijskih linij.
- Omejitve I2C vodila običajno omejijo število naprav na avtobusu na okrog ducat naprav.
Aplikacije
Bus I2C je odlična možnost za aplikacije, ki zahtevajo poceni in enostavno izvajanje, ne pa visoke hitrosti. Na primer, branje določenih IC pomnilnika, dostop do DAC-jev in ADC-jev, bralni senzorji, oddajanje in krmiljenje usmerjenih uporabnikovih dejanj, branje senzorjev strojne opreme in komuniciranje z več mikrokontrolerji so pogoste uporabe komunikacijskega protokola I2C.