I2C (Inter-Integrated Circuit, piiritasoinen väylä)

I2C (Inter-Integrated Circuit) -määritelmä

I2C, eli Inter-Integrated Circuit, on laajalti käytetty sarjallinen viestintäprotokolla, joka mahdollistaa usean laitteen kommunikoinnin keskenään kaksijohtimisella liitännällä. Sitä käytetään yleisesti kytkemään matalan nopeuden oheislaitteita emolevyihin, sulautettuihin järjestelmiin tai mikro-ohjaimiin.

I2C käyttää master-slave-arkkitehtuuria, jossa yksi laite toimii masterina ja aloittaa viestinnän, kun taas muut laitteet toimivat slaveina ja vastaavat masterin pyyntöihin. Protokolla tukee multi-master-konfiguraatioita, mikä tarkoittaa, että useat laitteet voidaan kytkeä samaan väylään, jolloin ne voivat kommunikoida keskenään.

Kaksi olennaista johtoa I2C-väylässä ovat:

  • Sarjadatalinja (SDA): Tämä kaksisuuntainen linja kuljettaa tiedot masterin ja slave-laitteiden välillä.
  • Sarjakellolinja (SCL): Tämä linja kuljettaa neliöaaltopulsseja, jotka synkronoivat tietojen siirron laitteiden välillä.

I2C-viestintää voidaan suorittaa eri nopeuksilla, joita kutsutaan yleisesti I2C-väylän nopeuksiksi. Yleisimmät väylänopeudet ovat vakionopeus (jopa 100 kbit/s), nopea tila (jopa 400 kbit/s), ja nopea tila (jopa 3,4 Mbit/s).

Kuinka I2C toimii

I2C-protokolla käyttää aloitus-pysäytysmekanismia masterin ja slave-laitteiden viestinnän luomiseen. Aloitusehto osoittaa tiedonsiirron alkamisen, kun taas pysäytysehto merkitsee loppua. Viestintäprosessi sisältää seuraavat vaiheet:

  1. Aloitusehto: Master-laite aloittaa viestinnän lähettämällä aloitusehdon. Se vetää SDA-linjan alas, kun SCL-linja pysyy ylhäällä.

  2. Osoitus: Aloitusehdon jälkeen master lähettää 7-bittisen osoitteen slave-laitteelle, jonka kanssa se haluaa kommunikoida, sekä luku- tai kirjoitusbitin. Luku-bitti osoittaa, että master haluaa lukea dataa slavelta, kun taas kirjoitusbitti osoittaa, että master haluaa kirjoittaa dataa slavelta. Jokaisella väylän slave-laitteella on oma ainutlaatuinen osoite.

  3. Kuittaus: Kun slave, jolla on määritelty osoite, vastaanottaa osoitebitit, se vastaa kuittausbitillä (ACK). ACK on slave-laitteen vetämä alasveto SDA-linjalle.

  4. Tiedonsiirto: Osoittamisprosessin jälkeen master ja slave voivat siirtää dataa keskenään. Data lähetetään 8-bittisinä segmentteinä, ja jokaisen segmentin jälkeen vastaanottava laite antaa ACK:n. Tämä prosessi jatkuu, kunnes master päättää lopettaa viestinnän.

  5. Pysäytysehto: Master-laite luo pysäytysehdon vetämällä SDA-linjan ylös, kun SCL-linja pysyy ylhäällä. Pysäytysehto ilmoittaa slaveille, että viestintä on päättynyt.

On tärkeää huomata, että tiedonsiirron aikana SDA-linja voi muuttua vain, kun SCL-linja on matalalla. Tämä varmistaa synkronoidun viestinnän masterin ja slavelaiteiden välillä.

I2C:n edut

  • Yksinkertaisuus: I2C:llä on suoraviivainen arkkitehtuuri ja se on helppo toteuttaa, mikä tekee siitä sopivan monenlaisiin sovelluksiin.
  • Joustavuus: Mahdollisuus kytkeä useita laitteita yhdelle väylälle sekä multi-master-tuki tekevät I2C:stä erittäin joustavan ja mukautuvan.
  • Tehokkuus: I2C hyödyntää jaettua väyläjärjestelmää, jossa laitteet voivat kommunikoida ilman erillisiä lähetin- ja vastaanotinlinjoja, mikä johtaa laitteistoresurssien tehokkaaseen käyttöön.
  • Matalanopeuksinen, matalatehoinen: I2C on suunniteltu matalanopeuksiselle viestinnälle, mikä tekee siitä ihanteellisen matalatehoisten laitteiden yhdistämiseen. Se kuluttaa vähemmän virtaa verrattuna muihin viestintäprotokolliin.

I2C:n rajoitukset

  • Rajoitettu nopeus: Vaikka I2C soveltuu matalanopeuksisiin sovelluksiin, se ei välttämättä ole paras valinta korkean nopeuden viestintään rajoitustensa vuoksi.
  • Etäisyysrajoite: I2C-väylän laitteiden välinen maksimietäisyys on usein rajoitettu, tyypillisesti muutamaan metriin. Tämän rajan yli saatetaan tarvita lisätoimenpiteitä, kuten väylän laajentimia tai toistimia.
  • Monimutkainen osoittaminen: 7-bittisellä osoitussuunnitelmalla laitteille saatavilla olevien ainutlaatuisten osoitteiden määrä on rajallinen. Tämä voi olla rajoitus, kun yhdistetään suuri määrä laitteita samaan väylään.

I2C:n sovellukset

I2C:tä käytetään laajasti eri elektronisissa järjestelmissä integroituja pi irilevyjä välisessä kommunikaatiossa. Joitakin yleisiä I2C:n sovelluksia ovat:

Antureiden liitäntä

I2C:tä käytetään yleisesti monien erilaisten antureiden, kuten lämpötila-antureiden, kosteudenanturi, ja kiihtyvyysantureiden viestintään. Nämä anturit voivat tarjota tietoja niihin liittyvistä parametreista, jolloin kytketyt laitteet voivat tehdä harkittuja päätöksiä vastaanotettujen tietojen perusteella.

Näyttömoduulit

Monet näyttömoduulit, kuten LCD- ja OLED-näytöt, voidaan liittää I2C:n avulla. Tämä yksinkertaistaa näyttöjen integrointia erilaisiin järjestelmiin, sillä I2C-protokolla mahdollistaa helpon viestinnän näyttömoduulin ja ohjauslaitteen välillä.

EEPROM-ohjelmointi

I2C:tä käytetään usein EEPROM (Electrically Erasable Programmable Read-Only Memory) -piirien ohjelmointiin ja lukemiseen. EEPROMit ovat haihtumatonta muistia, joita voidaan käyttää tietojen tallentamiseen, vaikka virta katkaistaan. I2C-protokolla helpottaa tehokasta tiedonsiirtoa ohjauslaitteen ja EEPROMin välillä.

Reaaliaikakellot

I2C:tä käytetään reaaliaikakelloissa tarjoamaan tarkkoja ajanotto-ominaisuuksia erilaisissa laitteissa. Nämä kellot voivat ylläpitää tarkkaa aika- ja päivämääräinformaatiota ja niitä käytetään yleisesti sovelluksissa, kuten tiedonkeruussa, aikataulutuksessa ja aikaan sidotuissa toiminnoissa.

I2C (Inter-Integrated Circuit) on laajalti käytetty sarjallinen viestintäprotokolla, joka mahdollistaa laitteiden kommunikoinnin keskenään kaksijohtimisella liitännällä. Sillä on suoraviivainen arkkitehtuuri ja se tukee multi-master-konfiguraatioita, mahdollistaen monien laitteiden liittämisen samaan väylään joustavasti. I2C:tä käytetään yleisesti sovelluksissa, kuten antureiden liittämisessä, näyttömoduuleissa, EEPROM-ohjelmoinnissa ja reaaliaikakelloissa. Vaikka I2C:llä on omat rajoituksensa, se on edelleen suosittu valinta matalanopeuksiseen viestintään erilaisissa elektronisissa järjestelmissä.

Get VPN Unlimited now!