Che cos'è l'interfaccia periferica seriale?
Un'interfaccia periferica seriale (SPI) è un'interfaccia di flusso di dati di comunicazione seriale sincrona a quattro fili full duplex a basso costo che opera in una relazione master-slave. Il trasferimento dei dati nei dispositivi seriali avviene un bit alla volta, rendendo SPI un'interfaccia a bassa velocità. È comunemente usato come collegamento tra circuiti integrati con dispositivi periferici lenti di bordo a cui si accede in modo intermittente. È in concorrenza con i dispositivi di trasmissione dati paralleli, ma all'aumentare dell'efficienza di SPI, il vantaggio del primo si riduce. L'SPI viene talvolta definito "microwire", sebbene questo sia considerato come un sottoinsieme di protocollo dell'SPI.
I trasferimenti di dati tramite un'interfaccia periferica seriale avvengono tramite protocollo full duplex. I dati vengono trasferiti e ricevuti in entrambe le direzioni contemporaneamente. Le applicazioni che utilizzano SPI ottengono molta efficienza in questa modalità; una di queste applicazioni è tra un codificatore-decodificatore (codec) e un Digital Signal Processor (DSP). Altre applicazioni includono sensori di temperatura e pressione, nonché memoria flash.
Ogni volta che due dispositivi di interfaccia periferica seriale comunicano, un dispositivo viene chiamato "master", mentre l'altro dispositivo è "slave". Il dispositivo master avvia tutte le comunicazioni trasmettendo segnali al dispositivo slave. Un bus di interfaccia periferica seriale può collegare più dispositivi slave a un singolo master.
I dispositivi di interfaccia periferica seriale utilizzano tre registri (registro di controllo (SPCR), registro di stato (SPSR) e registro dei dati (SPDR)) per l'invio dei dati, insieme a quattro segnali diversi. Il primo segnale si chiama serial clock (SCLK), che solo il dispositivo master genera. Questo è seguito da master-out slave-in (MOSI), master-in slave-out (MISO) e slave select (SSn), dove "n" è il numero di dispositivi slave a cui è collegato il dispositivo master.
In una tipica configurazione a singolo slave, un ingegnere che cerca di utilizzare un'interfaccia periferica seriale collegherebbe SCLK all'ingresso di un dispositivo slave. MOSI quindi trasporta i dati dal dispositivo master al dispositivo slave mentre MISO trasferisce i dati dallo slave al master. Per determinare quale dispositivo è master e quale è slave, il primo collega Master SSn a Slave SSn e genera un segnale di ingresso / uscita discreto per scopi generali a quest'ultimo.
Per connettere più slave a un master in un'interfaccia periferica seriale, segnali separati SSn sono collegati dal dispositivo master a slave separati. Ad esempio, SS1 è collegato allo slave 1, SS2 è collegato allo slave 2 e così via. Simile alla configurazione a singolo slave, SCLK è collegato dal dispositivo master a più slave. MOSI da master a slave sono collegati, così come MISO da slave a master.