Välja mellan I2C och SPI för ditt projekt

Innehållsförteckning:

Välja mellan I2C och SPI för ditt projekt
Välja mellan I2C och SPI för ditt projekt
Anonim

A Serial Peripheral Interface (SPI) används för kortdistanskommunikation, särskilt i inbyggda system. Ett vanligare seriellt kommunikationsprotokoll är I2C, som underlättar kommunikationen mellan elektroniska komponenter, oavsett om komponenterna är på samma PCB eller anslutna med en kabel.

Välj mellan I2C och SPI, de två huvudsakliga seriella kommunikationsprotokollen, kräver en gedigen förståelse för fördelarna och begränsningarna med I2C, SPI och applikationen. Varje kommunikationsprotokoll har distinkta fördelar som tenderar att utmärka sig när de gäller för din applikation.

Image
Image
  • Bättre för tillämpningar med hög hastighet och låg effekt.
  • Inte en officiell standard - i allmänhet mindre kompatibel.
  • Bättre för kommunikation med flera kringutrustning och byte av den primära enhetsrollen.
  • Standardisering säkerställer bättre kompatibilitet.

SPI är bättre för applikationer med hög hastighet och låg effekt. I2C lämpar sig bättre för kommunikation med ett stort antal kringutrustning. Både SPI och I2C är robusta, stabila kommunikationsprotokoll för inbäddade applikationer som är väl lämpade för den inbäddade världen.

Image
Image

SPI-för- och nackdelar

  • Stöder högre hastighet full-duplex-kommunikation.

  • Mycket låg effekt.
  • Korta överföringsavstånd, kan inte kommunicera mellan komponenter på separata kretskort.
  • Flera varianter och anpassningar kan skapa kompatibilitetsproblem.
  • Kräver ytterligare signallinjer för att hantera flera enheter på samma buss.
  • Verifierar inte att data tas emot korrekt.
  • Mer mottaglig för buller.

Serial to Peripheral Interface är ett seriellt kommunikationsgränssnitt med mycket låg effekt med fyra trådar. Den är utformad så att IC-kontroller och kringutrustning kan kommunicera med varandra. SPI-bussen är en full-duplex buss, som tillåter kommunikation att flöda till och från den primära enheten samtidigt med hastigheter på upp till 10 Mbps. Höghastighetsdriften hos SPI begränsar den generellt från att användas för att kommunicera mellan komponenter på separata kretskort på grund av den ökning i kapacitans som långdistanskommunikation lägger till signallinjerna. PCB-kapacitans kan också begränsa längden på SPI-kommunikationslinjer.

Medan SPI är ett etablerat protokoll, är det inte en officiell standard. SPI erbjuder flera varianter och anpassningar som leder till kompatibilitetsproblem. SPI-implementeringar bör alltid kontrolleras mellan primära kontroller och sekundär kringutrustning för att säkerställa att kombinationen inte kommer att få oväntade kommunikationsproblem som påverkar utvecklingen av en produkt.

I2C För- och nackdelar

  • Stöder flera enheter på samma buss utan ytterligare valda signallinjer via enhetsadressering inom kommunikation.
  • Den officiella standarden ger kompatibilitet mellan I2C-implementeringar och bakåtkompatibilitet.
  • Säkerställer att data som skickas tas emot av den sekundära enheten.
  • Kan sända från PCB, men vid låga överföringshastigheter.
  • Billigare att implementera än SPI-kommunikationsprotokollet.
  • Mindre mottaglig för brus än SPI.
  • Överför data över längre avstånd.
  • Långsammare överföringshastigheter och datahastigheter.
  • Kan låsas av en enhet som inte släpper kommunikationsbussen.
  • Drager mer kraft än SPI.

I2C är ett officiellt standardprotokoll för seriellt kommunikation som bara kräver två signallinjer som är designade för kommunikation mellan chips på ett kretskort. I2C designades ursprungligen för 100 kbps kommunikation. Ändå har snabbare dataöverföringslägen utvecklats under åren för att uppnå hastigheter på upp till 3,4 Mbps. I2C-protokollet har etablerats som en officiell standard, vilket ger god kompatibilitet bland I2C-implementeringar och god bakåtkompatibilitet.

Utöver listan ovan med för- och nackdelar kräver I2C bara två kablar. SPI kräver tre eller fyra. Dessutom stöder SPI bara en primär enhet på bussen medan I2C stöder flera primära enheter.

Välja mellan I2C och SPI

SPI är tot alt sett bättre för applikationer med hög hastighet och låg effekt, medan I2C är bättre lämpad för kommunikation med ett stort antal kringutrustning, såväl som i situationer som involverar dynamiska förändringar av den primära enhetsrollen bland kringutrustning på I2C buss.

Rekommenderad: