Serielle Kommunikationsschnittstelle - SPI In Embedded Hardware Communication Interface Protocol

Sep 16, 2019

Eine Nachricht hinterlassen

Dieser Abschnitt wird fortgesetzt. Eine weitere serielle Kommunikationsschnittstelle im Hardware-Kommunikationsschnittstellenprotokoll - 。 Verglichen mit dem seriellen UART- hat eine eigene Einzigartigkeit.

Die Adresse wird wie folgt zitiert: http://www.eepw.com.cn/article/201812/396060.htm

kurze Einleitung

(SerialPeripheral Interface), serielle Peripherieschnittstelle.

SPI ist die Abkürzung für SerialPeripheral Interface. SPI ist ein synchroner Hochgeschwindigkeits-Vollduplex-Kommunikationsbus, der nur vier Leitungen am Pin des Chips belegt. Es spart die Pins des Chips und spart Platz und Komfort für das Layout der Leiterplatte. Aufgrund dieser einfachen und benutzerfreundlichen Eigenschaft haben immer mehr Chips dieses Kommunikationsprotokoll integriert, wie z. B. AT91RM9200.

- aus der Baidu-Enzyklopädie

Das Interface wurde Mitte der 1980er-Jahre von Motorola entwickelt und ist de facto zum Standard geworden.

--aus Wiki

Aus dem "Faktenstandard", den Wikipedia herangezogen hat, können wir einen blinden Fleck von Wissen in der Wissenschaft gewinnen.

Faktische Standards beziehen sich auf diejenigen, die nicht von den Normungsorganisationen formuliert wurden, sondern von Unternehmen und Unternehmensgruppen, die technologisch führend sind. Einige von ihnen benötigen auch die Genehmigung der Branchenverbände, z. B. die DVD-Standards, die vom DVD-Forum genehmigt werden müssen, und die vom Markt akzeptierten technischen Standards.

- aus der Baidu-Enzyklopädie

Die SPI-Schnittstelle definiert eine Host- und weitere Kommunikationsarchitektur. Auf demselben SPI-Bus gibt es nur einen Host und mehrere Slave-Computer. Eine solche Architektur schränkt die Kommunikationsinitiative nur auf der Host-Seite ein, der Host initiiert eine Kommunikation und der Slave macht das Gewünschte.

Die Signalleitung

SPI wird als vieradriger serieller Bus bezeichnet und hat folgende Signalleitungen:

SCLK: serielle Uhr (Host-Ausgang)

MOSI: Hauptausgang vom Slave-Eingang oder Host-Ausgang Slave-Eingang (Ausgangsdaten vom Host).

MISO: die Haupteingabe von der Ausgabe oder die Haupteingabe von der Ausgabe (von der Ausgabedatenausgabe).

SS: Slave-Auswahl (normalerweise niedrige Effizienz, Host-Ausgabe).

Die Benennung der Signalleitungen ist ebenfalls unterschiedlich.

Uhr der seriellen Schnittstelle:

SCLK: SCK

Der Hauptausgang -> vom Eingang (MOSI):

SIMO, MTSR - entsprechen MOSI zwischen Hauptgerät und Slave-Gerät.

SDI, DI, DIN, SI - vom Gerät; Stellen Sie eine Verbindung zum MOSI am Hauptgerät her, oder stellen Sie eine Verbindung zum folgenden Anschluss her.

SDO, DO, DOUT, SO - auf dem Hauptgerät; Stellen Sie eine Verbindung zum MOSI der Slave-Station her, oder stellen Sie eine Verbindung zum obigen Anschluss her.

主 输入 <--- 从="" 输出="" (miso)="">

SOMI, MRST - entsprechen MISO zwischen Hauptgerät und Slave-Gerät.

SDO, DO, DOUT, SO - vom Gerät aus; Stellen Sie eine Verbindung zum MISO auf dem Hauptgerät her, oder stellen Sie eine Verbindung mit der folgenden Verbindung her.

SDI, DI, DIN, SI - Hauptgerät; MISO an Slave oder obere Verbindung angeschlossen.

Slave Auswahl:

SS: SSEL, CS, CE, nSS, / SS, SS #

Die oben genannten verwirrenden Namen lauten SDO, SDI, DOUT, DIN usw. Diese Namen müssen im Hauptgerät oder nur vom Gerät getrennt angezeigt werden. Versuchen Sie jedoch im Allgemeinen, klare Spezifikationen zu verfassen, da dies nicht leicht zu Unklarheiten führen kann.

SPI kann als synchrone serielle Schnittstelle mit zwei synchronen Signalen betrachtet werden. Die erste besteht darin, SS-Signale von der Slave-Maschine auszuwählen, den ausgewählten Slave zu informieren, die SPI-Kommunikation vorzubereiten, und die zweite darin, das Taktsignal SCLK zu synchronisieren. Wenn die Transceiverseiten mit den Daten interagieren, werden sie basierend auf dem Springen von SCLK bitweise ausgegeben und abgetastet.

Die vier Signalleitungen werden je nach Arbeitsmodus nicht alle benötigt, sie können in zwei Leitungen und drei Leitungen konfiguriert werden.

Auf der Konfigurationsseite des STM32CubeMX-Tools können Sie deutlich sehen, wie unterschiedlich die Chip-Pins für die verschiedenen Betriebsmodi sind.







Der Vergleich ergab, dass der Unterschied zwischen den vier und drei Leitungen des Vollduplex das Slave-Signal NSS ist. Diese Situation ist im Allgemeinen darauf zurückzuführen, dass der SPI-Bus nur eine Haupt- und eine Slave-Kommunikationsarchitektur aufweist und das Slave-NSS-Signal immer einen niedrigen Pegel aufwies.

Signal-Timing

Die Zeitsequenz der vieradrigen SPI-Schnittstelle ist immer zuerst niedrig, wählen Sie die Signalleitung SS von der Maschine aus, geben Sie dann den SCLK aus und nehmen Sie den Daten-MOSI, zu diesem Zeitpunkt ist MISO ein hochohmiger Zustand. Wie folgt:



In der Regel gibt es SPI-Schnittstellengeräte. Entsprechende Sequenzdiagramme finden Sie unter Spec. Die SPI-Schnittstelle wird jeweils abgefangen. Das FLASH-Modell ist GD25Q32C, das OLED-Modell mit SPI-Schnittstelle ist QG-2832TLBFG04, und die Spezifikationsteile der beiden Geräte werden wie folgt vorgestellt: Zwei Screenshots:





Es ist nicht schwierig herauszufinden, dass die Spezifikation des Zeitdiagramms die Reihenfolge und die Zeitverzögerung jedes Signalleitungsausgangspegels definiert und die "Ausrichtung" des Taktsignals definiert, das zusammen mit dem Datensignal springt. Die "Ausrichtung" ist hier eigentlich die Ausgabe und Abtastung der Daten.

In ähnlicher Weise spezifiziert diese Taktspezifikation die SPI-Schnittstellensignaleigenschaften von SPI-Vorrichtungen, einschließlich des Taktanstiegs, der Zeit der abfallenden Flanke, der Verzögerung zwischen der Chipauswahl und der Taktsprungflanke und der Dauer der Taktflanke und der Datenleitung.

Diese Timing-Eigenschaften definieren den Umfang des SPI-Hosts bei der Kommunikation mit ihm oder überschreiten den Umfang seiner Definition nicht. Andernfalls kommt es aufgrund der Reaktion der Maschinenteile zu einer abnormalen Kommunikation.

Verschiedene Geräte haben unterschiedliche Timing-Anforderungen an die SPI-Schnittstelle. Das erste einfache Sequenzdiagramm und basierend auf diesem Sequenzdiagramm kann die SPI-Schnittstelle auch verschiedene Schnittstellenkonfigurationsparameter konfigurieren.

