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.
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.
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 | - |
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:
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:
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.