Interfaccia periferica seriale
Il bus SPI ( dall'inglese Serial Peripheral Interface ) è uno standard di comunicazione, utilizzato principalmente per il trasferimento di informazioni tra circuiti integrati in apparecchiature elettroniche. Il bus dell'interfaccia periferica seriale o bus SPI è uno standard per il controllo di quasi tutti i dispositivi elettronici digitali che accettano un flusso di bit seriale con clock (comunicazione sincrona).
Include una linea di clock , data in, data out e un pin di selezione del chip , che collega o disconnette il funzionamento del dispositivo con cui si desidera comunicare. In questo modo, questo standard consente di multiplexare le linee di clock.
Molti sistemi digitali necessitano di una connessione veloce alle loro periferiche. I vantaggi di un bus seriale sono che riduce al minimo il numero di conduttori, pin e le dimensioni del circuito integrato. Ciò riduce i costi di produzione, assemblaggio e test dell'elettronica. Un bus periferico seriale è l'opzione più flessibile quando si hanno diversi tipi di periferiche seriali. L'hardware è costituito da segnali di clock, data in, data out e chip select per ciascun circuito integrato che deve essere controllato. Quasi tutti i dispositivi digitali possono essere controllati con questa combinazione di segnali. I dispositivi differiscono in un numero prevedibile di modi. Alcuni leggono i dati quando l'orologio sale, altri quando l'orologio scende. Alcuni lo leggono sul fronte di salita dell'orologio e altri sul fronte di discesa. La digitazione avviene quasi sempre nella direzione opposta alla direzione di movimento in senso orario. Alcuni dispositivi hanno due orologi. Uno per acquisire o visualizzare i dati e l'altro per il dispositivo interno.
Operazione
SPI è un protocollo sincrono. La sincronizzazione e la trasmissione dei dati avviene tramite 4 segnali:
- SCLK (Clock) : È l'impulso che segna la sincronizzazione. Ad ogni impulso di questo orologio, viene letto o inviato un bit. Chiamato anche TAKT (in tedesco).
- MOSI (Master Output Slave Input) : Uscita dati dal Master e ingresso dati allo Slave. Chiamato anche SIMO.
- MISO (Master Input Slave Output) : Uscita dati dallo Slave e ingresso al Master. Conosciuto anche come SOMI.
- SS/Select : Per selezionare uno Slave, o per il Master per dire allo Slave di attivarsi. Chiamato anche SSTE.
La Stringa di bit viene inviata in modo sincrono con gli impulsi di clock, ovvero ad ogni impulso il Master invia un bit. Affinché la trasmissione abbia inizio, il Master azzera il segnale SSTE o SS/Select, con questo si attiva lo Slave e inizia la trasmissione, con un impulso di clock in contemporanea alla lettura del primo bit. Si noti che gli impulsi di clock possono essere programmati in modo che la trasmissione del bit avvenga in 4 modalità diverse, questa è chiamata polarità di trasmissione e fase:
- 1. Con il fronte di salita senza indugio.
- 2. Con il fronte di salita ritardato.
- 3. Con il bordo di discesa senza indugio.
- 4. Con il fronte di discesa ritardato.
Pro e contro del bus SPI
Vantaggi
- Comunicazione full duplex
- Velocità di trasmissione superiore rispetto a I²C o SMBus
- Protocollo flessibile in cui puoi avere il controllo assoluto sui bit trasmessi
- Non sei limitato al trasferimento a blocchi a 8 bit
- Scelta della dimensione, del significato e dello scopo del frame di bit
- La sua implementazione nell'hardware è estremamente semplice
- Consuma meno energia di I²C o SMBus a causa di un minor numero di circuiti (inclusi resistori di pull-up ) e circuiti più semplici
- Nessun meccanismo di arbitrato o failover richiesto
- I dispositivi client utilizzano l'orologio inviato dal server , quindi non hanno bisogno del proprio orologio.
- Non è obbligatorio implementare un ricetrasmettitore (mittente e ricevente), un dispositivo connesso può essere configurato solo per inviare, solo ricevere o entrambi contemporaneamente
- Utilizza molti meno pin su ciascun chip/connettore rispetto a un'interfaccia parallela equivalente
- Al massimo un singolo segnale specifico per ogni client (segnale SS), gli altri segnali possono essere condivisi
Svantaggi
- Consuma più pin da ciascun chip rispetto a I²C, anche nella variante a 3 fili
- L'indirizzamento avviene tramite linee specifiche (segnalazione fuori banda) a differenza di quanto accade in I²C dove ogni chip viene selezionato tramite un indirizzo a 7 bit che viene inviato attraverso le stesse linee bus
- Nessun controllo del flusso hardware
- Non c'è segno di assenso. Il server potrebbe inviare informazioni senza che alcun client sia connesso e non si accorgerebbe di nulla
- Non consente di collegare facilmente più server al bus
- Funziona solo su brevi distanze a differenza, ad esempio, di RS-232 , RS-485 o CAN Bus .
Implementazioni SPI
Di seguito sono elencate alcune implementazioni particolari del bus SPI di alcuni produttori:
- SPI su ATmega8
Vedi anche
Collegamenti esterni
- Introduzione all'articolo sull'interfaccia periferica seriale su embedded.com
- Pagina delle informazioni sul bus seriale
- SPI Introduzione con diagrammi
- Serial Flash informazioni sui produttori e modelli SPI.
- SPI - PICmicro Serial Peripheral Interface Microchip (azienda) tutorial su SPI.
- OpenCores Implementazione Open Source di SPI scritta in Verilog ; versione MC68HC11 più semplice