SPI è solo un'interfaccia o un protocollo?
Risposta breve: è un protocollo. Continua a leggere per una spiegazione più lunga.
SPI o Serial Peripheral Interface è un protocollo di comunicazione tra 2 dispositivi. Mi sto concentrando sulla parola protocollo perché ha un modo particolare in cui avviene la comunicazione. Le interfacce sono solo limitate al livello dell'hardware mentre i protocolli hanno più profondità in loro.
Per spiegare ulteriormente, SPI ha un dispositivo master e uno slave. Tutta la nomenclatura è dal punto di vista del master. È il master che inizia sempre la comunicazione pilotando una delle quattro linee hardware, chip select (cs) bassa. Le altre linee sono: clock seriale (sck), MISO (master in slave out) e MOSI (master out slave in). Questo forma il livello hardware di SPI. Andando oltre, SPI ha anche varie modalità. Ha modalità da sub mode 0 a 3. Queste definiscono la fase e la polarità del segnale di clock (sck). La fase è il bordo che viene generato per primo quando il clock parte. È su questo bordo che i dati MOSI vengono campionati, cioè i dati dal master allo slave. La polarità è 0 se lo stato predefinito di sck è 0 logico ed è 1 quando lo stato predefinito è 1 logico. Questo forma la parte del livello di bit o la parte in cui il campionamento è definito.
Prossimo è la logica del protocollo. Qui, quando cs va basso, master e slave possono inviare una quantità fissa di bit simultaneamente, rendendo il protocollo full duplex. Ora questi possono essere 8, 16 o a volte 32 bit di dati. La quantità di dati che può essere inviata una volta è programmabile.
Possiamo quindi vedere qui che SPI non è solo un'interfaccia ma definisce effettivamente come i dati devono viaggiare da un dispositivo all'altro e a quale velocità - determinata da sck ovviamente. Quindi, in definitiva, si può dire che SPI ha un'interfaccia a 4 fili ma SPI in sé è un protocollo di comunicazione completo.