I2C (alternatívne písané I2C), vyvinutý spoločnosťou Philips v 80. rokoch, sa stal jedným z najbežnejšie používaných protokolov sériovej komunikácie v elektronike. I2C uľahčuje komunikáciu medzi elektronickými komponentmi alebo integrovanými obvodmi, či už sú komponenty na tej istej doske plošných spojov alebo sú prepojené káblom.
Čo je protokol I2C?
I2C je sériový komunikačný protokol, ktorý vyžaduje iba dve signálne linky. Bol navrhnutý pre komunikáciu medzi čipmi na doske plošných spojov (PCB). I2C bol pôvodne navrhnutý pre komunikáciu 100 Kbps. V priebehu rokov sa však vyvinuli rýchlejšie režimy prenosu údajov, aby sa dosiahli rýchlosti až 3.4 Mbit.
Kľúčovou vlastnosťou I2C je schopnosť mať veľa komponentov na jednej komunikačnej zbernici iba s dvoma vodičmi, vďaka čomu je I2C ideálny pre jednoduché aplikácie. Protokol I2C bol ustanovený ako oficiálny štandard, ktorý umožňuje spätnú kompatibilitu medzi implementáciami I2C.
Signály I2C
Protokol I2C používa na komunikáciu so zariadeniami na komunikačnej zbernici dve obojsmerné signálne linky. Používajú sa dva signály:
- Serial Data Line (SDL)
- Serial Data Clock (SDC)
Dôvod, že I2C môže používať iba dva signály na komunikáciu s niekoľkými periférnymi zariadeniami, je spôsob, akým prebieha komunikácia po zbernici. Každá komunikácia I2C začína 7-bitovou (alebo 10-bitovou) adresou, ktorá vyvoláva adresu periférneho zariadenia.
To umožňuje viacerým zariadeniam na zbernici I2C hrať úlohu primárneho zariadenia podľa potrieb systému. Aby sa predišlo komunikačným kolíziám, protokol I2C obsahuje funkcie rozhodovania a detekcie kolízií, ktoré umožňujú bezproblémovú komunikáciu po zbernici.
Výhody I2C
Ako komunikačný protokol má I2C nasledujúce výhody:
- Flexibilné rýchlosti prenosu dát.
- Komunikácia na diaľku ako SPI.
- Každé zariadenie na zbernici je nezávisle adresovateľné.
- Zariadenia majú jednoduchý primárny/sekundárny vzťah.
- Vyžaduje len dve signálne linky.
- Je schopný spracovať viacero primárnych komunikácií poskytovaním arbitráže a detekcie kolízií komunikácie.
Obmedzenia I2C
So všetkými týmito výhodami má I2C aj niekoľko obmedzení, ktoré možno bude potrebné upraviť. Medzi najdôležitejšie obmedzenia I2C patria:
- Keďže na adresovanie zariadení je k dispozícii iba 7 bitov (alebo 10 bitov), zariadenia na rovnakej zbernici môžu zdieľať rovnakú adresu. Niektoré zariadenia dokážu nakonfigurovať posledných pár bitov adresy, ale to obmedzuje počet zariadení na tej istej zbernici.
- Dostupných je len niekoľko obmedzených komunikačných rýchlostí a mnohé zariadenia nepodporujú prenos pri vyšších rýchlostiach. Vyžaduje sa čiastočná podpora pre každú rýchlosť na zbernici, aby sa zabránilo pomalším zariadeniam zachytiť čiastočné prenosy, ktoré môžu viesť k prevádzkovým poruchám.
- Zdieľaná povaha zbernice I2C môže viesť k tomu, že celá zbernica visí, keď prestane fungovať jediné zariadenie na zbernici. Zapnutie napájania autobusu môže obnoviť správnu prevádzku.
- Keďže si zariadenia nastavujú vlastnú komunikačnú rýchlosť, pomalšie fungujúce zariadenia môžu oneskoriť prevádzku rýchlejších zariadení.
- I2C odoberá viac energie ako iné sériové komunikačné zbernice vďaka topológii komunikačných liniek s otvoreným odtokom.
- Obmedzenia zbernice I2C zvyčajne obmedzujú počet zariadení v zbernici na približne tucet.
Aplikácie I2C
I2C je skvelá voľba pre aplikácie, ktoré vyžadujú skôr nízke náklady a jednoduchú implementáciu ako vysokú rýchlosť. Medzi bežné použitia komunikačného protokolu I2C patrí napríklad:
- Čítanie určitých pamäťových integrovaných obvodov.
- Prístup k DAC a ADC.
- Prenos a ovládanie akcií riadených používateľom.
- Čítanie hardvérových senzorov.
- Komunikácia s viacerými mikroovládačmi.