Was ist das Prinzip der seriellen UART-Kommunikation?
09.22.2023
Was ist das UART-Kommunikationsprotokoll?
UART, eines der asynchronen seriellen Kommunikationsprotokolle, funktioniert, indem es jedes Zeichen der übertragenen Daten einzeln überträgt. Die Bedeutung der einzelnen Bits ist wie folgt:
Startbit: Zuerst wird eine logische "0" gesendet, die den Beginn der Zeichenübertragung anzeigt.
Datenbit: unmittelbar nach dem Startbit. Die Anzahl der Datenbits kann 4, 5, 6, 7, 8, usw. betragen, die ein Zeichen bilden. In der Regel wird der ASCII-Code verwendet. Die Übertragung beginnt mit dem niedrigsten Bit und wird durch den Taktgeber positioniert.
Paritätsbit: Das Datenbit wird zu diesem Bit addiert, um die Anzahl der "1"-Bits gerade (gerade Parität) oder ungerade (ungerade Parität) zu machen, um die Korrektheit der Datenübertragung zu überprüfen.
Stoppbit: Es ist die Endmarkierung der Zeichendaten. Es kann 1 Bit, 1,5 Bit oder 2 Bit hoch sein. Da die Daten auf der Übertragungsleitung getaktet werden und jedes Gerät seinen eigenen Takt hat, ist es wahrscheinlich, dass es während der Kommunikation zu einer kleinen Desynchronisation zwischen den beiden Geräten kommt. Daher zeigt das Stoppbit nicht nur das Ende der Übertragung an, sondern gibt dem Computer auch die Möglichkeit, die Taktsynchronisation zu korrigieren. Je mehr Bits für das Stoppbit verwendet werden, desto größer ist die Toleranz für eine unterschiedliche Taktsynchronisation, aber desto langsamer ist auch die Datenübertragungsrate.
Leerlaufbit: Im logischen Zustand "1" bedeutet es, dass auf der aktuellen Leitung keine Datenübertragung stattfindet.
Das Funktionsprinzip der seriellen UART-Kommunikation
(1) Senden von Daten:
Im Ruhezustand ist die Leitung auf High-Pegel; wenn der Übertragungsbefehl empfangen wird, wird ein Datenbit der Leitung mit der Zeit T heruntergezogen, dann werden die Daten in der Reihenfolge von Low zu High gesendet, nachdem die Daten gesendet wurden, werden das Paritätsbit und das Stoppbit gesendet, ein Rahmen der Datenübertragung ist abgeschlossen.
(2) Datenempfangsprozess:
Wenn die fallende Flanke (High-Pegel wird zu Low-Pegel) der Leitung erkannt wird, bedeutet dies, dass eine Datenübertragung auf der Leitung stattfindet, und die Daten werden von Low- zu High-Bit entsprechend der vereinbarten Baudrate empfangen.
Da UART eine asynchrone Übertragung ist, gibt es keinen synchronen Übertragungstakt. Um die Korrektheit der Daten zu gewährleisten, verwendet UART zur Abtastung einen Takt mit der 16-fachen Baudrate der Daten. Es gibt 16 Taktabtastungen für jedes Datum, und der mittlere Abtastwert wird genommen, um sicherzustellen, dass die Abtastung nicht verrutscht oder falsch ist. Im Allgemeinen beträgt die Anzahl der Datenbits in einem UART-Frame 8, so dass der Empfänger selbst bei einem Taktfehler bei den einzelnen Daten die Daten noch korrekt abtasten kann.
Das UART-Timing für den Datenempfang ist wie folgt: Wenn die fallende Flanke der Daten erkannt wird, zeigt dies an, dass Daten auf der Leitung für die Übertragung vorhanden sind, und der Zähler CNT beginnt zu zählen. Wenn der Zähler 24=16+8 ist, ist der abgetastete Wert das 0. Bit der Daten; wenn der Zählerwert 40 ist, ist der abgetastete Wert das erste Bit der Daten, und so weiter für die nächsten 6 Datenproben. Wenn eine Paritätsprüfung erforderlich ist, ist der abgetastete Wert das Paritätsbit, wenn der Zählerwert 152 ist; wenn der Zählerwert 168 ist, ist der abgetastete Wert "1", um das Stoppbit anzuzeigen, und der Datenempfang ist abgeschlossen.