Porozumenie komunikačnému protokolu SPI v zabudovanom formáte

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





Komunikácia hrá pri navrhovaní zabudovaného systému zásadnú úlohu. Bez toho, aby sme šli k protokolom, je rozšírenie periférií veľmi zložité a náročné na energiu. The vstavaný systém v zásade používa na komunikáciu s perifériami sériovú komunikáciu.
Existuje veľa sériových komunikačných protokolov, ako napríklad komunikácia UART, CAN, USB, I2C a SPI. Sériový komunikačný protokol charakteristiky zahŕňajú vysokú rýchlosť a nízku stratu dát. Uľahčuje návrh na úrovni systému a zaisťuje spoľahlivý prenos dát.

Sériová dátová komunikácia

Elektricky kódovaná informácia sa nazýva sériové dáta, ktoré sa prenášajú bit po biti z jedného zariadenia na druhé prostredníctvom sady protokolov. V zabudovanom systéme sú dáta z riadiacich senzorov a akčných členov prijímané alebo prenášané do riadiacich zariadení, ako sú mikrokontroléry, aby boli dáta ďalej analyzované a spracované. Pretože mikrokontroléry pracujú s digitálnymi údajmi, informácie z analógové snímače , akčné členy a ďalšie periférie sa pred prenosom do mikrokontroléra prevedú na jedno bajtové (8-bitové) binárne slovo.




Sériová dátová komunikácia

Sériová dátová komunikácia

Tieto sériové údaje sa prenášajú s ohľadom na určitý taktovací impulz. Rýchlosť dátového prenosu sa označuje ako prenosová rýchlosť. Počet dátových bitov, ktoré je možné prenášať za sekundu, sa nazýva prenosová rýchlosť. Predpokladajme, že dáta majú 12 bajtov, potom sa každý bajt prevedie na 8 bitov, takže celková veľkosť dátového prenosu je asi 96 bitov / s dát (12 bajtov * 8 bitov na bajt). Ak je možné dáta prenášať raz za sekundu, sú prenosové rýchlosti okolo 96 bitov / s alebo 96 prenosov. Obrazovka displeja obnovuje hodnotu údajov raz za sekundu.



Základy sériového periférneho rozhrania

Komunikácia SPI znamená sériové periférne rozhranie komunikačný protokol , ktorý vyvinula spoločnosť Motorola v roku 1972. Rozhranie SPI je k dispozícii na populárnych komunikačných radičoch, ako sú PIC, AVR a Radič ARM , atď. Má synchrónne sériové komunikačné dátové spojenie, ktoré pracuje v úplnom duplexe, čo znamená, že dátové signály vedú obidvoma smermi súčasne.

SPI protokol sa skladá zo štyroch vodičov ako MISO, MOSI, CLK, SS používaných pre komunikáciu master / slave. Master je mikrokontrolér a slave sú ďalšie periférie, ako sú snímače, GSM modem a GPS modem atď. Viaceré podriadené jednotky sú prepojené s hlavnou jednotkou prostredníctvom sériovej zbernice SPI. Protokol SPI nepodporuje komunikáciu Multi-master a používa sa na krátku vzdialenosť v doske s obvodmi.

Základy sériového periférneho rozhrania

Základy sériového periférneho rozhrania

Linky SPI

MISO (Master in Slave out) : MISO linka je nakonfigurovaná ako vstup v nadradenom zariadení a ako výstup v podradenom zariadení.


MOSI (Master out Slave in) : MOSI je linka nakonfigurovaná ako výstup v hlavnom zariadení a ako vstup v podradenom zariadení, kde sa používa na synchronizáciu pohybu údajov.

SCK (sériové hodiny) : Tento signál je vždy riadený hlavnou jednotkou pre synchrónny prenos údajov medzi hlavnou jednotkou a podradenou jednotkou. Používa sa na synchronizáciu pohybu dát dovnútra aj von cez linky MOSI a MISO.

SS (Slave Select) a CS (Chip Select) : Tento signál je riadený hlavnou jednotkou pre výber jednotlivých podriadených / periférnych zariadení. Je to vstupný riadok, ktorý sa používa na výber podradených zariadení.

Komunikácia Master Slave so sériovou zbernicou SPI

Single SPI a Single Slave implementácia SPI

Tu je komunikácia vždy iniciovaná nadriadeným. Hlavné zariadenie najskôr nakonfiguruje frekvenciu hodín, ktorá je menšia alebo rovná maximálnej frekvencii, ktorú podporuje podradené zariadenie. Hlavný potom vyberie požadovaného podriadeného pre komunikáciu pretiahnutím linky na výber čipu (SS) konkrétneho podriadeného zariadenia do stavu nízkej a aktívnej. Master generuje informácie na linke MOSI, ktorá prenáša dáta z master do slave.

Komunikácia Master Slave

Komunikácia Master Slave

Implementácia jedného hlavného a viacerých podriadených

