Universaler asynchroner Empfänger/Sender

Ein Universaler Asynchroner Empfänger/Sender, abgekürzter UART , ist ein Typ des "asynchronen Empfängers/Senders", eines Stückes der Computerhardware, die Daten zwischen parallelen und Serienformen übersetzt. UARTs werden in Verbindung mit Nachrichtenstandards wie EIA, RS-232, RS-422 oder RS-485 allgemein verwendet. Die universale Benennung zeigt an, dass das Datenformat und die Übertragungsgeschwindigkeiten konfigurierbar sind, und dass die wirklichen elektrischen Signalniveaus und Methoden (wie Differenzial, das usw. signalisiert) normalerweise, durch einen speziellen zum UART äußerlichen Fahrer-Stromkreis behandelt werden.

Ein UART ist gewöhnlich eine Person (oder ein Teil) integrierter Stromkreis, der für Serienkommunikationen über einen Computer oder peripherisches Gerät Serienhafen verwendet ist. UARTs werden jetzt in Mikrokontrolleure allgemein eingeschlossen. Ein Doppel-UART oder DUART, verbindet zwei UARTs in einen einzelnen Span. Viele moderne ICs kommen jetzt mit einem UART, der auch gleichzeitig kommunizieren kann; diese Geräte werden USARTs (universaler gleichzeitiger/asynchroner Empfänger/Sender) genannt.

Das Übertragen und der Empfang von Seriendaten

Der Universale Asynchrone Empfänger/Sender (UART) nimmt Bytes von Daten und übersendet die individuellen Bit auf eine folgende Mode. Am Bestimmungsort versammelt ein zweiter UART die Bit in ganze Bytes wieder. Jeder UART enthält ein Verschiebungsregister, das die grundsätzliche Methode der Konvertierung zwischen parallelen und Serienformen ist. Die Serienübertragung der Digitalinformation (Bit) durch eine einzelne Leitung oder anderes Medium wird wirksam viel mehr gekostet als parallele Übertragung durch vielfache Leitungen.

Der UART erzeugt gewöhnlich nicht direkt oder erhält die zwischen verschiedenen Sachen der Ausrüstung verwendeten Außensignale. Getrennte Schnittstelle-Geräte werden verwendet, um die Logikniveau-Signale des UART zu und von den Außensignalniveaus umzuwandeln. Außensignale können vieler verschiedener Formen sein. Beispiele von Standards für die Stromspannungsnachrichtenübermittlung sind RS-232, RS-422 und RS-485 vom EIA. Historisch wurde Strom (in aktuellen Schleifen) in Telegraf-Stromkreisen verwendet. Einige Signalschemas verwenden elektrische Leitungen nicht. Beispiele von solchem sind Glasfaserleiter, IrDA (infrarotes) und (drahtloses) Bluetooth in seinem Serial Port Profile (SPP). Einige Signalschemas verwenden Modulation eines Transportunternehmen-Signals (mit oder ohne Leitungen). Beispiele sind Modulation von Audiosignalen mit Telefonlinienmodems, RF Modulation mit Datenradios und der Gleichstrom-LIN für die Starkstromleitungskommunikation.

Kommunikation kann Simplex (in einer Richtung nur ohne Bestimmung für das Empfang-Gerät sein, um Information an das Sendegerät zurückzusenden), voll Duplex-(senden beide Geräte und erhalten zur gleichen Zeit), oder Hälfte Duplex-(wechseln sich Geräte ab, übersendend und erhaltend).

Das Charakter-Gestalten

Das müßige, kein Datenstaat ist Hochspannung, oder angetrieben. Das ist ein historisches Vermächtnis von der Telegrafie, in der die Linie hoch gehalten wird, um zu zeigen, dass die Linie und der Sender nicht beschädigt werden. Jeder Charakter wird gesandt, weil eine Logik niedrig Bit, eine konfigurierbare Zahl von Datenbit anfängt (gewöhnlich 8, aber Vermächtnis-Systeme können 5, 6, 7 oder 9 verwenden), ein fakultatives Paritätsbit, und eine oder mehr Logik hoch Bit aufhört.

Der Anfang hat gebissen gibt dem Empfänger Zeichen, dass ein neuer Charakter kommt. Die folgenden fünf bis acht Bit je nachdem hat der Code verwendet gesetzt, vertritt den Charakter. Im Anschluss an die Daten können Bit ein Paritätsbit sein. Der folgende oder die zwei Bit sind immer im Referenzen (Logik hoch, d. h., '1') Bedingung und haben das Halt-Bit genannt. Sie geben dem Empfänger Zeichen, dass der Charakter vollendet wird. Seitdem der Anfang gebissen hat, ist Logik niedrig (0), und der Halt hat gebissen ist Logik hoch (1) es gibt immer mindestens zwei versicherte Signaländerungen zwischen Charakteren.

Offensichtlich besteht ein Problem, wenn ein Empfänger eine Linie entdeckt, die für mehr als ein Charakter-Mal niedrig ist. Das wird eine "Brechung" genannt. Es ist normal, Brechungen zu entdecken, um einen UART unbrauchbar zu machen oder auf einen alternativen Kanal umzuschalten. Manchmal wird entfernte Ausrüstung entworfen, um neu zu fassen oder zuzumachen, wenn sie eine Brechung erhält. Erstklassiger UARTs kann entdecken und Brechungen schaffen.

Empfänger

Alle Operationen der UART Hardware werden von einem Uhr-Signal kontrolliert, das an einem Vielfache der Datenrate läuft. Zum Beispiel jeder haben Daten gebissen kann nicht weniger als 16 Uhr-Pulse sein. Der Empfänger prüft den Staat des eingehenden Signals auf jedem Uhr-Puls, für den Anfang des Anfangs schauend, hat gebissen. Wenn der offenbare Anfang gebissen hat, dauert mindestens eine Hälfte der Bitzeiten, es ist gültig und gibt dem Anfang eines neuen Charakters Zeichen. Wenn nicht, der unechte Puls wird ignoriert. Nach dem Warten auf eine weitere Bitzeiten wird der Staat der Linie wieder probiert, und das resultierende Niveau in ein Verschiebungsregister abgestoppt. Nach der erforderlichen Zahl von Bit-Perioden für die Charakter-Länge (5 bis 8 Bit, normalerweise) haben vergangen, der Inhalt des Verschiebungsregisters wird (auf die parallele Mode) zum Empfang-System bereitgestellt. Der UART wird eine Fahne setzen, die anzeigt, dass neue Daten verfügbar sind, und auch eine Verarbeiter-Unterbrechung erzeugen können, um zu bitten, dass der Gastgeber-Verarbeiter die erhaltenen Daten überträgt.

Die besten UARTs "sind" auf jeder Änderung der Datenlinie "gleichzeitig wieder", die mehr als ein Halbbit breit ist. Auf diese Weise erhalten sie zuverlässig, wenn der Sender mit einer ein bisschen verschiedenen Geschwindigkeit sendet als der Empfänger. (Das ist der normale Fall, weil kommunizierende Einheiten gewöhnlich nicht geteiltes Timing-System abgesondert vom Nachrichtensignal haben.) Kann vereinfachter UARTs den fallenden Rand des Anfangs bloß entdecken hat gebissen, und dann das Zentrum jeder gelesen erwartete Daten haben gebissen. Ein einfacher UART kann gut arbeiten, wenn die Datenraten nah genug sind, dass die Halt-Bit zuverlässig probiert werden.

Es ist eine Standardeigenschaft für einen UART, um den neusten Charakter zu versorgen, während es das folgende erhält. Diese "doppelte Pufferung" gibt einem Empfang-Computer eine komplette Charakter-Übertragungszeit, um einen erhaltenen Charakter herbeizuholen. Viele UARTs haben einen kleinen ersten - in, das erste FIFO Puffergedächtnis zwischen dem Empfänger-Verschiebungsregister und der Gastgeber-Systemschnittstelle. Das erlaubt dem Gastgeber-Verarbeiter noch mehr Zeit, um eine Unterbrechung vom UART zu behandeln, und verhindert Verlust von erhaltenen Daten an hohen Raten.

Sender

Übertragungsoperation ist einfacher, da es unter der Kontrolle des Sendesystems ist. Sobald Daten im Verschiebungsregister abgelegt werden, nachdem Vollziehung des vorherigen Charakters, die UART Hardware ein Anfang-Bit erzeugt, die erforderliche Zahl von Datenbit zur Linie auswechselt, erzeugt und das Paritätsbit (wenn verwendet) anhängt, und die Halt-Bit anhängt. Da die Übertragung eines einzelnen Charakters hinsichtlich Zentraleinheitsgeschwindigkeiten viel Zeit in Anspruch nehmen kann, wird der UART eine Fahne aufrechterhalten, beschäftigten Status zeigend, so dass das Gastgeber-System keinen neuen Charakter für die Übertragung ablegt, bis der vorherige vollendet worden ist; das kann auch mit einer Unterbrechung getan werden. Da Voll-Duplexoperation verlangt, dass Charaktere gesandt und zur gleichen Zeit erhalten werden, verwenden praktische UARTs zwei verschiedene Verschiebungsregister für übersandte Charaktere und erhaltene Charaktere.

