I2C: n ja SPI: n valitseminen kahdesta pääviestinnän vaihtoehdosta voi olla varsin haasteellinen ja sillä on merkittävä vaikutus hankkeen suunnitteluun varsinkin jos käytetään väärää viestintäprotokollaa. Sekä SPI että I2C tuovat omat edut ja rajoitukset kommunikaatioprotokolliksi, jotka tekevät niistä jokaisen sopivan tiettyihin sovelluksiin.
SPI
SPI tai Serial to Peripheral Interface, on erittäin pieni virtalähde, neljä johdinta sarjaporttiliitäntä, joka on suunniteltu IC- ohjaimiin ja oheislaitteisiin kommunikoida keskenään. SPI-väylä on täysi-duplex-väylä, joka mahdollistaa tiedonsiirron mobiililaitteelle samanaikaisesti jopa 10 Mb / s nopeudella. SPI: n nopea toiminta yleensä rajoittaa sitä käyttämästä kommunikointia erillisten PCB: ien komponenttien välillä johtuen kapasitanssin kasvusta, joka pitemmän etäisyyden viestintä lisää signaalilinjoja. PCB-kapasitanssi voi myös rajoittaa SPI-tietoliikennelinjojen pituutta.
Vaikka SPI on vakiintunut protokolla, se ei ole virallinen standardi, joka johtaa useisiin muunnelmiin ja SPI-muokkauksiin, jotka voivat johtaa yhteensopivuusongelmiin. SPI-toteutukset on aina tarkistettava master-ohjainten ja orjalaitteiden välillä, jotta yhdistelmällä ei olisi odottamattomia viestintäongelmia, jotka vaikuttavat tuotteen kehitykseen.
I2C
I2C on virallinen standardi sarjaliikenneprotokolla, joka vaatii vain kaksi signaalilinjaa, jotka on suunniteltu piirilevyjen väliseen kommunikointiin PCB: ssä. I2C on alun perin suunniteltu 100kbps: n tiedonsiirtoon, mutta vuosien aikana on kehitetty nopeampia tiedonsiirtotiloja nopeuden ollessa jopa 3,4 Mbps. I2C-protokolla on luotu viralliseksi standardiksi, joka takaa hyvän yhteensopivuuden I2C-toteutusten ja hyvän taaksepäin yhteensopivuuden välillä.
Valitse I2C ja SPI välillä
Valitsemalla I2c: n ja SPI: n välillä kaksi päätietoliikenneprotokollaa, sinun on ymmärrettävä hyvin I2C: n, SPI: n ja sovelluksen edut ja rajoitukset. Jokaisella viestintäprotokollalla on selviä etuja, jotka pyrkivät erottamaan itsensä sovelluksestasi. I2C: n ja SPI: n väliset erot ovat:
- I2C vaatii vain kaksi johdinta, kun taas SPI vaatii kolme tai neljä
- SPI tukee nopeampaa koko dupleksia, kun taas I2C on hitaampi
- I2C hyödyntää enemmän virtaa kuin SPI
- I2C tukee useita laitteita samalla väylällä ilman ylimääräisiä valittuja signaalilinjoja kommunikointilaitteen osoitteissa, kun taas SPI tarvitsee lisää signaalilinjoja useiden laitteiden hallitsemiseksi samalla väylällä
- I2C varmistaa, että orjalaite vastaanottaa lähetettyjä tietoja, kun taas SPI ei tarkista, että tiedot vastaanotetaan oikein
- I2C voidaan lukita yhdellä laitteella, joka ei pysty vapauttamaan viestintäväylää
- SPI ei voi lähettää PCB: tä samalla kun I2C voi, vaikkakin matalilla tiedonsiirtonopeuksilla
- I2C on halvempaa toteuttaa kuin SPI-viestintäprotokolla
- SPI tukee vain yhtä master-laitetta bussissa, kun taas I2C tukee useita päälaitteita
- I2C on vähemmän herkkä kuin SPI
- SPI voi kulkea vain lyhyen matkan ja harvoin pois PCB: ltä, kun taas I2C voi lähettää tietoja paljon suuremmilla etäisyyksillä, vaikkakin alhaisilla datanopeuksilla
- Virallisen standardin puute on johtanut SPI-protokollan useisiin muunnelmiin, jotka ovat suurelta osin vältettyjä I2C-protokollaa
Näiden SPI: n ja I2C: n välisten erojen pitäisi helpottaa valitsemalla paras kommunikointivaihtoehto sovelluksestasi. Sekä SPI että I2C ovat hyviä viestintävaihtoehtoja, mutta niissä on vain muutamia etuja ja edullisia sovelluksia. Kaiken kaikkiaan SPI on parasta nopeille ja pienitehoisille sovelluksille, kun taas I2C sopii erinomaisesti viestintään suurella määrällä oheislaitteita ja dynaamisen laitteen roolin dynaamisella muutoksella I2C-väylän oheislaitteiden kesken. Sekä SPI että I2C ovat vankkoja, vakaita viestintäprotokollia upotetuille sovelluksille, jotka soveltuvat hyvin upotettuun maailmaan.