Sunteți pe pagina 1din 7

Descriere SPI

1.Introducere SPI(Serial Peripheral Interface) este un standard sincron (ca si I2C) dezvoltat de Motorola ce opereaz in mod full-duplex (transferul de date are loc n ambele direcii simultan). Device-urile comunic folosind o relaie de tipul master/multi slave (nu sunt suportai mai multi masteri) master-ul fiind cel care iniiaz frame-urile de date. SPI se mai numete i four wire serial bus pentru a-l deosebi de celelalte standarde ce folosesc 1, 2 sau 3 fire. Cele 4 fire folosite de magistrala SPI sunt: SCLK Serial Clock ( output from master) MOSI/SIMO Master Output, Slave Input (output from master) MISO/SOMI Master Input, Slave Output (output from slave) SS Slave Select (active low; output from master)

Fig.1 Liniile SPI ce descriu relatia master - slave Se observ c sunt dou fire pe care se transmit date (MOSI i MISO). De asemenea, slave-ul este selectat direct prin intermediul semnalului SS, pentru fiecare slave fiind nevoie de nc un fir de selecie (Fig.2).

Fig.2 Conectarea prin SPI a mai multor componente

2.Mod de funcionare Pentru a porni comunicaia, masterul trebuie s seteze ceasul la o frecven cel mult egal cu frecvena suportat de slave. Asemenea frecvene sunt de obicei n intervalul 1 - 70 MHz. Masterul selecteaz apoi chip-ul slave dorit, punnd 0 pe linia SS spre acesta. 0 logic este transmis pentru ca linia chip-select este active pe starea low, insemnand ca este inactive pe starea 1 logic . Daca este ceruta o perioada de asteptare, cum ar fi pentru o conversie analogdigitala, atunci master-ul trebuie sa astepte cel putin acea perioada de timp inainte sa inceapa sa emita ciclurile de ceas. n timpul unui ciclu SPI, transmisia este full-duplex:

masterul trimite un bit pe linia MOSI, iar slave-ul l citete de pe aceeai linie; slave-ul trimite un bit pe linia MISO, iar master-ul l citete de pe aceeai linie; Nu toate transmisiile necesita cele 4 operatii pentru a fi semnificative, dar totusi ele au

loc. Comunicaia pe SPI implic de obicei existena a doi regitri de shiftare (Shift Registers), de lungimea unui cuvant dat, cum ar fi 8 biti, unul n master i unul n slave, conectai n ciclu.(Fig. 3)

Fig.3 Registrii SPI la master si slave De obicei primul bit shiftat pe liniile de MISO/MOSI este bitul cel mai semnificativ, n timp ce un nou bit este adugat pe poziia cea mai puin semnificativ din registru. Dup ce ntregul cuvant a fost trimis, prin shiftare, masterul i slave-ul au interschimbat valorile din cei doi regitri de shift. Dac mai exist date de transmis, procesul este reluat.

Transmisia poate implica orice numar de impulsuri de ceas. Cnd nu mai exist date de transmis, masterul ntrerupe generarea ceasului i, n general, pune 1 pe linia de SS asociata slave-ului. Transmisiile se compun, de obicei, din cuvinte de 8 biti si un master care initiaza astfel de transmisii, daca doreste/necesita. Totusi, alte dimensiuni de cuvinte sunt de asemenea obisnuite, cum ar fi cele pe 16 biti pentru controller-e cu touchscreen sau codec-uri audio (ex: TSC2101 de la Texas Instruments) sau pe 12 biti pentru multe convertoare A/D sau D/A. Chip-urile slave care nu au fost selectate vor ignora semnalele de pe SCK si MOSI i nu vor genera nimic pe MISO. Masterul poate selecta doar un singur slave la un moment dat. Un exemplu de transmisie de date simultan intre master si slave este prezentat in figura 3.

Fig.3 Transmisia unui byte de la master la slave 3. Polaritatea si faza ceasului

n plus, pe lng setarea frecvenei ceasului, master-ul trebuie, de asemenea, sa configureze polaritatea i faza ceasului, n conformitate cu datele. Convenia de notare, pentru polaritate si faz, numete aceste 2 optiuni CPOL, respectiv CPHA. Diagrama sincronizrii este aratata n figura 4.

Fig. 4 Polaritatea i faza ceasului

La CPOL = 0, valoarea de baz a ceasului este 0. Pentru CPHA = 0, datele sunt capturate pe frontul crescator al ceasului ( tranziia Low High) i sunt propagate pe frontul descresctor( tranziia High Low). Pentru CPHA = 1, datele sunt capturate pe frontul descrescator si propagate pe cel cresctor.

La CPOL = 1, valoarea de baz a ceasului este 1. Pentru CPHA = 0, datele sunt capturate pe frontul descrescator al ceasului i sunt propagate pe frontul cresctor. Pentru CPHA = 1, datele sunt capturate pe frontulscrescator si propagate pe cel descresctor.

Prin urmare, CPHA = 0 nseamna selectarea pe frontul de ceas principal( primul), n timp ce CPHA = 1 nseamn selectarea pe frontul de ceas secundar( al doilea), indiferent daca acel front de ceas este cresctor sau descresctor. De observat este faptul ca pentru CPHA = 0, datele trebuie s fie stabile pentru jumtate de ciclu nainte de primul ciclu de ceas. Pentru toate modurile CPOL si CPHA, valoarea iniial a ceasului trebuie s fie stabil, nainte ca linia chip-select s fie activat. Liniile MOSI i MISO sunt de obicei stabile ( la punctele lor de receptie), pentru jumtate din ciclu, pan la urmtorul ciclu de ceas. Dispozitivele master i slave ale SPI pot foarte bine s selecteze date si la momente diferite de timp n acea jumtate de ciclu. Acest lucru adauga mai mult flexibilitate canalului de comunicaie ntre master i slave.

Combinaiile de polaritate i faz sunt adesea referite ca si moduri care sunt de obicei numerotate n conformitate cu urmtoarea convenie, cu CPOL ca cel mai semnificativ bit si CPHA ca cel mai puin semnificativ bit.

O alt reprezentare comun este sub forma unui tuplu ( CPOL, CPHA). De exemplu valoarea ( 0, 1) va indica CPOL = 0, CPHA = 1.

5 .Configuraia slave independent n aceast configuraie exist o linie chip-select independent pentru fiecare slave. Acesta este modul n care SPI este n mod normal utilizat. Din moment ce pinii MISO ai slave-ilor sunt conectai mpreun, este necesar ca acetia s fie pini cu 3 stri.

6. Configuraia Daisy chain a SPI Unele produse cu magistral SPI sunt proiectate s fie capabile de o conexiune ntr-o configuraie de tip Daisy chain, outputul primului slave fiind conectat la inputul celui de-al doilea slave, etc. Portul SPI al fiecrui slave este conceput s trimit n timpul celui de-al doilea grup de impulsuri de ceas o copie a ceea ce a primit n timpul primului grup de impulsuri de ceas. ntregul lan se comport ca un registru de shiftare; Daisy chaining este adesea facut cu registre de shiftare pentru a furniza un buffer de intrri i ieiri prin SPI. O asemenea caracteristic nu necesit dect o singur linie SS de la master ( fig. 5) fa de modelul obinuit n care exist cte o linie SS pentru fiecare slave.

Fig 5 Magistral SPI n configuraie Daisy chain

7. Comunicaii SPI valide Unele dispozitive slave sunt proiectate s ignore orice comunicaii SPI n care numrul de impulsuri de ceas este mai mare dect este specificat. Altor dispozitive de acelai fel nu le pas, ignornd extra inputurile si continund s shifteze acelai bit de output. Este normal ca pentru diferite dispozitive s foloseasc comunicaii SPI cu lungimi diferite, ca de exemplu : cnd SPI este folosit pentru a accesa ceva folosind un cuvnt comand de 32 de bii i apoi s primeasc un rspuns de o dimensiune diferit.

8. ntreruperi Cteodat dispozitivele SPI folosesc o alt linie pentru a trimite un semnal de ntrerupere unui host UCP. Exemplele includ : ntreruperi pen down de la senzorii touchscreen, alerte de limitri termice de la senzorii de temperatur, alarm declanat de chipul de ceas n timp real. ntreruperile nu sunt acoperite de standardul SPI. Folosirea lor nu este nici interzis, nici specificat de acest standard.

9. Avantaje si dezavantaje ale SPI Avantaje: Comunicaie full-duplex Throughput semnificativ mai mare Flexibilitate pentru biii transferai: o nu exist limitarea la cuvinte de 8-bit o se pot trimite mesaje de orice lungime Se interfaeaza usor, usurin n folosire Mai eficient n comunicarea point-to-point Semnalele sunt unidirectional, permitand o izolare galvanic usoara.

Dezavantaje: Folosete mai multe fire Nu are suport pentru adresarea device-urilor; este necesar cte un semnal de Slave Select pentru fiecare slave Nu exist flow control i slave acknowledgement (master poate vorbi in gol far s tie). Suport numai un singur master Funcioneaz pe distane mici spre deosebire de RS-232 sau RS-485

10. Aplicaii Modul full duplex face ca SPI s fie foarte simplu i eficient pentru aplicaii singlemaster / single-slave. Unele dispozitive folosesc modul full duplex pentru a implementa un flux de date eficient i rapid pentru aplicaii precum cele audio-digitale, procesare de semnale digitale sau canale de telecomunicaii. SPI este folosit pentru a comunica cu o varietate de dispozitive periferice cum ar fi: Senzori : temperatur, presiune, ADC, touchscreen, controller-e de jocuri video. Dispozitive de control : codecuri audio, poteniometre digitale, DAC. Lentile de aparate foto / video. Comunicaii: Ethernet, USB, USART, CAN, IEEE 802.15.4, IEEE 802.11. Memorii: Flash, EEPROM. Display-uri LCD, cateodat chiar pentru managementul imaginilor. Orice card MMC sau SD ( incluznd varianta SDIO).

S-ar putea să vă placă și