O interfață periferică serială (SPI) este o interfață de flux de date de comunicație serială sincronă, cu patru fire, full-duplex, cu costuri reduse, care funcționează într-o relație master-slave. Transferul de date în dispozitivele seriale are loc câte un bit, făcând din SPI o interfață de viteză redusă. Este folosit în mod obișnuit ca o legătură între circuitele integrate cu dispozitive periferice lente la bord care sunt accesate intermitent. Concurează cu dispozitivele paralele de transmisie a datelor, dar pe măsură ce SPI crește în eficiență, avantajul primei este redus. SPI este uneori denumit „microwire”, deși acesta este considerat un subset de protocol al SPI.
Transferurile de date printr-o interfață periferică serială au loc prin protocol full-duplex. Datele sunt transferate și primite în ambele direcții în același timp. Aplicațiile care utilizează SPI câștigă multă eficiență în acest mod; o astfel de aplicație este între un codificator-decodor (codec) și un procesor de semnal digital (DSP). Alte aplicații includ senzori de temperatură și presiune, precum și memoria flash.
Ori de câte ori două dispozitive de interfață periferică serială comunică, un dispozitiv este denumit „master”, în timp ce celălalt dispozitiv este „slave”. Dispozitivul master inițiază toate comunicațiile prin transmiterea semnalelor către dispozitivul slave. O magistrală de interfață periferică serială poate conecta mai multe dispozitive slave la un singur master.
Dispozitivele de interfață periferică serială utilizează trei registre – registrul de control (SPCR), registrul de stare (SPSR) și registrul de date (SPDR) – pentru a trimite date, împreună cu patru semnale diferite. Primul semnal se numește ceas serial (SCLK), pe care îl generează doar dispozitivul principal. Aceasta este urmată de intrarea slave master-out (MOSI), slave-out master-in (MISO) și selectarea slave (SSn), unde „n” este numărul de dispozitive slave la care este conectat dispozitivul master.
Într-o configurație tipică cu un singur slave, un inginer care dorește să folosească o interfață periferică serială ar conecta SCLK la intrarea unui dispozitiv slave. MOSI transportă apoi date de la dispozitivul master la dispozitivul slave, în timp ce MISO transferă date de la slave la master. Pentru a determina ce dispozitiv este master și care este slave, primul conectează Master SSn la Slave SSn și generează un semnal de intrare/ieșire discret de uz general către cel din urmă.
Pentru a conecta mai multe slave la un master într-o interfață periferică serială, semnale SSn separate sunt conectate de la dispozitivul master la slave separate. De exemplu, SS1 este conectat la Slave 1, SS2 este conectat la Slave 2 și așa mai departe. Similar cu configurația cu un singur slave, SCLK este conectat de la dispozitivul master la mai mulți slave. Sunt conectate MOSI de la master la slave, precum și MISO de la slave la master.