LBotics.at

Hinweise für die mündliche Prüfung

Erklärungen anhand von grafischen Darstellungen

Was ist SPI?

SPI (Serial Peripheral Interface) ist ein serielles Kommunikationsprotokoll, das zum Austausch von Daten zwischen mehreren Mikrocontrollern verwendet wird. Die SPI-Verbindung wird oft als Vollduplex bezeichnet, da Daten gleichzeitig in beide Richtungen übertragen werden können.

SPI bietet im Vergleich zu I²C eine höhere Datenübertragungsrate, ist dafür aber etwas komplexer im Aufbau. Die Übertragungsrate ist um ein vielfaches höher als bei als I²C und ermöglicht Datenübertragungen im Bereich von mehreren mbit/s.

Über welche Datenleitungen werden zwei Mikrocontroller bei einer SPI Übertragung miteinander verbunden und wozu dienen diese?
  • MOSI (Master Out Slave In): überträgt Daten vom Master zum Slave
  • MISO (Master In Slave Out): überträgt Daten vom Slave zum Master
  • SCK (Serial Clock): Master erzeugt den Takt, der die Datenübertragung steuert
  • SS/CS (Slave Select/Chip Select): aktiviert den gewünschten Slave und erlaubt so die Adressierung einzelner Geräte
Wie werden SPI Komponenten miteinander verbunden?

SPI nutzt im Standard-Setup zwischen zwei Mikrocontrollern vier Leitungen. Bei mehreren Mikrocontrollern bilden die MOSI-, MISO- und SCK-Leitung ein Bus-System an das alle beteiligten Komponenten angeschlossen sind und vom Master geht zusätzlich je eine eigene SS/CS-Leitung zu jedem Slave, damit dieser vom Master für eine Datenübertragung ausgewählt werden kann.

Erkläre das Senden von Werten über die SPI Schnittstelle anhand einer Grafik eines Logic Analyzers!

Zu Beginn einer Übertragung setzt der Master die jeweilige SS/CS-Leitung des Clients, mit dem er kommunizieren möchte auf LOW.

Der Master generiert auf der SCK-Leitung ein Clock-Signal. Basierend auf diesem werden vom Master auf der MOSI-Leitung die Zustände der einzelnen Bits gesetzt um ein Byte zum Slave zu schicken. Gleichzeitig werden vom Slave auf der MISO-Leitung die Zustände der einzelnen Bits für ein Byte gesetzt, das zum Master geschickt wird.

Dieses gleichzeitge Senden und Empfangen wird als Vollduplex-Verfahren bezeichnet. Ist die Übertragung beendet, setzt der Master die SS/CS-Leitung wieder auf HIGH.

Worin liegen die Vor- und Nachteile bei Datenübertragung zwischen Mikrocontrollern über die SPI-Schnittstelle?

Vorteile

  • Hohe Geschwindigkeit: ideal für Anwendungen, die eine schnelle Datenübertragung erfordern
  • Vollduplex-Fähigkeit: gleichzeitiges Senden und Empfangen, was I²C nicht bietet
  • Stabiler bei kurzen Distanzen: besonders vorteilhaft für Anwendungen auf Leiterplatten

Nachteile

  • Mehr Leitungen erforderlich: mindestens vier Leitungen erforderlich, bei mehreren Slaves steigt der Verdrahtungsaufwand
  • Kein eingebautes Adressierungssystem: Master muss jeden Slave einzeln über die eine eigene CS-Leitung ansprechen
  • Keine Fehlersicherung: SPI bietet im Gegensatz zu I²C keine automatische Fehlererkennung bei der Datenübertragung
  • Nur für sehr kurze Distanzen: maximal 30cm,  I²C-Übertragungen sind über mehrere Meter möglich