Vad är det seriella perifera gränssnittet?

Ett seriellt perifert gränssnitt (SPI) är ett lågpris, fyrtråds, full-duplex synkront seriell kommunikationsdataströmsgränssnitt som fungerar i en master-slav-relation. Dataöverföring i seriella enheter sker en bit i taget, vilket gör SPI till ett låghastighetsgränssnitt. Det används vanligtvis som en länk mellan integrerade kretsar med inbyggda långsamma kringutrustning som nås intermittent. Den konkurrerar med parallella dataöverföringsenheter, men när SPI ökar i effektivitet minskar den förstnämndas fördel. SPI kallas ibland för ”mikrotråd”, även om detta betraktas som ett underuppsättningsprotokoll till SPI.

Dataöverföringar via ett seriellt perifert gränssnitt sker via fullduplexat protokoll. Data överförs och tas emot åt ​​båda hållen samtidigt. Applikationer som använder SPI blir mycket effektivare i detta läge; en sådan applikation är mellan en kodare-avkodare (codec) och en digital signalprocessor (DSP). Andra applikationer inkluderar temperatur- och trycksensorer samt flashminne.

När två seriella perifera gränssnittsenheter kommunicerar kallas den ena enheten för ”master”, medan den andra enheten är ”slaven”. Masteranordningen initierar all kommunikation genom att sända signaler till slavanordningen. En seriell perifer gränssnittsbuss kan ansluta flera slavenheter till en enda master.

Seriella perifera gränssnittsenheter använder tre register – kontrollregister (SPCR), statusregister (SPSR) och dataregister (SPDR) – för att skicka data, tillsammans med fyra olika signaler. Den första signalen kallas seriell klocka (SCLK), som bara masterenheten genererar. Detta följs av master-out slav-in (MOSI), master-in slav-out (MISO) och slavval (SSn), där ”n” är antalet slavenheter som masterenheten är ansluten till.

I en typisk enkel-slav-konfiguration skulle en ingenjör som vill använda ett seriellt perifert gränssnitt ansluta SCLK till en slavenhets ingång. MOSI överför sedan data från masterenheten till slavenheten medan MISO överför data från slaven till mastern. För att bestämma vilken enhet som är master och vilken som är slav, ansluter den förra Master SSn till Slave SSn och genererar en allmän diskret in-/utsignal till den senare.

För att ansluta flera slavar till en master i ett seriellt perifert gränssnitt kopplas separata SSn-signaler från masterenheten till separata slavar. Till exempel är SS1 ansluten till slav 1, SS2 är ansluten till slav 2 och så vidare. På samma sätt som en slavkonfiguration är SCLK ansluten från masterenheten till de multipla slavarna. MOSI från master till slavar är anslutna, liksom MISO från slavar till master.