Turinys:

SPI KOMUNIKACIJOS PROTOKOLO PAGRINDAI: 13 žingsnių
SPI KOMUNIKACIJOS PROTOKOLO PAGRINDAI: 13 žingsnių

Video: SPI KOMUNIKACIJOS PROTOKOLO PAGRINDAI: 13 žingsnių

Video: SPI KOMUNIKACIJOS PROTOKOLO PAGRINDAI: 13 žingsnių
Video: CS50 2013 - Week 9 2024, Liepa
Anonim
SPI KOMUNIKACIJOS PROTOKOLO PAGRINDAI
SPI KOMUNIKACIJOS PROTOKOLO PAGRINDAI

Kai prijungiate mikrovaldiklį prie jutiklio, ekrano ar kito modulio, ar kada nors pagalvojate, kaip šie du įrenginiai kalbasi tarpusavyje? Ką jie tiksliai sako? Kaip jie sugeba suprasti vienas kitą?

Bendravimas tarp elektroninių prietaisų yra tarsi bendravimas tarp žmonių. Abi pusės turi kalbėti ta pačia kalba. Elektronikoje šios kalbos vadinamos bendravimo protokolais. Mūsų laimei, yra tik keli bendravimo protokolai, kuriuos turime žinoti kurdami daugumą „pasidaryk pats“elektronikos projektų. Šioje straipsnių serijoje aptarsime trijų dažniausiai pasitaikančių protokolų pagrindus: nuosekliąją periferinę sąsają (SPI), integracinę grandinę (I2C) ir universalų asinchroninį imtuvą/siųstuvą (UART). Pirma, pradėsime nuo kai kurių pagrindinių elektroninio bendravimo sąvokų, tada išsamiai paaiškinsime, kaip veikia SPI. Kitame straipsnyje aptarsime UART valdomą bendravimą, o trečiajame straipsnyje pasinersime į I2C. SPI, I2C ir UART yra šiek tiek lėtesni nei protokolai, tokie kaip USB, „Ethernet“, „Bluetooth“ir „WiFi“, tačiau jie yra daug paprastesni ir naudoja mažiau aparatūros ir sistemos išteklių. SPI, I2C ir UART idealiai tinka komunikacijai tarp mikrovaldiklių ir tarp mikrovaldiklių bei jutiklių, kai nereikia perduoti didelės spartos duomenų.

1 žingsnis: SERIAL VS. Lygiagretus bendravimas

SERIJA VS. Lygiagretus bendravimas
SERIJA VS. Lygiagretus bendravimas

Elektroniniai prietaisai kalbasi tarpusavyje siunčiant duomenų bitus laidais, fiziškai sujungtais tarp įrenginių. Šiek tiek yra kaip raidė žodyje, išskyrus tai, kad vietoj 26 raidžių (angliškoje abėcėlėje) bitas yra dvejetainis ir gali būti tik 1 arba 0. Bitai perkeliami iš vieno įrenginio į kitą greitai keičiant įtampą. Sistemoje, veikiančioje esant 5 V įtampai, 0 bitas perduodamas kaip trumpas 0 V impulsas, o 1 bitas - trumpas 5 V impulsas.

Duomenų bitai gali būti perduodami lygiagrečiai arba nuosekliai. Lygiagrečiai bendraujant, duomenų bitai siunčiami vienu metu, kiekvienas per atskirą laidą. Ši diagrama rodo lygiagretų raidės „C“perdavimą dvejetainiu (01000011):

2 žingsnis:

Serijinio ryšio metu bitai siunčiami po vieną per vieną laidą. Šioje diagramoje pavaizduotas serijinis raidės „C“perdavimas dvejetainiu būdu (01000011):

3 žingsnis:

Vaizdas
Vaizdas

4 žingsnis: SPI KOMUNIKACIJOS ĮVADAS

SPI KOMUNIKACIJOS ĮVADAS
SPI KOMUNIKACIJOS ĮVADAS

SPI yra bendras ryšio protokolas, naudojamas daugelyje skirtingų įrenginių. Pavyzdžiui, SD kortelės moduliai, RFID kortelių skaitytuvo moduliai ir 2,4 GHz belaidis siųstuvas/imtuvas naudoja SPI, kad galėtų bendrauti su mikrovaldikliais.

