Divu galveno sērijas sakaru opciju izvēle starp I2C un SPI var būt diezgan izaicinājums, un tam ir būtiska ietekme uz projekta dizainu, it īpaši, ja tiek izmantots nepareizs sakaru protokols. Gan SPI, gan I2C nodrošina savas priekšrocības un ierobežojumus kā sakaru protokolus, kas padara tos piemērotus konkrētām lietojumprogrammām.
SPI
SPI vai Serial to Peripheral Interface, ir ļoti zemas jaudas četru stiepes sērijas sakaru saskarne, kas paredzēta IC kontrolieriem un perifērijas ierīcēm, lai sazinātos viens ar otru. SPI autobuss ir pilnas dupleksais autobuss, kas ļauj komunikācijai plūsma uz galveno ierīci un no tās vienlaicīgi ar ātrumu līdz 10 Mb / s. SPI ātrgaitas darbība parasti ierobežo to, ka tā tiek izmantota, lai sazinātos starp detaļām atsevišķos PCB sakarā ar kapacitātes palielināšanos, ka garākā distances saziņa palielina signālu 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, kas izraisa vairākus variantus un SPI pielāgojumus, kas var radīt saderības problēmas. SPI ieviešana vienmēr jāpārbauda starp galvenajiem kontrolieri un palīgierīces, lai nodrošinātu, ka kombinācijā nebūs neparedzētu komunikācijas problēmu, kas ietekmēs produkta attīstību.
I2C
I2C ir oficiāls standarta sērijas sakaru protokols, kas prasa tikai divas signālu līnijas, kas paredzētas komunikācijai starp mikroshēmām uz PCB. Sākotnēji I2C bija paredzēts 100 kb / s komunikācijai, bet gadu gaitā tika izstrādāti ātrāki datu pārraides režīmi, lai sasniegtu ātrumu līdz 3,4 Mb / s. I2C protokols ir izveidots kā oficiāls standarts, kas nodrošina labu savietojamību starp I2C ieviešanām un labu atpakaļatbilstību.
Izvēle starp I2C un SPI
Izvēloties starp diviem galvenajiem sērijas sakaru protokoliem I2c un SPI, ir nepieciešama laba izpratne par I2C, SPI un jūsu lietojumprogrammas priekšrocībām un ierobežojumiem. Katram sakaru protokolam būs atšķirīgas priekšrocības, kas tendence atšķirt sevi, kā tas attiecas uz jūsu pieteikumu. Galvenās atšķirības starp I2C un SPI ir šādas:
- I2C pieprasa tikai divus vadus, savukārt SPI ir vajadzīgi trīs vai četri
- SPI atbalsta lielāka ātruma pilna duplekso komunikāciju, bet I2C ir lēnāks
- I2C piesaista vairāk enerģijas nekā SPI
- I2C atbalsta vairākas ierīces vienā un tajā pašā autobusā bez papildu izvēles signālu līnijām, izmantojot sakaru ierīces adresēšanu, savukārt SPI nepieciešama papildu signāla līnija, lai pārvaldītu vairākas ierīces vienā un tajā pašā autobusā
- I2C nodrošina to, ka sūtītie dati tiek saņemti ar slave ierīci, bet SPI nekontrolē, vai dati tiek pareizi saņemti
- I2C var bloķēt ar vienu ierīci, kas neizlaiž sakaru autobusu
- SPI nevar pārsūtīt no PCB, kamēr I2C var, kaut arī ar mazu datu pārraides ātrumu
- I2C ir lētāks īstenot nekā SPI sakaru protokols
- SPI atbalsta tikai vienu galveno ierīci uz autobusu, bet I2C atbalsta vairākas galvenās ierīces
- I2C ir mazāk jutīgs pret troksni nekā SPI
- SPI var pārvietoties tikai uz īsiem attālumiem un retāk - no PCB, kamēr I2C var pārsūtīt datus daudz lielākos attālumos, lai gan ar zemu datu pārraides ātrumu
- Oficiāla standarta trūkums ir izraisījis vairākus SPI protokola variantus, kuru variācijas lielā mērā tika novērstas ar I2C protokolu
Šīm atšķirībām starp SPI un I2C vajadzētu vienkāršāk izvēlēties piemērotāko komunikācijas iespēju jūsu pieteikumam. Gan SPI, gan I2C ir labas saziņas iespējas, taču katrai no tām ir dažas atšķirīgas priekšrocības un vēlamās lietojumprogrammas. Kopumā SPI ir labāks ātrgaitas un mazjaudas lietojumprogrammām, savukārt I2C ir labāk piemērots komunikācijai ar lielu skaitu perifērijas ierīču un dinamiskā galvenās ierīces lomas maiņa starp I2C autobusu perifērijas ierīcēm. Gan SPI, gan I2C ir droši, stabili sakaru protokoli iegultām lietojumprogrammām, kas ir labi piemērotas iegultajai pasaulei.