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:
Aloitusehto: Master-laite aloittaa viestinnän lähettämällä aloitusehdon. Se vetää SDA-linjan alas, kun SCL-linja pysyy ylhäällä.
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.
Kuittaus: Kun slave, jolla on määritelty osoite, vastaanottaa osoitebitit, se vastaa kuittausbitillä (ACK). ACK on slave-laitteen vetämä alasveto SDA-linjalle.
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.
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ä.