Vienas unikalus SPI privalumas yra tai, kad duomenys gali būti perduodami be pertrūkių. Nepertraukiamu srautu galima siųsti ar gauti bet kokį bitų skaičių. Naudojant I2C ir UART, duomenys siunčiami paketais, apribotais tam tikru bitų skaičiumi. Pradžios ir sustabdymo sąlygos apibrėžia kiekvieno paketo pradžią ir pabaigą, todėl duomenys perdavimo metu nutrūksta. Įrenginiai, bendraujantys per SPI, yra pagrindinio ir vergo santykiai. Pagrindinis yra valdymo įtaisas (dažniausiai mikrovaldiklis), o vergas (dažniausiai jutiklis, ekranas ar atminties mikroschema) priima vadovo nurodymus. Paprasčiausia SPI konfigūracija yra vieno šeimininko, vieno pavaldžios sistemos, tačiau vienas valdytojas gali valdyti daugiau nei vieną vergą (daugiau apie tai žemiau).

5 žingsnis:

Vaizdas
Vaizdas

6 žingsnis:

MOSI (pagrindinė išvestis/pavaldi įvestis) - eilutė, skirta kapitonui siųsti duomenis vergui.

MISO (pagrindinė įvestis/pavaldinio išvestis) - eilutė, skirta vergui siųsti duomenis pagrindiniam.

SCLK (laikrodis) - laikrodžio signalo eilutė.

SS/CS (Slave Select/Chip Select) - eilutė, skirta kapitonui pasirinkti, kuriam vergui siųsti duomenis

7 žingsnis:

Vaizdas
Vaizdas

*Praktiškai vergų skaičių riboja sistemos apkrovos talpa, o tai sumažina šeimininko galimybę tiksliai perjungti įtampos lygius.

8 žingsnis: KAIP SPI VEIKIA

LAIKRODIS

Laikrodžio signalas sinchronizuoja duomenų bitų išėjimą iš pagrindinio į pavaldinio bitų atranką. Kiekvieno laikrodžio ciklo metu perduodamas vienas bitas duomenų, todėl duomenų perdavimo greitį lemia laikrodžio signalo dažnis. SPI ryšį visada inicijuoja kapitonas, nes kapitonas sukonfigūruoja ir generuoja laikrodžio signalą.

Bet koks ryšio protokolas, kai įrenginiai dalijasi laikrodžio signalu, vadinamas sinchroniniu. SPI yra sinchroninio ryšio protokolas. Taip pat yra asinchroninių metodų, kuriuose nenaudojamas laikrodžio signalas. Pavyzdžiui, UART komunikacijoje abi pusės yra iš anksto sukonfigūruotos duomenų perdavimo spartos, kuri nurodo duomenų perdavimo greitį ir laiką.

Laikrodžio signalą SPI galima keisti naudojant laikrodžio poliškumo ir laikrodžio fazės savybes. Šios dvi savybės kartu apibrėžia, kada bitai išvedami ir kada imami mėginiai. Pagrindinis gali nustatyti laikrodžio poliškumą, kad būtų galima išvesti bitus ir imti mėginius ant kylančio arba krintančio laikrodžio ciklo krašto. Laikrodžio fazę galima nustatyti, kad išvestis ir mėginių ėmimas vyktų pirmame arba antrame laikrodžio ciklo krašte, nepriklausomai nuo to, ar jis kyla, ar krinta.

SLAVE SELECT

Šeimininkas gali pasirinkti, su kuriuo vergu nori kalbėti, nustatydamas vergo CS/SS liniją į žemos įtampos lygį. Neveikiančioje, neperduodančioje būsenoje vergo pasirinkimo linija palaikoma aukštos įtampos lygyje. Pagrindiniame kompiuteryje gali būti keli CS/SS kaiščiai, o tai leidžia lygiagrečiai prijungti kelis vergus. Jei yra tik vienas CS/SS kaištis, prie pagrindinio kompiuterio gali būti prijungti keli vergai.

KELIŲ VERGŲ SPI

gali būti nustatytas veikti su vienu šeimininku ir vienu vergu, taip pat su keliais vergais, kuriuos valdo vienas šeimininkas. Yra du būdai prijungti kelis vergus prie pagrindinio. Jei šeimininkas turi kelis vergų pasirinkimo kaiščius, vergai gali būti prijungti lygiagrečiai taip:

9 veiksmas:

Vaizdas
Vaizdas

10 veiksmas:

MOSI IR MISO

Pagrindinis siunčia duomenis į pavaldinį po truputį, nuosekliai per MOSI liniją. Vergas gauna iš pagrindinio kompiuterio siunčiamus duomenis per MOSI kaištį. Duomenys, siunčiami iš pagrindinio į pavaldinį, paprastai siunčiami pirmiausia su svarbiausiu bitu. Vergas taip pat gali nuosekliai siųsti duomenis atgal valdytojui per MISO liniją. Duomenys, atsiųsti iš vergo atgal į pagrindinį kompiuterį, paprastai siunčiami pirmiausia su mažiausiai reikšmingu bitu. SPI DUOMENŲ PERDAVIMO ŽINGSNIAI 1. Meistras perduoda laikrodžio signalą:

11 veiksmas:

Vaizdas
Vaizdas

Jei yra tik vienas vergo pasirinkimo kaištis, vergai gali būti sujungti grandine taip:

12 žingsnis:

Vaizdas
Vaizdas
Vaizdas
Vaizdas
Vaizdas
Vaizdas
Vaizdas
Vaizdas

MOSI IR MISO

Pagrindinis siunčia duomenis į pavaldinį po truputį, nuosekliai per MOSI liniją. Vergas gauna iš pagrindinio kompiuterio siunčiamus duomenis per MOSI kaištį. Duomenys, siunčiami iš pagrindinio į pavaldinį, paprastai siunčiami pirmiausia su svarbiausiu bitu.

Vergas taip pat gali nuosekliai siųsti duomenis atgal valdytojui per MISO liniją. Duomenys, atsiųsti iš vergo atgal į pagrindinį kompiuterį, paprastai siunčiami pirmiausia su mažiausiai reikšmingu bitu.

SPI DUOMENŲ PERDAVIMO ŽINGSNIAI

*Pastaba Vaizdai yra sąraše „Oboe“, kuriuos galite lengvai atskirti

1. Meistras išleidžia laikrodžio signalą:

2. Pagrindinis įjungia SS/CS kaištį į žemos įtampos būseną, kuri įjungia vergą:

3. Pagrindinis siunčia duomenis po vieną bitą vergui išilgai MOSI linijos. Vergas skaito gautus bitus:

4. Jei reikia atsakymo, vergas po vieną bitą grąžina duomenis pagrindiniam kompiuteriui išilgai MISO linijos. Meistras skaito bitus, kai jie gaunami:

13 žingsnis: SPI pranašumai ir trūkumai

Naudojant SPI yra keletas privalumų ir trūkumų, ir jei jums suteikiamas pasirinkimas tarp skirtingų ryšio protokolų, turėtumėte žinoti, kada naudoti SPI pagal jūsų projekto reikalavimus:

PRIVALUMAI

Nėra pradžios ir pabaigos bitų, todėl duomenys gali būti nuolat transliuojami be pertraukų Nėra sudėtingos vergų adresavimo sistemos, tokios kaip I2C Didesnis duomenų perdavimo greitis nei I2C (beveik dvigubai greitesnis) Atskiros MISO ir MOSI linijos, todėl duomenys gali būti siunčiami ir gaunami tuo pačiu metu laikas

TRŪKUMAI

Naudoja keturis laidus (I2C ir UART naudoja du) Nepripažįstama, kad duomenys buvo gauti sėkmingai (I2C tai turi) Nėra jokios klaidų tikrinimo formos, kaip UART pariteto bitas Tik leidžia tik vienam meistrui Tikimės, kad šis straipsnis geriau suprato iš SPI. Tęskite antrąją šios serijos dalį, kad sužinotumėte apie UART valdomą bendravimą, arba trečiąją dalį, kurioje aptariame I2C protokolą.

Jei turite klausimų, nedvejodami užduokite juos komentarų skiltyje, mes esame čia, kad padėtume. Ir būtinai sekite

Pagarbiai: M. Junaid

Rekomenduojamas: