Hvad er den serielle perifere grænseflade?
En seriel perifær grænseflade (SPI) er en billig, firetråds, fuld-duplex synkron seriel kommunikationsdatastrømgrænseflade, der fungerer i et master-slave-forhold. Dataoverførsel i serielle enheder sker en bit ad gangen, hvilket gør SPI til en interface med lav hastighed. Det bruges almindeligvis som en forbindelse mellem integrerede kredsløb med langsomme perifere enheder ombord, der er adgang til med mellemrum. Det konkurrerer med parallelle dataoverførselsenheder, men når SPI øger effektiviteten, reduceres førstnævnte fordel. SPI omtales undertiden som "microwire", selvom dette betragtes som en subset-protokol til SPI.
Dataoverførsler med en seriel perifer grænseflade sker via fuld-duplekset protokol. Data overføres og modtages i begge retninger på samme tid. Programmer, der bruger SPI, får meget effektivitet i denne tilstand; en sådan applikation er mellem en koder-dekoder (codec) og en digital signalprocessor (DSP). Andre anvendelser inkluderer temperatur- og tryksensorer samt flashhukommelse.
Hver gang to serielle perifere interfaceenheder kommunikerer, kaldes den ene enhed "master", mens den anden enhed er "slaven". Masterenheden initierer al kommunikation ved at transmittere signaler til slaveenheden. En seriel perifer interfacebus kan forbinde flere slaveenheder til en enkelt master.
Serielle perifere interfaceenheder bruger tre registre - kontrolregister (SPCR), statusregister (SPSR) og dataregister (SPDR)) i afsendelsesdata sammen med fire forskellige signaler. Det første signal kaldes serielt ur (SCLK), som kun masterenheden genererer. Dette efterfølges af master-out slave-in (MOSI), master-in slave-out (MISO) og slave-valg (SSn), hvor "n" er antallet af slave-enheder, som master-enheden er forbundet til.
I en typisk enkelt-slavekonfiguration ville en ingeniør, der ønsker at bruge en seriel perifer grænseflade, forbinde SCLK til en slaveenheds input. MOSI fører derefter data fra masterenheden til slaveenheden, mens MISO overfører data fra slaven til masteren. For at bestemme, hvilken enhed der er master, og hvilken der er slave, forbinder førstnævnte Master SSn til Slave SSn og genererer et diskret input / udgangssignal til generelle formål til sidstnævnte.
For at forbinde flere slaver til en master i en seriel perifer interface er separate SSn-signaler forbundet fra masterenheden til separate slaver. For eksempel er SS1 forbundet til Slave 1, SS2 er forbundet til Slave 2 osv. I lighed med konfiguration med én slave er SCLK forbundet fra masterenheden til de flere slaver. MOSI fra master til slaver er forbundet, såvel som MISO fra slaver til master.