Toto je konfigurácia s viacerými slave s jedným masterom a s viacerými slave cez sériovú zbernicu SPI. Viaceré podriadené jednotky sú pripojené paralelne k hlavnému zariadeniu pomocou sériovej zbernice SPI. Tu sú všetky hodinové linky a dátové linky spojené dohromady, ale kolík výberu čipu z každého podradeného zariadenia musí byť pripojený k samostatnému kolíku výberu podradenej jednotky na masérovom zariadení.

Jeden pán a viac otrokov

Jeden pán a viac otrokov

V tomto procese sa riadenie každého podradeného zariadenia vykonáva linkou na výber čipu (SS). Čip pre výber čipu klesá, aby aktivoval podriadené zariadenie, a vysoký, aby deaktivoval podradené zariadenie.

Prenos údajov je organizovaný pomocou posuvných registrov na zariadeniach typu master aj slave s danou veľkosťou slova asi 8-bitovou, respektíve 16-bitovou. Obidve zariadenia sú spojené vo forme krúžku, takže sa hodnota posuvného registra masera prenáša cez linku MOSI, a potom otrok posúva údaje vo svojom posuvnom registri. Dáta sa zvyčajne najskôr posúvajú von s MSB a nový LSB sa posúva do toho istého registra.

Prenos dát medzi Master a Slave

Prenos dát medzi Master a Slave

Dôležitosť polarity a fázy hodín

Všeobecne sa prenos a príjem dát vykonáva s ohľadom na hodinové impulzy na stúpajúcich a klesajúcich hranách. Pokročilé mikrokontroléry majú dve frekvencie: vnútornú frekvenciu a vonkajšiu frekvenciu. SPI periférie je možné pridať zdieľaním liniek MISO, MOSI a SCLK. Periférie sú rôznych typov alebo rýchlostí ako ADC, DAC atď. Musíme teda zmeniť nastavenie SPCR medzi prenosmi na rôzne periférie.

Register SPCR

Register SPCR

Zbernica SPI pracuje v jednom zo 4 rôznych režimov prenosu s hodinovou polaritou (CPOL) a hodinovou fázou (CPHA), ktoré definujú formát hodín, ktorý sa má použiť. Polarita hodín a frekvencie fázových hodín závisia od toho, s ktorým periférnym zariadením sa pokúšate komunikovať s nadradenou jednotkou.
CPHA = 0, CPOL = 0: Prvý bit začína ako nižší signál - dáta sa vzorkujú pri stúpajúcej hrane a údaje sa menia pri klesajúcej hrane.

CPHA = 0, CPOL = 1: Prvý bit začína nižšími hodinami - dáta sa vzorkujú pri klesajúcej hrane a dáta sa menia pri stúpajúcej hrane.

CPHA = 1, CPOL = 0: Prvý bit začína vyššími hodinami - dáta sa vzorkujú pri klesajúcej hrane a údaje sa menia pri stúpajúcej hrane.

CPHA = 1, CPOL = 1: Prvý bit začína vyššími hodinami - dáta sa vzorkujú pri stúpajúcej hrane a údaje sa menia pri klesajúcej hrane.

Časovanie zbernice SPI

Časovanie zbernice SPI

Komunikačný protokol SPI

Mnoho mikrokontrolérov má zabudované protokoly SPI, ktoré spracúvajú všetky odosielajúce a prijímajúce údaje. Akákoľvek z operácií dátového režimu (R / W) je riadená riadiacimi a stavovými registrami protokolu SPI. Tu môžete sledovať rozhranie EEPROM k mikrokontroléru PIC16f877a prostredníctvom protokolu SPI.

Tu je 25LC104 EEROM pamäť 131072 bajtov, kde mikrokontrolér prenáša dva bajty dát do EEROMOVÁ pamäť cez sériovú zbernicu SPI. Program tohto prepojenia je uvedený nižšie.

Komunikácia typu Master to Slave cez sériovú zbernicu SPI

Komunikácia typu Master to Slave cez sériovú zbernicu SPI

#include
Sbit SS = RC ^ 2
Sbit SCK = RC ^ 3
Sbit SDI = RC ^ 4
Sbit SDO = RC ^ 5
Zrušiť inicializáciu EEROM ()
Neplatné main ()
{
SSPSPAT = 0x00
SSPCON = 0x31
SMP = 0
SCK = 0
SDO = 0
SS = 1
EE_adress = 0x00
SPI_write (0x80)
SPI_write (1234)
SS = 0
}

Výhody protokolu SPI

  • Jedná sa o plne duplexnú komunikáciu.
  • Je to vysokorýchlostná dátová zbernica 10MHz.
  • Počas prenosu nie je obmedzený na 8 bitov
  • Hardvérové ​​prepojenie je jednoduché prostredníctvom SPI.
  • Slave používa hlavné hodiny a nepotrebuje drahé oscilátory.

Toto je všetko o komunikácii SPI a jej prepojenie s mikrokontrolérom . Vážime si váš veľký záujem a pozornosť venovanú tomuto článku, a preto očakávame váš názor na tento článok. Ďalej, o akékoľvek kódovanie a pomoc s rozhraním, nás môžete požiadať komentárom nižšie.

Fotografické úvery: