Velge mellom I2C og SPI for prosjektet ditt

Innholdsfortegnelse:

Velge mellom I2C og SPI for prosjektet ditt
Velge mellom I2C og SPI for prosjektet ditt
Anonim

A Serial Peripheral Interface (SPI) brukes for kortdistansekommunikasjon, spesielt i innebygde systemer. En mer vanlig seriell kommunikasjonsprotokoll er I2C, som letter kommunikasjonen mellom elektroniske komponenter, enten komponentene er på samme PCB eller koblet med en kabel.

Velge mellom I2C og SPI, de to viktigste serielle kommunikasjonsprotokollene, krever en solid forståelse av fordelene og begrensningene til I2C, SPI og applikasjonen. Hver kommunikasjonsprotokoll har distinkte fordeler som har en tendens til å utmerke seg når de gjelder applikasjonen din.

Image
Image
  • Bedre for applikasjoner med høy hastighet og lav effekt.
  • Ikke en offisiell standard - generelt mindre kompatibel.
  • Bedre for kommunikasjon med flere eksterne enheter og endring av hovedenhetsrollen.
  • Standardisering sikrer bedre kompatibilitet.

SPI er bedre for applikasjoner med høy hastighet og lav effekt. I2C er bedre egnet for kommunikasjon med et stort antall eksterne enheter. Både SPI og I2C er robuste, stabile kommunikasjonsprotokoller for innebygde applikasjoner som er godt egnet for den innebygde verden.

Image
Image

SPI fordeler og ulemper

  • Støtter høyere hastighet full-duplekskommunikasjon.

  • Svært lav effekt.
  • Korte overføringsavstander, kan ikke kommunisere mellom komponenter på separate PCB-er.
  • Flere varianter og tilpasninger kan skape kompatibilitetsproblemer.
  • Krever ekstra signallinjer for å administrere flere enheter på samme buss.
  • Bekrefter ikke at data er mottatt riktig.
  • Mer mottakelig for støy.

Serielt til perifert grensesnitt er et grensesnitt for fireleders seriell kommunikasjon med svært lav effekt. Den er designet slik at IC-kontrollere og periferiutstyr kan kommunisere med hverandre. SPI-bussen er en full-dupleksbuss, som lar kommunikasjon flyte til og fra primærenheten samtidig med hastigheter på opptil 10 Mbps. Høyhastighetsdriften til SPI begrenser den generelt fra å bli brukt til å kommunisere mellom komponenter på separate PCB-er på grunn av økningen i kapasitans som langdistansekommunikasjon legger til signallinjene. PCB-kapasitans kan også begrense lengden på SPI-kommunikasjonslinjer.

Mens SPI er en etablert protokoll, er det ikke en offisiell standard. SPI tilbyr flere varianter og tilpasninger som fører til kompatibilitetsproblemer. SPI-implementeringer bør alltid sjekkes mellom primærkontrollere og sekundære perifere enheter for å sikre at kombinasjonen ikke vil ha uventede kommunikasjonsproblemer som påvirker utviklingen av et produkt.

I2C Fordeler og ulemper

  • Støtter flere enheter på samme buss uten ekstra utvalgte signallinjer gjennom kommunikasjonsenhetsadressering.
  • Den offisielle standarden gir kompatibilitet mellom I2C-implementeringer og bakoverkompatibilitet.
  • Sikrer at data som sendes mottas av den sekundære enheten.
  • Kan sende fra PCB, men ved lave overføringshastigheter.
  • Billigere å implementere enn SPI-kommunikasjonsprotokollen.
  • Mindre mottakelig for støy enn SPI.
  • Send data over større avstander.
  • Saktere overføringshastigheter og datahastigheter.

  • Kan låses av én enhet som ikke klarer å frigjøre kommunikasjonsbussen.
  • Trekker mer strøm enn SPI.

I2C er en offisiell standard seriell kommunikasjonsprotokoll som bare krever to signallinjer som er designet for kommunikasjon mellom brikker på et PCB. I2C ble opprinnelig designet for 100 kbps kommunikasjon. Likevel har raskere dataoverføringsmoduser blitt utviklet gjennom årene for å oppnå hastigheter på opptil 3,4 Mbps. I2C-protokollen er etablert som en offisiell standard, og gir god kompatibilitet mellom I2C-implementeringer og god bakoverkompatibilitet.

I tillegg til listen over fordeler og ulemper, krever I2C bare to ledninger. SPI krever tre eller fire. Videre støtter SPI bare én primær enhet på bussen mens I2C støtter flere primære enheter.

Velge mellom I2C og SPI

Samlet sett er SPI bedre for høyhastighets- og laveffektapplikasjoner, mens I2C er bedre egnet for kommunikasjon med et stort antall periferiutstyr, så vel som i situasjoner som involverer dynamisk endring av den primære enhetsrollen blant periferiutstyr på I2C buss.

Anbefalt: