Protocollo SPI

Introduzione

Il protocollo di comunicazione seriale RS232 è definito asincrono perché tra i due sistemi coinvolti nella comunicazione non c’è un clock comune e quindi per rendere la comunicazione più affidabile si aggiungono ai dati trasmessi dei bit di controllo.

In questo articolo descriveremo, invece, il protocollo SPI,  esso è definito sincrono, poiché’ la comunicazione tra i due dispositivi, definiti Master e Slave,  a differenza del protocollo RS232 , c’è un clock comune, generato dal master, che determina la velocità di comunicazione e l’istante di campionamento del dato, questo processo verrà descritto in seguito.

Il protocollo SPI fu’ originariamente introdotto dall’ azienda Motorola, ora Freescale gruppo NXP, per la gestione della comunicazione tra i propri microcontrollori e microprocessori.

A differenza dello standard I2C ideato dalla Philips, l’interfaccia SPI non è stata mai standardizzata; ciononostante è divenuta di fatto uno standard.  Il protocollo di comunicazione SPI oltre ad essere sincrono è anche full duplex cioè  entrambi i sistemi (Master e Slave)  possono trasferire i propri dati contemporaneamente.

Descrizione del protocollo SPI

L’interfaccia di comunicazione prevede l’utilizzo di 4 segnali:

  • MISO: Master Input Slave Output
  • MOSI: Master Output Slave Input
  • SCLK: Serial Clock (clock generato dal master)
  • SS: Slave Select

Nella Figura 1 è riportato lo schema a blocchi, con indicazione della provenienza del segnale

Figura 1

Il protocollo SPI,  può avere  un solo Master e più Slave.  Il Master per selezionare la periferica con la quale vuole instaurare la comunicazione,  attiva il segnale SS  ad essa connessa prima del trasferimento dati.

Quando lo Slave non è selezionato, il segnale SS è nello stato alto, e la sua uscita MISO deve essere posta in alta impedenza per evitare conflitti sul bus.

Figura 2

Come accennato in precedenza, il protocollo SPI è sincrono, il Master e lo Slave , coinvolti nella comunicazione hanno un clock comune, generato dal Master,   che sincronizza tutte le acquisizioni di dati, in questo modo abbiamo un sistema più affidabile.

Il timing della comunicazione è riportato in Figura 3.

Figura 3

Il primo segnale che il Master deve attivare è la selezione dello Slave con il quale vuole comunicare, di seguito attiva il clock  con i dati da trasferire. Lo Slave  legge i dati su  bus sul fronte di salita del clock ,  al temine del trasferimento dei dati, se il Master ha richiesto una risposta, lo Slave pone i dati sul bus ad ogni fronte di salita del clock.

Il protocollo SPI può essere rappresentato come due shift register (registri a scorrimento) che si scambiano dei dati e lo scorrimento dei registri è attivato dal fronte di salita del clock.

Una rappresentazione , seppur semplicistica, del principio di funzionamento è riportata in Figura 4

Figura 4

Nella descrizione del principio di funzionamento  del protocollo SPI, sopra riportata , abbiamo considerato il trasferimento di solo 8 bit per volta e la sincronizzazione sul fronte di salita del clock, in effetti, queste caratteristiche, solitamente, possono essere configurate tramite dei registri interni al microcontrollore, per esempio, possiamo decidere di sincronizzare i dati sul fronte di discesa del clock e/o trasferire 16 bit per volta.

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Ti sei iscritto alla newsletter

There was an error while trying to send your request. Please try again.

Quattrodispositivi utilizzerà le informazioni fornite in questo modulo per restare in contatto con te e fornire aggiornamenti del sito