Inhaltsverzeichnis:

GRUNDLAGEN DES SPI-KOMMUNIKATIONSPROTOKOLLS: 13 Schritte
GRUNDLAGEN DES SPI-KOMMUNIKATIONSPROTOKOLLS: 13 Schritte

Video: GRUNDLAGEN DES SPI-KOMMUNIKATIONSPROTOKOLLS: 13 Schritte

Video: GRUNDLAGEN DES SPI-KOMMUNIKATIONSPROTOKOLLS: 13 Schritte
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, Juli
Anonim
GRUNDLAGEN DES SPI-KOMMUNIKATIONSPROTOKOLLS
GRUNDLAGEN DES SPI-KOMMUNIKATIONSPROTOKOLLS

Wenn Sie einen Mikrocontroller an einen Sensor, ein Display oder ein anderes Modul anschließen, denken Sie dann jemals darüber nach, wie die beiden Geräte miteinander kommunizieren? Was genau sagen sie? Wie können sie sich verstehen?

Die Kommunikation zwischen elektronischen Geräten ist wie die Kommunikation zwischen Menschen. Beide Seiten müssen dieselbe Sprache sprechen. In der Elektronik werden diese Sprachen als Kommunikationsprotokolle bezeichnet. Zum Glück für uns gibt es nur wenige Kommunikationsprotokolle, die wir kennen müssen, wenn wir die meisten DIY-Elektronikprojekte erstellen. In dieser Artikelserie besprechen wir die Grundlagen der drei gängigsten Protokolle: Serial Peripheral Interface (SPI), Inter-Integrated Circuit (I2C) und Universal Asynchronous Receiver/Transmitter (UART)-gesteuerte Kommunikation. Zuerst beginnen wir mit einigen grundlegenden Konzepten der elektronischen Kommunikation und erklären dann im Detail, wie SPI funktioniert. Im nächsten Artikel besprechen wir die UART-gesteuerte Kommunikation und im dritten Artikel tauchen wir in I2C ein. SPI, I2C und UART sind etwas langsamer als Protokolle wie USB, Ethernet, Bluetooth und WiFi, aber sie sind viel einfacher und verbrauchen weniger Hardware- und Systemressourcen. SPI, I2C und UART eignen sich ideal für die Kommunikation zwischen Mikrocontrollern und zwischen Mikrocontrollern und Sensoren, bei denen keine großen Mengen an Hochgeschwindigkeitsdaten übertragen werden müssen.

Schritt 1: SERIELL VS. PARALLELE KOMMUNIKATION

SERIELL VS. PARALLELE KOMMUNIKATION
SERIELL VS. PARALLELE KOMMUNIKATION

Elektronische Geräte kommunizieren miteinander, indem sie Datenbits über Kabel senden, die physisch zwischen Geräten verbunden sind. Ein Bit ist wie ein Buchstabe in einem Wort, außer dass ein Bit anstelle der 26 Buchstaben (im englischen Alphabet) binär ist und nur eine 1 oder 0 sein kann. Bits werden durch schnelle Spannungsänderungen von einem Gerät zum anderen übertragen. In einem System, das mit 5 V arbeitet, wird ein 0-Bit als kurzer Impuls von 0 V und ein 1-Bit durch einen kurzen Impuls von 5 V übertragen.

Die Datenbits können entweder parallel oder seriell übertragen werden. Bei der parallelen Kommunikation werden die Datenbits alle gleichzeitig gesendet, jedes über eine separate Leitung. Das folgende Diagramm zeigt die parallele Übertragung des Buchstabens „C“in Binär (01000011):

Schritt 2:

Bei der seriellen Kommunikation werden die Bits einzeln über einen einzigen Draht gesendet. Das folgende Diagramm zeigt die serielle Übertragung des Buchstabens „C“in Binär (01000011):

Schritt 3:

Bild
Bild

Schritt 4: EINFÜHRUNG IN DIE SPI-KOMMUNIKATION

EINFÜHRUNG IN DIE SPI-KOMMUNIKATION
EINFÜHRUNG IN DIE SPI-KOMMUNIKATION

SPI ist ein gängiges Kommunikationsprotokoll, das von vielen verschiedenen Geräten verwendet wird. SD-Kartenmodule, RFID-Kartenlesermodule und 2,4-GHz-Funksender/-empfänger verwenden beispielsweise alle SPI, um mit Mikrocontrollern zu kommunizieren.

Ein einzigartiger Vorteil von SPI ist die Tatsache, dass Daten ohne Unterbrechung übertragen werden können. Es können beliebig viele Bits in einem kontinuierlichen Strom gesendet oder empfangen werden. Bei I2C und UART werden Daten in Paketen gesendet, die auf eine bestimmte Anzahl von Bits begrenzt sind. Start- und Stoppbedingungen definieren den Anfang und das Ende jedes Pakets, sodass die Daten während der Übertragung unterbrochen werden. Geräte, die über SPI kommunizieren, stehen in einer Master-Slave-Beziehung. Der Master ist das Steuergerät (normalerweise ein Mikrocontroller), während der Slave (normalerweise ein Sensor, ein Display oder ein Speicherchip) Anweisungen vom Master erhält. Die einfachste Konfiguration von SPI ist ein Single-Master-Single-Slave-System, aber ein Master kann mehr als einen Slave steuern (mehr dazu weiter unten).

Schritt 5:

Bild
Bild

Schritt 6:

MOSI (Master Output/Slave Input) – Leitung für den Master zum Senden von Daten an den Slave.

MISO (Master Input/Slave Output) – Leitung für den Slave zum Senden von Daten an den Master.

SCLK (Clock) – Leitung für das Taktsignal.

SS/CS (Slave Select/Chip Select) – Zeile für den Master, um auszuwählen, an welchen Slave Daten gesendet werden sollen

Schritt 7:

Bild
Bild

*In der Praxis wird die Anzahl der Slaves durch die Lastkapazität des Systems begrenzt, was die Fähigkeit des Masters verringert, genau zwischen den Spannungspegeln umzuschalten.

Schritt 8: WIE FUNKTIONIERT SPI?

DIE UHR

Das Taktsignal synchronisiert die Ausgabe von Datenbits vom Master mit der Abtastung von Bits durch den Slave. In jedem Taktzyklus wird ein Datenbit übertragen, sodass die Geschwindigkeit der Datenübertragung durch die Frequenz des Taktsignals bestimmt wird. Die SPI-Kommunikation wird immer vom Master initiiert, da der Master das Taktsignal konfiguriert und generiert.

Jedes Kommunikationsprotokoll, bei dem Geräte ein Taktsignal teilen, wird als synchron bezeichnet. SPI ist ein synchrones Kommunikationsprotokoll. Es gibt auch asynchrone Methoden, die kein Taktsignal verwenden. Bei der UART-Kommunikation werden beispielsweise beide Seiten auf eine vorkonfigurierte Baudrate eingestellt, die die Geschwindigkeit und das Timing der Datenübertragung bestimmt.

Das Taktsignal in SPI kann mit den Eigenschaften Taktpolarität und Taktphase modifiziert werden. Diese beiden Eigenschaften arbeiten zusammen, um zu definieren, wann die Bits ausgegeben und abgetastet werden. Die Taktpolarität kann vom Master so eingestellt werden, dass Bits entweder an der ansteigenden oder an der abfallenden Flanke des Taktzyklus ausgegeben und abgetastet werden. Die Taktphase kann so eingestellt werden, dass Ausgabe und Abtastung entweder an der ersten Flanke oder an der zweiten Flanke des Taktzyklus erfolgen, unabhängig davon, ob sie ansteigt oder fällt.

SLAVE-AUSWAHL

Der Master kann wählen, mit welchem Slave er kommunizieren möchte, indem er die CS/SS-Leitung des Slaves auf einen niedrigen Spannungspegel setzt. Im freien, nicht sendenden Zustand wird die Slave-Auswahlleitung auf einem hohen Spannungspegel gehalten. Am Master können mehrere CS/SS-Pins verfügbar sein, wodurch mehrere Slaves parallel verdrahtet werden können. Wenn nur ein CS/SS-Pin vorhanden ist, können mehrere Slaves per Daisy-Chaining mit dem Master verbunden werden.

MEHRERE SKLAVEN SPI

