Zurück zu den Grundlagen: SPI (Serial Peripheral Interface)

Playful Kiss - Playful Kiss: Full Episode 2 (Official & HD with subtitles) (Juni 2019).

$config[ads_text] not found
Anonim

Zurück zu den Grundlagen: SPI (Serial Peripheral Interface)


Die Serial Peripheral Interface wird verwendet, um Daten zwischen integrierten Schaltungen unter Verwendung einer reduzierten Anzahl von Datenleitungen zu übertragen. Dieser Artikel enthält die Hintergrundinformation, die für Neulinge benötigt wird, um die Schnittstelle zu verstehen.

Zugehörige Informationen

  • Serial-In, Seriell-Out-Schieberegister

Die drei häufigsten seriellen Datenübertragungsformate mit mehreren Leitungen, die seit Jahrzehnten verwendet werden, sind I 2 C, UART und SPI. Dieser Artikel befasst sich mit dem SPI-Bus (Serial Peripheral Interface), der nicht explizit standardisiert wurde. Überprüfen Sie daher immer das Datenblatt des integrierten Schaltkreises, mit dem Sie arbeiten, bevor Sie das Protokoll implementieren.

Fähigkeiten und Eigenschaften

Der Serial Peripheral Interface Bus ermöglicht die synchrone Vollduplex-Kommunikation zwischen einem Master-Gerät und einem Slave über vier Datenleitungen.

Grundlegende Master-Slave-Konfiguration

Die Serial Peripheral Interface ermöglicht das Verschieben von Datenbits aus einem Master-Gerät in einen Slave, und gleichzeitig können Bits aus dem Slave in den Master verschoben werden.

Animation 1 zeigt Daten, die aus Microchip A in Microchip B und aus Microchip B in Microchip A verschoben wurden.

Animation 2 zeigt eine virtuelle 4-Kanal-Oszilloskopspur einer SPI-Transaktion zwischen zwei Mikrochips. Erstellt mit Mathematica von Mark Hughes

Da SPI nicht standardisiert ist, können Situationen auftreten, in denen entweder das höchstwertige Bit (MSB) oder das niedrigstwertige Bit (LSB) zuerst übertragen wird. Überprüfen Sie das Datenblatt für Ihr Gerät und richten Sie Ihre Datenverarbeitungsroutinen entsprechend ein. Wenn Sie ein Arduino verwenden, finden Sie auf dieser Seite Informationen zum Konfigurieren Ihres SPI-Anschlusses.

Uhr Polarität und Phase

Taktübergänge regeln das Verschieben und Abtasten von Daten. SPI hat vier Modi (0, 1, 2, 3), die den vier möglichen Taktkonfigurationen entsprechen.

Bits, die bei der ansteigenden Flanke des Taktzyklus abgetastet werden, werden bei der abfallenden Flanke des Taktzyklus herausgeschoben und umgekehrt.

Jede Transaktion beginnt, wenn die Slave-Select-Leitung auf logisch Low (Slave-Select ist typischerweise ein Aktiv-Low-Signal) gesteuert wird. Die genaue Beziehung zwischen den Slave-Auswahl-, Daten- und Taktleitungen hängt davon ab, wie die Taktpolarität (CPOL) und die Taktphase (CPHA) konfiguriert sind.

Bei nicht invertierter Taktpolarität (dh der Takt ist logisch niedrig, wenn die Slave-Auswahl zu logisch niedrig übergeht):

  • Modus 0: Die Taktphase ist so konfiguriert, dass Daten an der ansteigenden Flanke des Taktimpulses abgetastet und an der abfallenden Flanke des Taktimpulses herausgeschoben werden. Dies entspricht der ersten blauen Taktspur im obigen Diagramm. Beachten Sie, dass Daten vor der ersten steigenden Flanke der Uhr verfügbar sein müssen.
  • Modus 1: Die Taktphase ist so konfiguriert, dass Daten an der abfallenden Flanke des Taktimpulses abgetastet und bei der ansteigenden Flanke des Taktimpulses herausgeschoben werden. Dies entspricht der zweiten blauen Taktspur im obigen Diagramm.

Mit invertierter Taktpolarität (dh der Takt ist logisch hoch, wenn die Slave-Auswahl auf logisch niedrig übergeht):

  • Modus 2: Die Taktphase ist so konfiguriert, dass Daten an der abfallenden Flanke des Taktimpulses abgetastet und bei der ansteigenden Flanke des Taktimpulses herausgeschoben werden. Dies entspricht der ersten orangenen Taktspur im obigen Diagramm. Beachten Sie, dass Daten vor der ersten fallenden Flanke der Uhr verfügbar sein müssen.
  • Modus 3: Die Taktphase ist so konfiguriert, dass Daten an der ansteigenden Flanke des Taktimpulses abgetastet und an der abfallenden Flanke des Taktimpulses herausgeschoben werden. Dies entspricht der zweiten orangenen Taktspur im obigen Diagramm.

Schlüsselbegriffe

CLK: Serielle Uhr. Gesteuert vom Master-Gerät. Ein neues Datenbit wird mit jedem Taktzyklus herausgeschoben.

SSN: Slave Select (das "N" identifiziert es als ein Aktiv-Niedrig-Signal). Gesteuert vom Master-Gerät. Eine aktive Slave-Select-Leitung zeigt an, dass der Master Daten an das entsprechende Slave-Gerät sendet oder anfordert.

MOSI: Master Ausgang ⇒ Slave In. Daten verlassen das Master-Gerät und geben das Slave-Gerät ein. MOSI-Leitungen auf Chip A sind mit MOSI-Leitungen auf Chip B verbunden.

MISO: Master In - Slave Out. Daten verlassen das Slave-Gerät und geben das Master-Gerät (oder einen anderen Slave in einer Daisy-Chain-Konfiguration ein; siehe nächsten Abschnitt). MISO-Leitungen auf Chip A sind mit MISO-Leitungen auf Chip B verbunden.

CPOL: Taktpolarität . Dies regelt den anfänglichen logischen Zustand des Taktsignals. Weitere Informationen finden Sie im vorherigen Abschnitt.

CPHA: Taktphase. Dies regelt die Beziehung zwischen den Datenübergängen und den Taktübergängen. Weitere Informationen finden Sie im vorherigen Abschnitt.

Slave-Auswahl und Verkettung

Mehrere-Slave-Konfiguration auswählen

In der Standard-SPI-Anordnung kann das Master-Gerät Daten an einzelne Geräte schreiben, die gemeinsame Datenleitungen teilen, oder Daten anfordern, indem es das Gerät aktiviert, dh indem die Slave-Auswahl-Leitung des entsprechenden Geräts auf logisch niedrig gesetzt wird. Es sollte darauf geachtet werden, nicht mehrere Slaves gleichzeitig zu aktivieren, da die Daten, die an den Master zurückgegeben werden, durch Treiberkonflikte zwischen den MISO-Leitungen beschädigt werden. Bei bestimmten Anwendungen müssen keine Daten an den Master zurückgegeben werden. In diesem Fall können mehrere Slaves gleichzeitig angesprochen werden, wenn der Master dieselben Daten an mehrere Slaves senden möchte.

In der Multiple-Slave-Select-Konfiguration benötigt jeder Slave eine eindeutige Slave-Select-Leitung vom Master. Verfügt der Master nicht über genügend E / A-Pins für die erforderliche Anzahl von Slaves, kann die E / A-Erweiterung durch den Einbau eines Decoders / Demultiplexers wie dem 74HC (T) 238 (PDF) (3-zu-8-Leitung) implementiert werden Decoder / Demultiplexer).

Daisy-Chain-Konfiguration

In dieser Konfiguration werden Daten von einem Gerät zum nächsten übertragen. Das letzte Slave-Gerät kann Daten an den Master zurückgeben.

In der Daisy-Chain-Konfiguration teilen sich alle Slaves eine gemeinsame Slave-Select-Leitung. Daten werden aus dem Master in den ersten Slave und dann aus dem ersten Slave in den zweiten und so weiter verschoben. Die Daten kaskadieren die Leitung bis zum letzten Slave in der Reihe, der dann seine MISO-Leitung verwenden kann, um Daten an das Master-Gerät zu senden.

Diese Konfiguration eignet sich gut für die individuell adressierbaren LED-Lichterketten, die in den Ferien beliebt sind.

Fazit

Das Serial Peripheral Interface gibt es seit Jahrzehnten, und es gibt keinen Grund zu erwarten, dass es in absehbarer Zeit wieder verschwindet. Während I 2 C und UART möglicherweise beliebter sind, ist SPI eine vielseitige und unkomplizierte serielle Kommunikationsschnittstelle, die für bestimmte Anwendungen hervorragend geeignet ist.