1980 m. "Philips" sukurtas "I2C" tapo vienu iš dažniausiai naudojamų elektronikos serijinio ryšio protokolų. I2C leidžia jungtis tarp elektroninių komponentų arba IC į IC, nesvarbu, ar komponentai yra toje pačioje PCB arba prijungti per kabelį. Pagrindinis I2C bruožas yra galimybė turėti daugybę komponentų vienoje komunikacinėje magistralėje su tik dviem laidais, todėl I2C idealiai tinka programoms, kurioms reikalingas paprastumas ir pigūs greičiai.
I2C protokolas
I2C yra serijinio ryšio protokolas, kuris reikalauja tik dviejų signalų linijų. Jis buvo sukurtas ryšiui tarp PCB plokščių. Iš pradžių I2C buvo suprojektuotas 100kbps ryšiui, tačiau greitieji duomenų perdavimo būdai buvo sukurti per metus, siekiant greičio iki 3,4 Mb. I2C protokolas buvo sukurtas kaip oficialus standartas, kuris užtikrina gerą I2C realizacijų suderinamumą ir gerą atgalinį suderinamumą.
I2C signalai
I2C protokolas naudoja tik dvi dvikrypčias signalines linijas bendrauti su visais I2C mazgo įrenginiais. Du naudojami signalai:
- Serijos duomenų linija (SDL)
- Nuoseklus duomenų laikrodis (SDC)
Priežastis, kodėl I2C gali naudoti tik du signalus bendrauti su daugeliu periferinių įrenginių, yra tai, kaip perduodamas ryšys per autobusą. Kiekvienas I2C komunikatas prasideda 7 bitų (arba 10 bitų) adresu, kuris skambina periferinio įrenginio adresu, o kitas komunikatas skirtas priimti ryšį. Tai leidžia kelių įrenginių I2C magistralėje atlikti pagrindinio įrenginio vaidmenį, nes sistemos poreikiai diktuoja. Siekiant užkirsti kelią bendravimui, I2C protokolas apima arbitražo ir susidūrimų aptikimo galimybes, kurios leidžia sklandžiai bendrauti prie autobuso.
Privalumai ir apribojimai
Kaip komunikacijos protokolas, I2C turi daugybę privalumų, kuriuos galima padaryti daugeliui įterptųjų projektavimo programų. I2C teikia šiuos privalumus:
- I2C reikalauja tik dviejų signalų linijų
- Lankstus duomenų perdavimo greitis
- Kiekvienas autobuso įrenginys yra savarankiškai adresuotas
- Įrenginiai turi paprastą "Master / Slave" ryšį
- I2C gali apdoroti keletą magistralinių komunikacijų, nustatydamas arbitražo ir ryšių susidūrimus
- Ilgesnis nuotolinis ryšys nei SPI
Su visais šiais pranašumais I2C taip pat yra keletas apribojimų, kuriuos gali reikėti suplanuoti. Svarbiausi I2C apribojimai yra šie:
- Kadangi prietaiso adresavimui yra prieinami tik 7 bitai (arba 10 bitų), to paties autobuso įrenginiai gali naudoti tą patį adresą. Kai kurie įrenginiai gali konfigūruoti paskutinius kelis adreso bitus, tačiau tai vis tiek nustato įrenginių apribojimus toje pačioje magistralėje.
- Yra tik keletas ribotų ryšio greičių, o daugelis įrenginių nepalaiko perdavimo didesniu greičiu. Reikia dalinai remti kiekvieną greitį autobuse, norint užkirsti kelią lėtesniam įrenginių daliniam perdavimui, dėl kurio gali atsirasti gedimų.
- Bendras I2C autobuso pobūdis gali paskatinti visą autobusą, kai vienas autobuso įrenginys nustoja veikti. Dviračio maitinimą į autobusą galima naudoti, norint iš naujo paleisti autobusą ir atkurti tinkamą veikimą.
- Kadangi prietaisai gali nustatyti ryšio greitį, lėtesni veikimo įtaisai gali užlaikyti greitesnių įrenginių veikimą.
- Ryšių linijų atviros kanalizacijos topologijos dėka I2C pritraukia daugiau galios nei kitiems nuosekliųjų ryšių autobusams.
- I2C autobusų apribojimai dažniausiai riboja autobusų įrenginių skaičių iki maždaug dvylikos įrenginių.
Programos
I2C autobusas yra puikus pasirinkimas programoms, kurioms reikalingas pigus ir paprastas, o ne didelis greitis. Pavyzdžiui, dažniausiai naudojamasi I2C komunikacijos protokolu, naudojamas skaitant tam tikrus atminties įtaisus, pasiekiant DAC ir ADC, skaitant daviklius, perduodant ir valdant naudotojui pritaikytus veiksmus, skaitant aparatūros daviklius ir bendraudami su keliais mikrovaldikliais.