Vad är det seriella perifera gränssnittet?
Ett seriellt perifert gränssnitt (SPI) är ett lågkostnad, fyra-trådars, full-duplex synkront seriell kommunikationsdataströmgrä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 långsam kringutrustning ombord som går åt gången intermittent. Den tävlar med parallella dataöverföringsenheter, men när SPI ökar effektiviteten minskar den förstnämnda fördelen. SPI kallas ibland "microwire", även om detta betraktas som en delmängdprotokoll för SPI.
Dataöverföringar med ett seriellt perifert gränssnitt sker via full-duplexad protokoll. Data överförs och tas emot i båda riktningarna samtidigt. Applikationer som använder SPI får mycket effektivitet i detta läge; en sådan applikation är mellan en kodningsavkodare (codec) och en digital signalprocessor (DSP). Andra applikationer inkluderar temperatur- och trycksensorer, liksom blixtminne.
När två seriella perifera gränssnittsenheter kommunicerar, kallas en enhet "master", medan den andra enheten är "slaven". Huvudenheten initierar all kommunikation genom att sända signaler till slavenheten. 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)) i sändningsdata, tillsammans med fyra olika signaler. Den första signalen kallas seriell klocka (SCLK), som endast huvudenheten genererar. Detta följs av master-out slave-in (MOSI), master-in slave-out (MISO) och slave select (SSn), där "n" är antalet slavenheter som huvudenheten är ansluten till.
I en typisk enkel-slavkonfiguration skulle en ingenjör som vill använda ett seriellt perifert gränssnitt ansluta SCLK till en slavenhets ingång. MOSI transporterar sedan data från masterenheten till slavenheten medan MISO överför data från slaven till masteren. För att bestämma vilken enhet som är master och vilken är slav, ansluter den förstnämnda Master SSn till Slave SSn och alstrar en diskret ingångs- / utgångssignal till den senare.
För att ansluta flera slavar till en master i ett seriellt perifert gränssnitt är separata SSn-signaler anslutna från masterenheten till separata slavar. Till exempel är SS1 ansluten till Slave 1, SS2 är ansluten till Slave 2, och så vidare. I likhet med konfigurationen med en slav är SCLK ansluten från huvudenheten till flera slavar. MOSI från master till slavar är anslutna, liksom MISO från slavar till master.