Arduino -Kommunikationsprotokoll

Arduino -Kommunikationsprotokoll
Kommunikationsprotokolle sind die Regeln, die es Geräten ermöglichen, Daten zu kommunizieren und auszutauschen. Diese Protokolle sind in der Arduino -Kommunikation sehr wichtig, da Arduino ständig Daten sendet und empfängt. Die Verwendung dieser Protokolle hilft Arduino dabei, die Fehlererkennung und mögliche Fehlerwiederherstellungsmethoden abzudecken. Diese Protokolle bringen analoge und digitale Geräte zusammen und ermöglichen es, mehrere Projekte zu entwerfen.

Arduino -Kommunikationsprotokolle

Durch die Verwendung von Kommunikationsprotokollen können wir alle Sensordaten in Arduino senden und empfangen.

Einige einfache Sensoren wie Infrarot (IR) können direkt mit Arduino kommunizieren, aber einige komplexe Sensoren wie Wi-Fi-Modul, SD-Kartenmodul und Gyroskop können nicht direkt mit Arduino ohne Kommunikationsprotokolle kommunizieren. Deshalb sind diese Protokolle ein wesentlicher Bestandteil der Arduino -Kommunikation.

Arduino hat mehrere Peripheriegeräte daran; Unter ihnen gibt es drei Kommunikationsperipheriegeräte in Arduino -Boards.

  • Uart
  • Spi
  • I2C

Arduino -Kommunikationsprotokolle

Die Kommunikation zwischen verschiedenen elektronischen Geräten wie Arduino ist zwischen diesen drei Protokollen standardisiert. Es ermöglicht Designer, ohne Kompatibilitätsprobleme leicht zwischen verschiedenen Geräten zu kommunizieren. Die Arbeit dieser drei Protokolle ist der gleiche wie sie dem gleichen Zweck der Kommunikation dienen, aber sie unterscheiden sich in der Implementierung in einem Stromkreis. Eine weitere Beschreibung dieser Protokolle wird unten erörtert.

Uart

UART ist als die bekannt Universal Asynchronous Receiver / Transmitter. UART ist ein serielles Kommunikationsprotokoll, das bedeutet, dass Datenbits nacheinander in sequentieller Form übertragen werden. Zum Einrichten der UART -Kommunikation benötigen wir zwei Zeilen. Einer ist der TX (D1) -Pin des Arduino -Boards und der zweite der RX (D0) -Fin des Arduino -Boards. Der TX -Pin dient zum Senden von Daten auf Geräte und RX -Pin wird zum Empfangen von Daten verwendet. Verschiedene Arduino -Boards haben mehrere UART -Stifte.

Arduino Digital Pin Uart Pin
D1 Tx
D0 Rx

Um die serielle Kommunikation mit dem UART -Port festzulegen, müssen wir zwei Geräte in der folgenden Konfiguration anschließen:

Auf Arduino Uno ist ein serieller Port für die Kommunikation gewidmet, die allgemein als USB -Port bezeichnet wird. Wie der Name vorschlägt, ist es ein serieller Anschluss, so dass es sich um einen seriellen Port handelt. Die Verwendung des USB -Ports Arduino kann die Kommunikation mit Computern festlegen. Der USB -Anschluss ist an Bordstifte TX und RX von Arduino angeschlossen. Mit diesen Stiften können wir eine andere externe Hardware als Computer über USB anschließen. Arduino IDE bietet Softwareerialbibliothek (SoftWareserial.H) Dadurch können Benutzer GPIO -Stifte als serielle TX- und RX -Stifte verwenden.

  • UART ist einfach mit Arduino zu arbeiten
  • UART braucht kein Taktsignal
  • Die Baud -Rate muss innerhalb von 10% der Kommunikationsgeräte festgelegt werden, um Datenverlust zu verhindern
  • Mehrere Geräte mit Arduino in der Master -Slave -Konfiguration sind bei UART nicht möglich
  • UART ist Halb Duplex, was bedeutet, dass Geräte keine Daten gleichzeitig übertragen und empfangen können
  • Nur zwei Geräte gleichzeitig können mit dem UART -Protokoll kommunizieren

Serielle periphere Grenzfläche (SPI)

Spi ist eine Akronym für serielle periphere Grenzfläche, die speziell für Mikrocontroller entwickelt wurde, um mit ihnen zu kommunizieren. SPI arbeitet im Full-Duplex-Modus, was bedeutet, dass SPI Daten gleichzeitig senden und empfangen kann. Im Vergleich zu UART und I2C ist es das schnellste Kommunikations periphere in Arduino -Boards. Es wird häufig verwendet, wenn eine hohe Datenrate wie in LCD -Anzeige- und Micro -SD -Kartenanwendungen erforderlich ist.

SPI -Digitalstifte auf Arduino sind vordefiniert. Für die Arduino Uno SPI -Pin -Konfiguration lautet wie folgt:

SPI -Linie GPIO ICSP Header Pin
Sck 13 3
Miso 12 1
Mosi 11 4
Ss 10 -
  • Mosi steht für Sklave einleiten, MOSI ist die Datenübertragungslinie für den Master zu Slave.
  • Sck ist a Taktlinie Dies definiert die Übertragungsgeschwindigkeit und Startendeigenschaften.
  • SS steht für Sklavenauswahl; Mit der SS -Zeile können Master beim Betrieb in mehreren Slave -Konfiguration ein bestimmtes Slave -Gerät auswählen.
  • Miso steht für Meister im Sklaven; Miso ist Sklave, die die Übertragungslinie für Daten beherrschen.

Eines der Haupthighlights des SPI-Protokolls ist die Master-Slave-Konfiguration. Mit SPI kann ein Gerät als Master definiert werden, um mehrere Sklavengeräte zu steuern. Der Meister hat die vollständige Kontrolle über Sklavengeräte durch SPI -Protokoll.

SPI ist ein synchrones Protokoll, was bedeutet, dass die Kommunikation mit einem gemeinsamen Taktsignal zwischen Master und Slave verbunden ist. SPI kann mehrere Geräte als Sklave über eine einzelne Sende- und Empfangsleitung steuern. Alle Sklaven sind mit gemeinsamem Master verbunden Miso eine Linie erhalten Mosi eine gemeinsame Sendelinie. Sck ist auch die gemeinsame Uhrlinie unter Master- und Sklavengeräten. Nur der Unterschied in Sklavengeräten ist, dass jedes Sklavengerät durch getrennte gesteuert wird Ss Zeile auswählen. Dies bedeutet, dass jeder Sklave einen zusätzlichen GPIO -Pin von der Arduino -Board benötigt, der als Select Line für dieses bestimmte Slave -Gerät fungiert.

Einige der wichtigsten Highlights des SPI -Protokolls sind unten aufgeführt:

  • SPI ist das schnellste Protokoll als I2C und UART
  • Kein Start- und Stoppbits wie bei UART erforderlich, was bedeutet, dass eine kontinuierliche Datenübertragung möglich ist
  • Slave kann aufgrund einer einfachen Master -Slave -Konfiguration leicht angesprochen werden
  • Für jeden Sklaven ist ein zusätzlicher Stift am Arduino -Vorstand besetzt. Praktisch 1 Master kann 4 Sklavengeräte steuern
  • Die Datenbestätigung fehlt wie bei UART verwendet
  • Mehrere Masterkonfiguration ist nicht möglich

I2C -Kommunikationsprotokoll

Inter Integrated Circuit (I2C) ist ein weiteres Kommunikationsprotokoll, das von Arduino Boards verwendet wird. I2C ist das schwierigste und komplizierteste Protokoll, das mit Arduino und anderen Geräten implementiert werden kann. Trotz seiner Komplikation bietet es mehrere Funktionen, die in anderen Protokollen wie mehreren Master- und mehreren Slaves -Konfigurationen fehlen. I2C ermöglicht das Anschließen von bis zu 128 Geräten an das Haupt -Arduino -Board. Dies ist nur möglich, da I2C einzelne Kabel unter allen Sklavengeräten teilen. I2C in Arduino verwendet ein Adresssystem, was bedeutet, bevor Daten an Slave -Geräte gesendet werden. Arduino muss zuerst das Slave -Gerät auswählen, indem Sie eindeutige Adresse senden. I2C verwendet nur zwei Drähte, die die Gesamtanzahl von Arduino Pin reduzieren, aber die schlechte Seite ist I2C ist langsamer als das SPI -Protokoll.

Arduino Analog Pin I2C Pin
A4 SDA
A5 Scl

Auf der Hardware Level I2C ist nur auf zwei Drähte beschränkt, eine für eine Datenlinie, die als bekannt ist SDA (Seriendaten) und zweiter für die Uhr Linie SCL (Serienuhr). Im Leerlaufzustand werden sowohl SDA als auch SCL hoch gezogen. Wenn Daten übertragen werden müssen, werden diese Leitungen mit MOSFET -Schaltkreisen niedrig gezogen. Wenn Sie I2C in Projekten verwenden, ist es obligatorisch, Pull -Up -Widerstände normalerweise einen Wert von 4 zu verwenden.7kohm. Diese Ziehwiderstände stellen sicher, dass sowohl SDA- als auch SCL -Linien in ihrem Leerlaufstart hoch bleiben.

Einige der Haupthighlights von I2C -Protokollen sind:

  • Die Anzahl der erforderlichen Stifte ist sehr niedrig
  • Mehrere Master -Sklavengeräte können angeschlossen werden
  • Verwendet nur 2 Drähte
  • Die Geschwindigkeit ist im Vergleich zu SPI aufgrund von Ziehwiderständen langsamer
  • Widerstände benötigen mehr Platz in der Schaltung
  • Komplexität der Projektzunahme mit zunehmender Anzahl von Geräten

Vergleich zwischen UART gegen I2C gegen SPI

Protokoll Uart Spi I2C
Geschwindigkeit Langsamste Am schnellsten Schneller als UART
Anzahl der Geräte Bis zu 2 4 Geräte Bis zu 128 Geräte
Drähte erforderlich 2 (TX, RX) 4 (SCK, Mosi, Miso, SS) 2 (SDA, SCL)
Duplex -Modus Voller Duplexmodus Voller Duplexmodus Halbduplex
Anzahl der möglichen Master-Sklaven Single Master-Single-Sklave Einzelne Master-Multiple-Sklaven Mehrere Master-Multiple-Sklaven
Komplexität Einfach Kann einfach mehrere Geräte steuern Komplex mit zunehmender Geräte
Bestätigungsbit NEIN NEIN Ja

Abschluss

In diesem Artikel haben wir einen umfassenden Vergleich aller drei Protokolle UART, SPI und I2C in Arduino behandelt. Es ist wichtig, alle Protokolle zu kennen, da es endlose Möglichkeiten gibt, mehrere Geräte zu integrieren. Das Verständnis aller Kommunikationsperipheriegeräte sparen Zeit und helfen bei der Optimierung von Projekten entsprechend dem richtigen Protokoll.