Devintajame dešimtmetyje „Philips“ sukurtas I2C (alternatyviai rašoma I2C) tapo vienu dažniausiai naudojamų nuosekliojo ryšio protokolų elektronikoje. I2C palengvina ryšį tarp elektroninių komponentų arba integruotų grandinės, ar komponentai yra toje pačioje vietoje PCB arba prijungtas kabeliu.

Antrasis I2C protokolo etapas
Mwnuk / CC BY 2.0 / Wikimedia Commons

Kas yra I2C protokolas?

I2C yra nuosekliojo ryšio protokolas, kuriam reikalingos tik dvi signalo linijos. Jis buvo skirtas ryšiui tarp lustų ant spausdintinės plokštės (PCB). I2C iš pradžių buvo sukurtas 100 Kbps bendravimas. Tačiau bėgant metams buvo sukurti greitesni duomenų perdavimo režimai, leidžiantys pasiekti net 3,4 Mbit spartą.

Pagrindinė I2C savybė yra galimybė turėti daug komponentų viename ryšio magistralė su tik dviem laidais, todėl I2C puikiai tinka paprastiems darbams. I2C protokolas buvo sukurtas kaip oficialus standartas, leidžiantis atgalinį I2C diegimų suderinamumą.

I2C signalai

I2C protokolas naudoja dvi dvikryptes signalo linijas, kad galėtų susisiekti su įrenginiais ryšio magistralėje. Naudojami du signalai:

  • Serijinė duomenų linija (SDL)
  • Serijos duomenų laikrodis (SDC)

Priežastis, kodėl I2C gali naudoti tik du signalus bendrauti su keliais išoriniais įrenginiais, yra tai, kaip tvarkomas ryšys magistrale. Kiekvienas I2C ryšys prasideda 7-šiek tiek (arba 10 bitų) adresas, kuris iškviečia periferinio įrenginio adresą.

Tai leidžia keliems I2C magistralės įrenginiams atlikti pagrindinio įrenginio vaidmenį, atsižvelgiant į sistemos poreikius. Siekiant išvengti ryšio susidūrimų, I2C protokolas apima arbitražo ir susidūrimų aptikimo galimybes, kurios leidžia sklandžiai bendrauti magistrale.

I2C privalumai

Kaip ryšio protokolas, I2C turi šiuos privalumus:

  • Lankstus duomenų perdavimo greitis.
  • Bendravimas ilgesniu atstumu nei SPI.
  • Kiekvienas magistralės įrenginys yra adresuojamas atskirai.
  • Įrenginiai turi paprastą pirminį ir antrinį ryšį.
  • Tam reikia tik dviejų signalo linijų.
  • Jis gali tvarkyti kelis pagrindinius ryšius, teikdamas arbitražo ir ryšio susidūrimų aptikimą.

I2C apribojimai

Turėdamas visus šiuos pranašumus, I2C taip pat turi keletą apribojimų, kuriuos gali reikėti suprojektuoti. Svarbiausi I2C apribojimai yra šie:

  • Kadangi įrenginio adresavimui galimi tik 7 bitai (arba 10 bitų), toje pačioje magistralėje esantys įrenginiai gali naudoti tą patį adresą. Kai kurie įrenginiai gali konfigūruoti keletą paskutinių adreso bitų, tačiau tai apriboja įrenginius toje pačioje magistralėje.
  • Galimi tik keli riboti ryšio greičiai, o daugelis įrenginių nepalaiko perdavimo didesniu greičiu. Dalinis kiekvieno greičio palaikymas magistralėje reikalingas, kad lėtesni įrenginiai neužfiksuotų dalinių perdavimų, dėl kurių gali kilti veikimo sutrikimų.
  • Bendras I2C magistralės pobūdis gali nulemti, kad visas autobusas nustos veikti, kai vienas autobuso įrenginys nustoja veikti. Maitinimo tiekimas į autobusą gali atkurti tinkamą veikimą.
  • Kadangi įrenginiai nustato savo ryšio greitį, lėčiau veikiantys įrenginiai gali uždelsti greitesnių įrenginių veikimą.
  • I2C sunaudoja daugiau energijos nei kitos nuosekliosios komunikacijos magistralės dėl atviro nutekėjimo ryšio linijų topologijos.
  • I2C magistralės apribojimai paprastai apriboja įrenginių skaičių magistralėje iki maždaug tuzino.

I2C programos

I2C yra puikus pasirinkimas programoms, kurioms reikia mažos kainos ir paprasto diegimo, o ne didelės spartos. Pavyzdžiui, dažniausiai naudojamas I2C ryšio protokolas:

  • Tam tikrų atminties IC skaitymas.
  • Prieiga prie DAC ir ADC.
  • Vartotojo nukreiptų veiksmų perdavimas ir valdymas.
  • Aparatinės įrangos jutiklių skaitymas.
  • Bendravimas su keliais mikrovaldikliais.