Analizzando il Serial Peripheral Interface (SPI) bus

Un bus seriale può essere più efficiente rispetto al tradizionale bus parallelo. Ma ci sono sfide nel rappresentare e dare un senso al flusso di dati seriali nel contesto della temporizzazione dell’orologio. Queste difficoltà possono essere risolte utilizzando le funzionalità multicanale di oscilloscopi avanzati come gli strumenti Tektronix Series 3000.

tek series 3000
Gli oscilloscopi Tektronix Series 3000 possono visualizzare l’attività del bus seriale, inclusi i segnali di dati e clock sullo stesso asse temporale.

La chiave per comprendere e interpretare i flussi di dati seriali e di clock sta nella comprensione del funzionamento interno di ogni singolo tipo di bus dati. In particolare, si consideri il bus Serial Peripheral Interface (SPI). Assomiglia al bus I2C, ma ci sono differenze significative. Entrambi sono organizzati attorno ad architetture master/slave. Ma il cablaggio tra master e slave è radicalmente diverso.

Architettura SPI
I collegamenti bus SPI sono costituiti da MOSI, MISO e da una linea di selezione slave separata dal master per ogni slave. Logica: la bassa tensione rende attivo lo slave.

In genere, SPI funziona con un singolo dispositivo master e un numero di slave, anche se è possibile un numero minimo di slave. Le linee sono le seguenti:
• Una linea di clock seriale va dal master a ogni slave. L’orologio esiste nel master e un segnale di clock ad onda quadra viene convogliato allo slave attivo. La frequenza di clock è scelta dall’utente, ma non può essere più veloce di quanto consentito per il dispositivo slave più lento. Quindi le singole schede tecniche slave dovrebbero essere consultate nella configurazione del sistema.

• Master-in, slave-out (MISO). Questa linea trasmette i dati dallo slave attivo al master. Poiché MOSI e MISO sono linee separate, i dati possono essere trasmessi in entrambe le direzioni contemporaneamente, a scapito di nessuno dei due.
• Selezione slave (SS). Una linea separata viene eseguita su ogni slave. Normalmente, quando il sistema si accende, una tensione logica-alta dal master è presente al pin SS di ciascun dispositivo slave. Per attivare uno slave, il master commuta la tensione su quella linea SS a logic low. Questo metodo di selezione slave sostituisce il concetto di indirizzamento implementato nel bus I2C.

Il bus SPI è talvolta chiamato schema a tre fili o schema a quattro fili se si conta una linea SS per un singolo slave. Inutile dire che ognuno di questi fili è in realtà un circuito a due fili, quindi è necessaria una linea di ritorno a terra, ma non è considerata nella nomenclatura numerica. Un singolo conduttore a terra sarà sufficiente per completare tutti questi circuiti.

La scheda Tektronix MDO Demo 1 fornisce numerose uscite, tra cui I2C e SPI bus clock e segnali dati. È destinato ad andare con gli oscilloscopi della serie Tektronix MDO4000, ma funziona bene anche con gli strumenti della serie MDO3000.

La scheda Tektronix MDO Demo 1 riceve l’alimentazione tramite un insolito cavo USB di tipo T dotato di due connettori USB di tipo A ad un’estremità. Si inseriscono nei due slot USB dell’oscilloscopio. La logica è che i requisiti di alimentazione della scheda Demo 1 sono tali che se dovesse essere utilizzato un cavo USB standard, sovraccaricherebbe una singola uscita USB all’oscilloscopio.

Un LED rosso e due verdi indicano la ricezione dell’alimentazione dall’oscilloscopio e che la scheda è pronta per l’uso. Ci sono numerosi terminali di uscita sulla scheda. Sono adatti per il collegamento della sonda utilizzando le punte del gancio della sonda e le clip a coccodrillo con cavo di ritorno a terra.

 Display del segnale SPI
Orologio SPI, segnali MOSI e MISO visualizzati nell’ambito Tektronix MDO3104.

Per visualizzare i segnali del bus SPI, le sonde TPP 1000 10:1 si inseriscono negli ingressi dei canali analogici Uno, due e Tre. Tutti i cavi di ritorno a terra si collegano a uno dei terminali di terra della scheda e le tre punte della sonda sono agganciate ai terminali di segnale SPI clock, MISO e MOSI. Come sempre, i cavi di ritorno a terra devono essere collegati per primi, prima che la sonda si sposti.

Si potrebbe utilizzare un quarto canale oscilloscopio per visualizzare un segnale slave-select. Ma poiché questo segnale è solo una tensione logica-alta o logica-bassa, può essere verificato ad entrambe le estremità del bus SPI utilizzando un multimetro ad alta impedenza standard o una sonda logica.

L’oscilloscopio visualizza quindi i dati SPI e i segnali di clock. Utilizzando i pulsanti di scala Channel One, Channel Two e Channel Three seguiti da Autoset, gli impulsi possono essere ingranditi per la leggibilità e l’acquisizione può essere interrotta per rendere il display più stabile. Le manopole Wave Inspector possono essere utilizzate per eseguire la panoramica e lo zoom delle tracce per uno sguardo più attento. Quindi è semplice confrontare i punti sull’orologio e sui flussi di dati per accertare lo stato logico (alto o basso) in qualsiasi momento. Il cursore verticale, spostato ruotando la manopola multiuso a, è utile per vedere come queste tracce si allineano rispetto al tempo.

Abbiamo visto come i dati del bus seriale SPI e segnali di clock possono essere visualizzati utilizzando un oscilloscopio. Le sonde possono essere collegate a terminali simili in un’apparecchiatura elettronica funzionante (o non funzionante). (Assicurarsi di girare l’acquisizione di nuovo a correre.)

A differenza di I2C, non esiste un singolo standard per SPI. Nel 1980, è stato sviluppato da Motorola per l’uso da parte del microcontrollore della serie 68000. SPI è uno standard de facto piuttosto che ufficiale, e come tale rimane organico e soggetto a modifiche.

Altri produttori hanno introdotto SPI con variazioni. Quindi nell’implementazione del progetto è necessario consultare le schede tecniche. Ad esempio, alcuni dispositivi slave richiedono un fronte di discesa nel segnale SS per avviare la comunicazione. Quando ci sono più tipi slave, sono necessari diversi segnali di avvio dal master. Come I2C, SPI è un bus seriale a corto raggio. A causa del suo basso fabbisogno energetico, viene spesso utilizzato nei telefoni cellulari, negli assistenti digitali personali e in apparecchiature mobili simili per implementare l’interazione tra CPU, display, tastiera e circuiti integrati.

Le variazioni includono l’omissione della linea MISO quando la comunicazione da slave a master non è necessaria. Inoltre, la linea SS non è necessaria quando c’è solo un singolo slave e il pin di selezione slave è collegato a terra in modo che sia sempre attivo.

Mentre è vero che SPI è un’interfaccia seriale sincrona (SSI), differisce radicalmente dal protocollo SSI, che è caratterizzato da segnalazione differenziale e un singolo canale di comunicazione simplex.

 Registri shift SPI C’è trasmissione full-duplex, sia MOSI che MISO, durante ogni segnale di clock. Un bit viene inviato in ogni direzione sulle due linee separate. La procedura usuale impiega due registri a turni, uno nel master e uno nello slave. La trasmissione duplex continua attraverso un numero sufficiente di cicli di clock per completare la trasmissione. In questo modo, master e slave acquisiscono i registri come trasmessi sulle due linee. Se rimangono più dati, i registri shift vengono ricaricati e la trasmissione inizia di nuovo.

Questo processo continua attraverso il numero di cicli di clock necessari, dopo di che il master consente al segnale di selezione di andare in logic high, deselezionando lo slave. Le trasmissioni sono spesso a 8 bit, ma ci sono variazioni come 12 bit per molti DAC e ADC e 16 bit per i controller touchscreen.

A causa delle differenze hardware e di protocollo de facto, il bus SPI presenta una gamma di vantaggi e svantaggi rispetto a I2C e altri tipi di bus. I vantaggi includono la capacità full-duplex semplicemente aggiungendo un’altra linea. Inoltre, vi è una buona integrità del segnale, trasmissione ad alta velocità e più potenziale di trasmissione dei dati rispetto a I2C. Inoltre, il contenuto del messaggio è illimitato e non limitato alle unità di dati a 8 bit. Generalmente, il fabbisogno di potenza è inferiore a quello di I2C perché le resistenze di pull-up non sono necessarie. SPI è anche affidabile perché non ha bisogno di arbitrato e non c’è bisogno di indirizzi slave univoci. Poiché non esiste una velocità di clock massima a parte i vincoli del dispositivo slave, esiste il potenziale per il funzionamento ad alta velocità.

Come in ogni tecnologia, ci sono degli svantaggi rispetto ad alcuni altri protocolli. Poiché non vi è alcun riconoscimento slave, in caso di errore di slave o cablaggio, il master, ignaro che qualcosa non va, potrebbe parlare in un vuoto senza ascoltatore. Inoltre, la mancanza di un singolo standard formalizzato può rendere impraticabile la convalida della conformità. Inoltre, l’esistenza di numerose varianti SI non regolamentate può rendere problematica l’acquisizione di hardware.

Lungo la strada, è concepibile SPI potrebbe vedere un maggior grado di codificazione. Questo sviluppo significherà ulteriori miglioramenti SPI che potrebbero ridurre la confusione che ora esiste. Detto questo, come attualmente implementato, SPI è abbastanza user-friendly, in particolare nel suo requisito di poca potenza.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

More: