Kaj je serijski periferni vmesnik?

Serijski periferni vmesnik (SPI) je poceni, štirižični, polno-dupleksni sinhroni vmesnik za serijski komunikacijski tok podatkov, ki deluje v razmerju nadrejeni-podrejeni. Prenos podatkov v serijskih napravah poteka en bit naenkrat, zaradi česar je SPI vmesnik nizke hitrosti. Običajno se uporablja kot povezava med integriranimi vezji z vgrajenimi počasnimi perifernimi napravami, do katerih se dostopa občasno. Konkurira napravam za vzporedni prenos podatkov, vendar se s povečanjem učinkovitosti SPI prednost prve zmanjša. SPI se včasih imenuje “mikrožični kabel”, čeprav se to šteje za podskupino protokola SPI.

Prenosi podatkov prek serijskega perifernega vmesnika potekajo po polno-dupleksnem protokolu. Podatki se prenašajo in sprejemajo v obe smeri hkrati. Aplikacije, ki uporabljajo SPI, pridobijo veliko učinkovitost v tem načinu; ena taka aplikacija je med koder-dekoder (kodek) in digitalni signalni procesor (DSP). Druge aplikacije vključujejo senzorje temperature in tlaka ter bliskovni pomnilnik.

Kadar koli komunicirata dve serijski periferni vmesniški napravi, se ena naprava imenuje »glavna«, druga pa »podrejena«. Glavna naprava sproži vse komunikacije s prenosom signalov podrejeni napravi. Serijsko periferno vmesniško vodilo lahko poveže več podrejenih naprav na eno glavno enoto.

Naprave s serijskim perifernim vmesnikom uporabljajo tri registre – nadzorni register (SPCR), register statusa (SPSR) in podatkovni register (SPDR) – pri pošiljanju podatkov, skupaj s štirimi različnimi signali. Prvi signal se imenuje serijska ura (SCLK), ki jo generira samo glavna naprava. Temu sledijo glavni izhod podrejenega vhoda (MOSI), glavni vhod podrejenega vhoda (MISO) in izbor podrejenega (SSn), kjer je »n« število podrejenih naprav, na katere je povezana glavna naprava.

V tipični konfiguraciji z enim podrejenim bi inženir, ki želi uporabiti serijski periferni vmesnik, povezal SCLK z vhodom podrejene naprave. MOSI nato prenaša podatke iz glavne naprave v podrejeno napravo, medtem ko MISO prenaša podatke od podrejene v glavno. Za določitev, katera naprava je glavna in katera podrejena, prva poveže glavni SSn s podrejenim SSn in slednji generira diskretni vhodni/izhodni signal splošnega namena.

Za povezavo več pomožnih enot na eno glavno enoto v serijskem perifernem vmesniku so ločeni signali SSn povezani iz glavne naprave na ločene podrejene enote. Na primer, SS1 je povezan s podrejenim 1, SS2 je povezan s podrejenim 2 in tako naprej. Podobno kot pri konfiguraciji z enim podrejenim je SCLK povezan z glavne naprave na več podrejenih. Povezani so MOSI od glavnega do podrejenega, kot tudi MISO od podrejenega do glavnega.