Serielle Schnittstelle

Serielle Schnittstelle

Serielle Standards sorgen für viele verschiedene Betriebsgeschwindigkeiten sowie Anpassungen des Protokolls, um unterschiedliche Betriebsbedingungen zu berücksichtigen. Die bekanntesten Optionen sind Geschwindigkeit, Anzahl der Datenbits pro Zeichen, Parität und Anzahl der Stoppbits pro Zeichen.

In modernen seriellen ports mit einem UART integrierte schaltung, alle diese einstellungen können software-gesteuert werden. Hardware aus den 1980er Jahren und früher erfordert möglicherweise das Einstellen von Schaltern oder Jumper auf einer Leiterplatte.,

Die Konfiguration für serielle Ports, die für den Anschluss an einen PC ausgelegt sind, ist zu einem De-facto-Standard geworden, der normalerweise als 9600/8-N-1 angegeben wird.

SpeedEdit

Serielle Ports verwenden zweistufige (binäre) Signalisierung, sodass die Datenrate in Bits pro Sekunde gleich der Symbolrate in Baud ist. Eine Standardserie von Raten basiert auf Vielfachen der Raten für elektromechanische Teleprinter; Einige serielle Ports erlauben die Auswahl vieler beliebiger Raten, aber die Geschwindigkeiten auf beiden Seiten der Verbindung müssen übereinstimmen, oder Daten werden als Kauderwelsch empfangen.,

Die Möglichkeit, eine Bitrate einzustellen, bedeutet nicht, dass eine funktionierende Verbindung entsteht. Nicht alle Bitraten sind mit allen seriellen Ports möglich. Einige spezielle Protokolle wie MIDI für die Musikinstrumentensteuerung verwenden andere serielle Datenraten als die Teleprinter-Standards. Einige serielle Port-Implementierungen können automatisch eine Bitrate auswählen, indem sie beobachten, was ein angeschlossenes Gerät sendet und synchronisiert.

Die Gesamtgeschwindigkeit umfasst Bits zum Framing (Stoppbits, Parität usw.) und so ist die effektive Datenrate niedriger als die Bitübertragungsrate., Bei 8-N-1-Zeichenrahmen stehen beispielsweise nur 80% der Bits für Daten zur Verfügung; Für jeweils acht Datenbits werden zwei weitere Framing-Bits gesendet.

bitraten allgemein unterstützt umfassen 75, 110, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600 und 115200 Bit / s.

Kristalloszillatoren mit einer Frequenz von 1.843200 MHz werden speziell für diesen Zweck verkauft. Dies ist die 16-fache der schnellsten Bitrate, und die serielle Portschaltung kann diese bei Bedarf leicht auf niedrigere Frequenzen aufteilen.,

Datenbitsedit

Die Anzahl der Datenbits in jedem Zeichen kann 5 (für Baudot-Code), 6 (selten verwendet), 7 (für true ASCII), 8 (für die meisten Arten von Daten, da diese Größe der Größe eines Bytes entspricht) oder 9 (selten verwendet) sein. 8 datenbits werden in neueren Anwendungen fast universell eingesetzt. 5 oder 7 Bit sind im Allgemeinen nur bei älteren Geräten wie Teleprintern sinnvoll.

Die meisten seriellen Kommunikationsdesigns senden zuerst die Datenbits innerhalb jedes Byte LSB (least significant Bit). Dieser Standard wird auch als „Little Endian“ bezeichnet.,“

Auch möglich, aber selten verwendet, ist zuerst „Big Endian“ oder MSB (most significant bit); Dies wurde beispielsweise vom IBM 2741-Druckterminal verwendet.

Die Reihenfolge der Bits ist normalerweise nicht innerhalb der seriellen Schnittstelle konfigurierbar, sondern wird vom Hostsystem definiert. Um mit Systemen zu kommunizieren, die eine andere Bitreihenfolge als die lokale Standardeinstellung erfordern, kann lokale Software die Bits in jedem Byte kurz vor dem Senden und kurz nach dem Empfangen neu anordnen.

