Înțelegerea despre Protocolul de comunicare SPI în Embedded

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





Comunicarea joacă un rol esențial în proiectarea sistemului încorporat. Fără a merge la protocoale, expansiunea periferică este extrem de complexă și consumă multă energie. sistem incorporat utilizează practic comunicarea în serie pentru a comunica cu perifericele.
Există multe protocoale de comunicații seriale, cum ar fi comunicarea UART, CAN, USB, I2C și SPI. Serialul protocol de comunicare caracteristicile includ viteza mare și pierderea redusă a datelor. Face mai ușoară proiectarea la nivel de sistem și asigură un transfer de date fiabil.

Comunicarea datelor seriale

Informațiile codate electric se numesc date seriale, care sunt transmise bit cu bit de la un dispozitiv la altul printr-un set de protocoale. În sistemul încorporat, senzorii de control și datele actuatorilor sunt recepționate sau transmise dispozitivelor de control, cum ar fi microcontrolerele, astfel încât datele să fie analizate și prelucrate în continuare. Pe măsură ce microcontrolerele funcționează cu datele digitale, informațiile din senzori analogici , dispozitivele de acționare și alte periferice sunt convertite într-un cuvânt binar pe un octet (8 biți) înainte de a fi transmis microcontrolerului.




Comunicarea datelor seriale

Comunicarea datelor seriale

Aceste date seriale sunt transmise cu privire la anumite impulsuri de ceas. Rata de transmitere a datelor este denumită rată de transmisie. Numărul de biți de date care pot fi transmiși pe secundă se numește baud rate. Să presupunem că datele sunt de 12 octeți, apoi fiecare octet este convertit în 8 biți, astfel încât dimensiunea totală a transmisiei de date să fie de aproximativ 96 biți / sec de date (12 biți * 8 biți per octet). Dacă datele pot fi transmise o dată pe secundă, ratele baud sunt în jur de 96 biți / sec sau 96 baud. Ecranul de afișare reîmprospătează valoarea datelor o dată pe secundă.



Elementele de bază ale interfeței periferice seriale

Comunicarea SPI înseamnă interfață periferică serială protocol de comunicare , care a fost dezvoltat de Motorola în 1972. Interfața SPI este disponibilă pe controlere de comunicații populare precum PIC, AVR și Controler ARM , etc. Are o legătură de date de comunicație serială sincronă care funcționează în full duplex, ceea ce înseamnă că semnalele de date poartă simultan ambele direcții.

Protocolul SPI este format din patru fire, cum ar fi MISO, MOSI, CLK, SS utilizate pentru comunicarea master / slave. Maestrul este un microcontroler, iar sclavii sunt alte periferice, cum ar fi senzorii, Modem GSM și modem GPS etc. Sclavii multipli sunt interfațați la master printr-o magistrală serial SPI. Protocolul SPI nu acceptă comunicarea multi-master și este utilizat pentru o distanță scurtă în interiorul unei plăci de circuite.

Elementele de bază ale interfeței periferice seriale

Elementele de bază ale interfeței periferice seriale

Linii SPI

MISO (Master in Slave out) : Linia MISO este configurată ca intrare într-un dispozitiv master și ca ieșire într-un dispozitiv slave.


MOSI (Master out Slave in) : MOSI este o linie configurată ca ieșire într-un dispozitiv master și ca intrare într-un dispozitiv slave în care este utilizată pentru a sincroniza mișcarea datelor.

SCK (ceas serial) : Acest semnal este acționat întotdeauna de master pentru transferul sincron de date între master și slave. Este folosit pentru a sincroniza mișcarea datelor atât în ​​interior cât și în exterior, prin liniile MOSI și MISO.

SS (Slave Select) și CS (Chip Select) : Acest semnal este condus de comandant pentru a selecta sclavi individuali / dispozitive periferice. Este o linie de intrare utilizată pentru a selecta dispozitivele slave.

Comunicare Master Slave cu SPI Serial Bus

Implementare SPI Single Master și Single Slave

Aici, comunicarea este întotdeauna inițiată de către maestru. Dispozitivul principal configurează mai întâi frecvența ceasului care este mai mică sau egală cu frecvența maximă pe care o acceptă dispozitivul sclav. Maestrul selectează apoi sclavul dorit pentru comunicare trăgând linia de selectare a cipului (SS) a acelui dispozitiv sclav special pentru a intra în stare scăzută și activă. Masterul generează informații pe linia MOSI care transportă datele de la master la slave.

Comunicare Master Slave

Comunicare Master Slave

Implementări pentru un singur maestru și mai multe sclave

Aceasta este o configurație multiplă cu un singur master și mai mulți sclavi prin magistrala serial SPI. Sclavii multipli sunt conectați în paralel cu dispozitivul master cu magistrala serial SPI. Aici, toate liniile de ceas și liniile de date sunt conectate împreună, dar pinul de selectare a cipului de la fiecare dispozitiv slave trebuie să fie conectat la un pin separat de selectare a dispozitivului maser.

