Skip to main content

Izbira med I2C in SPI za vaš projekt

Anonim

Izbira med I2C in SPI, dve glavni možnosti serijske komunikacije, je lahko precej izziv in imajo pomemben vpliv na oblikovanje projekta, še posebej, če se uporabi napačen komunikacijski protokol. Tako SPI kot I2C prinašajo svoje prednosti in omejitve kot komunikacijski protokoli, zaradi katerih so vsaki primerni za določene aplikacije.

SPI

SPI ali Serial to Peripheral Interface je nizkoenergetski 4-žilni serijski komunikacijski vmesnik, namenjen za krmilnike IC in zunanje naprave za komuniciranje med seboj. SPI vodilo je polno-dupleksna vodila, ki omogočajo komunikacijo, ki teče do glavne naprave istočasno s hitrostjo do 10 Mb / s. Hitro delovanje SPI ga običajno omejuje, da se ne uporablja za komuniciranje med komponentami na ločenih PCB-jih zaradi povečanja kapacitivnosti, da komunikacija na daljših razdaljah prispeva k signalnim linijam. Kapaciteta PCB lahko tudi omeji dolžino komunikacijskih linij SPI.

Medtem ko je SPI ustaljen protokol, to ni uradni standard, ki vodi do več različic in prilagoditev SPI, kar lahko privede do težav z združljivostjo. Izvedbe SPI je treba vedno preverjati med glavnimi krmilniki in perifernimi napravami, da se zagotovi, da kombinacija ne bo imela nepričakovanih težav s komunikacijo, ki bodo vplivale na razvoj izdelka.

I2C

I2C je uradni standardni serijski komunikacijski protokol, ki zahteva samo dve signalni liniji, ki so bili zasnovani za komunikacijo med čipi na PCB. I2C je bil prvotno zasnovan za komunikacijo s hitrostjo 100 Kb / s, vendar so bili v preteklih letih razviti hitrejši načini prenosa podatkov, da bi dosegli hitrost do 3,4 Mb / s. Protokol I2C je bil ustanovljen kot uradni standard, ki zagotavlja dobro združljivost med I2C implementacijami in dobro nazaj združljivost.

Izbira med I2C in SPI

Izbira med I2c in SPI, dva glavna serijska komunikacijska protokola, zahteva dobro razumevanje prednosti in omejitev I2C, SPI in vaše aplikacije. Vsak komunikacijski protokol bo imel posebne prednosti, ki se bodo nagibali k temu, da se razlikujejo, kot velja za vašo aplikacijo. Ključne razlike med I2C in SPI so:

  • I2C zahteva le dve žici, SPI pa zahteva tri ali štiri
  • SPI podpira komunikacijo hitrega dupleksa z večjo hitrostjo, medtem ko je I2C počasnejša
  • I2C porabi več moči kot SPI
  • I2C podpira več naprav na istem vodilu brez dodatnih izbirnih signalov prek naslova med komunikacijskimi napravami, medtem ko SPI zahteva dodatne signalne linije za upravljanje več naprav na istem vodilu
  • I2C zagotavlja, da pošlje podatke, ki jih pošilja pomožna naprava, medtem ko SPI ne preveri, ali so podatki pravilno prejeti
  • I2C lahko zaklenete z eno napravo, ki ne sprosti komunikacijske vodila
  • SPI ne more prenašati PCB, medtem ko lahko I2C, čeprav pri nizkih hitrostih prenosa podatkov
  • I2C je cenejši za izvajanje kot komunikacijski protokol SPI
  • SPI podpira samo eno glavno napravo na vodilu, medtem ko I2C podpira več glavnih naprav
  • I2C je manj občutljiv na hrup kot SPI
  • SPI lahko potuje le kratke razdalje in redko izklopi PCB, medtem ko I2C lahko prenaša podatke na veliko večje razdalje, čeprav pri nizkih stopnjah prenosa podatkov
  • Pomanjkanje formalnega standarda je povzročilo več različic protokola SPI, različic, ki so se v veliki meri izognili s protokolom I2C

    Te razlike med SPI in I2C bi morale olajšati izbiro najboljše komunikacijske možnosti za vašo aplikacijo. Oba SPI in I2C sta dobri komunikacijski možnosti, vendar ima vsaka svojo različno prednost in prednostne aplikacije. Na splošno je SPI boljši pri aplikacijah visoke hitrosti in nizke porabe, medtem ko je I2C boljši za komunikacijo z velikim številom perifernih naprav in dinamično spremembo vloge glavne naprave med perifernimi napravami na I2C vodilu. Oba SPI in I2C sta robustni in stabilni komunikacijski protokoli za vgrajene programe, ki so primerni za vgrajeni svet.