domenica, Ottobre 6, 2024
HomeElectronic LabCosa è e come funziona il protocollo SPI

Cosa è e come funziona il protocollo SPI

4
(2)

SPI, o Serial Peripheral Interface (interfaccia periferica seriale), è uno dei protocolli di comunicazione più diffusi, tipicamente implementato nei microcontrollori e comunemente utilizzato per interagire con i dispositivi periferici (sensori, display, ecc.).

SPI è un protocollo di comunicazione sincrono, vale a dire che dispone di una linea di clock dedicata. Le linee di comunicazione dello SPI sono:

  • MISO = Master In Slave Out
  • MOSI = Master Out Slave In
  • SS = Slave Select (Selezione Slave)
  • SCK o SCLK = Serial Clock (Orologio Seriale)

Secondo la denominazione, in SPI esistono dispositivi Master e Slave. Il Master è il dispositivo che controlla la linea di clock e quindi la comunicazione.

Questo è un protocollo full duplex, in quanto sono presenti due linee di dati, una per ciascuna direzione di comunicazione (da master a slave e da slave a master), il che significa che i dati possono essere inviati e ricevuti contemporaneamente.

SPI Bus

Più dispositivi slave possono essere collegati allo stesso master utilizzando le stesse linee di comunicazione SCK, MISO e MOSI (chiamate SPI Bus).

Per ogni slave è tuttavia necessaria una linea Slave Select (SS) separata; il master imposta le linee Slave Select (che sono attive basse, cioè basse per selezionare, alte per deselezionare) a seconda dello slave con cui desidera comunicare.

In pratica, è raro che i dati vengano inviati e ricevuti contemporaneamente sullo SPI Bus (di solito lo scenario è quello di un’istruzione seguita da una risposta, o semplicemente il master legge dallo slave).

Tuttavia, uno dei vantaggi dello SPI è la facilità di debug e risoluzione dei problemi (ad esempio, con un oscilloscopio), grazie alla presenza di linee di comunicazione dedicate e chiaramente definite.

Protocolli, come l’I2C, richiedono meno linee di comunicazione, ma sono più difficili da risolvere problemi a causa della loro complessità.

Un altro vantaggio dello SPI è che tutte le linee di comunicazione sono pilotate attivamente sia in alto che in basso, a differenza di quanto avviene, ad esempio, con l’I2C, dove le linee di comunicazione sono pilotate solo in basso e le resistenze di pull-up sono utilizzate per riportare passivamente le linee in alto quando non sono pilotate attivamente (per ulteriori informazioni, consultare il nostro articolo sull’I2C).

Il fatto che le linee siano sempre pilotate attivamente consente di raggiungere velocità di trasmissione dati più elevate.

Dual e Quad SPI (SPI doppio e quadruplo)

Esistono anche varianti dello SPI chiamate Dual e Quad SPI, in cui più linee di dati possono essere utilizzate per trasmettere dati in una singola direzione allo stesso tempo (tecnicamente in parallelo), aumentando ulteriormente il throughput dei dati (velocità di comunicazione complessiva).

Queste varianti sono molto diffuse, ad esempio, nei chip di memoria FLASH, dove può essere richiesta un’elevata velocità di trasmissione dei dati.

Con Dual SPI la comunicazione inizia come di consueto (la stessa di Single SPI), ma può essere cambiata in modalità Dual dopo l’invio di un comando al dispositivo slave (i dettagli sono disponibili nella scheda tecnica del dispositivo slave).

In modalità Dual, le linee MISO e MOSI diventano linee di comunicazione bidirezionali (half-duplex) chiamate SIO0 (Serial I/O 0) e SIO1; i bit pari di ogni byte vengono trasmessi su SIO0 e i bit dispari di ogni byte su SIO1.

Quad SPI è simile, tranne per la presenza di due linee di comunicazione aggiuntive, SIO2 e SIO3, e la trasmissione di mezzo byte alla volta.

Configurazione SPI

Alcuni parametri del protocollo SPI sono impostabili, ad esempio, se i dati vengono inviati/ricevuti sul fronte di salita o di discesa del segnale di clock e se il clock è alto o basso.

È inoltre possibile configurare se i dati vengono trasmessi prima con il bit meno significativo (LSB – Least Significant Bit) o con il bit più significativo (MSB – Most Significant Bit). MSB è il caso più usuale.

Puoi scaricare la versione demo di Proteus di Labcenter, distribuito in Italia da Galgo Electronics, oppure consultare la Proteus Sample Design Library per numerosi esempi di comunicazioni di sensori SPI e utilizzo generale del protocollo con vari microcontrollori.

Articolo di Dane du Plooy – eiTech Systems – All content Copyright Labcenter Electronics Ltd. 2024.

Quanto hai trovato interessante questo articolo?

Voto medio 4 / 5. Numero valutazioni: 2

Ancora nessuna valutazione! Valuta per primo questo articolo.

Registrati anche tu su Elettronica TECH!
Ecco i vantaggi esclusivi per gli utenti registrati:
- GRATIS Electronic Lab Collection Ed. 1
- GRATIS abbonamento alla rivista Elettronica AV
- ricezione in tempo reale degli aggiornamenti
- possibilità di recensire e commentare gli articoli
ISCRIVITI SUBITO!

ULTIME NEWS

PARTNER

MERCATO

SOCIAL

IN EVIDENZA

Registrati anche tu su Elettronica TECH!
Ecco i vantaggi esclusivi per gli utenti registrati:
- GRATIS Electronic Lab Collection Ed. 1
- GRATIS abbonamento alla rivista Elettronica AV
- ricezione in tempo reale degli aggiornamenti
- possibilità di recensire e commentare gli articoli
ISCRIVITI SUBITO!