SPI (Serial Peripheral Interface)






Introduzione all'interfaccia SPI


L’interfaccia SPI acronimo di (Serial peripheral interface) è una delle interfacce più utilizzate tra microcontrollore e CI periferici come sensori, ADC, DAC, registri a scorrimento, SRAM e altri.  Questo articolo fornisce una breve descrizione dell'interfaccia SPI seguita da un'introduzione allo SPI di Analog Devices switch e mux abilitati e come aiutano a ridurre il numero di GPIO digitali nella progettazione della scheda di sistema.

SPI è un'interfaccia master-slave sincrona, full duplex. I dati scambiati tra il master e lo slave sono sincronizzati sul fronte di salita o di discesa del clock ( linea SCK). Sia master che slave possono trasmettere dati allo stesso tempo.  l'interfaccia SPI può essere a 3 o 4 fili. Questo articolo si concentra sul popolare interfaccia SPI a 4 fili.

 

Descrizione dell'interfaccia

I dispositivi SPI a 4 fili utilizzano 4 linedanno quattro segnali:

  1. Linea del clock SCLK
  2. Linea di selezione  CS ( chip select)
  3. Linea DATI dal master allo slave ( MOSI)
  4. Linea dati dallo slave al master MISO


La figura 1 mostra la connessione SPI tra master e slave.

microst.it - configurazione SPI con master e slave.

Figura 1. Configurazione SPI con master e slave.

 

Il dispositivo che genera il segnale di clock è chiamato il master. Il dato trasmesso tra il master e lo slave è sincronizzato con il clock generato dal master. I dispositivi SPI supportano un clock molto più alto in frequenza rispetto alle interfacce I2C.  Le interfacce SPI possono avere solo un master e possono avere uno o più slave.

Il segnale di selezione CS (Chip select) e’ utlizzato dal master per selezionare lo slave. Questo è normalmente un segnale attivo basso e viene tirato in alto per scollegare lo slave dal bus SPI. Quando vengono utilizzati più slave, seleziona un singolo chip il segnale per ogni slave è richiesto dal master. In questo articolo, il chip selezionare il segnale è sempre un segnale basso attivo.

Le linee MOSI e MISO sono le linee dati. La linea MOSI (Master Output Slave Input) trasmette i dati dal master vero lo sclave mentre la linea MISO (Master Input Slave Output) trasmette i dati dallo slave vero il master.

 

 

Trasmissione dati

Per iniziare la comunicazione SPI, il master deve inviare il segnale di clock sulla line SCK e selezionare lo slave abilitando il segnale CS. Di solito il chip select è un segnale attivo basso (Low Level)  quindi, il master deve inviare uno  0 logico su questo linea per selezionare lo slave. Essndo la interfaccia  SPI un'interfaccia full-duplex ovvero  sia master che slave possono inviare dati allo stesso tempo tramite le linee MOSI e MISO rispettivamente. Durante la comunicazione SPI, i dati vengono trasmessi simultaneamente (spostati in serie sul bus MOSI / SDO) e ricevuti (i dati sul bus (MISO / SDI) sono campionato o letto). Il fronte del clock seriale sincronizza lo spostamento e campionamento dei dati. L'interfaccia SPI offre all'utente flessibilità selezionare il fronte di salita o di discesa dell'orologio per campionare e / o spostare i dati.

 

Clock Polarity e Clock Phase

In SPI, il master può selezionare la polarità dell'orologio e la fase di clock. Il CPOL bit imposta la polarità del segnale di clock durante lo stato di riposo. Lo stato di inattività è definito come il periodo in cui CS è alto e in transizione verso il basso all'inizio della trasmissione e quando CS è basso e la transizione verso l'alto al fine della trasmissione. Il bit CPHA seleziona la fase di clock. Dipendente sul bit CPHA, il fronte di salita o discesa del clock viene utilizzato per campionare e / o sposta i dati. Il master deve selezionare la polarità del clock e la fase di clock, secondo il requisito dello slave. A seconda del bit CPOL e CPHA selezione, sono disponibili quattro modalità SPI. La Tabella 1 mostra le quattro modalità SPI.

 

SPI mode CPOL
CPHA
CLOCK IDLE STATE
SAMPLE AND SHIFT OUT DARA MODE
0
0
0
LOW

1
0
1
LOW
2
1
1
LOW
3
1
0
LOW
 

Tabella 1. Modalità SPI con CPOL e CPHA