kann für den Betrieb mit einem einzelnen Master und einem einzelnen Slave eingerichtet werden, und es kann mit mehreren Slaves eingerichtet werden, die von einem einzigen Master gesteuert werden. Es gibt zwei Möglichkeiten, mehrere Slaves mit dem Master zu verbinden. Wenn der Master mehrere Slave-Select-Pins hat, können die Slaves wie folgt parallel verdrahtet werden:

Schritt 9:

Bild
Bild

Schritt 10:

MOSI UND MISO

Der Master sendet Daten bitweise seriell über die MOSI-Leitung an den Slave. Der Slave empfängt die vom Master gesendeten Daten am MOSI-Pin. Daten, die vom Master zum Slave gesendet werden, werden normalerweise mit dem höchstwertigen Bit zuerst gesendet. Der Slave kann auch seriell Daten über die MISO-Leitung an den Master zurücksenden. Die vom Slave zurück zum Master gesendeten Daten werden normalerweise mit dem niederwertigsten Bit zuerst gesendet. SCHRITTE DER SPI-DATENÜBERTRAGUNG 1. Der Master gibt das Taktsignal aus:

Schritt 11:

Bild
Bild

Wenn nur ein Slave-Select-Pin verfügbar ist, können die Slaves wie folgt verkettet werden:

Schritt 12:

Bild
Bild
Bild
Bild
Bild
Bild
Bild
Bild

MOSI UND MISO

Der Master sendet Daten bitweise seriell über die MOSI-Leitung an den Slave. Der Slave empfängt die vom Master gesendeten Daten am MOSI-Pin. Daten, die vom Master zum Slave gesendet werden, werden normalerweise mit dem höchstwertigen Bit zuerst gesendet.

Der Slave kann auch seriell Daten über die MISO-Leitung an den Master zurücksenden. Die vom Slave zurück zum Master gesendeten Daten werden normalerweise mit dem niederwertigsten Bit zuerst gesendet.

SCHRITTE DER SPI-DATENÜBERTRAGUNG

*Hinweis: Bilder sind aufgeführte Oboen, die Sie leicht unterscheiden können

1. Der Master gibt das Taktsignal aus:

2. Der Master schaltet den SS/CS-Pin in einen Niederspannungszustand, der den Slave aktiviert:

3. Der Master sendet die Daten bitweise über die MOSI-Leitung an den Slave. Der Slave liest die Bits so wie sie empfangen werden:

4. Wenn eine Antwort erforderlich ist, sendet der Slave Daten bitweise über die MISO-Leitung an den Master zurück. Der Master liest die Bits, wenn sie empfangen werden:

Schritt 13: VOR- UND NACHTEILE VON SPI

Die Verwendung von SPI hat einige Vor- und Nachteile, und wenn Sie die Wahl zwischen verschiedenen Kommunikationsprotokollen haben, sollten Sie wissen, wann Sie SPI gemäß den Anforderungen Ihres Projekts verwenden sollten:

VORTEILE

Keine Start- und Stoppbits, daher können die Daten kontinuierlich ohne Unterbrechung gestreamt werden Kein kompliziertes Slave-Adressierungssystem wie I2C Höhere Datenübertragungsrate als I2C (fast doppelt so schnell) Getrennte MISO- und MOSI-Leitungen, damit Daten gleichzeitig gesendet und empfangen werden können Zeit

NACHTEILE

Verwendet vier Drähte (I2C und UARTs verwenden zwei) Keine Bestätigung, dass die Daten erfolgreich empfangen wurden (I2C hat dies) Keine Form der Fehlerprüfung wie das Paritätsbit in UART Erlaubt nur einen einzigen Master Hoffentlich hat Ihnen dieser Artikel ein besseres Verständnis vermittelt von SPI. Fahren Sie mit Teil 2 dieser Serie fort, um mehr über UART-gesteuerte Kommunikation zu erfahren, oder mit Teil 3, in dem wir das I2C-Protokoll diskutieren.

Wenn Sie Fragen haben, können Sie diese gerne im Kommentarbereich stellen, wir sind hier, um Ihnen zu helfen. Und unbedingt folgen

Grüße: M. Junaid

Empfohlen: