'n Serial Periferal Interface (SPI) word gebruik vir kortafstandkommunikasie, veral in ingebedde stelsels. 'n Meer algemene seriële kommunikasieprotokol is I2C, wat kommunikasie tussen elektroniese komponente vergemaklik, of die komponente op dieselfde PCB is of met 'n kabel verbind is.
Om tussen I2C en SPI, die twee belangrikste seriële kommunikasieprotokolle, te kies, vereis 'n goeie begrip van die voordele en beperkings van I2C, SPI en die toepassing. Elke kommunikasieprotokol het duidelike voordele wat geneig is om hulself te onderskei soos dit op jou aansoek van toepassing is.
- Beter vir hoëspoed- en laekragtoepassings.
- Nie 'n amptelike standaard nie - oor die algemeen minder versoenbaar.
- Beter vir kommunikasie met verskeie randapparatuur en die verandering van die primêre toestelrol.
- Standardisering verseker beter versoenbaarheid.
SPI is beter vir hoëspoed-, laekragtoepassings. I2C is beter geskik vir kommunikasie met 'n groot aantal randapparatuur. Beide SPI en I2C is robuuste, stabiele kommunikasieprotokolle vir ingebedde toepassings wat goed geskik is vir die ingebedde wêreld.
SPI Voor- en Nadele
-
Ondersteun hoërspoed voldupleks kommunikasie.
- Baie lae krag.
- Kort oordragafstande, kan nie tussen komponente op aparte PCB's kommunikeer nie.
- Verskeie variante en aanpassings kan versoenbaarheidsprobleme skep.
- Vereis bykomende seinlyne om veelvuldige toestelle op dieselfde bus te bestuur.
- Verifieer nie dat data korrek ontvang is nie.
- Meer vatbaar vir geraas.
Serial to Periferal Interface is 'n baie lae-krag vier-draad seriële kommunikasie koppelvlak. Dit is so ontwerp dat IC-beheerders en randapparatuur met mekaar kan kommunikeer. Die SPI-bus is 'n voldupleksbus, wat kommunikasie toelaat om gelyktydig na en van die primêre toestel te vloei teen koerse van tot 10 Mbps. Die hoëspoed-werking van SPI beperk dit oor die algemeen om gebruik te word om tussen komponente op aparte PCB's te kommunikeer as gevolg van die toename in kapasitansie wat langafstandkommunikasie by die seinlyne voeg. PCB-kapasitansie kan ook die lengte van SPI-kommunikasielyne beperk.
Terwyl SPI 'n gevestigde protokol is, is dit nie 'n amptelike standaard nie. SPI bied verskeie variante en aanpassings wat lei tot versoenbaarheidsprobleme. SPI-implementerings moet altyd tussen primêre beheerders en sekondêre randapparatuur nagegaan word om te verseker dat die kombinasie nie onverwagte kommunikasieprobleme sal hê wat die ontwikkeling van 'n produk beïnvloed nie.
I2C Voor- en Nadele
- Ondersteun veelvuldige toestelle op dieselfde bus sonder bykomende selektiese seinlyne deur inkommunikasie-toesteladressering.
- Die amptelike standaard verskaf versoenbaarheid tussen I2C-implementerings en terugwaartse versoenbaarheid.
- Verseker dat data wat gestuur word deur die sekondêre toestel ontvang word.
- Kan van die PCB af stuur, maar teen lae transmissiespoed.
- Goedkoper om te implementeer as die SPI-kommunikasieprotokol.
- Minder vatbaar vir geraas as SPI.
- Send data oor groter afstande oor.
- Laer oordragspoed en datatempo.
- Kan toegesluit word deur een toestel wat nie die kommunikasiebus loslaat nie.
- Onttrek meer krag as SPI.
I2C is 'n amptelike standaard seriële kommunikasieprotokol wat slegs twee seinlyne benodig wat ontwerp is vir kommunikasie tussen skyfies op 'n PCB. I2C is oorspronklik ontwerp vir 100 kbps kommunikasie. Tog is vinniger data-oordragmodusse oor die jare ontwikkel om snelhede van tot 3,4 Mbps te bereik. Die I2C-protokol is gevestig as 'n amptelike standaard, wat goeie versoenbaarheid tussen I2C-implementerings en goeie terugwaartse versoenbaarheid bied.
Benewens die bogenoemde lys van voor- en nadele, benodig I2C slegs twee drade. SPI vereis drie of vier. Verder ondersteun SPI net een primêre toestel op die bus terwyl I2C verskeie primêre toestelle ondersteun.
Kies tussen I2C en SPI
Algehele, SPI is beter vir hoëspoed- en laekragtoepassings, terwyl I2C beter geskik is vir kommunikasie met 'n groot aantal randapparatuur, sowel as in situasies wat dinamiese verandering van die primêre toestelrol onder randapparatuur op die I2C behels bus.