WikiDer > Serielle Peripherieschnittstelle
Serielle Peripherieschnittstelle (SPI) ist eine synchrone serielle Datenverbindung zwischen mindestens zwei Medien. Es gibt zunächst einen Master und einen Slave. Die Kommunikation zwischen Master und Slave ist immer in Vollduplex. Die Kommunikation wird vom Masterchip gestartet. Es ist möglich, mehrere Slaves zu haben, aber sie müssen jeweils einen separaten Chip Select haben. Für die Kommunikation werden immer vier Verbindungen benötigt. Deshalb sprechen wir von a vierdraht seriell Bus.
Name
- SCLK : serieller Takt: wird vom Master geliefert.
- MOSI: Master-Ausgang Slave-Eingang: Diese Zeile überträgt die Daten, die der Ausgang des Masters und der Eingang des Slaves sind.
- MISO: Master-Eingang Slave-Ausgang: Die Daten vom Slave werden an den Master gesendet.
- SS: Slave Select: Diese Leitung wird aktiv low angesteuert. Die Leitung für den ausgewählten Slave ist niedrig. Wenn die Kommunikation mit dem Slave abgeschlossen ist, erhält die Leitung eine logische 1.
Aufbau
Normalerweise hat jeder Slave seine eigene Slave-Auswahlleitung, aber in einigen Fällen können mehrere Slaves verkettet werden (Daisy-Chain), wobei der MISO-Port jedes Slaves mit dem MOSI-Port des nächsten Slaves in der Kette verbunden ist. Der MISO-Port des letzten Slaves in der Kette wird mit dem MISO-Port des Masters verbunden. Alle Slave-Select-Ports in der Kette sind miteinander verbunden. Diese Konfiguration macht eine individuelle Adressierung überflüssig, geht aber zu Lasten der Datenrate.
Kommunikation starten
Die Kommunikation beginnt mit der Auswahl einer richtigen Taktfrequenz. Diese Geschwindigkeit kann beträchtlich von 1 MHz bis 100 MHz variieren. Die Geschwindigkeit muss im Bereich von Master und Slave liegen. Es ist möglich, dass der Master mit einer höheren Geschwindigkeit arbeitet als der Slave, aber auch umgekehrt.
Eine logische 0 wird dann an die richtige Slave-Auswahlleitung gesendet. Wenn nur 1 Chip (Slave) vorhanden ist, kann man diese Leitung dauerhaft auf 0 halten. Der Chip funktioniert möglicherweise nicht, bis er eine Flanke erkennt (von hoch nach niedrig). In diesem Fall dürfen wir die Zeile nicht auf logisch 0 halten. Diese Slave-Auswahl hängt sehr eng mit der Steuerung der Taktimpulse zusammen. Einige Chips benötigen eine Wartezeit, bevor Sie die Taktimpulse an den Slave wie einen DAC oder einen ADC senden können, dann wird pro Taktzyklus ein Vollduplex-Signal gesendet. Sowohl der Master als auch der Slave werden nämlich ein Stück weiterleiten. Der Master sendet über die MOSI-Leitung und der Slave liest von dieser Leitung. Das Umgekehrte geschieht auf der MISO-Linie. Der Slave sendet Daten und der Master liest aus dieser Zeile. In vielen Fällen werden Schieberegister verwendet. Normalerweise beträgt die Registergröße 8 Bit und das niedrigstwertige Bit wird zuerst gesendet, dies ist jedoch nicht immer der Fall. Im Mikrohöhenmesser-Modul MS5607-02BA01 mit LCP-Kappe wird ein 24-Bit-Register verwendet und das höchstwertige Bit zuerst gesendet. Nach Übermittlung des vollständigen Registers werden die Daten verarbeitet. Dies kann das Schreiben der Daten in den Speicher beinhalten. Wenn mehr Daten gesendet werden müssen, werden die Daten geladen und wir beginnen von vorne.
Leistungen
- Vollduplex
- Schnellere Kommunikation als zum Beispiel die I²C-Bus
- Keine Wortgrößenbeschränkung
- Einfache Hardware
- Adressierung nicht notwendig
- Kein separater Oszillator für Slave
- Geringer Energieverbrauch
- Keine Transceiver erforderlich
- Nur vier Pins benötigt
- Ein Pin pro Slave extra über 1
- Kann sehr hohe Taktraten verarbeiten
Nachteile
- Brauche mehr Pins als bei I²C
- Keine Steuerung durch den Slave (Master kann die Uhr verzögern, Slave nicht)
- Keine Überprüfung, ob etwas angeschlossen ist
- Maximal ein Meister
- Keine Fehlerprüfung
- Geräuschempfindlich
Verweise
| Siehe die Kategorie Serielle Peripherieschnittstelle von Wikimedia Commons für Mediendateien zu diesem Thema. |