I2C eta SPI artean aukeratzea, bi serieko komunikazio-aukera nagusiak erronka handia izan daiteke eta proiektu baten diseinuan eragin handia izan dezake, batez ere komunikazio-protokolo egokia erabiltzen bada. Bi SPI eta I2C-k abantaila eta mugak dituzte, aplikazio zehatzetarako bereziki egokiak diren komunikazio-protokolo gisa.
SPI
SPI edo Serial to Peripheral Interface, oso potentzia txikia da, lau alanbre serieko komunikazio interfazea kontroladore IC eta periferikoek elkarren artean komunikatzeko diseinatua. SPI autobusak autobus full-duplex bat da, gailu nagusiaren eta gailutik 10Mbps arteko tasak aldi berean funtziona dezan. SPIren abiadura handiko funtzionamendua, oro har, ordenagailu bakarreko osagai batzuen artean komunikatzeko erabilitakoa mugatzen du, luzapen urruneko komunikazioa seinalearen lerroetara gehitzen duen gaitasunaren gehikuntzagatik. PCBren gaitasunek SPIren komunikazio lerroen luzera mugatu dezakete.
SPIa ezarritako protokolo bat bada, ez da estandar ofizial bat, aldaera batzuk eta SPIren pertsonalizazioak sor ditzake, bateragarritasun arazoak sor ditzakeelako. SPIren ezarpenak kontrolatzaile nagusi eta esklaboen periferikoen artean beti egiaztatu behar dira, konbinazioak ez baitu produktuaren garapena eragingo duen ustekabeko komunikazio-arazorik izango.
I2C
I2C serieko komunikazio protokolo estandarraren estandar ofiziala da, PCB batean PC txip baten arteko komunikazioetarako diseinatutako seinale bi bakarrik eskatzen dituena. I2C jatorriz 100 kbps komunikazioetarako diseinatu zen, baina datuen transmisio-modu azkarrak urteetan zehar garatu dira, 3.4 Mbps-eko abiadura lortzeko. I2C protokoloa estandar ofizial gisa ezarri da, eta I2Cren inplementazioen eta bateragarritasun onaren arteko bateragarritasun ona eskaintzen du.
I2C eta SPI artean hautatzea
I2c eta SPI artean hautatuta, bi serieko komunikazio-protokolo nagusiak, I2C, SPI eta zure aplikazioaren abantailak eta mugak ulertu behar dituzte. Komunikazio protokolo bakoitzak bere aplikazioari aplikatzen zaion bereizteko joera izango du. I2C eta SPIren arteko bereizketa nagusiak hauek dira:
- I2C-k bi hari bakarrik behar ditu, SPI hiru edo lau behar ditu
- SPI onartzen full-duplex komunikazio abiadura handiagoa I2C motelagoa bitartean
- I2Ck SPI baino botere handiagoa hartzen du
- I2C-k gailu anitz onartzen ditu autobus bereko hautatutako seinalearen lerroen artean, komunikazio bidezko gailuaren bidez, SPIrek beste linea bateko seinale-lerro gehiago eskatzen dituelarik autobus berean
- I2C-k esklabutza-gailuak bidalitako datuak jasotzen ditu, SPIk ez baitu egiaztatzen datuak behar bezala jasotzen diren bitartean
- I2C blokeatuta egon daiteke komunikazio-autobusa askatzen ez duen gailu batek
- SPIk ezin du PCBa transmititu I2C-k, hala ere, datuak transmititzeko abiadura txikiak izan arren
- I2C SPI komunikazioen protokolo baino baino merkeagoa da
- SPIk bakarrik onartzen du gailu nagusia autobusean I2C-k gailu nagusi anitz onartzen dituen bitartean
- I2Ck SPI baino zarata gutxiago jasan dezake
- SPIk urruneko distantziak eta gutxienez PCB-ak bakarrik bidaiatzen ditu, distantzia askoz handiagoak diren datuak bidaltzeko aukera ematen duen bitartean, nahiz eta datuen datu baxuetan
- Estandar formal baten faltak SPI protokoloaren hainbat aldakuntza ekarri ditu, I2C protokoloarekin neurri handi batean saihestu diren aldakuntzak.
SPI eta I2Cren arteko bereizketa horiek errazago errazago egin behar dute zure aplikazioaren komunikazio aukera onena. Bi SPI eta I2C komunikazio aukera onak dira, baina bakoitza abantaila desberdin gutxi eta aplikazio hobeak ditu. Oro har, SPI hobea da abiadura handiko eta beheko potentzia aplikazioetarako, I2C hobe da I2C autobusean periferikoen artean komunikatzeko egokia den periferiko kopuru handia eta I2C autobusaren periferiko nagusia gailuaren rol dinamikoa aldatzeko. SPI eta I2C bezalakoak, txertatutako munduarentzako ongi egokitzen diren aplikazio txertatuak dituzten komunikazio protokolo sendo eta egonkorrak dira.