Výber medzi I2C a SPI, dve hlavné možnosti sériovej komunikácie, môže byť značnou výzvou a má významný vplyv na návrh projektu, najmä ak sa používa nesprávny komunikačný protokol. SPI i I2C prinášajú vlastné výhody a obmedzenia ako komunikačné protokoly, ktoré ich robia vhodnými pre konkrétne aplikácie.
SPI
SPI alebo Serial to Peripheral Interface je veľmi štyri drôtové sériové komunikačné rozhranie, ktoré je navrhnuté pre IC komunikátory a periférne zariadenia na vzájomnú komunikáciu. Zbernica SPI je plne duplexná zbernica, ktorá umožňuje komunikáciu do a z hlavného zariadenia simultánne v rýchlosti až do 10Mbps. Vysokorýchlostná prevádzka SPI zvyčajne obmedzuje jej používanie na komunikáciu medzi komponentmi na samostatných PCB kvôli zvýšeniu kapacitnej kapacity, ku ktorej komunikácia s dlhšou vzdialenosťou pridáva signály. Kapacita PCB môže tiež obmedziť dĺžku SPI komunikačných liniek.
Zatiaľ čo SPI je zavedený protokol, nie je to oficiálny štandard, ktorý vedie k niekoľkým variantom a prispôsobeniam SPI, ktoré môžu viesť k problémom s kompatibilitou. Implementácie rozhrania SPI by sa mali vždy kontrolovať medzi hlavnými a slapovými periférnymi zariadeniami, aby sa zabezpečilo, že kombinácia nebude mať neočakávané komunikačné problémy, ktoré budú mať vplyv na vývoj produktu.
I2C
I2C je oficiálny štandardný sériový komunikačný protokol, ktorý vyžaduje len dve signálne linky, ktoré boli navrhnuté na komunikáciu medzi čipmi na PCB. I2C bola pôvodne navrhnutá pre komunikáciu 100 kb / s, avšak v priebehu rokov sa vyvinuli rýchlejší spôsoby prenosu dát, aby sa dosiahli rýchlosti až do 3,4 Mbps. Protokol I2C bol zavedený ako oficiálny štandard, ktorý zabezpečuje dobrú kompatibilitu medzi implementáciami I2C a dobrou spätnou kompatibilitou.
Výber medzi I2C a SPI
Výber medzi I2c a SPI, dva hlavné sériové komunikačné protokoly, vyžaduje dobré pochopenie výhod a obmedzení I2C, SPI a vašej aplikácie. Každý komunikačný protokol bude mať odlišné výhody, ktoré budú mať sklon rozlišovať sa medzi sebou, ako sa vzťahuje na vašu aplikáciu. Kľúčové rozdiely medzi I2C a SPI sú:
- I2C vyžaduje iba dva drôty, zatiaľ čo SPI vyžaduje tri alebo štyri
- SPI podporuje vysokorýchlostnú plne duplexnú komunikáciu, zatiaľ čo I2C je pomalší
- I2C čerpá viac energie ako SPI
- I2C podporuje viac zariadení na tej istej zbernici bez prídavných vybraných riadkov signálu cez komunikáciu s komunikačnými zariadeniami, zatiaľ čo SPI vyžaduje ďalšie riadky signálu na riadenie viacerých zariadení na tej istej zbernici
- Služba I2C zabezpečuje, aby odoslané dáta boli prijaté podriadeným zariadením, kým SPI neoverí správne prijaté údaje
- I2C môže byť uzamknuté jedným zariadením, ktoré nedokáže prepnúť komunikačnú zbernicu
- SPI nemôže vysielať PCB, zatiaľ čo I2C môže, aj keď pri nízkych dátových prenosových rýchlostiach
- I2C je lacnejšie implementovať ako komunikačný protokol SPI
- SPI podporuje iba jedno hlavné zariadenie na zbernici, zatiaľ čo I2C podporuje viacero hlavných zariadení
- I2C je menej náchylný na hluk ako SPI
- SPI môže cestovať len na krátke vzdialenosti a zriedka mimo PCB, zatiaľ čo I2C môže prenášať dáta na oveľa väčšie vzdialenosti, aj keď pri nízkych dátových frekvenciách
- Nedostatok formálneho štandardu vyústil do niekoľkých variácií protokolu SPI, variácií, ktoré sa vo veľkej miere vyhýbali protokolu I2C
Tieto rozdiely medzi SPI a I2C by mali uľahčiť výber najlepšej možnosti komunikácie pre vašu aplikáciu. SPI aj I2C sú dobrými komunikačnými možnosťami, ale každý z nich má niekoľko odlišných výhod a preferovaných aplikácií. Celkovo je SPI lepšie pre vysokorýchlostné a nízkonapäťové aplikácie, zatiaľ čo I2C je vhodnejší na komunikáciu s veľkým počtom periférnych zariadení a dynamickú zmenu úlohy hlavného zariadenia medzi periférnymi zariadeniami na zbernici I2C. SPI aj I2C sú robustné a stabilné komunikačné protokoly pre vstavané aplikácie, ktoré sú vhodné pre vnorený svet.