Jūsu projekta izvēle starp I2C un SPI

Serial Peripheral Interface (SPI) tiek izmantots neliela attāluma saziņai, īpaši iegultās sistēmās. Biežāks seriālās komunikācijas protokols ir I2C, kas atvieglo saziņu starp elektroniskajiem komponentiem neatkarīgi no tā, vai komponenti atrodas uz vienas PCB vai savienoti ar kabeli.

Izvēloties starp I2C un SPI, diviem galvenajiem seriālo sakaru protokoliem, ir nepieciešama laba izpratne par I2C, SPI un lietojumprogrammas priekšrocībām un ierobežojumiem. Katram sakaru protokolam ir atšķirīgas priekšrocības, kas mēdz atšķirties, jo tās attiecas uz jūsu lietojumprogrammu.

i2c pret SPI
Lifewire

SPI

  • Labāk piemērota liela ātruma un mazjaudas lietojumprogrammām.

  • Nav oficiāls standarts — parasti ir mazāk saderīgs.

I2C

  • Labāks saziņai ar vairākām perifērijas ierīcēm un primārās ierīces lomas maiņai.

  • Standartizācija nodrošina labāku saderību.

SPI ir labāks liela ātruma un mazjaudas lietojumprogrammām. I2C ir labāk piemērots saziņai ar lielu skaitu perifērijas ierīču. Gan SPI, gan I2C ir izturīgi, stabili saziņas protokoli iegultajām lietojumprogrammām, kas ir labi piemēroti iegultai pasaulei.

Shēmas plate
TEK IMAGE / Getty Images

SPI plusi un mīnusi

Priekšrocības

  • Atbalsta lielāka ātruma pilnu duplekso komunikāciju.

  • Ļoti maza jauda.

Trūkumi

  • Īsi pārsūtīšanas attālumi, nevar sazināties starp komponentiem uz atsevišķām PCB.

  • Vairāki varianti un pielāgojumi var radīt saderības problēmas.

  • Nepieciešamas papildu signāla līnijas, lai pārvaldītu vairākas ierīces vienā kopnē.

  • Nepārbauda, ​​vai dati ir saņemti pareizi.

  • Vairāk uzņēmīgi pret troksni.

Seriālais–perifēriskais interfeiss ir ļoti mazjaudas četru vadu interfeiss seriālās komunikācijas interfeiss. Tas ir izstrādāts tā, lai IC kontrolleri un perifērijas ierīces varētu sazināties savā starpā. SPI kopne ir pilna dupleksa kopne, kas nodrošina sakaru plūsmu uz primāro ierīci un no tās vienlaikus ar ātrumu līdz 10 Mbps. SPI ātrgaitas darbība parasti ierobežo to izmantošanu, lai sazinātos starp ieslēgtiem komponentiem atsevišķas PCB, jo palielinās kapacitāte, ko signālam pievieno liela attāluma sakari līnijas. PCB kapacitāte var arī ierobežot SPI sakaru līniju garumu.

Lai gan SPI ir izveidots protokols, tas nav oficiāls standarts. SPI piedāvā vairākus variantus un pielāgojumus, kas rada saderības problēmas. SPI ieviešana vienmēr ir jāpārbauda starp primārajiem kontrolieriem un sekundārajām perifērijas ierīcēm nodrošināt, lai kombinācijai neradītu negaidītas komunikācijas problēmas, kas ietekmēs a produkts.

I2C plusi un mīnusi

Priekšrocības

  • Atbalsta vairākas ierīces vienā kopnē bez papildu atlasītajām signāla līnijām, izmantojot sakaru ierīces adresēšanu.

  • Oficiālais standarts nodrošina saderību starp I2C implementācijām un atpakaļejošu saderību.

  • Nodrošina, lai sekundārā ierīce saņemtu nosūtītos datus.

  • Var pārraidīt no PCB, bet ar zemu pārraides ātrumu.

  • Lētāk ieviest nekā SPI sakaru protokols.

  • Mazāk jutīgs pret troksni nekā SPI.

  • Pārsūtiet datus lielākā attālumā.

Trūkumi

  • Lēnāks pārsūtīšanas ātrums un datu pārraides ātrums.

  • Var bloķēt viena ierīce, kurai neizdodas atbrīvot sakaru kopni.

  • Patērē vairāk enerģijas nekā SPI.

I2C ir oficiāls standarta seriālo sakaru protokols, kam nepieciešamas tikai divas signāla līnijas, kas paredzētas saziņai starp mikroshēmām uz PCB. I2C sākotnēji bija paredzēts 100 kbps saziņai. Tomēr gadu gaitā ir izstrādāti ātrāki datu pārraides režīmi, lai sasniegtu ātrumu līdz 3,4 Mbps. I2C protokols ir izveidots kā oficiāls standarts, kas nodrošina labu saderību starp I2C implementācijām un labu atpakaļejošu saderību.

Papildus iepriekš minētajam plusu un mīnusu sarakstam I2C nepieciešami tikai divi vadi. SPI ir nepieciešami trīs vai četri. Turklāt SPI atbalsta tikai vienu primāro ierīci kopnē, savukārt I2C atbalsta vairākas primārās ierīces.

Izvēle starp I2C un SPI

Kopumā SPI ir labāks liela ātruma un mazjaudas lietojumprogrammām, savukārt I2C ir labāk piemērots saziņai ar lielu perifērijas ierīču skaits, kā arī situācijās, kas saistītas ar dinamisku primārās ierīces lomas maiņu starp perifērijas ierīcēm I2C autobuss.