Konfigurationselement der Schnittstelle

Im Allgemeinen ist die optionale Konfiguration der Schnittstelle: Schnittstellenmodus (die aktuelle Konfiguration ist die Auswahl des Einzel- und Duplexmodus), Geräte-Master-Slave-Modus, Datenbreite, Taktpolarität (CPOL :), Taktphase (CPHA), Taktrate, Datenbitbit Größe und Anschlussauswahl.

Schnittstellenmodus

Die standardmäßige vieradrige SPI-Schnittstelle verwendet die Kommunikation zwischen Host und Slave für die Dateninteraktion, und die beiden Parteien haben den Datenempfangs- und -sendeprozess. In der LCD / OLED SPI-Schnittstelle müssen keine Daten an den Host als Gerät des Geräts zurückgegeben werden. Es müssen lediglich Steuerinformationen und Anzeigedaten vom Host empfangen werden.

Basierend auf diesem Szenario kann es als eine Drei-Draht-Simplex-Kommunikation konfiguriert werden, dh, nur SS, Takt SCLK und Datenausgang MOSI können von der Maschine ausgewählt werden.

Geräte-Master-Slave-Modus

Bei dieser Konfiguration muss im Allgemeinen geprüft werden, ob der Chip unterstützt wird oder nicht, und sie kann als SPI-Host oder Slave-Maschine konfiguriert werden, damit sie besser in das Projektsystem integriert werden kann.

Datenbreite

Wie der Name schon sagt, kann das Senden von Daten in 8-Bit, 16-Bit usw. konfiguriert werden, was ebenfalls entsprechend dem Chip festgelegt wird.

Taktpolarität und Taktphase

Die beiden sind CPOL (Clock Polarity) und CPHA (Clock Phase). Polarität bedeutet hohes und niedriges Niveau. Dies definiert, dass der SPI-Bus im Ruhezustand ist und der Takt auf einem hohen oder niedrigen Pegel bleibt, da bei der SPI-Kommunikation die erste Taktsprungflanke ansteigt und abfällt. Die Phase bezieht sich auf die Sprungflanke des Takts und gibt die Ausgabe des Datensignals und die Ausrichtung der Abtastung zum Takt an.

Die beiden Konfigurationen wurden in Wiki und Baidu-Enzyklopädie sehr klar interpretiert.





Taktfrequenz

Die Ratenauswahl definiert die Drehrate der Taktsignalleitung bei der Datenübertragung. Dies ist der Ratenbereich, der in dem von jedem Chip definierten Schnittstellen-Sequenzdiagramm eingehalten werden kann. Wenn die Geschwindigkeit des Hosts zu schnell eingestellt ist und die Antwort des Slave-Computers zu langsam ist, schlägt die Kommunikation fehl.

Datenbit Bitgröße und Endauswahl

Daten senden Prioritätsbit konfigurierbar, aus dem ersten UART-Protokoll wissen kann, UART spezifizierte Datenprioritätsbit0, und dieser SPI ist konfigurierbar, Prioritätsbit zu senden, kann die niedrigste oder die höchste Position setzen.

Aus den Zeitreihen-Screenshots von FLASH-Modell GD25Q32 und OLED QG-2832TLBFG04 können wir ersehen, dass diese beiden Geräte dem MSB Priorität einräumen, dh der höchsten Priorität.

Dann vergleiche die Anleitung eines Schriftchips GT21L16S2W zum Lesen:



Es ist ersichtlich, dass die Übertragungspriorität von MSB üblicherweise in SPI-Geräten übernommen wird.

Fassen Sie die SPI-Kommunikationsschnittstelle, eine Host- und eine Multi-Slave-Kommunikationsarchitektur zusammen. Der Standardmodus hat vier Signalleitungen, startet die Kommunikation mit dem ausgewählten Signal SS, das Taktsignal SCLK führt die Bitausgabe und -abtastung durch, konfiguriert die Abtastzeit und gibt dem Bit Priorität.


Anfrage senden