Interfață SPI(Serial Peripheral Interface)autobuzul este un mare viteză, cu 3 fire, serial protocol de comunicații (4 dacă includeți SSn – a se vedea mai jos). Scopul său principal este de a reduce rutarea firului on-PCB prin înlocuirea magistralei paralele tradiționale cu o interfață serială. (Puteți doar aboutmanage un autobuz de 8 biți de rutare – l printr-un PCB mai multe straturi, dar atunci când youge la 16, 32 biți și mai mult devine mult mai dificil).,conexiunile sunt:
- MOSI (Master out Slave In) .
- MISO (Maestru în Sclav afară).
- SCK (ceas Sclav).
- SS_n (Slave Select).
– denotă nomenclatura PIC
notă: ultimul semnal SS sau slave select este separat de protocol și este de obicei implementat ca un pin de control care permite microcontrolerului. Este inclus aici pentru completitudine.interfața SPI PIC permite conectarea perifericelor folosind o interfață serială de mare viteză. SPI FlashMemory și SPI SRAM pot fi adăugate cu ușurință la orice sistem., Alte tipuri de dispozitive includ:
- ADC.
- DAC.
- bliț.
- EEPROM.
- Accellerometre.
- LCD-uri.
- temperatura & senzori de umiditate.
- …și multe altele.
Itsonly o altă concurență reală este autobuzul I2C, motiv pentru care vedeți adesea aceste interfețe atât disponibile pe procesoare, cât și pe microcontrolere. interfața SPI a fost proiectată în anii 1970 de Motorola, care a folosit-o în procesorul lor 68000 și a fost rapid adoptată de mulți alți producători ca standard defacto.,
Este destinat fortransmission de date de la un dispozitiv master la una sau mai multe slavedevices pe distanțe scurte și la viteze mari (MHz).
cum funcționează
Acesta funcționează prin transferul de date un bit la un moment dat între două dispozitive cu dispozitivul principal trimiterea semnalului de ceas (SCK). Ceasul controlează momentul transferului de date.datele (MOSI) sunt trimise dintr-un registru de schimbare în dispozitivul SPI principal împreună cu un semnal de ceas (SCK), în timp ce un alt registru de schimbare primește date de la slave (MISO,).,
Maestrul este întotdeauna în control și inițiază transferul de date folosind semnalul de ceas. Dispozitivele Slave sunt selectate folosind un semnal separat de selectare slave care este controlat de software, adică acele semnale sunt separate de modulul hardware SPI.
notă: numărul de biți nu este definit de protocol, astfel încât să nu se limitează la utilizarea numai 8 – poate fi orice număr de biți. Acest lucru este util atunci când daisy înlănțuirea sclavi SPI ca ai nevoie pentru a seta numărul de biți la suma tuturor biți cerute de fiecare dispozitiv.,
notă: SPI definește un singur sistem master.
protocolul alternativ, IIC, permite operarea mai multor magistrale.
definiția ceasului interfeței SPI
ceasul SPI nu este definit deloc – ceea ce înseamnă că diferite dispozitive slave pot presupune o funcționare diferită a ceasului; un slave poate necesita un ceas inactiv care este ridicat, în timp ce altul poate necesita o stare inactivă scăzută. Alții vor reacționa la marginea în creștere, în timp ce alții reacționează la marginea care se încadrează!,
interfața SPI protocl se descurcă cu acest lucru, permițându-vă să programați aceste detalii la modulul hardware SPI.următoarea imagine arată interfața PIC pentru SPI (toate modulele hardware SPI din alte microcontrolere vor permite aceeași operație folosind doar registre diferite).,
SPI Interface PIC semnale (extras din POZA datasheet DS39582B)
Acesta este de până la tine pentru a seta corect ceas pentru tine dispozitiv atunci când este activat de un sclav selectați semnal (sau, în cazul unui singur sclav este întotdeauna selectat astfel încât nu va fi nici sclav selectați semnal).
Arduino SPI Conexiune
următoarea diagramă arată interfața SPI conexiuni care, de asemenea, se întâmplă să fie de programare conector (ICSP), de pe placa Arduino, care permite programarea directă a ATmega328p.,p>
5 – Reset
6 – GND
Location of the SPI connector on Arduino Uno R3
Photo Credit : kenming_wang (mod shows ICSP)
Different SPI Interface operational Modes
There are three ways of using the SPI interface
- Single Master – Single Slave.,
- singur maestru-mai multe sclavi-cip selectat.
- un singur maestru-mai mulți sclavi-dasiy înlănțuit.
singur maestru – singur Sclav.
Aici este de configurare pentru un singur SPI dispozitiv de conectare:
Notă: cip selectați semnal SS este opțională pentru un singur dispozitiv, ca în mod normal, veți lega SSinput la sclav scăzută (dacă celelalte linii sunt dedicate pentru a SPI utilizare).,
SIP Interfata: Folosind cip selectează
Cu acest sistem puteți controla fiecare dispozitiv sclav usingits chip select linie (de obicei activ low – săgețile roșii arată controllines). Când este dezactivat, ieșirea de date din lave intră într-o stare de impedanță ridicată, astfel încât să nu interfereze cu sclavul selectat în prezent, iar intrarea datelor sclavului este ignorată (checkdatasheet).,
avantajul acestei scheme este că puteți lua în considerare (controla) fiecare dispozitivseparat atunci când îl comparați cu metoda lanțului daisy – permițând conectarea dispozitivelor SPI care necesită scheme de ceas diferite.
Dacă aveți sclavi SPI care funcționează folosind diferite ceasuri (margini/stări inactive), puteți reprograma modulul hardware master SPI înainte de a activa un CS specific, astfel încât fiecare sclav să aibă semnalele corecte trimise către acesta.
dacă utilizați metoda lanțului Daisy, atunci trebuie să vă asigurați că toate jetoanele utilizează aceeași margine de ceas și aceeași stare de ceas inactiv.,
SPIInterface: Daisy înlănțuire
cu această schemă toate datele trimise de master este mutat în toate dispozitivele și toate datele trimise de la fiecare dispozitiv este mutat la următorul (indicat de săgeată punctată roșu). Pentru ca această schemă să funcționeze, trebuie să vă asigurați că fiecare sclav folosește ceasul în același mod și trebuie să obțineți numărul corect de biți, deci există mai multe lucruri de făcut în software.
notă: avantajul metodei Daisy-lanț este că salvați un semnal de selectare cip pentru fiecare dispozitiv SPI slave.mai multe informații pe Wikipedia.,
SPI Interface Daisy Chain
SPI Daisy Chain Exemplu
Folositi mai multe HC595 chips-uri, daisy-chain legate, oferind o ușoară creștere în numărul de ieșiri disponibile, fără a utiliza mai multe microcontroler pini.limitele de funcționare sunt viteza HC, viteza ieșirii SPI. De asemenea, luarea în considerare a designului, de exemplu, dacă conduceți un set de LED-uri care trebuie actualizate la fiecare 20ms.
paralel Versus Serial SPI
compromisul dintre utilizarea unei interfețe paralele și interfața SPI este viteza de ex., dacă citești o paralelă 12 biți ADC la 200ksps atunci ai putea citi dispozitiv ata 200kHz rata, dar dacă doriți să obțineți aceeași rată de date folosind SPI apoi nevoie de o serie de viteza de 200kHz x 12 = 2.4 MHz. Deci, schimbul efectiv este viteza și zgomotul rezultat introdus în circuit.
rezumat
interfața SPI definește un protocol foarte popular care funcționează la viteză mare. Principala problemă este că dispozitivele slave nu sunt legate de nicio schemă specială de pontaj, astfel încât acestea să funcționeze diferit unul față de celălalt și care le poate face dificilă controlul, adică., ceasul inactiv și marginea trebuie setate corect pentru fiecare dispozitiv.
avantaje:
- de mare viteză.
- Exremely interfață simplă, care este ușor de reprodus în software-ul.
dezavantaje:
- cipurile Slave sunt libere să adopte orice schemă de pontaj de care au nevoie.