Pasirinkus tarp I2C ir SPI, dvi pagrindinės nuosekliojo ryšio galimybės gali būti gana sudėtingos ir turi didelės įtakos projekto projektui, ypač jei naudojamas netinkamas ryšio protokolas. Tiek "SPI", tiek "I2C" teikia savo pranašumus ir apribojimus kaip komunikacijos protokolus, kurie juos pritaiko konkrečioms programoms.
SPI
SPI arba Serial to Peripheral Interface yra labai mažos galios, keturių laidų nuosekliojo ryšio sąsaja, skirta IC kontroleriams ir periferiniams įrenginiams bendrauti tarpusavyje. "SPI" autobusas yra "full-duplex" autobusas, kuris vienu metu gali jungtis prie pagrindinio įrenginio ir iš jo, esant iki 10Mbps spartos. Greitas SPI veikimas paprastai riboja tai, kad jis naudojamas ryšiui tarp komponentų atskiruose PCB dėl padidėjusio talpos, kad ilgesnio nuotolio ryšys padidina signalų linijas. PCB talpa taip pat gali apriboti SPI ryšio linijų ilgį.
Nors SPI yra nustatytas protokolas, tai nėra oficialus standartas, dėl kurio atsiranda keletas variantų ir SPI pritaikymų, dėl kurių gali kilti suderinamumo problemų. SPI diegimai visada turėtų būti tikrinami tarp pagrindinių valdiklių ir pagalbinių išorinių įrenginių, siekiant užtikrinti, kad derinyje nebus jokių nenumatytų komunikacijos problemų, kurios turės įtakos produkto kūrimui.
I2C
I2C yra oficialus standartinis nuoseklusis ryšių protokolas, kuris reikalauja tik dviejų signalų linijų, skirtų ryšiui tarp PCB kištukų. Iš pradžių I2C buvo sukurtas 100kbps ryšiui, tačiau greitesni duomenų perdavimo būdai buvo sukurti per pastaruosius metus, siekiant greičio iki 3,4 Mb / s. I2C protokolas buvo sukurtas kaip oficialus standartas, kuris užtikrina gerą I2C realizacijų suderinamumą ir gerą atgalinį suderinamumą.
Pasirinkimas tarp I2C ir SPI
Pasirinkus I2C ir SPI, du pagrindiniai nuosekliojo ryšio protokolai, reikia gerai suprasti I2C, SPI ir jūsų programos pranašumus ir apribojimus. Kiekvienas ryšių protokolas turės aiškių pranašumų, kurie paprastai skirsis, kaip tai taikoma jūsų paraiškai. Pagrindiniai skirtumai tarp I2C ir SPI yra šie:
- I2C reikalauja tik dviejų laidų, o SPI reikia trijų ar keturių
- SPI palaiko didesnį greitį visišką dvipusį ryšį, o I2C lėtesnis
- I2C pritraukia daugiau energijos nei SPI
- I2C palaiko kelis įrenginius toje pačioje magistralėje be papildomų pasirinktų signalų linijų per ryšių įrenginio adresavimą, o SPI reikalauja papildomų signalų linijų, kad valdytų kelis įrenginius toje pačioje magistralėje
- I2C užtikrina, kad išsiųstų duomenų gavo slaptas įrenginys, o SPI netikrina, ar duomenys buvo gauti teisingai
- I2C gali būti užrakintas vienu įrenginiu, kuris neatleidžia ryšio magistralės
- SPI negali perduoti PCB, o I2C gali, net jei duomenų perdavimo greitis yra mažas
- I2C pigiau įdiegti nei SPI ryšio protokolas
- SPI palaiko tik vieną magistralinį įrenginį, kai I2C palaiko keletą pagrindinių įrenginių
- I2C yra mažiau jautrus triukšmui nei SPI
- SPI gali keliauti tik nedideliais atstumais, o retai - PCB, o I2C gali perduoti duomenis daug didesniais atstumais, nors duomenų perdavimo sparta
- Dėl oficialaus standarto nebuvimo atsirado keletas SPI protokolo variantų, kurie dažniausiai buvo išvengta taikant I2C protokolą
Dėl šių skirtumų tarp SPI ir I2C turėtų būti lengviau pasirinkti geriausią bendravimo su jūsų paraiška variantą. Tiek SPI, tiek I2C yra geros komunikacijos galimybės, tačiau kiekvienas turi keletą išskirtinių pranašumų ir pageidaujamų programų. Apskritai, SPI yra geresnės didelės spartos ir mažo galingumo programoms, tuo tarpu I2C geriau tinka bendrauti su daugeliu išorinių įrenginių ir dinamiškai keisti pagrindinio įrenginio vaidmenį tarp periferinių įrenginių I2C magistralėje. Tiek "SPI", tiek "I2C" yra tvirti, stabili ryšio protokolai, skirti įmontuotoms programoms, kurios puikiai tinka integruotam pasauliui.