Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial Internet of Things >> Eingebettet

Das UART verstehen

Der UART oder universeller asynchroner Empfänger-Sender ist eines der am häufigsten verwendeten Kommunikationsprotokolle von Gerät zu Gerät. Dieser Artikel zeigt, wie Sie einen UART als Hardware-Kommunikationsprotokoll verwenden, indem Sie das Standardverfahren befolgen.

Bei richtiger Konfiguration kann der UART mit vielen verschiedenen Arten von seriellen Protokollen arbeiten, die das Senden und Empfangen von seriellen Daten beinhalten. Bei der seriellen Kommunikation werden Daten bitweise über eine einzelne Leitung oder ein einzelnes Kabel übertragen. Bei der Zwei-Wege-Kommunikation verwenden wir zwei Drähte für eine erfolgreiche serielle Datenübertragung. Je nach Anwendung und Systemanforderungen benötigt die serielle Kommunikation weniger Schaltungen und Kabel, was die Implementierungskosten reduziert.

In diesem Artikel besprechen wir die grundlegenden Prinzipien bei der Verwendung eines UART, mit einem Schwerpunkt auf Paketübertragung, Standard-Frame-Protokoll und benutzerdefinierten Frame-Protokollen, die bei der Implementierung, insbesondere während der Codeentwicklung, Mehrwertfunktionen für die Sicherheitskonformität darstellen. Während der Produktentwicklung zielt dieses Dokument auch darauf ab, einige grundlegende Schritte bei der Überprüfung eines Datenblatts für die tatsächliche Verwendung mitzuteilen.

Am Ende des Artikels besteht das Ziel darin, die UART-Standards besser zu verstehen und einzuhalten, um die Fähigkeiten und Anwendungen zu maximieren, insbesondere bei der Entwicklung neuer Produkte.

"Das größte Problem in der Kommunikation ist die Illusion, dass sie stattgefunden hat."

—George Bernard Shaw

Das Kommunikationsprotokoll spielt eine große Rolle bei der Organisation der Kommunikation zwischen Geräten. Es ist auf unterschiedliche Weise basierend auf den Systemanforderungen konzipiert, und diese Protokolle haben eine bestimmte Regel, die zwischen den Geräten vereinbart wird, um eine erfolgreiche Kommunikation zu erzielen.

Eingebettete Systeme, Mikrocontroller und Computer verwenden meist einen UART als eine Form von Gerät-zu-Gerät-Hardware-Kommunikationsprotokoll. Unter den verfügbaren Kommunikationsprotokollen verwendet ein UART nur zwei Drähte für seine Sende- und Empfangsseite.

Obwohl es sich um eine weit verbreitete Methode des Hardware-Kommunikationsprotokolls handelt, ist es nicht immer vollständig optimiert. Die ordnungsgemäße Implementierung des Rahmenprotokolls wird bei der Verwendung des UART-Moduls im Mikrocontroller häufig nicht berücksichtigt.

UART ist per Definition ein Hardware-Kommunikationsprotokoll, das asynchrone serielle Kommunikation mit konfigurierbarer Geschwindigkeit verwendet. Asynchron bedeutet, dass kein Taktsignal vorhanden ist, um die Ausgangsbits vom sendenden Gerät zum empfangenden Ende zu synchronisieren.

Benutzeroberfläche


Abbildung 1. Zwei UARTs kommunizieren direkt miteinander.

Die beiden Signale jedes UART-Geräts heißen:

Der Hauptzweck einer Sender- und Empfängerleitung für jedes Gerät besteht darin, serielle Daten für die serielle Kommunikation zu senden und zu empfangen.


Abbildung 2. UART mit Datenbus.

Der sendende UART ist mit einem steuernden Datenbus verbunden, der Daten in paralleler Form sendet. Von diesem werden nun die Daten auf der Übertragungsleitung (Draht) seriell bitweise an den empfangenden UART übertragen. Dies wiederum wandelt die seriellen Daten für das empfangende Gerät in parallele um.

Die UART-Leitungen dienen als Kommunikationsmedium zum Übertragen und Empfangen von Daten zu anderen. Beachten Sie, dass ein UART-Gerät einen Sende- und Empfangs-Pin hat, der entweder zum Senden oder Empfangen bestimmt ist.

Für UART und die meisten seriellen Kommunikationen muss die Baudrate sowohl am sendenden als auch am empfangenden Gerät gleich eingestellt werden. Die Baudrate ist die Rate, mit der Informationen an einen Kommunikationskanal übertragen werden. Im Kontext der seriellen Schnittstelle dient die eingestellte Baudrate als maximale Anzahl von Bits pro Sekunde, die übertragen werden sollen.

Tabelle 1 fasst zusammen, was wir über den UART wissen müssen.

Tabelle 1. UART-Zusammenfassung

Wires2Speed9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600, 1000000, 1500000ÜbertragungsmethodenAsynchronMaximale Anzahl Master1Maximale Anzahl Slaves1

Die UART-Schnittstelle verwendet kein Taktsignal, um die Sender- und Empfängergeräte zu synchronisieren; es überträgt Daten asynchron. Anstelle eines Taktsignals erzeugt der Sender einen Bitstrom basierend auf seinem Taktsignal, während der Empfänger sein internes Taktsignal verwendet, um die eingehenden Daten abzutasten. Der Synchronisationspunkt wird verwaltet, indem auf beiden Geräten dieselbe Baudrate verwendet wird. Andernfalls kann das Timing des Sendens und Empfangens von Daten beeinflusst werden, was zu Abweichungen bei der Datenverarbeitung führen kann. Die zulässige Differenz der Baudrate beträgt bis zu 10 %, bevor das Timing der Bits zu weit abweicht.

Datenübertragung

In einem UART ist der Übertragungsmodus ein Paket. Das Teil, das Sender und Empfänger verbindet, umfasst die Erstellung serieller Pakete und steuert diese physischen Hardwareleitungen. Ein Paket besteht aus einem Startbit, einem Datenrahmen, einem Paritätsbit und Stoppbits.


Abbildung 3. UART-Paket.

Startbit

Die UART-Datenübertragungsleitung wird normalerweise auf einem hohen Spannungspegel gehalten, wenn sie keine Daten überträgt. Um die Datenübertragung zu starten, zieht der sendende UART die Übertragungsleitung für einen (1) Taktzyklus von hoch auf niedrig. Wenn der empfangende UART den Übergang von hoher zu niedriger Spannung erkennt, beginnt er mit dem Lesen der Bits im Datenrahmen mit der Frequenz der Baudrate.


Abbildung 4. Startbit.

Datenrahmen

Der Datenrahmen enthält die eigentlichen Daten, die übertragen werden. Es kann fünf (5) Bit bis zu acht (8) Bit lang sein, wenn ein Paritätsbit verwendet wird. Wenn kein Paritätsbit verwendet wird, kann der Datenrahmen neun (9) Bit lang sein. In den meisten Fällen werden die Daten mit dem niederwertigsten Bit zuerst gesendet.


Abbildung 5. Datenrahmen.

Parität

Parität beschreibt die Gleichheit oder Ungeradheit einer Zahl. Das Paritätsbit ist eine Möglichkeit für den empfangenden UART, festzustellen, ob sich Daten während der Übertragung geändert haben. Bits können durch elektromagnetische Strahlung, nicht übereinstimmende Baudraten oder Datenübertragungen über große Entfernungen geändert werden.

Nachdem der empfangende UART den Datenrahmen gelesen hat, zählt er die Anzahl der Bits mit dem Wert 1 und prüft, ob die Summe eine gerade oder ungerade Zahl ist. Wenn das Paritätsbit eine 0 (gerade Parität) ist, sollte die 1 oder das logisch hohe Bit im Datenrahmen eine gerade Zahl ergeben. Wenn das Paritätsbit eine 1 (ungerade Parität) ist, sollten das 1-Bit oder die logischen Hochs im Datenrahmen eine ungerade Zahl ergeben.

Wenn das Paritätsbit mit den Daten übereinstimmt, weiß der UART, dass die Übertragung fehlerfrei war. Aber wenn das Paritätsbit eine 0 ist und die Summe ungerade oder das Paritätsbit eine 1 ist und die Summe gerade ist, weiß der UART, dass sich Bits im Datenrahmen geändert haben.


Abbildung 6. Paritätsbits.

Stoppbits

Um das Ende des Datenpakets zu signalisieren, treibt der sendende UART die Datenübertragungsleitung für eine Dauer von einem (1) bis zwei (2) Bit(s) von einer niedrigen Spannung auf eine hohe Spannung.


Abbildung 7. Stoppbits.

Schritte der UART-Übertragung

Erstens:Der sendende UART empfängt parallel Daten vom Datenbus.


Abbildung 8. Datenbus zum sendenden UART.

Zweitens:Der sendende UART fügt dem Datenrahmen das Startbit, das Paritätsbit und das/die Stoppbit(s) hinzu.


Abbildung 9. UART-Datenrahmen auf der Tx-Seite.

Drittens:Das gesamte Paket wird seriell vom Startbit bis zum Stoppbit vom sendenden UART zum empfangenden UART gesendet. Der empfangende UART tastet die Datenleitung mit der vorkonfigurierten Baudrate ab.


Abbildung 10. UART-Übertragung.

Viertens:Der empfangende UART verwirft das Startbit, Paritätsbit und Stoppbit aus dem Datenrahmen.


Abbildung 11. Der UART-Datenrahmen auf der Rx-Seite.

Fünftens:Der empfangende UART wandelt die seriellen Daten zurück in parallel und überträgt sie auf der Empfangsseite an den Datenbus.


Abbildung 12. Empfangen von UART zum Datenbus.

Frame-Protokoll

Ein Schlüsselmerkmal, das im UART verfügbar ist, jedoch nicht vollständig genutzt wird, ist die Implementierung eines Rahmenprotokolls. Der Hauptnutzen und die Bedeutung davon ist ein Mehrwert für Sicherheit und Schutz auf jedem Gerät.

Wenn beispielsweise zwei Geräte dasselbe UART-Rahmenprotokoll verwenden, besteht die Tendenz, dass das Gerät beim Anschluss an denselben UART ohne Überprüfung der Konfiguration an verschiedene Pins angeschlossen wird, was zu Fehlfunktionen im System führen kann.

Andererseits gewährleistet die Implementierung die Sicherheit, da die empfangenen Informationen in Übereinstimmung mit dem Entwurfsrahmenprotokoll analysiert werden müssen. Jedes Frame-Protokoll wurde speziell entwickelt, um einzigartig und sicher zu sein.

Beim Entwerfen eines Rahmenprotokolls können Designer die gewünschten Header und Trailer, einschließlich CRC, auf verschiedene Geräte setzen. In Abbildung 13 werden zwei (2) Bytes als Teil des Headers festgelegt.

Zweitens:Überprüfen Sie unter der Speicherkarte die UART-Adresse.


Abbildung 13. Beispiel für ein UART-Frame-Protokoll.

Basierend auf dem Beispiel können Sie einen für Ihr Gerät eindeutigen Header, Trailer und CRC festlegen.

Header 1 (H1 ist 0xAB) und Header 2 (H2 ist 0xCD)

Der Header ist die eindeutige Kennung, die bestimmt, ob Sie mit

. kommunizieren

das richtige Gerät.

Befehlsauswahl (CMD)

Der Befehl hängt von der Liste der Befehle ab, die entwickelt wurden, um die Kommunikation zwischen zwei Geräten herzustellen.

Datenlänge (DL) pro Befehl

Die Datenlänge richtet sich nach dem gewählten Befehl. Sie können die Datenlänge je nach ausgewähltem Befehl maximieren, sodass sie je nach Auswahl variieren kann. In diesem Fall kann die Datenlänge angepasst werden.

Daten n (variierende Daten)

Daten sind die von Geräten zu übertragende Nutzlast.

Trailer 1 (T1 ist 0xE1) und Trailer 2 (T2 ist 0xE2)

Trailer sind Daten, die nach Beendigung der Übertragung hinzugefügt werden. Genau wie der Header können sie eindeutig identifiziert werden.

Zyklische Redundanzprüfung (CRC-Formel)

Die zyklische Redundanzprüfformel ist ein zusätzlicher Fehlererkennungsmodus, um versehentliche Änderungen an Rohdaten zu erkennen. Der CRC-Wert des sendenden Geräts muss immer gleich den CRC-Berechnungen auf der Empfängerseite sein.

Es ist ratsam, die Sicherheit durch die Implementierung von Rahmenprotokollen für jedes UART-Gerät zu erhöhen. Das Rahmenprotokoll erfordert identische Konfigurationen sowohl auf den sendenden als auch auf den empfangenden Geräten.

UART-Operationen

Bei Verwendung eines Hardware-Kommunikationsprotokolls ist es eine Voraussetzung, das Datenblatt und das Hardware-Referenzhandbuch zu lesen.

Hier sind die Schritte, die Sie befolgen müssen:

Zuerst:Überprüfen Sie die Datenblattschnittstelle des Gerätes.


Abbildung 14. Mikrocontroller-Datenblatt.


Abbildung 15. Speicherbelegung des Mikrocontrollers.

Drittens:Überprüfen Sie die spezifischen Details für den UART-PORT wie den Betriebsmodus, die Länge der Datenbits, das Paritätsbit und die Stoppbits. Beispieldetails für UART-Ports im Datenblatt:

UART-Port
Die Beispiel-MCUs bieten einen Vollduplex-UART-Port, der vollständig mit PC-Standard-UARTs kompatibel ist. Der UART-Port bietet eine vereinfachte UART-Schnittstelle zu anderen Peripheriegeräten oder Hosts und unterstützt Vollduplex, DMA und asynchrone Übertragung serieller Daten. Der UART-Port unterstützt fünf bis acht Datenbits und keine, gerade oder ungerade Parität. Ein Frame wird durch eineinhalb oder zwei Stoppbits abgeschlossen.

Viertens:Überprüfen Sie die Details der UART-Operation, einschließlich der Berechnung der Baudrate. Die Baudrate wird mit der folgenden Beispielformel konfiguriert. Diese Formel variiert je nach Mikrocontroller.

Beispieldetails von UART-Operationen:

wo,

OSR (Oversample-Rate)
UART_LCR2.OSR =0 bis 3
DIV (Baudratenteiler)
UART_DIV =1 bis 65535
M (DIVM Fractional Baudrate M)
UART_FBR.DIVM =1 bis 3
N (DIVM Fractional Baudrate M)
UART_FBR.DIVN =0 bis 2047

Fünftens:Überprüfen Sie für die Baudrate, welche Peripherieuhr (PCLK) verwendet werden soll. In diesem Beispiel stehen ein 26-MHz-PCLK und ein 16-MHz-PCLK zur Verfügung. Beachten Sie, dass OSR, DIV, DIVM und DIVN je nach Gerät variieren.

Tabelle 2. Beispiel für eine Baudrate basierend auf 26 MHz PCLK

Baudrate OSR DIV DIVM DIVN 9600324310781152003411563

Tabelle 3. Beispiel für eine Baudrate basierend auf 16 MHz PCLK

Baudrate OSR DIV DIVM DIVN 960031731078115200322348

Sechstens:Der nächste Teil besteht darin, die detaillierten Register für die UART-Konfiguration zu überprüfen. Sehen Sie sich die Parameter bei der Berechnung der Baudrate an, z. B. UART_LCR2, UART_DIV und UART_FBR. Tabelle 4 führt zu einem bestimmten abzudeckenden Register.

Tabelle 4. UART-Registerbeschreibungen

Name Beschreibung UART_DIVBaudratenteilerUART_FIBRFractional BaudrateUART_LCR2Second line control

Siebtens:Überprüfen Sie unter jedem Register die Details und ersetzen Sie die zu berechnenden Werte für die Baudrate, und beginnen Sie dann mit der Implementierung des UART.

Warum ist es wichtig?

Die Vertrautheit mit dem UART-Kommunikationsprotokoll ist bei der Entwicklung robuster, qualitätsorientierter Produkte von Vorteil. Wenn Sie wissen, wie Sie Daten über nur zwei Drähte senden und ein ganzes Datenpaket oder eine Nutzlast transportieren, können Sie sicherstellen, dass Daten fehlerfrei übertragen und empfangen werden. Da UART das am häufigsten verwendete Hardware-Kommunikationsprotokoll ist, kann dieses Wissen Designflexibilität in zukünftigen Designs ermöglichen.

Anwendungsfälle

Sie können UART für viele Anwendungen verwenden, wie zum Beispiel:

Referenzen

„Grundlagen der UART-Kommunikation.“ Electronics Hub, Juli 2017.

Campbell, Scott. „Grundlagen der UART-Kommunikation.“ Schaltungsgrundlagen . Keim, Robert.

„Zurück zu den Grundlagen:Der universelle asynchrone Empfänger/Sender.“ Alles über Rennstrecken , Dezember 2016.

„Was ist das UART-Protokoll? UART-Kommunikation erklärt.“ Pfeil.


Eingebettet

  1. Den Wellenherstellungsprozess verstehen
  2. Die Bedeutung der Cloud-Kultur verstehen
  3. Die Vorteile der vorausschauenden Wartung verstehen
  4. Die Grundlagen der Fräsmaschine verstehen
  5. Verstehen der Cut-to-Length-Linie
  6. Verständnis der verschiedenen Arten von Eigenspannungen
  7. Verständnis der Funktionsweise von Stoßdämpfern
  8. Verständnis der verschiedenen Arten von Flüssigkeitsströmungen
  9. Den Begriff Kopplung verstehen
  10. Die Flexibilität eines Materials verstehen