Comprensione del protocollo di comunicazione SPI in Embedded

Prova Il Nostro Strumento Per Eliminare I Problemi





La comunicazione gioca un ruolo essenziale nella progettazione del sistema embedded. Senza andare ai protocolli, l'espansione periferica è altamente complessa e richiede un elevato consumo di energia. Il sistema incorporato fondamentalmente utilizza la comunicazione seriale per comunicare con le periferiche.
Esistono molti protocolli di comunicazione seriale, come UART, CAN, USB, I2C e SPI. Il seriale protocollo di comunicazione le caratteristiche includono alta velocità e bassa perdita di dati. Semplifica la progettazione a livello di sistema e garantisce un trasferimento dati affidabile.

Comunicazione seriale dei dati

Le informazioni codificate elettricamente sono chiamate dati seriali, che vengono trasmessi bit per bit da un dispositivo all'altro attraverso una serie di protocolli. Nel sistema integrato, i dati dei sensori e degli attuatori di controllo vengono ricevuti o trasmessi ai dispositivi di controllo come i microcontrollori in modo che i dati vengano ulteriormente analizzati ed elaborati. Poiché i microcontrollori lavorano con i dati digitali, le informazioni provenienti da sensori analogici , gli attuatori e altre periferiche vengono convertiti in una parola binaria di un byte (8 bit) prima di essere trasmessi al microcontrollore.




Comunicazione seriale dei dati

Comunicazione seriale dei dati

Questi dati seriali vengono trasmessi rispetto a determinati impulsi di clock. La velocità di trasmissione dei dati viene definita velocità di trasmissione. Il numero di bit di dati che possono essere trasmessi al secondo viene chiamato velocità di trasmissione. Supponiamo che i dati siano di 12 byte, quindi ogni byte viene convertito in 8 bit in modo che la dimensione totale della trasmissione dei dati sia di circa 96 bit / sec dei dati (12 byte * 8 bit per byte). Se i dati possono essere trasmessi una volta al secondo, le velocità di trasmissione sono di circa 96 bit / sec o 96 baud. La schermata del display aggiorna il valore dei dati una volta al secondo.



Nozioni di base sull'interfaccia periferica seriale

La comunicazione SPI sta per interfaccia periferica seriale protocollo di comunicazione , sviluppato da Motorola nel 1972. L'interfaccia SPI è disponibile su comuni controller di comunicazione come PIC, AVR e Controller ARM , ecc. Ha un collegamento dati di comunicazione seriale sincrono che opera in full duplex, il che significa che i segnali di dati trasportano simultaneamente in entrambe le direzioni.

Il protocollo SPI è costituito da quattro fili come MISO, MOSI, CLK, SS utilizzati per la comunicazione master / slave. Il master è un microcontrollore e gli slave sono altre periferiche come i sensori, Modem GSM e modem GPS, ecc. Gli slave multipli sono interfacciati al master tramite un bus seriale SPI. Il protocollo SPI non supporta la comunicazione Multi-master e viene utilizzato per una breve distanza all'interno di un circuito stampato.

Nozioni di base sull

Nozioni di base sull'interfaccia periferica seriale

Linee SPI

MISO (Master in Slave out) : La linea MISO è configurata come ingresso in un dispositivo master e come uscita in un dispositivo slave.


MOSI (Master out Slave in) : Il MOSI è una linea configurata come uscita in un dispositivo master e come ingresso in un dispositivo slave in cui viene utilizzata per sincronizzare il movimento dei dati.

SCK (orologio seriale) : Questo segnale è sempre pilotato dal master per il trasferimento dati sincrono tra il master e lo slave. Viene utilizzato per sincronizzare il movimento dei dati sia in entrata che in uscita attraverso le linee MOSI e MISO.

SS (Slave Select) e CS (Chip Select) : Questo segnale è guidato dal master per selezionare i singoli slave / dispositivi periferici. È una linea di ingresso utilizzata per selezionare i dispositivi slave.

Comunicazione Master Slave con SPI Serial Bus

Implementazione SPI Single Master e Single Slave

Qui, la comunicazione è sempre avviata dal master. Il dispositivo master configura prima la frequenza di clock che è inferiore o uguale alla frequenza massima supportata dal dispositivo slave. Il master seleziona quindi lo slave desiderato per la comunicazione trascinando la linea di selezione del chip (SS) di quel particolare dispositivo slave per passare allo stato basso e attivo. Il master genera le informazioni sulla linea MOSI che trasporta i dati dal master allo slave.

Comunicazione Master Slave

Comunicazione Master Slave

Implementazioni con master singolo e slave multipli

Questa è una configurazione più slave con un master e più slave tramite il bus seriale SPI. I molteplici slave sono collegati in parallelo al dispositivo master con il bus seriale SPI. Qui, tutte le linee di clock e le linee di dati sono collegate insieme, ma il pin di selezione del chip da ciascun dispositivo slave deve essere collegato a un pin di selezione slave separato sul dispositivo maser.

Singolo Master e più Slave

Singolo Master e più Slave

In questo processo, il controllo di ogni dispositivo slave viene eseguito da una linea di selezione del chip (SS). Il pin di selezione del chip si abbassa per attivare il dispositivo slave e diventa alto per disabilitare il dispositivo slave.

Il trasferimento dei dati è organizzato utilizzando i registri a scorrimento su entrambi i dispositivi master e slave con una data dimensione di parola di circa 8 bit e 16 bit, rispettivamente. Entrambi i dispositivi sono collegati in una forma ad anello in modo che il valore del registro a scorrimento maser venga trasmesso attraverso la linea MOSI, quindi lo slave sposta i dati nel suo registro a scorrimento. I dati vengono solitamente spostati prima con MSB e spostando il nuovo LSB nello stesso registro.

Trasferimento dati tra Master e Slave

Trasferimento dati tra Master e Slave

Significato della polarità e della fase dell'orologio

Generalmente la trasmissione e la ricezione dei dati viene eseguita rispetto agli impulsi di clock sui fronti di salita e di discesa. I microcontrollori avanzati hanno due frequenze: frequenza interna e frequenza esterna. Le periferiche SPI potrebbero essere aggiunte condividendo le linee MISO, MOSI e SCLK. Le periferiche sono di diversi tipi o velocità come ADC, DAC, ecc. Quindi è necessario modificare le impostazioni SPCR tra i trasferimenti a diverse periferiche.

Registro SPCR

Registro SPCR

Il bus SPI opera in una delle 4 diverse modalità di trasferimento con una polarità di clock (CPOL) e una fase di clock (CPHA) che definisce un formato di clock da utilizzare. La polarità del clock e le velocità di clock della fase dipendono dal dispositivo periferico che si sta tentando di comunicare con il master.
CPHA = 0, CPOL = 0: il primo bit inizia come segnale inferiore - i dati vengono campionati sul fronte di salita e i dati cambiano sul fronte di discesa.

CPHA = 0, CPOL = 1: il primo bit inizia con un clock inferiore - i dati vengono campionati sul fronte di discesa e i dati cambiano sul fronte di salita.

CPHA = 1, CPOL = 0: Il primo bit inizia con un clock più alto - i dati vengono campionati sul fronte di discesa e i dati cambiano sul fronte di salita.

CPHA = 1, CPOL = 1: il primo bit inizia con un clock più alto - i dati vengono campionati sul fronte di salita e i dati cambiano sul fronte di discesa.

Orari del bus SPI

Orari del bus SPI

Protocollo di comunicazione SPI

Molti microcontrollori hanno protocolli SPI integrati che gestiscono tutti i dati di invio e ricezione. Qualsiasi operazione in modalità dati (R / W) è controllata da un registro di controllo e di stato del protocollo SPI. Qui è possibile osservare l'interfaccia EEPROM al microcontrollore PIC16f877a tramite il protocollo SPI.

Qui, 25LC104 EEROM è una memoria da 131072 byte in cui il microcontrollore trasferisce due byte di dati al Memoria EEROM tramite un bus seriale SPI. Di seguito viene fornito il programma per questa interfacciamento.

Comunicazione da Master a Slave tramite bus seriale SPI

Comunicazione da Master a Slave tramite bus seriale SPI

#includere
Sbit SS = RC ^ 2
Sbit SCK = RC ^ 3
Sbit SDI = RC ^ 4
Sbit SDO = RC ^ 5
Void inizializza 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
}

Vantaggi del protocollo SPI

  • È una comunicazione full duplex.
  • È un bus dati ad alta velocità da 10 MHz.
  • Non è limitato a 8 bit durante il trasferimento
  • L'interfacciamento hardware è semplice tramite SPI.
  • Slave utilizza un master clock e non necessita di preziosi oscillatori.

Questo riguarda le comunicazioni SPI e le sue interfacciarsi con un microcontrollore . Apprezziamo il tuo vivo interesse e attenzione per questo articolo e quindi anticipiamo il tuo punto di vista su questo articolo. Inoltre, per qualsiasi codifica di interfacciamento e assistenza, potete richiederci commentando di seguito.

Crediti fotografici:

  • Comunicazione seriale dei dati da parte di glowscotland
  • Nozioni di base sull'interfaccia periferica seriale di ni
  • Master singolo e più slave di mangiare
  • Trasferimento dati tra Master e Slave tramite engineergarage
  • Orari del bus SPI di massimizzato