Razumevanje komunikacijskega protokola SPI v programu Embedded

Razumevanje komunikacijskega protokola SPI v programu Embedded

Komunikacija igra bistveno vlogo pri oblikovanju vgrajenega sistema. Ne da bi se lotili protokolov, je zunanja razširitev zelo zapletena in zahteva veliko energije. The vgrajeni sistem v osnovi uporablja serijsko komunikacijo za komunikacijo z zunanjimi napravami.
Obstaja veliko serijskih komunikacijskih protokolov, kot so UART, CAN, USB, I2C in SPI komunikacija. Serija komunikacijski protokol značilnosti vključujejo visoko hitrost in majhno izgubo podatkov. Olajša načrtovanje na sistemski ravni in zagotavlja zanesljiv prenos podatkov.



Zaporedna podatkovna komunikacija

Električno kodirane informacije se imenujejo serijski podatki, ki se po naboru protokolov prenašajo bit po bit iz ene naprave v drugo. V vgrajenem sistemu se krmilni senzorji in aktuatorji prejemajo ali prenašajo v krmilne naprave, kot so mikrokrmilniki, tako da se podatki dodatno analizirajo in obdelajo. Ko mikrokrmilniki delujejo z digitalnimi podatki, se informacije iz analogni senzorji , aktuatorji in druga zunanja oprema se pred prenosom v mikrokrmilnik pretvorijo v eno bajtno (8-bitno) binarno besedo.


Zaporedna podatkovna komunikacija

Zaporedna podatkovna komunikacija





Ti serijski podatki se prenašajo glede na določen urni impulz. Hitrost prenosa podatkov se imenuje hitrost prenosa. Število podatkovnih bitov, ki jih je mogoče prenesti na sekundo, se imenuje hitrost prenosa. Denimo, da imajo podatki 12 bajtov, nato pa se vsak bajt pretvori v 8 bitov, tako da je skupna velikost prenosa podatkov približno 96 bitov / sek podatkov (12 bajtov * 8 bitov na bajt). Če je mogoče podatke prenašati enkrat na sekundo, je hitrost prenosa približno 96 bitov na sekundo ali 96 baudov. Zaslon osveži podatkovno vrednost enkrat na sekundo.

Osnove serijskega perifernega vmesnika

Komunikacija SPI pomeni serijski periferni vmesnik komunikacijski protokol , ki ga je razvila Motorola leta 1972. Vmesnik SPI je na voljo na priljubljenih komunikacijskih krmilnikih, kot so PIC, AVR in Krmilnik ARM itd. Ima sinhrono serijsko komunikacijsko podatkovno povezavo, ki deluje v polnem dupleksu, kar pomeni, da podatkovni signali istočasno prenašajo obe smeri.



SPI protokol je sestavljen iz štirih žic, kot so MISO, MOSI, CLK, SS, ki se uporabljajo za glavno / podrejeno komunikacijo. Mojster je mikrokrmilnik, podrejeni pa so druga zunanja oprema, kot so senzorji, GSM modem in GPS modem itd. Več podrejenih je povezano s poveljnikom prek serijskega vodila SPI. Protokol SPI ne podpira komunikacije Multi-master in se uporablja na kratki razdalji znotraj vezja.

Osnove serijskega perifernega vmesnika

Osnove serijskega perifernega vmesnika

Vrstice SPI

MISO (Master in Slave out) : Vrstica MISO je konfigurirana kot vhod v glavni napravi in ​​kot izhod v podrejeni napravi.


MOSI (Master out Slave in) : MOSI je linija, konfigurirana kot izhod v glavni napravi in ​​kot vhod v podrejeni napravi, v kateri se uporablja za sinhronizacijo prenosa podatkov.

SCK (serijska ura) : Ta signal vedno vodi poveljnik za sinhroni prenos podatkov med glavno in pomožno enoto. Uporablja se za sinhronizacijo prenosa podatkov znotraj in zunaj po linijah MOSI in MISO.

SS (izbir podrejenega) in CS (izbir čipa) : Ta signal usmerja poveljnik, da izbere posamezne podrejene / zunanje naprave. To je vhodna vrstica, ki se uporablja za izbiro podrejenih naprav.

Glavna suženjska komunikacija s serijskim vodilom SPI

Izvedba SPI za enega samega in enega podrejenega

Tu komunikacijo vedno sproži poveljnik. Glavna naprava najprej konfigurira taktno frekvenco, ki je manjša ali enaka največji frekvenci, ki jo podrejena naprava podpira. Nato mojster izbere želeno pomožno enoto za komunikacijo tako, da povleče črto za izbiro čipa (SS) te posebne pomožne naprave, da preide v nizko stanje in je aktiven. Master generira informacije v linijo MOSI, ki prenaša podatke od glavne enote do pomožne enote.

Komunikacija glavnega sužnja

Komunikacija glavnega sužnja

Implementacije enega samega in več podrejenih

To je konfiguracija več podrejenih z enim glavnim in več podrejenimi prek zaporednega vodila SPI. Več podrejenih je vzporedno z glavno napravo povezano s serijskim vodilom SPI. Tu so vse urne in podatkovne linije povezane med seboj, vendar mora biti zatič za izbiro čipa iz vsake podrejene naprave povezan z ločenim izbirnim zatičem na napravi maser.

Samski mojster in več sužnjev

Samski mojster in več sužnjev

V tem postopku nadzor vsake podrejene naprave izvaja linija za izbiro čipa (SS). Zatič za izbiro čipa gre nizko za aktiviranje podrejene naprave, visoko pa za onemogočanje podrejene naprave.

Prenos podatkov je organiziran z uporabo premičnih registrov na glavni in pomožni napravi z določeno velikostjo besed približno 8-bitno oziroma 16-bitno. Obe napravi sta povezani v obliki obroča, tako da se vrednost registra maser premika prenese po liniji MOSI, nato pa pomožna enota preusmeri podatke v svoj register premika. Podatki se ponavadi najprej premaknejo z MSB in novi LSB premestijo v isti register.

Prenos podatkov med glavnim in podrejenim

Prenos podatkov med glavnim in podrejenim

Pomen polarnosti ure in faze

Na splošno se prenos in sprejem podatkov izvajata glede na impulze ure na naraščajočih in padajočih robovih. Napredni mikrokrmilniki imajo dve frekvenci: notranjo in zunanjo frekvenco. Zunanje naprave SPI bi lahko dodali z izmenjavo linij MISO, MOSI in SCLK. Periferne naprave so različnih vrst ali hitrosti, kot so ADC, DAC itd. Zato moramo spremeniti nastavitve SPCR med prenosi na različne zunanje naprave.

Register SPCR

Register SPCR

Vodilo SPI deluje v enem od 4 različnih načinov prenosa s polarnostjo ure (CPOL) in fazo ure (CPHA), ki določata obliko ure, ki jo je treba uporabiti. Polarnost ure in fazne frekvence so odvisne od tega, katero zunanjo napravo poskušate komunicirati z glavno enoto.
CPHA = 0, CPOL = 0: Prvi bit se začne kot spodnji signal - podatki se vzorčijo na naraščajočem robu, podatki pa se spreminjajo na padajočem robu.

CPHA = 0, CPOL = 1: Prvi bit se začne z nižjo uro - podatki se vzorčijo na padajočem robu, podatki pa se spreminjajo na naraščajočem robu.

CPHA = 1, CPOL = 0: Prvi bit se začne z višjo uro - podatki se vzorčijo na padajočem robu, podatki pa se spreminjajo na naraščajočem robu.

CPHA = 1, CPOL = 1: Prvi bit se začne z višjo uro - podatki se vzorčijo na naraščajočem robu, podatki pa se spreminjajo na padajočem robu.

Časi vodila SPI

Časi vodila SPI

SPI komunikacijski protokol

Številni mikrokrmilniki imajo vgrajene protokole SPI, ki obdelujejo vse podatke o pošiljanju in sprejemanju. Katero koli operacijo podatkovnega načina (R / W) nadzorujejo nadzorni in statusni registri protokola SPI. Tu lahko preko protokola SPI opazujete vmesnik EEPROM do mikrokrmilnika PIC16f877a.

Tu je 25LC104 EEROM pomnilnik 131072 bajtov, pri katerem mikrokrmilnik prenese dva bajta podatkov v Spomin EEROM prek serijskega vodila SPI. Program za to povezovanje je podan spodaj.

Komunikacija Master-Slave prek serijskega vodila SPI

Komunikacija Master-Slave prek serijskega vodila SPI

#include
Sbit SS = RC ^ 2
Sbit SCK = RC ^ 3
Sbit SDI = RC ^ 4
Sbit SDO = RC ^ 5
Prazno inicializira EEROM ()
Prazno glavno ()
{
SSPSPAT = 0x00
SSPCON = 0x31
SMP = 0
SCK = 0
SDO = 0
SS = 1
EE_adress = 0x00
SPI_write (0x80)
SPI_write (1234)
SS = 0
}

Prednosti protokola SPI

  • Gre za dupleksno komunikacijo.
  • To je visokohitrostno podatkovno vodilo 10MHzs.
  • Med prenosom ni omejen na 8 bitov
  • Vmesnik strojne opreme je prek SPI preprost.
  • Slave uporablja glavno uro in ne potrebuje dragocenih oscilatorjev.

To je vse o komunikaciji SPI in njenih povezovanje z mikrokrmilnikom . Zahvaljujemo se vam za veliko zanimanje in pozornost za ta članek in zato pričakujemo vaše stališče do tega članka. Poleg tega nas lahko za kakršno koli vmesniško kodiranje in pomoč prosite s komentarjem spodaj.

Zasluge za fotografije: