Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Industrietechnik

SPI I2C UART-  Kommunikationsprotokolle und Verwendungen

Die Entwicklung von Mikrocontrollern ist ein zentraler Prozess in der Elektronikmontage. Aber die Eingabe serieller Protokolle und Kommunikationsschnittstellen erleichtern dieses Unterfangen. In diesem Artikel beabsichtigen wir, serielle Kommunikationsprotokolle wie die SPI-I2C-UART-Schnittstelle und UART ausführlich zu untersuchen. Wir werden die Merkmale, Vorteile, Nachteile und Beispiele der seriellen Protokolle analysieren.

1. UART-Schnittstelle

Was ist UART?

Abbildung 1:Ein UART-Protokoll auf Arduino 

Universeller asynchroner Empfang und Übertragung ( UART ) ist ein serielles Kommunikationsprotokoll, das die Host-Kommunikation mit Hilfsgeräten erleichtert. In erster Linie ermöglicht es die serielle Datenübertragung. Außerdem ist es zu asynchroner Kommunikation und bidirektionaler Übertragung fähig.

Das einfache Protokoll verfügt auch über zwei Datenleitungen:Handhabung der Übertragung (Tx) und anderer Signalempfang (Rx). Normalerweise erfolgt die Signalübertragung über den digitalen Pin 0, während der Empfang über den digitalen Pin 1 erfolgt.

Außerdem hilft es bei der Synchronisierung der Verwaltung eines Computers und externer serieller Geräte.

Wie funktioniert es?

Abbildung 2:Eine selbstgebaute elektronische USB-UART-Platine

Im Wesentlichen verwaltet UART die Signalkommunikation zwischen zwei Geräten über die folgenden Mittel:

Simplex beinhaltet eine unidirektionale Datenübertragung, während Halbduplex eine nicht gleichzeitige Kommunikation zwischen zwei Geräten in beide Richtungen bedeutet. Schließlich beinhaltet ein Vollduplex eine gleichzeitige Datenübertragung in beide Richtungen.

Im Allgemeinen findet nach dem Anschluss eine Datenübertragung von der Datenleitung des sendenden UART zum empfangenden UART statt. Dies geschieht nach folgendem Prinzip;

  1. Zunächst wandelt der sendende UART die parallelen Daten eines Master-Geräts in eine serielle Form um, um sie an den empfangenden UART zu übertragen. In ähnlicher Weise ändert der empfangende UART die seriellen Daten in parallele Daten zur Verwendung durch das angeschlossene Empfangsgerät.
  2. Da UART eine asynchrone Kommunikation beinhaltet, enthält es keine Uhren. Somit erzeugt der UART Start- und Stoppbits, um den Beginn und das Ende einer Nachricht anzuzeigen.
  3. Die beiden UARTs müssen mit der gleichen BAUD-Rate oder UART-Datenübertragungsgeschwindigkeit funktionieren. Idealerweise dient dies dazu, ein genaues Timing der Datenbits sicherzustellen, da eine Differenz von mehr als 10 % die Daten unbrauchbar macht.

UART-Arbeitsprotokoll

Datenübertragung und -empfang

  1. Zur Übertragung muss der übertragende UART Daten von einem Datenbus, wie z. B. einer CPU, empfangen.
  2. Als nächstes fügt es die drei Bits hinzu, nämlich das Startbit, das Paritätsbit und das Stoppbit. Die drei bilden ein Datenpaket, das über den TX-Pin an den empfangenden UART übertragen wird.
  3. Die Datenübertragung stoppt nach Erschöpfung der Daten im sendenden UART.

Unterbrechungssteuerung

Datenunterbrechungen sind praktisch beim automatischen Senden von Pufferinhalten. In folgenden Szenarien können Sie eine Unterbrechungssteuerung veranlassen:

FIFO-Operation

Abb. 3. Eine UART-Schnittstelle auf Arduino

Die UART-Module der Stellaris-Familie verfügen über zwei 16-Byte-FIFOs, einen für den Datenempfang und den anderen für die Übertragung. Sie können sie auch in verschiedenen Tiefen konfigurieren, um unterschiedliche Interrupts bereitzustellen. Beispielsweise können Sie 1/8 Tiefe, 1/4 Tiefe, 1/2 Tiefe usw. haben.

Arbeitsprozess der FIFO-Übertragung

  1. In erster Linie beginnt die Datenübertragung nach der Dateneingabe. Da dies zeitaufwändig ist, erfolgt die Dateneingabe kontinuierlich, bis der Sende-FIFO voll ist.
  2. Sobald Sie voll sind, müssen Sie die Dateneingabe stoppen, damit Sie nicht alle neuen Daten verlieren.
  3. Als nächstes sendet das Sende-FIFO die Daten Stück für Stück, bis es leer ist. Schließlich erzeugt der Sende-FIFO einen zusätzlichen Schlitz.

Arbeitsprozess zum Empfangen von FIFO

  1. Nach dem Empfangen von Daten aus dem oben erwähnten Schritt speichert die Hardware diese im Empfangs-FIFO. Idealerweise ist das Empfangen und Löschen von Daten durch das empfangende FIFO-Programm ein automatischer Prozess. Somit soll genügend Platz im Empfangs-FIFO vorhanden sein.
  2. Es verfügt auch über einen Transceiver-FIFO, der für die Lösung von CPU-Ineffizienzproblemen unerlässlich ist. Darüber hinaus hilft es bei der Lösung des Problems häufiger UART-Transceiver-Unterbrechungen.
  3. Schließlich hat FIFO keinen Datenverlust, da es alle wahrscheinlichen Verlustwege im Voraus versiegelt.

Loopback

Der UART verfügt über einen internen Loopback für Debugging und Diagnose darüber, wo der RX-Eingang die gesendeten Daten empfängt.

Serielles Infrarotprotokoll

UART verfügt über ein IrDA Serial Infrared (SIR), das als Encoder/Decoder-Modul fungiert. Es ist praktisch bei der Übersetzung einer seriellen Halbduplex-SIR-Schnittstelle und eines asynchronen UART-Datenstroms.

Darüber hinaus liefert das serielle Kommunikationsprotokoll eine decodierte Eingabe und eine digital codierte Ausgabe an den UART.

Vorteile der Verwendung von UART

  1. Das einfache Kommunikationsprotokoll ist ein gut dokumentiertes Modul, das auch einfach zu verwenden ist.
  2. Zweitens benötigt es keine serielle Taktleitung.
  3. Drittens hat es ein Paritätsbit, das die Fehlerprüfung ermöglicht.

Nachteile der Verwendung von UART

  1. Die UART-Schnittstelle hat eine Beschränkung der Datenrahmengröße von 9 Bit und hat langsame Übertragungsgeschwindigkeiten.
  2. Außerdem ist es nicht in der Lage, viele Master-Systeme und Slave-Geräte zu verwenden.
  3. Außerdem hat es eine obligatorische Baudrate von innerhalb von 10 % als Schutz vor Datenverlust.
  4. Viertens hat es im Allgemeinen langsamere Geschwindigkeiten während der Datenübertragung zwischen Geräten.

UART-Beispiele in Mikrocontrollern

2. I2C-Schnittstelle

Was ist I2C?

Abbildung 4:Ein Differenzdrucksensor verwendet I2C

Der Inter-Integrated-Circuit (I2C) Kommunikationsprotokoll ähnelt dem UART. Aber während UART für die Kommunikation zwischen PCs bestimmt ist, ist I2C in Sensoren und Modulanwendungen nützlich.

Außerdem kann der bidirektionale synchrone serielle Zweidrahtbus mehrere Geräte verbinden, ohne den Kommunikationsweg zu beeinträchtigen. Es ist dank seines gemeinsamen Bus- und Adresssystems Eigentum.

Diese Funktion geht jedoch auf Kosten einer relativ langsamen Kommunikation zwischen Geräten im Vergleich zu einem SPI. Seine Geschwindigkeit hängt vom externen Rauschen, der Kabelqualität und der Datengeschwindigkeit ab.

Schließlich ermöglicht die Zweidrahtschnittstelle den Anschluss an langsame Geräte wie EEPROMs, Analog/Digital-Wandler und Mikrocontroller.

Wie funktioniert es?

Ein I2C-Protokoll weist zwei Leitungen auf:den Serial Data Line Acceptance Port (SDA) und eine Serial Clock Line (SCL). Die SCL erleichtert die Übertragungssynchronisation, während SDA die Datenleitung zum Senden und Empfangen von Datenbits darstellt.

Während der Übertragung veranlasst das Master-Gerät die Busdatenübertragung. Gleichzeitig erzeugt es einen Takt, der das Übertragungsgerät öffnet. In diesem Szenario ist das adressierte Gerät in der Übertragung ein Slave-Gerät.

Bemerkenswerterweise haben das Master-Gerät und das Slave-Gerät keine konstante Datenübertragungsrate. Ihre Beziehung beruht vielmehr auf der Datenübertragungsrichtung zur Übertragungszeit.

Außerdem muss das einzelne Master-Gerät das Slave-Select-Gerät informieren, bevor es eine Datenübertragung einleitet. Ebenso muss er den Slave informieren, bevor er Daten vom Slave empfängt.

Für eine optimale Funktion ist es auch wichtig, einen Pull-up-Widerstand an die I2C-Stromversorgung anzuschließen.

I2C-Arbeitsprotokoll

Abbildung 5:Ein 0,96-Zoll-OLED-128x64-OLED-Anzeigemodul IIC I2C mit Stift

Datenübertragungsmethode

Der Verbindungsvorgang ist wie folgt:

  1. Der Master-Ausgang sendet ein Sendesignal an die angeschlossenen Slaves, hauptsächlich durch Umschalten der SDA-Leitung von High-Voltage-Pegel auf Low. Als nächstes schaltet es die SCL-Leitung von Hochspannungspegel auf Niedrig um.
  2. Dann sendet der Master 7-Bit- oder 10-Bit-Adressen und liest/schreibt Bits an jeden der Slaves.
  3. Drittens vergleichen die Slaves die Adresse mit ihrer eigenen. Wenn es übereinstimmt, gibt es ein ACK-Bit zurück und schaltet die SDA-Leitung auf niedrig. Wenn sie jedoch nicht übereinstimmen, verlässt der Slave die SDA-Leitung auf einem High.
  4. Als nächstes sendet der Master den Datenrahmen oder empfängt ihn (abhängig von den übereinstimmenden Adressen). Dann sendet die empfangende Komponente nach vollständiger Datenübertragung ein ACK-Bit an den Datensender zurück. Es soll eine vollständige Übertragung bestätigen.
  5. Schließlich schaltet der Master den SCL auf High und dann den SDA, um das Ende der Kommunikation mitzuteilen.

Uhrsynchronisierung

Jeder Master muss sein Taktsignal in der SCL-Leitung zur Datenübertragung erzeugen. Außerdem bleiben Daten bei einer I2C-Übertragung nur während der High-Periode der Uhr gültig.

Übertragungsmodi

Es überträgt hauptsächlich auf zwei Wegen, nämlich:

Schnellmodus

Geräte im Schnellmodus empfangen und übertragen Daten mit einer Geschwindigkeit von 400 kbit/s. Außerdem kann ein Fast-Mode-I2C-Bus Glitches deutlich unterdrücken, und sein Ausgang verfügt über eine Slope-Control-Funktion.

Hochgeschwindigkeitsmodus

Ein I2C-Bus im Hochgeschwindigkeitsmodus sendet/empfangt Daten mit einer Bitrate von 3,4 Mbit/s. Damit bietet er schnellere Datenübertragungsraten als der bisherige Schnellmodus.

Vorteile von I2C

  1. Es verfügt über eine deutlich begrenzte Anzahl von Pins/Signalen, selbst wenn Sie zahlreiche Geräte an den Master angeschlossen haben.
  2. Zweitens bietet ein I2C-Gerät dank seiner Multi-Master- und Multi-Slave-Fähigkeit Flexibilität.
  3. Außerdem ist es einfach zu bedienen, da Sie nur zwei bidirektionale Kabel benötigen, um eine Verbindung zu zahlreichen Geräten herzustellen.
  4. Darüber hinaus bietet es umfangreiche Anpassbarkeit und kann auch zahlreiche Master unterstützen.

Nachteile von I2C

  1. Es hat eine relativ langsame Geschwindigkeit und muss Pull-Up-Widerstände verwenden, im Gegensatz zum SPI, das nur Push-Pull-Widerstände benötigt. Außerdem schränkt sein Open-Drain-Design seine Geschwindigkeit ein.
  2. Außerdem nehmen die Widerstände Platz ein, was bei der Leiterplattenmontage von immenser Bedeutung ist.
  3. Es ist nicht einfach zu verwenden, wenn Sie zahlreiche Geräte angeschlossen haben.

Beispiele für I2C in Mikrocontrollern

3. SPI-Schnittstelle

Was ist SPI?

Abbildung 6:Eine SPI-Schnittstelle ist praktisch in Anzeigemodulen.

Die Serial Peripheral Interface (SPI) ist für den Einsatz in Mikrocontrollern vorgesehen. Da es außerdem im Vollduplex-Modus arbeitet, ermöglicht es gleichzeitiges Senden und Empfangen von Daten.

Das SPI ist relativ schneller als I2C, mit einer Datenübertragungsrate von mindestens 8 Bit. In erster Linie ermöglicht das einfache Protokoll dieses Moduls schnellere Datenraten. Daher ist es wichtig für Anwendungen, die Geschwindigkeit erfordern, wie z. B. Anzeigemodule und SD-Karten.

Es ist auch bei Anwendungen mit plötzlichen Informationsänderungen, z. B. Thermometern, unerlässlich.

Wie funktioniert es?

Abb. 7:SD-Karten verwenden SPI

Eine SPI-Form von Geräten funktioniert auf eine der folgenden zwei Arten:

Sie können beliebig viele Geräte in einer SPI-Schnittstelle anschließen. In den meisten Fällen werden Sie jedoch durch die verfügbaren Hardware-Auswahlleitungen eingeschränkt. Schließlich muss das Modul während der Punkt-zu-Punkt-Kommunikation keine Operationen adressieren.

SPI-Arbeitsprotokoll

SPI funktioniert über vier Ports, nämlich:

  1. Master Data Output, Slave Data Input (MOSI)
  2. Stammdateneingabe, Slavedatenausgabe (MISO)
  3. Ein Taktsignal (SCLK)
  4. Slave-fähiges Signal (NSS)

Bei Verwendung eines Multi-Slave-Systems fordert jeder jeweilige Slave ein eindeutiges Freigabesignal. Diese Anforderung verkompliziert die Hardwareanforderung im Vergleich zu einer I2C-Kommunikation.

Außerdem verfügt die SPI-Schnittstelle über zwei Schieberegister. Es ermöglicht eine synchrone serielle Datenübertragung zwischen einem einzelnen Master-Gerät, wie beispielsweise einer CPU, zu Peripheriegeräten.

Vorteile der Verwendung von SPI

  1. Es ist einfach zu verwenden, da es im Gegensatz zu einem I2C kein komplexes Slave-Adressierungssystem hat.
  2. Zweitens ist es das schnellste Protokoll aller seriellen Schnittstellen, die wir behandelt haben (schneller als UART und I2C).
  3. Es hat keine Start- und Stoppbits wie bei der UART-Kommunikation. Somit ermöglicht es eine kontinuierliche Datenübertragung ohne Unterbrechungen.
  4. Zu guter Letzt verfügt es über separate MISO- und MOSI-Leitungen, die das gleichzeitige Senden und Empfangen von Daten ermöglichen.

Nachteile der Verwendung von SPI

  1. Die meisten seiner Pin-Ports sind belegt, was die Anzahl der Geräte begrenzt, die Sie verbinden können.
  2. Außerdem fehlt ihm eine spezifische Flusskontrolle, und anders als bei I2C gibt es keinen Mechanismus zum Bestätigen, dass Daten gesendet/empfangen wurden.
  3. Es erfordert die Verwendung von 4 Zeilen, wie wir oben hervorgehoben haben, und im Gegensatz zu UART fehlt ihm ein Fehlerprüfmechanismus.
  4. Viertens hat es auch einen einzigen Master.

Beispiele für SPI in Mikrocontrollern

Vergleich von UART, I2C und SPI

Welches dieser Kommunikationsperipheriegeräte ist das „Beste“? UART, SPI oder I2C?

Von den dreien gibt es keine überlegenen Kommunikationsperipheriegeräte, da jedes seine wichtigsten Vor- und Nachteile hat. Wählen Sie daher je nach Projekt das am besten geeignete Protokoll. Zum Beispiel würde SPI Ihnen am besten dienen, wenn Sie nach Geschwindigkeit suchen.

Wenn Sie jedoch zahlreiche Geräte verbinden möchten, ohne ein komplexes Array zu haben, entscheiden Sie sich für I2C.

Schlussfolgerung

Wir haben alle wichtigen Erkenntnisse offengelegt, die Sie über UART-, I2C- und SPI-Kommunikationsschnittstellen und ihre verschiedenen Übertragungsraten wissen müssen. Außerdem sind wir hier, um alle Fragen zu den Kommunikationsprotokollen zu beantworten. Wenden Sie sich an uns, und wir kommen Ihnen umgehend zu Hilfe.


Industrietechnik

  1. MQTT und DDS:Machine-to-Machine-Kommunikation im IoT
  2. Netzwerkprotokolle
  3. Begriffe und Konzepte des digitalen Speichers
  4. Boards – Breakout the Pi – I2C, UART, GPIO und mehr
  5. 14 unbekannte Anwendungen der Nanotechnologie | Vorteile und Anwendungen
  6. Was ist Silberlöten? - Verfahren, Stange und Verwendung
  7. Datengesteuerte Fertigung:Vorteile, Herausforderungen und Strategien
  8. Automatisieren Sie die Datenaufnahme und optimieren Sie die Entscheidungsfindung
  9. Holzarten und ihre Verwendung
  10. Wolfram verwendet damals und heute