Single Master și mai mulți sclavi

Single Master și mai mulți sclavi

În acest proces, controlul fiecărui dispozitiv sclav este realizat de o linie de selectare a cipului (SS). Pinul de selectare a cipului scade pentru a activa dispozitivul sclav și se ridică pentru a dezactiva dispozitivul sclav.

Transferul de date este organizat utilizând registrele de schimbare atât pe dispozitivele master, cât și pe dispozitivele slave, cu o dimensiune dată a cuvântului de aproximativ 8 biți și respectiv 16 biți. Ambele dispozitive sunt conectate într-o formă de inel, astfel încât valoarea registrului de schimbare maser este transmisă prin linia MOSI, iar apoi sclavul schimbă datele în registrul său de schimbare. Datele sunt de obicei mutate cu MSB mai întâi și mutând LSB nou în același registru.

Transfer de date între Master și Slave

Transfer de date între Master și Slave

Semnificația polarității și fazei ceasului

În general, transmiterea și recepția datelor se efectuează cu privire la impulsurile ceasului la marginile ascendente și marginile descendente. Microcontrolerele avansate au două frecvențe: frecvența internă și frecvența externă. Perifericele SPI ar putea fi adăugate prin partajarea liniilor MISO, MOSI și SCLK. Perifericele sunt de diferite tipuri sau viteze, cum ar fi ADC, DAC, etc. Prin urmare, trebuie să schimbăm setările SPCR între transferuri către diferite periferice.

Registrul SPCR

Registrul SPCR

Autobuzul SPI funcționează într-unul dintre cele 4 moduri de transfer diferite, cu o polaritate de ceas (CPOL) și o fază de ceas (CPHA) care definește un format de ceas care trebuie utilizat. Polaritatea ceasului și rata de ceas de fază depind de dispozitivul periferic pe care încercați să îl comunicați cu masterul.
CPHA = 0, CPOL = 0: primul bit începe ca un semnal inferior - datele sunt eșantionate la marginea ascendentă și datele se schimbă la marginea descendentă.

CPHA = 0, CPOL = 1: primul bit începe cu un ceas inferior - datele sunt eșantionate la marginea descendentă și datele se schimbă la marginea ascendentă.

CPHA = 1, CPOL = 0: primul bit începe cu un ceas mai mare - datele sunt eșantionate la marginea descendentă și datele se schimbă la marginea ascendentă.

CPHA = 1, CPOL = 1: primul bit începe cu un ceas mai mare - datele sunt eșantionate la marginea ascendentă, iar datele se modifică la marginea descendentă.

Timpurile SPI Bus

Timpurile SPI Bus

Protocol de comunicare SPI

Multe microcontrolere au protocoale SPI încorporate care gestionează toate datele de trimitere și primire. Oricare dintre operațiunile în modul de date (R / W) este controlată de un registru de control și stare al protocolului SPI. Aici puteți observa interfața EEPROM a microcontrolerului PIC16f877a prin protocolul SPI.

Aici, 25LC104 EEROM este o memorie de 131072 octeți în care microcontrolerul transferă doi octeți de date către Memorie EEROM printr-o magistrală serial SPI. Programul pentru această interfață este dat mai jos.

Comunicare master-slave prin magistrala serial SPI

Comunicare master-slave prin magistrala serial SPI

#include
Sbit SS = RC ^ 2
Sbit SCK = RC ^ 3
Sbit SDI = RC ^ 4
Sbit SDO = RC ^ 5
Anulați inițializarea EEROM ()
Void main ()
{
SSPSPAT = 0x00
SSPCON = 0x31
SMP = 0
SCK = 0
SDO = 0
SS = 1
EE_adress = 0x00
SPI_write (0x80)
SPI_write (1234)
SS = 0
}

Avantajele protocolului SPI

  • Este o comunicare full duplex.
  • Este magistrala de date de mare viteză de 10 MHz.
  • Nu se limitează la 8 biți în timpul transferului
  • Interfața hardware este simplă prin SPI.
  • Slave folosește un ceas master și nu are nevoie de oscilatoare prețioase.

Aceasta este totul despre comunicațiile SPI și despre acestea interfață cu un microcontroler . Apreciem interesul și atenția dvs. pentru acest articol și, prin urmare, vă anticipăm punctul de vedere cu privire la acest articol. În plus, pentru orice codare și asistență de interfață, ne puteți întreba comentând mai jos.

Credite foto:

  • Comunicarea datelor seriale de către glowscotland
  • Elementele de bază ale interfeței periferice seriale de către ni
  • Single Master și mai mulți sclavi de mânca
  • Transfer de date între Master și Slave prin ingineri garaj
  • SPI Timpuri de autobuz de maximintegrat