Anwendung

Das Übertragen und UARTs erhaltend, müssen für dieselbe Bit-Geschwindigkeit, Charakter-Länge, Gleichheit und Halt-Bit für die richtige Operation gesetzt werden. Der Empfang kann UART einige ungleiche Einstellungen entdecken und untergehen ein "sich entwickelnder Fehler" Fahne hat für das Gastgeber-System gebissen; in Ausnahmefällen der Empfang wird UART einen unregelmäßigen Strom von verstümmelten Charakteren erzeugen und sie dem Gastgeber-System übertragen.

Typische Serienhäfen, die mit mit Modems verbundenen Personalcomputern verwendet sind, verwenden acht Datenbit, keine Gleichheit, und ein Halt hat gebissen; für diese Konfiguration kommt die Zahl von ASCII Charakteren pro Sekunde der Bit-Rate gleich, die durch 10 geteilt ist.

Einige sehr preisgünstige Hauscomputer oder eingebettete Systeme haben auf einen UART verzichtet und sind die Zentraleinheit an der Probe der Staat eines Eingangshafens verwendet, oder manipulieren Sie direkt einen Produktionshafen für die Datenübertragung. Während sehr mit der Zentraleinheit intensiv, da das Zentraleinheitstiming kritisch war, haben diese Schemas den Kauf eines kostspieligen UART Spans vermieden. Die Technik war als ein Bit dröhnend schlagender Serienhafen bekannt.

Gleichzeitige Übertragung

USART Chips haben sowohl gleichzeitige als auch asynchrone Weisen.

In der gleichzeitigen Übertragung werden die Uhr-Daten getrennt vom Datenstrom wieder erlangt, und keine Bit des Anfangs/Halts werden verwendet. Das verbessert die Leistungsfähigkeit der Übertragung auf passenden Kanälen, da mehr von den gesandten Bit verwendbare Daten und nicht das Charakter-Gestalten sind. Eine asynchrone Übertragung sendet keine Charaktere über die Verbindung, wenn das Sendegerät nichts hat, um zu senden; aber eine gleichzeitige Schnittstelle muss "Polster"-Charaktere senden, um Synchronisation zwischen dem Empfänger und Sender aufrechtzuerhalten. Der übliche Füller ist der ASCII "SYN" Charakter. Das kann automatisch durch das Sendegerät getan werden.

Geschichte

Einige frühe Telegraf-Schemas haben Pulse der variablen Länge (als im Morsezeichen-Code) und rotierende Uhrwerk-Mechanismen verwendet, alphabetische Charaktere zu übersenden. Die ersten UART ähnlichen Geräte (mit Pulsen der festen Länge) ließen mechanische Schalter (Umschalter) rotieren. Diese haben 5-Bit-Codes von Baudot für mechanische Fernschreiber gesandt, und haben Morsezeichen-Code ersetzt. Später sind 6-Bit-Codes üblich geworden, um die Zahlen gegen Zeichenfehler zu vermeiden, die vorkommen konnten, als der Verschiebungscharakter von Baudot verdorben wurde. ASCII wurde durch die Vereinigten Staaten angenommen, so dass die Wehrpflichten alle dieselben Fernschreiber-Codes verwenden würden. ASCII hat Groß- und Kleinschreibung mit genug Zeichensetzung hinzugefügt, um die meisten Dokumente zu drucken. Das hat einen Sieben-Bit-Code verlangt. Als amerikanische Telefonsysteme digital in den 1960er Jahren geworden sind, haben sie eine 8-Bit-Datenbeispielgröße verwendet, um Stimme zu digitalisieren. Infolgedessen haben sich der grösste Teil der Datenübertragung und Computer zu 8-Bit-Charakter-Größen bewegt, um das niedrigste Kostendatenübertragungssystem zu verwenden. Zum Beispiel hat IBM Computer am Anfang der 1960er Jahre mit 8-Bit-Charakteren und einer "oberen Hälfte" des Lateins gebaut I Charaktere sind in vielen Datennetzen üblich geworden, die früher 7-Bit-ASCII verwendet hatten. Die Wirtschaftswirkung des Telefonsystems ist groß: Es hat effektiv Charakter-Systeme mit mehr als 8 Bit gezwungen (z.B. Unicode) zurück in eine 8-Bit-Form (z.B. UTF-8) und am meisten gewerblich wichtige Computer seit den letzten vierzig Jahren haben innere Wortgrößen verwendet, die Vielfachen von 8 Bit sind.

Gordon Bell hat den UART für die PDP Reihe von Computern entworfen. Der ASCII-Code zu einem Fernschreiber hat ein ausgezeichnetes Mehrzweckeingabe/Ausgabe-Gerät für einen kleinen Computer gemacht. Um Kosten, einschließlich der Verdrahtung und Platineneinschub-Kosten zu reduzieren, haben diese Computer auch für Fluss-Kontrolle mit XON und XOFF Charakteren aber nicht Hardware-Leitungen den Weg gebahnt.

Westlich Digital hat den ersten Einchip-UART WD1402A 1971 gemacht; das war ein frühes Beispiel des integrierten Stromkreises einer mittleren Skala. Ein anderer populärer Span war ein SCN2651 von Signetics 2650 Familie.

Ein Beispiel des Anfangs der 1980er Jahre UART war der Nationale Halbleiter 8250. In den 1990er Jahren wurden neuere UARTs mit Puffern auf dem Span entwickelt. Diese erlaubte höhere Übertragungsgeschwindigkeit ohne Datenverlust und ohne solche häufige Aufmerksamkeit vom Computer zu verlangen. Zum Beispiel hat der populäre Nationale Halbleiter 16550 einen 16-Byte-FIFO, und hat viele Varianten, einschließlich 16C550, 16C650, 16C750, und 16C850 erzeugt.

Abhängig vom Hersteller werden verschiedene Begriffe gebraucht, um Geräte zu identifizieren, die die UART-Funktionen durchführen. Intel hat ihr 8251 Gerät eine "Programmierbare Nachrichtenschnittstelle" genannt. MOS Technologie 6551 war unter dem Namen "Asynchroner Kommunikationsschnittstelle-Adapter" (asynchrone Kommunikationsschnittstelle) bekannt. Der Begriff "Serienkommunikationsschnittstelle" (SCI) wurde zuerst an Motorola 1975 gebraucht, um sich auf ihr asynchrones Start-Stopserienschnittstelle-Gerät zu beziehen, das andere einen UART nannten.

Struktur

Ein UART enthält gewöhnlich die folgenden Bestandteile:

  • ein Uhr-Generator, gewöhnlich ein Vielfache der Bit-Rate, um zu erlauben, in der Mitte wenig Periode auszufallen.
  • Eingangs- und Produktionsverschiebung schreibt ein
  • übersenden Sie Kontrolle/erhalten Sie
  • Lesen/Schreiben-Kontrolllogik
  • übersenden Sie Puffer (fakultativer)/erhalten Sie
  • paralleler Datenbuspuffer (fakultativer)
  • Zuerst - in, das erste (FIFO) Puffergedächtnis (fakultativer)

Spezielle Empfänger-Bedingungen

Überfluten Sie Fehler

Ein "überfluteter Fehler" kommt vor, wenn der Empfänger den Charakter nicht bearbeiten kann, der gerade eingegangen ist, bevor der folgende ankommt. Verschiedene Geräte haben verschiedene Beträge des Pufferraums, um erhaltene Charaktere zu halten. Die Zentraleinheit muss den UART bedienen, um Charaktere vom Eingangspuffer zu entfernen. Wenn die Zentraleinheit den UART schnell genug nicht bedient und der Puffer voll wird, wird ein Überfluteter Fehler vorkommen, und eingehende Charaktere werden verloren.

Fehler des Unterschreitens der Sendezeit

Ein "Fehler des Unterschreitens der Sendezeit" kommt vor, als der UART Sender das Senden eines Charakters vollendet hat und der übersenden Puffer leer ist. In asynchronen Weisen wird das als eine Anzeige behandelt, dass keine Daten, aber nicht ein Fehler übersandt werden müssen, da zusätzliche Halt-Bit angehangen werden können. Diese Fehleranzeige wird in USARTs allgemein gefunden, da ein Unterschreiten der Sendezeit in gleichzeitigen Systemen ernster ist.

Das Gestalten des Fehlers

Ein "sich entwickelnder Fehler" kommt vor, wenn die benannten "Anfang-" und "Halt"-Bit nicht gültig sind. Da der "Anfang" gebissen hat, wird verwendet, um den Anfang eines eingehenden Charakters zu identifizieren, es handelt als eine Verweisung für die restlichen Bit. Wenn die Datenlinie nicht im erwarteten Ruhezustand ist, als der "Halt" gebissen hat, wird erwartet, ein sich Entwickelnder Fehler wird vorkommen.

Paritätsfehler

Ein "Paritätsfehler" kommt vor, wenn die Zahl von "aktiven" Bit mit der angegebenen Paritätskonfiguration des USART nicht übereinstimmt, einen Paritätsfehler erzeugend. Weil das "Paritäts"-Bit fakultativ ist, wird dieser Fehler nicht vorkommen, wenn Gleichheit arbeitsunfähig gewesen ist.

Paritätsfehler wird gesetzt, wenn die Gleichheit eines eingehenden Datencharakters den erwarteten Wert nicht vergleicht.

Brechungsbedingung

Eine "Brechungsbedingung" kommt vor, wenn der Empfänger-Eingang am "Raum"-Niveau für den längeren ist als etwas Dauer der Zeit normalerweise für mehr als eine Charakter-Zeit. Das ist nicht notwendigerweise ein Fehler, aber erscheint zum Empfänger als ein Charakter aller Nullbit mit einem sich entwickelnden Fehler.

Eine Ausrüstung wird das "Brechungs"-Niveau für den längeren absichtlich übersenden als ein Charakter als ein Signal aus dem Band. Wenn Signalraten falsch angepasst werden, können keine bedeutungsvollen Charaktere gesandt werden, aber ein langes "Brechungs"-Signal kann eine nützliche Weise sein zu veranlassen, dass die Aufmerksamkeit eines ungleichen Empfängers etwas (wie das Rücksetzen von sich) tut. Unix ähnliche Systeme können das lange "Brechungs"-Niveau als eine Bitte verwenden, die Signalrate zu ändern, Zifferblatt - im Zugang an vielfachen Signalraten zu unterstützen.

UART Modelle

UART in Modems

Modems für Personalcomputer, die in ein Hauptplatine-Ablagefach einstecken, müssen auch die UART-Funktion auf der Karte einschließen. Der ursprüngliche 8250 UART mit dem Personalcomputer von IBM verladene Span hatte keine Pufferung auf dem Span für erhaltene Charaktere, die bedeutet haben, dass Kommunikationssoftware schlecht mit Geschwindigkeiten über 9600 Bit/Sekunde besonders geleistet hat als sie unter einem stark mehrbeanspruchenden System funktioniert hat, oder als sie Unterbrechungen von Plattenkontrolleuren behandelt hat. Hochgeschwindigkeitsmodems haben UARTs verwendet, die mit dem ursprünglichen Span vereinbar waren, aber die zusätzliche FIFO Puffer eingeschlossen haben, Software zusätzliche Zeit gebend, um auf eingehende Daten zu antworten.

Ein Blick auf die Leistungsvoraussetzungen an hohen Bit-Raten zeigt, warum die 16, 32, 64 oder 128 Byte FIFO eine Notwendigkeit sind. Die Spezifizierung von Microsoft für ein DOS-System verlangt, dass Unterbrechungen nicht für mehr als 1 Millisekunde auf einmal arbeitsunfähig sind. Einige Festplatte-Laufwerke und Videokontrolleure verletzen diese Spezifizierung. 9600 bit/s werden einem Charakter ungefähr jede Millisekunde liefern, so sollte ein 1-Byte-FIFO an dieser Rate auf einem DOS-System genügend sein, das sich trifft, die maximale Unterbrechung machen Timing unbrauchbar. Raten darüber können einen neuen Charakter erhalten, bevor der alte herbeigeholt worden ist, und so der alte Charakter verloren wird. Das wird einen überfluteten Fehler genannt und läuft ein oder mehr verlorene Charaktere hinaus. Mit dem Fehler, der Modems korrigiert, werden irgendwelche verlorenen Charaktere wiederübersandt, aber Weitermeldung verlangsamt die Verbindung.

Ein 16-Byte-FIFO erlaubt bis zu 16 Charakteren, erhalten zu werden, bevor der Computer die Unterbrechung bedienen muss. Das nimmt zu das maximale Bit gelten der Computer kann zuverlässig von 9600 bis 153,000 bit/s in einer Prozession gehen, wenn es eine 1-Millisekunde-Unterbrechung tote Zeit hat. Ein 32-Byte-FIFO vergrößert die maximale Rate zu mehr als 300,000 bit/s. Ein zweiter Vorteil dafür, einen FIFO zu haben, ist, dass der Computer nur ungefähr 8 bis 12 % so viel Unterbrechungen bedienen muss, mehr Zentraleinheitszeit erlaubend, für den Schirm zu aktualisieren, oder andere lästige Arbeiten zu tun. So werden sich die Antworten des Computers ebenso verbessern.

Siehe auch

Links


Medizinische Hilfskraft / Karl Eduard Zachariae von Lingenthal
Impressum & Datenschutz