SPI (Serial Peripheral Interface) ist ein synchrones serielles Kommunikationsprotokoll. Es tauscht Daten zwischen einem Mikrocontroller (Leader) und einer oder mehreren Peripheriegeräten (Responder), wie Sensoren, und beispielsweise Displays aus. Aufgrund seiner Einfachheit, Geschwindigkeit und Flexibilität ist es weit verbreitet und wird weniger effizienten Protokollen wie UART vorgezogen. Besonders in der Embedded System Entwicklung, der industriellen Automatisierung und in elektronischen Geräten findet es Anwendung.
Hauptmerkmale
Synchronous Communication
Die Kommunikation erfolgt synchron, was bedeutet, dass ein gemeinsames Taktsignal (Clock) verwendet wird, um die Übertragung von Daten zwischen Master und Slaves zu koordinieren.
Duplex-Datenbankübertragung
SPI ermöglicht die gleichzeitige Übertragung von Daten in beide Richtungen, wodurch eine schnelle und effiziente Kommunikation möglich ist. Dabei handelt es sich um eine Vollduplex-Datenübertragung.
Mehrere Leitungen
MOSI (Master Out, Slave In):
Datenleitung, über die der Leader (auch Master) Daten an die Responder (auch Slaves) sendet.
MISO (Master In, Slave Out):
Datenleitung, über die der Responder (auch Slave) Daten an den Leader (auch Master) sendet.
SCK (Serial Clock):
Taktleitung, die vom Master bereitgestellt wird, um die Synchronisation der Datenübertragung zu steuern.
CS (Chip Select):
Steuerleitung, mit der der Leader ein bestimmtes Responder-Gerät aktiviert.
Vorteile
Hohe Geschwindigkeit: SPI ist für schnelle Datenübertragungen geeignet und kann Geschwindigkeiten von mehreren MHz erreichen.
Kein Adresskonflikt: Durch die CS Leitung können mehrere identische Bausteine nacheinander angesprochen werden. Es tritt kein Adresskonflikt auf wie es bei I²C der Fall wäre, denn dort kann er nur aufwendig umgangen werden.
Einfachheit: Das Protokoll ist einfach zu implementieren und flexibel in der Anwendung.
Vollduplex: Gleichzeitiges Senden und Empfangen von Daten.
Nachteile
Verkabelungsaufwand: Im Vergleich zu anderen seriellen Protokollen (z.B. I²C) erfordert SPI mehr Leitungen, insbesondere bei mehreren Responder.
Fehlende Adressierung: SPI unterstützt keine Adressierung, weshalb jede CS-Leitung einzeln für jeden Responder benötigt wird.