Le figure da 2 a 5 mostrano un esempio di comunicazione in quattro SPI modalità. In questi esempi, i dati sono mostrati sulla linea MOSI e MISO. L'inizio e la fine della trasmissione sono indicati dalla linea verde tratteggiata, la il bordo di campionamento è indicato in arancione e il bordo mobile è indicato in blu. Si prega di notare che queste cifre sono solo a scopo illustrativo. Per comunicazioni SPI di successo, gli utenti devono fare riferimento ai dati del prodotto foglio e assicurarsi che le specifiche di temporizzazione per la parte siano soddisfatte.

 microst.it

Figura 2. Modalità SPI 0, CPOL = 0, CPHA = 0: stato inattivo CLK = basso, dati campionati sul fronte di salita e spostati sul fronte di discesa.

 microst.it

Figura 3. Modalità SPI 1, CPOL = 0, CPHA = 1: stato inattivo CLK = basso, dati campionati sul fronte di discesa e spostati sul fronte di salita.

 microst.it

Figura 4. Modalità SPI 2, CPOL = 1, CPHA = 1: stato inattivo CLK = alto, dati campionati sul fronte di discesa e spostati sul fronte di salita.

 microst.it

Figura 5. Modalità SPI 3, CPOL = 1, CPHA = 0: stato inattivo CLK = alto, dati campionati sul fronte di salita e spostati sul fronte di discesa.

 

La figura 3 mostra il diagramma temporale per la modalità SPI 1. In questa modalità, orologio polarizzato è 0, che indica che lo stato di inattività del segnale di clock è basso. L'orologio fase in questa modalità è 1, che indica che i dati sono campionati su

fronte di discesa (indicato dalla linea tratteggiata arancione) e i dati vengono spostati sul fronte di salita (indicato dalla linea blu tratteggiata) del segnale di clock.

La figura 4 mostra il diagramma temporale per la modalità SPI 2. In questa modalità, l'orologio la polarità è 1, che indica che lo stato di inattività del segnale di clock è alto. Il

la fase di clock in questa modalità è 1, che indica che i dati sono campionati il fronte di discesa (indicato dalla linea tratteggiata arancione) e i dati vengono spostati il fronte di salita (indicato dalla linea blu tratteggiata) del segnale di clock.

La figura 5 mostra il diagramma temporale per la modalità SPI 3. In questa modalità, l'orologio la polarità è 1, che indica che lo stato di inattività del segnale di clock è alto.

La fase di clock in questa modalità è 0, che indica che i dati sono campionati sul fronte di salita (indicato dalla linea tratteggiata arancione) e i dati vengono spostati sul fronte di discesa (indicato dalla linea tratteggiata blu) del segnale di clock.

 

Configurazione multislave

Più slave possono essere utilizzati con un singolo master SPI. Gli schiavi possono essere connesso in modalità normale o in modalità daisy-chain.

 

Modalità SPI regolare:

In modalità normale, è richiesto un singolo chip per ogni slave Il capo. Una volta che il segnale di selezione del chip è abilitato (tirato basso) dal master, l'orologio e i dati sulle linee MOSI / MISO sono disponibili per slave selezionato. Se sono attivati ​​più segnali di selezione del chip, i dati sul La linea MISO è corrotta, poiché non è possibile per il master identificare quale lo slave sta trasmettendo i dati.

Come si può vedere dalla figura 6, all'aumentare del numero di schiavi, il aumenta il numero di linee di selezione del chip dal master. Questo può rapidamente aggiungere al numero di ingressi e uscite necessari dal master e dal limite il numero di schiavi che possono essere utilizzati. Esistono diverse tecniche che può essere usato per aumentare il numero di schiavi in ​​modalità normale; per esempio, usando un mux per generare un segnale di selezione del chip.

microst.it

 

Figura 6. Configurazione SPI multislave.

 

 

Metodo daisy-chain:

 

microst.it

Figura 7. Configurazione daisy-chain SPI Multislave.

Nella modalità daisy-chain, le periferiche slave sono configurati in modo tale che il chip selezioni il segnale per tutti gli slave è legato insieme e i dati si propagano da uno slave a il prossimo. In questa configurazione, tutti gli slave ricevono lo stesso clock SPI al contemporaneamente. I dati dal master sono collegati direttamente al primo slave e quello slave fornisce dati allo slave successivo e così via.

