Bei der SPI-Schnittstelle werden in der Regel vier Signalleitungen benötigt, zuerst eine Leitung die sich
MOSI nennt, das ist die Abkürzung für "Master Out Slave In" und bedeutet, dass über diese Leitung das Mastergerät Daten an den Empfänger (Slave) sendet.
Die zweite Dateleitung heißt
MISO "Master In Slave Out", darüber sendet der Slave Daten an den Master zurück.
Zur Synchronisierung wird ein Taktsignal erzeugt, das am Signalpin
SCK erzeugt wird.
Damit bei mehreren parallel an MISO und MOSI angeschlossenen Empfängern (Slaves), der jeweilige Slave weiß, dass er gemeint ist, gibt es noch die CS-Leitung.
CS steht für Chip select, also "ausgewählter Slave". Der Master kann damit über mehrere einzelene Digitalausgänge , den gewünscheten Slave aktivieren.
Bekommt ein Slave auf der CS-Leitung ein Signal, weiß er, dass die nun kommenden Daten für ihn gedacht sind. Die übrigen Slaves, deren CS nicht angesteuert werden, ignorieren dann die Daten, die über ihren MOSI-Eingang hereinkommen.
Für MOSI wird auch manchmal die Pinbezeichnung SDI "Slave Data In" verwendet und für MISO SDO für " Slave Data Out". Zusammengefasst:
MOSI - SDI - Daten, die vom Master zum Slave gesendet werden
MISO - SDO - Daten, die vom Slave zum Master gesendet werden
SCK (Serial Clock) - CLK (Clock) - Clock, bzw. Takteleitung
CS (Chip Select) - SS (Slave Select) - , also Anwahl des gewünschten Slaves, der Daten als die seinigen annimmt
Es gibt auch noch eine weitere Möglichkeit mehrere Slave-Geräte anzuschließen, die wird gewählt, wenn ein Master nur begrenzte Digitalleitungen besitzt und nicht jeden Slave separat mit CS anwählen kann. Die erwähne ich nur kurz hier und vertiefe das nicht weiter.
Bei diese speziellen Verschaltung, die sich "Daisy Chained Connection" nennt, schiebt man immer für alle Slaves gleichzeitig die Daten seriell über den MOSI-Ausgang raus. Die Slaves reichen die Daten jeweils über ihren MISO-Port zum MOSI-Port des nächsten Slaves weiter. Der Taktausgang SCK und der Chip Select CS-Ausgang des Masters ist dann jeweils parallel mit den SCK und CS Anschlüssen der Slaves verbunden.
Je nach vewendetem Gerät ist es möglich, dass noch weitere Signalleitungen benötigt werden. Z.B. bei einem Display könnte noch eine Resetleitung vorhanden sein, die RST oder RES heißen kann, sowie eine leitung, mit der man die Hintergrundbeleuchtung aktiviert, die LED oder BLC heißen kann. Eine DC oder RS Leitung ist für Daten, bzw. Befehlsauswahl.