Cuprins:

BAZELE PROTOCOLULUI DE COMUNICARE SPI: 13 pași
BAZELE PROTOCOLULUI DE COMUNICARE SPI: 13 pași

Video: BAZELE PROTOCOLULUI DE COMUNICARE SPI: 13 pași

Video: BAZELE PROTOCOLULUI DE COMUNICARE SPI: 13 pași
Video: Microcontrolere, curs 10 - comunicatii SPI si senzorul accelerometric 2024, Iulie
Anonim
BAZELE PROTOCOLULUI DE COMUNICARE SPI
BAZELE PROTOCOLULUI DE COMUNICARE SPI

Când conectați un microcontroler la un senzor, afișaj sau alt modul, vă gândiți vreodată la modul în care cele două dispozitive vorbesc între ele? Ce anume spun? Cum sunt capabili să se înțeleagă?

Comunicarea între dispozitive electronice este ca și comunicarea între oameni. Ambele părți trebuie să vorbească aceeași limbă. În electronică, aceste limbaje se numesc protocoale de comunicare. Din fericire pentru noi, există doar câteva protocoale de comunicare pe care trebuie să le cunoaștem atunci când construim majoritatea proiectelor de electronice DIY. În această serie de articole, vom discuta elementele de bază ale celor mai frecvente trei protocoale: interfață serială periferică (SPI), circuit inter-integrat (I2C) și comunicare condusă de receptorul / transmițătorul asincron universal (UART). În primul rând, vom începe cu câteva concepte de bază despre comunicarea electronică, apoi vom explica în detaliu cum funcționează SPI. În articolul următor, vom discuta despre comunicarea bazată pe UART, iar în al treilea articol, ne vom scufunda în I2C. SPI, I2C și UART sunt mult mai lente decât protocoalele precum USB, Ethernet, Bluetooth și WiFi, dar sunt mult mai simple și utilizează mai puține resurse hardware și de sistem. SPI, I2C și UART sunt ideale pentru comunicarea între microcontrolere și între microcontrolere și senzori în care nu este nevoie să fie transferate cantități mari de date de mare viteză.

Pasul 1: SERIAL VS. COMUNICAREA PARALELĂ

SERIAL VS. COMUNICAREA PARALELĂ
SERIAL VS. COMUNICAREA PARALELĂ

Dispozitivele electronice vorbesc între ele prin trimiterea de biți de date prin fire conectate fizic între dispozitive. Un bit este ca o literă într-un cuvânt, cu excepția locului celor 26 de litere (în alfabetul englezesc), un bit este binar și poate fi doar 1 sau 0. Biții sunt transferați de la un dispozitiv la altul prin schimbări rapide de tensiune. Într-un sistem care funcționează la 5 V, un bit 0 este comunicat ca un impuls scurt de 0 V, iar un bit este comunicat printr-un impuls scurt de 5 V.

Biții de date pot fi transmise fie în paralel, fie sub formă de serie. În comunicare paralelă, biții de date sunt trimiși în același timp, fiecare printr-un fir separat. Următoarea diagramă arată transmisia paralelă a literei „C” în binar (01000011):

Pasul 2:

În comunicarea în serie, biții sunt trimiși unul câte unul printr-un singur fir. Următoarea diagramă arată transmiterea în serie a literei „C” în binar (01000011):

Pasul 3:

Imagine
Imagine

Pasul 4: INTRODUCERE ÎN COMUNICAREA SPI

INTRODUCERE ÎN COMUNICAREA SPI
INTRODUCERE ÎN COMUNICAREA SPI

SPI este un protocol comun de comunicare utilizat de mai multe dispozitive diferite. De exemplu, modulele de card SD, modulele de citire a cardurilor RFID și emițătoarele / receptoarele fără fir de 2,4 GHz utilizează toate SPI pentru a comunica cu microcontrolerele.

Un avantaj unic al SPI este faptul că datele pot fi transferate fără întrerupere. Orice număr de biți poate fi trimis sau primit într-un flux continuu. Cu I2C și UART, datele sunt trimise în pachete, limitate la un anumit număr de biți. Condițiile de pornire și oprire definesc începutul și sfârșitul fiecărui pachet, astfel încât datele sunt întrerupte în timpul transmiterii. Dispozitivele care comunică prin SPI se află într-o relație stăpân-sclav. Masterul este dispozitivul de control (de obicei un microcontroler), în timp ce sclavul (de obicei un senzor, afișaj sau cip de memorie) preia instrucțiuni de la master. Cea mai simplă configurație a SPI este un singur master, un singur sistem slave, dar un master poate controla mai mult de un slave (mai multe despre acest lucru mai jos).

Pasul 5:

Imagine
Imagine

Pasul 6:

MOSI (Master Output / Slave Input) - Linie pentru master pentru a trimite date către slave.

MISO (Master Input / Slave Output) - Linie pentru ca sclavul să trimită date către master.

SCLK (Clock) - Linie pentru semnalul de ceas.

SS / CS (Slave Select / Chip Select) - Linie pentru master pentru a selecta către care slave să trimită date

Pasul 7:

Imagine
Imagine

* În practică, numărul de sclavi este limitat de capacitatea de încărcare a sistemului, ceea ce reduce capacitatea comandantului de a comuta cu precizie între nivelurile de tensiune.

Pasul 8: CUM FUNCȚIONEAZĂ SPI

CEASUL

Semnalul de ceas sincronizează ieșirea de biți de date de la master la eșantionarea de biți de către sclav. Un bit de date este transferat în fiecare ciclu de ceas, astfel încât viteza de transfer de date este determinată de frecvența semnalului de ceas. Comunicarea SPI este întotdeauna inițiată de master, deoarece masterul configurează și generează semnalul de ceas.

Orice protocol de comunicare în care dispozitivele partajează un semnal de ceas este cunoscut sub numele de sincron. SPI este un protocol de comunicare sincron. Există, de asemenea, metode asincrone care nu utilizează un semnal de ceas. De exemplu, în comunicația UART, ambele părți sunt setate la o rată de baud pre-configurată care dictează viteza și calendarul transmiterii datelor.

Semnalul de ceas din SPI poate fi modificat folosind proprietățile polarității ceasului și a fazei ceasului. Aceste două proprietăți funcționează împreună pentru a defini când sunt ieșiți biții și când sunt eșantionați. Polaritatea ceasului poate fi setată de master pentru a permite ieșirea și eșantionarea biților fie pe marginea ascendentă, fie pe cea descendentă a ciclului de ceas. Faza de ceas poate fi setată pentru ca ieșirea și eșantionarea să aibă loc fie pe prima margine, fie pe a doua margine a ciclului de ceas, indiferent dacă este în creștere sau în scădere.

SLAVE SELECT

Stăpânul poate alege cu care sclav dorește să vorbească prin setarea liniei CS / SS a sclavului la un nivel de tensiune scăzută. În starea de repaus, care nu transmite, linia de selectare a sclavului este menținută la un nivel de tensiune ridicată. Mai multe pini CS / SS pot fi disponibile pe master, ceea ce permite conectarea mai multor sclavi în paralel. Dacă este prezent un singur pin CS / SS, mai mulți sclavi pot fi conectați la master prin înlănțuire.

MULTI SCLAVI SPI

poate fi configurat pentru a funcționa cu un singur master și un singur slave și poate fi configurat cu mai mulți sclavi controlați de un singur master. Există două moduri de a conecta mai mulți sclavi la master. Dacă masterul are mai mulți pini de selectare a sclavilor, sclavii pot fi conectați în paralel astfel:

Pasul 9:

Imagine
Imagine

Pasul 10:

MOSI ȘI MISO

Maestrul trimite date către sclav bit cu bit, în serie prin linia MOSI. Sclavul primește datele trimise de la comandă la pinul MOSI. Datele trimise de la comandant către sclav sunt de obicei trimise mai întâi cu cel mai semnificativ bit. De asemenea, sclavul poate trimite date înapoi către master prin linia MISO în serie. Datele trimise de la sclav înapoi către comandant sunt de obicei trimise mai întâi cu bitul cel mai puțin semnificativ. ETAPE DE TRANSMISIE DE DATE SPI 1. Masterul emite semnalul de ceas:

Pasul 11:

Imagine
Imagine

Dacă este disponibil un singur pin de selecție a sclavilor, sclavii pot fi în lanțuri în felul acesta:

Pasul 12:

Imagine
Imagine
Imagine
Imagine
Imagine
Imagine
Imagine
Imagine

MOSI ȘI MISO

Maestrul trimite date către sclav bit cu bit, în serie prin linia MOSI. Sclavul primește datele trimise de la comandă la pinul MOSI. Datele trimise de la comandant către sclav sunt de obicei trimise mai întâi cu cel mai semnificativ bit.

De asemenea, sclavul poate trimite date înapoi către master prin linia MISO în serie. Datele trimise de la sclav înapoi către comandant sunt de obicei trimise mai întâi cu bitul cel mai puțin semnificativ.

ETAPE DE TRANSMISIE DE DATE SPI

* Notă Imaginile sunt Oboe listate pe care le puteți distinge cu ușurință

1. Masterul emite semnalul ceasului:

2. Masterul comută pinul SS / CS la o stare de joasă tensiune, care activează sclavul:

3. Maestrul trimite datele câte un bit pe rând către sclav de-a lungul liniei MOSI. Sclavul citește biții pe măsură ce sunt primiți:

4. Dacă este necesar un răspuns, sclavul returnează date un bit pe rând către master de-a lungul liniei MISO. Maestrul citește biții pe măsură ce sunt primiți:

Pasul 13: AVANTAJE ȘI DEZVANTAJELE SPI

Există câteva avantaje și dezavantaje în utilizarea SPI și, dacă vi se oferă alegerea între diferite protocoale de comunicații, ar trebui să știți când să utilizați SPI în conformitate cu cerințele proiectului dumneavoastră:

AVANTAJE

Fără biți de pornire și oprire, astfel încât datele pot fi transmise în flux continuu fără întrerupere. timp

DEZAVANTAJE

Folosește patru fire (I2C și UART utilizează două) Nicio recunoaștere a faptului că datele au fost primite cu succes (I2C are acest lucru) Nicio formă de verificare a erorilor, cum ar fi bitul de paritate din UART Permite doar un singur master Sperăm că acest articol vă oferă o mai bună înțelegere din SPI. Continuați cu partea a doua a acestei serii pentru a afla despre comunicarea bazată pe UART sau la partea a treia, unde discutăm protocolul I2C.

Dacă aveți întrebări, nu ezitați să le adresați în secțiunea de comentarii, suntem aici pentru a vă ajuta. Și asigurați-vă că urmați

Cu respect: M. Junaid

Recomandat: