Izbira med I2C in SPI za vaš projekt

Za komunikacijo na kratke razdalje, zlasti v vgrajenih sistemih, se uporablja serijski periferni vmesnik (SPI). Bolj pogost serijski komunikacijski protokol je I2C, ki olajša komunikacijo med elektronskimi komponentami, ne glede na to, ali so komponente na isti PCB ali povezane s kablom.

Izbira med I2C in SPI, dva glavna serijska komunikacijska protokola, zahtevata dobro razumevanje prednosti in omejitev I2C, SPI in aplikacije. Vsak komunikacijski protokol ima posebne prednosti, ki se običajno razlikujejo, ko se uporabljajo za vašo aplikacijo.

i2c proti SPI
Lifewire

SPI

  • Bolje za aplikacije z visoko hitrostjo in nizko porabo.

  • Ni uradni standard - na splošno manj združljiv.

I2C

  • Bolje za komunikacijo z več zunanjimi napravami in spreminjanje vloge primarne naprave.

  • Standardizacija zagotavlja boljšo združljivost.

SPI je boljši za aplikacije z visoko hitrostjo in nizko porabo. I2C je bolj primeren za komunikacijo z velikim številom zunanjih naprav. Tako SPI kot I2C sta robustna, stabilna komunikacijska protokola za vgrajene aplikacije, ki sta zelo primerna za svet vgrajenih tehnologij.

Vezje
TEK IMAGE / Getty Images

Prednosti in slabosti SPI

Prednosti

  • Podpira višjo hitrost polno-dupleksne komunikacije.

  • Zelo nizka moč.

Slabosti

  • Kratke razdalje prenosa, ne morejo komunicirati med komponentami na ločenih PCB-jih.

  • Več različic in prilagoditev lahko povzroči težave z združljivostjo.

  • Zahteva dodatne signalne linije za upravljanje več naprav na istem vodilu.

  • Ne preverja, ali so podatki pravilno prejeti.

  • Bolj dovzetni za hrup.

Serijski-periferni vmesnik je štirižični vmesnik z zelo nizko močjo serijski komunikacijski vmesnik. Zasnovan je tako, da lahko IC krmilniki in zunanje naprave komunicirajo med seboj. Vodilo SPI je polno-dupleksno vodilo, ki omogoča hkratni pretok komunikacije do in iz primarne naprave s hitrostjo do 10 Mbps. Hitro delovanje SPI na splošno omejuje njegovo uporabo za komunikacijo med komponentami ločene PCB-je zaradi povečanja kapacitivnosti, ki jo komunikacija na daljše razdalje doda signalu vrstice. Kapacitivnost PCB lahko omeji tudi dolžino komunikacijskih vodov SPI.

Čeprav je SPI uveljavljen protokol, ni uradni standard. SPI ponuja več različic in prilagoditev, ki vodijo do težav z združljivostjo. Implementacije SPI je treba vedno preveriti med primarnimi krmilniki in sekundarnimi zunanjimi napravami zagotoviti, da kombinacija ne bo imela nepričakovanih komunikacijskih težav, ki bi vplivale na razvoj a izdelek.

Prednosti in slabosti I2C

Prednosti

  • Podpira več naprav na istem vodilu brez dodatnih izbranih signalnih linij prek naslavljanja komunikacijskih naprav.

  • Uradni standard zagotavlja združljivost med implementacijami I2C in združljivost za nazaj.

  • Zagotavlja, da sekundarna naprava prejme poslane podatke.

  • Lahko oddaja iz PCB-ja, vendar pri nizkih hitrostih prenosa.

  • Cenejši za implementacijo kot komunikacijski protokol SPI.

  • Manj občutljiv na hrup kot SPI.

  • Prenos podatkov na večje razdalje.

Slabosti

  • Nižje hitrosti prenosa in prenosa podatkov.

  • Lahko ga zaklene ena naprava, ki ne sprosti komunikacijskega vodila.

  • Črpa več moči kot SPI.

I2C je uradni standardni serijski komunikacijski protokol, ki zahteva samo dve signalni liniji, ki sta bili zasnovani za komunikacijo med čipi na PCB. I2C je bil prvotno zasnovan za komunikacijo 100 kbps. Kljub temu so bili z leti razviti hitrejši načini prenosa podatkov, ki so dosegli hitrosti do 3,4 Mbps. Protokol I2C je bil uveljavljen kot uradni standard, ki zagotavlja dobro združljivost med izvedbami I2C in dobro združljivost nazaj.

Poleg zgornjega seznama prednosti in slabosti I2C zahteva le dve žici. SPI zahteva tri ali štiri. Poleg tega SPI podpira samo eno primarno napravo na vodilu, medtem ko I2C podpira več primarnih naprav.

Izbira med I2C in SPI

Na splošno je SPI boljši za aplikacije z visoko hitrostjo in nizko porabo, medtem ko je I2C bolj primeren za komunikacijo z velikimi število zunanjih naprav, kot tudi v situacijah, ki vključujejo dinamično spreminjanje vloge primarne naprave med zunanjimi napravami na I2C avtobus.