In questo metodo, poiché i dati vengono propagati da uno slave all'altro, il il numero di cicli di clock richiesti per trasmettere dati è proporzionale al posizione slave nella catena a margherita. Ad esempio, in Figura 7, in un 8-bit sistema, sono necessari 24 impulsi di clock affinché i dati siano disponibili sul 3 slave, rispetto a solo otto impulsi di clock in modalità SPI regolare. Figura 8 mostra i cicli di clock e i dati che si propagano attraverso la catena a margherita. La modalità daisy-chain non è necessariamente supportata da tutti i dispositivi SPI. per favore fare riferimento alla scheda tecnica del prodotto per confermare se è disponibile la daisy chain.

microst.it

Figura 8. Configurazione daisy-chain: propagazione dei dati.

 

Analog Devices SPI Enabled Switches e Muxes

La nuova generazione di switch abilitati ADI SPI offre uno spazio significativo risparmiando senza compromessi con le prestazioni degli interruttori di precisione. Questo la sezione dell'articolo tratta di un case study su come gli switch abilitati SPI o i mux possono semplificare significativamente la progettazione a livello di sistema e ridurre il numero di GPIO richiesti.

Il ADG1412 è un interruttore quad, unipolare, a lancio singolo (SPST), che richiede quattro GPIO collegati all'ingresso di controllo di ciascun interruttore. Figura 9 mostra la connessione tra il microcontrollore e un ADG1412.

microst.it

 
Figura 9. Microcontroller GPIO come segnali di controllo per l'interruttore.

 

Con l'aumentare del numero di interruttori sulla scheda, il numero di richieste I GPIO aumentano in modo significativo. Ad esempio, quando si progetta uno strumento di prova sistema di mentazione e un gran numero di interruttori sono usati per aumentare

il numero di canali nel sistema. In una matrice a punti incrociati 4 × 4 configurazione, vengono utilizzati quattro ADG1412. Questo sistema richiederebbe 16 GPIO, limitando i GPIO disponibili in un microcontrollore standard. La figura 10 mostra

la connessione di quattro ADG1412 usando i 16 GPIO del microcontrollore.

Un approccio per ridurre il numero di GPIO consiste nell'utilizzare un collegamento seriale-parallelo convertitore, come mostrato nella Figura 11. Questo dispositivo emette segnali paralleli che può essere collegato agli ingressi di controllo degli interruttori e il dispositivo può essere configurato tramite interfaccia seriale SPI. Lo svantaggio di questo metodo è un aumentare la distinta base introducendo un componente aggiuntivo.

Un metodo alternativo consiste nell'utilizzare gli switch controllati SPI. Questo metodo

offre il vantaggio di ridurre il numero di GPIO richiesti e anche elimina il sovraccarico del convertitore seriale-parallelo aggiuntivo. Come mostrato nella Figura 12, invece di 16 GPIOS del microcontrollore, solo sette microcontrollori I GPIO sono necessari per fornire i segnali SPI ai quattro ADGS1412.

Gli switch possono essere configurati in configurazione daisy-chain per ulteriori informazioni ottimizzare il conteggio GPIO. Nella configurazione daisy-chain, indipendentemente dal numero di interruttori utilizzati nel sistema, da cui vengono utilizzati solo quattro GPIO il Master (microcontrollore).

microst.it

 

Figura 10. In una configurazione multislave, il numero di GPIO necessari aumenta enormemente.

 microst.it

Figura 11. Switch multislave che utilizzano un convertitore seriale-parallelo.

microst.it

Figura 12. Gli switch SPI abilitati salvano i GPIO del microcontrollore.

microst.it

Figura 13. Switch abilitati SPI configurati in un collegamento a margherita per  ulteriori informazioni ottimizzare i GPIO.

 

La figura 13 è a scopo illustrativo. La scheda tecnica ADGS1412 recom-

ripara un resistore di pull-up sul pin SDO. Si prega di fare riferimento a ADGS1412 scheda tecnica per ulteriori dettagli sulla modalità daisy-chain. Per motivi di plicità, in questo esempio sono stati usati quattro interruttori. Come il numero di gli interruttori aumentano in un sistema, i vantaggi della semplicità e dello spazio della scheda il risparmio è significativo. Gli switch abilitati ADI SPI forniscono un 20% complessivo riduzione dello spazio sulla scheda in configurazione crosspoint 4 × 8 con otto quadrantiSPST attiva una scheda a 6 strati. L'articolo " Precision SPI Switch Configurazione Aumenta la densità del canale "fornisce dettagli su come SPI di precisione la configurazione dell'interruttore aumenta la densità del canale.