ParityEdit

Hauptartikel: Paritätsbit

Parität ist eine Methode zur Erkennung von Übertragungsfehlern., Wenn Parität mit einer seriellen Schnittstelle verwendet wird, wird mit jedem Datenzeichen ein zusätzliches Datenbit gesendet, das so angeordnet ist, dass die Anzahl von 1 Bits in jedem Zeichen, einschließlich des Paritätsbits, immer ungerade oder immer gerade ist. Wenn ein Byte mit der falschen Anzahl von 1s empfangen wird, muss es beschädigt sein. Eine gerade Anzahl von Fehlern kann jedoch die Paritätsprüfung bestehen.

Elektromechanische Teleprinter wurden angeordnet, um ein Sonderzeichen zu drucken, wenn empfangene Daten einen Paritätsfehler enthielten, um die Erkennung von Nachrichten zu ermöglichen, die durch Leitungsrauschen beschädigt wurden., Ein einzelnes Paritätsbit ermöglicht keine Implementierung einer Fehlerkorrektur für jedes Zeichen, und Kommunikationsprotokolle, die über serielle Datenverbindungen arbeiten, verfügen über übergeordnete Mechanismen, um die Datenvalidität sicherzustellen und eine erneute Übertragung von falsch empfangenen Daten anzufordern.

Das Paritätsbit in jedem Zeichen kann auf eines der folgenden gesetzt werden:

  • None (N) bedeutet, dass überhaupt kein Paritätsbit gesendet wird.
  • Odd (O) bedeutet, dass das Paritätsbit so eingestellt ist, dass die Anzahl der „logischen“ ungerade sein muss.,
  • Even (E) bedeutet, dass das Paritätsbit so eingestellt ist, dass die Anzahl der „logischen“ gerade sein muss.
  • Mark (M) Parität bedeutet, dass das Paritätsbit immer auf die Markensignalbedingung (logisch 1) gesetzt ist.
  • Space (S) parity sendet immer das Paritätsbit in der Raumsignalbedingung (logisch 0).

Abgesehen von ungewöhnlichen Anwendungen, die das letzte Bit (normalerweise das 9.Bit) für eine Form der Adressierung oder speziellen Signalisierung verwenden, ist Mark-oder Leerzeichen-Parität ungewöhnlich, da keine Fehlererkennungsinformationen hinzugefügt werden.,

Ungerade Parität ist nützlicher als gerade Parität, da sie sicherstellt, dass in jedem Zeichen mindestens ein Zustandsübergang auftritt, was es zuverlässiger macht, Fehler wie diejenigen zu erkennen, die durch Nichtübereinstimmungen der seriellen Schnittstelle verursacht werden könnten. Die häufigste Paritätseinstellung ist jedoch „none“, wobei die Fehlererkennung von einem Kommunikationsprotokoll gehandhabt wird.

Stop bitsEdit

Stop Bits, die am Ende jedes Zeichens gesendet werden, ermöglichen es der Empfangssignalhardware, das Ende eines Zeichens zu erkennen und mit dem Zeichenstrom neu zu synchronisieren. Elektronische Geräte verwenden normalerweise ein Stopbit., Wenn langsame elektromechanische Teleprinter verwendet werden, sind eineinhalb oder zwei Stoppbits erforderlich.

Konventionelle notationEdit

Die konventionelle Notation data/parity/stop (D/P/S) gibt die Rahmung einer seriellen Verbindung an. Die häufigste Verwendung auf Mikrocomputern ist 8 / N / 1 (8N1). Dies gibt 8 Datenbits, keine Parität, 1 Stoppbit an. In dieser Notation ist das Paritätsbit nicht in den Datenbits enthalten. 7 / E / 1 (7E1) bedeutet, dass den 7 Datenbits für insgesamt 8 Bits zwischen den Start-und Stoppbits ein gleichmäßiges Paritätsbit hinzugefügt wird., Wenn ein Empfänger eines 7/E/1-Streams einen 8/N / 1-Stream erwartet, wird die Hälfte der möglichen Bytes so interpretiert, dass das hohe Bit gesetzt ist.

Flow controlEdit

Flow Control wird unter Umständen verwendet, bei denen ein Sender Daten möglicherweise schneller senden kann, als der Empfänger sie verarbeiten kann. Um dies zu bewältigen, enthalten serielle Leitungen häufig eine Handshaking-Methode, bei der normalerweise zwischen Hardware-und Software-Handshaking unterschieden wird.

Hardware handshaking ist mit extra signale, oft die RS-232 RTS/CTS oder DTR/DSR signal schaltungen., Im Allgemeinen werden RTS und CTS von alternativen Enden aus ein-und ausgeschaltet, um den Datenfluss zu steuern, z. B. wenn ein Puffer fast voll ist. DTR und DSR sind normalerweise ständig eingeschaltet und werden gemäß dem RS-232-Standard und seinen Nachfolgern verwendet, um von jedem Ende aus zu signalisieren, dass das andere Gerät tatsächlich vorhanden und eingeschaltet ist. Im Laufe der Jahre haben die Hersteller jedoch viele Geräte entwickelt, die nicht standardmäßige Variationen des Standards implementiert haben, z. B. Drucker, die DTR als Durchflussregelung verwenden.,

Software-Handshaking erfolgt beispielsweise mit ASCII-Steuerzeichen XON / XOFF zur Steuerung des Datenflusses. Die XON-und XOFF-Zeichen werden vom Empfänger an den Absender gesendet, um zu steuern, wann der Absender Daten sendet, dh diese Zeichen gehen in die entgegengesetzte Richtung zu den gesendeten Daten. Die Schaltung startet im Zustand“ Senden erlaubt“. Wenn sich die Puffer des Empfängers der Kapazität nähern, sendet der Empfänger das XOFF-Zeichen, um den Absender anzuweisen, das Senden von Daten zu beenden., Später, nachdem der Empfänger seine Puffer geleert hat, sendet er ein XON-Zeichen, um den Sender anzuweisen, die Übertragung fortzusetzen. Es ist ein Beispiel für eine In-Band-Signalisierung, bei der Steuerinformationen über denselben Kanal wie ihre Daten gesendet werden.

Der Vorteil von Hardware-Handshaking ist, dass es extrem schnell sein kann; es gibt keine besondere Bedeutung wie ASCII für die übertragenen Daten; und es ist zustandslos. Sein Nachteil ist, dass es mehr Hardware und Verkabelung erfordert, und diese müssen an beiden Enden kompatibel sein.,

Der Vorteil von Software-Handshaking ist, dass es mit fehlenden oder inkompatiblen Hardware-Handshaking-Schaltungen und Verkabelung durchgeführt werden kann. Der Nachteil, der allen In-Band-Steuersignalen gemeinsam ist, besteht darin, dass es Komplexitäten bei der Gewährleistung einführt, dass a) Steuermeldungen auch dann durchkommen, wenn Datennachrichten blockiert sind, und b) Daten niemals mit Steuersignalen verwechselt werden können., Ersteres wird normalerweise vom Betriebssystem oder Gerätetreiber behandelt; Letzteres normalerweise, indem sichergestellt wird, dass Steuercodes „maskiert“ werden (z. B. im Kermit-Protokoll) oder designbedingt weggelassen werden (z. B. in der ANSI-Terminalsteuerung).

Wenn kein Handshaking verwendet wird, kann ein Überlaufempfänger einfach keine Daten vom Sender empfangen. Ansätze, dies zu verhindern, umfassen die Verringerung der Verbindungsgeschwindigkeit, so dass der Empfänger immer mithalten kann; Erhöhung der Größe der Puffer, so dass er über eine längere Zeit gemittelt mithalten kann; Verwendung von Verzögerungen nach zeitaufwändigen Operationen (z., in Termcap) oder Verwenden eines Mechanismus zum erneuten Senden beschädigter Daten (z. B. TCP).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.