Vyvinutý společností Philips v 80. letech 20. století, I2C (alternativně hláskovaný I2C) se stal jedním z nejběžněji používaných protokolů sériové komunikace v elektronice. I2C usnadňuje komunikaci mezi elektronickými součástkami nebo integrovanými obvody, ať už jsou součásti na stejné desce plošných spojů nebo jsou propojeny kabelem.
Co je protokol I2C?
I2C je sériový komunikační protokol, který vyžaduje pouze dvě signální linky. Byl navržen pro komunikaci mezi čipy na desce plošných spojů (PCB). I2C byl původně navržen pro komunikaci 100 Kbps. V průběhu let však byly vyvinuty rychlejší režimy přenosu dat, aby bylo možné dosáhnout rychlostí až 3.4 Mbit.
Klíčovou vlastností I2C je schopnost mít mnoho komponent na jedné komunikační sběrnici pouze se dvěma vodiči, díky čemuž je I2C perfektní pro jednoduché aplikace. Protokol I2C byl zaveden jako oficiální standard umožňující zpětnou kompatibilitu mezi implementacemi I2C.
signály I2C
Protokol I2C používá ke komunikaci se zařízeními na komunikační sběrnici dvě obousměrné signální linky. Používají se dva signály:
- Serial Data Line (SDL)
- Serial Data Clock (SDC)
Důvod, proč I2C může používat pouze dva signály pro komunikaci s několika periferiemi, je způsob, jakým je řešena komunikace po sběrnici. Každá komunikace I2C začíná 7bitovou (nebo 10bitovou) adresou, která volá adresu periferie.
To umožňuje více zařízením na sběrnici I2C hrát roli primárního zařízení, jak to vyžadují potřeby systému. Aby se předešlo komunikačním kolizím, zahrnuje I2C protokol funkce arbitráže a detekce kolize, které umožňují hladkou komunikaci po sběrnici.
Výhody I2C
Jako komunikační protokol má I2C následující výhody:
- Flexibilní rychlosti přenosu dat.
- Komunikace na delší vzdálenost než SPI.
- Každé zařízení na sběrnici je nezávisle adresovatelné.
- Zařízení mají jednoduchý primární/sekundární vztah.
- Vyžaduje pouze dvě signální linky.
- Je schopen zpracovat více primárních komunikací tím, že poskytuje arbitráž a detekci komunikačních kolizí.
Omezení I2C
Se všemi těmito výhodami má I2C také několik omezení, která bude možná potřeba upravit. Mezi nejdůležitější omezení I2C patří:
- Protože pro adresování zařízení je k dispozici pouze 7 bitů (nebo 10 bitů), mohou zařízení na stejné sběrnici sdílet stejnou adresu. Některá zařízení mohou konfigurovat posledních několik bitů adresy, ale to omezuje počet zařízení na stejné sběrnici.
- K dispozici je pouze několik omezených komunikačních rychlostí a mnoho zařízení nepodporuje přenos vyššími rychlostmi. Je vyžadována částečná podpora pro každou rychlost na sběrnici, aby se zabránilo pomalejším zařízením zachytit částečné přenosy, které mohou vést k provozním závadám.
- Sdílená povaha sběrnice I2C může mít za následek zablokování celé sběrnice, když jediné zařízení na sběrnici přestane fungovat. Zapnutím napájení sběrnice můžete obnovit správný provoz.
- Protože si zařízení nastavují vlastní komunikační rychlost, pomalejší provozní zařízení mohou zpozdit provoz rychlejších zařízení.
- I2C odebírá více energie než jiné sériové komunikační sběrnice díky topologii komunikačních linek s otevřeným odtokem.
- Omezení sběrnice I2C obvykle omezují počet zařízení na sběrnici na přibližně tucet.
Aplikace I2C
I2C je skvělá volba pro aplikace, které vyžadují spíše nízkou cenu a jednoduchou implementaci než vysokou rychlost. Běžná použití komunikačního protokolu I2C například zahrnují:
- Čtení určitých paměťových IC.
- Přístup k DAC a ADC.
- Přenos a ovládání akcí řízených uživatelem.
- Čtení hardwarových senzorů.
- Komunikace s více mikrokontroléry.