Software-Flusskontrolle - Software flow control

Die Software-Flusskontrolle ist eine Methode zur Flusskontrolle, die in Computerdatenverbindungen verwendet wird , insbesondere bei RS-232-Serien . Es verwendet spezielle Codes, übertragen In-Band , über den primären Kommunikationskanal. Diese Codes werden im Allgemeinen als XOFF und XON bezeichnet (von "Senden aus" bzw. "Senden ein"). Daher wird "Software-Flusskontrolle" manchmal als "XON / XOFF-Flusskontrolle" bezeichnet. Dies steht im Gegensatz zur Flusskontrolle über dedizierte Out-of-Band- Signale - " Hardware-Flusskontrolle " - wie RS-232 RTS / CTS .

Darstellung

Bei Systemen, die den ASCII- Zeichencode verwenden, wird XOFF im Allgemeinen durch ein Zeichen oder Byte mit dem Dezimalwert 19 dargestellt. XON mit Wert 17.

Der ASCII-Standard reserviert keine Steuerzeichen für die Verwendung als XON / XOFF. Es enthält jedoch vier generische "Gerätesteuerungs" -Zeichen (DC1 bis DC4). Das Teletypmodell 33 ASR übernahm zwei davon, DC3 und DC1, zur Verwendung als XOFF bzw. XON. Diese Verwendung wurde von anderen kopiert und ist jetzt ein De-facto-Standard . Aus dieser Verwendung ergeben sich auch die Tastaturäquivalente Ctrl+ Sfür XOFF und Ctrl+ Qfür XON.

XOFF / XON-Darstellungen in ASCII
Code Bedeutung ASCII Dez. Verhexen Tastatur
XOFF Übertragung unterbrechen DC3 19 13 Ctrl+S
XON Übertragung fortsetzen DC1 17 11 Ctrl+Q

Mechanismus

Wenn ein Ende einer Datenverbindung keine weiteren Daten akzeptieren kann (oder sich diesem Punkt nähert), sendet es XOFF an das andere Ende. Das andere Ende empfängt den XOFF-Code und unterbricht die Übertragung . Sobald das erste Ende bereit ist, Daten wieder zu akzeptieren, sendet es XON und das andere Ende setzt die Übertragung fort.

Stellen Sie sich beispielsweise einen Computer vor , der Daten an einen langsamen Drucker sendet . Da der Computer Daten schneller sendet, als der Drucker sie drucken kann, fällt der Drucker zurück und nähert sich einer Situation, in der er von den Daten überfordert wäre. Der Drucker reagiert auf diese Situation, indem er XOFF an den Computer sendet, der das Senden von Daten vorübergehend beendet. Wenn der Drucker wieder bereit ist, weitere Daten zu empfangen, sendet er XON an den Computer, der erneut Daten sendet.

XON / XOFF kann in beiden Richtungen eingesetzt werden, beispielsweise zwei Fernschreiber miteinander verbunden.

Vergleich mit der Hardware-Flusskontrolle

Der Hauptvorteil der Software-Flusskontrolle ist die Reduzierung der Anzahl der elektrischen Leiter zwischen Sender und Empfänger. Bei einer gemeinsamen Basis werden nur zwei Signale benötigt, eines zum Senden und das andere zum Empfangen. Die Hardware-Flusskontrolle erfordert zusätzliche Kabel zwischen den beiden Geräten. Es erfordert auch eine spezifische Hardware-Implementierung, die in früheren Computertagen (dh in den 1960er und 70er Jahren) höhere Kosten verursacht hat.

Die Steuerung des Softwareflusses ist jedoch nicht unproblematisch. Das Senden von XOFF erfordert mindestens eine Zeichenzeit zum Senden und kann sich hinter bereits übertragenen Daten befinden, die sich noch in Puffern befinden. Hardware-Signale können fast augenblicklich und außer Betrieb gesetzt werden.

Wie der Name "Software-Flusskontrolle" impliziert, wird die Flusskontrolle mit dieser Methode normalerweise in Software (oder zumindest einer höheren Firmware- Version) implementiert , was zu weiteren Verzögerungen bei der XOFF-Reaktion führen kann. Die Steuerung des Hardwareflusses erfolgt normalerweise direkt vom sendenden UART , der die Übertragung sofort beenden kann, ohne dass höhere Ebenen eingreifen müssen.

Da die XOFF / XON-Codes im Band gesendet werden, können sie nicht in den übertragenen Daten erscheinen, ohne mit Flusssteuerungsbefehlen verwechselt zu werden. Alle Daten, die die XOFF / XON-Codes enthalten, müssen daher für eine ordnungsgemäße Übertragung mit entsprechendem Overhead auf irgendeine Weise codiert werden. Dies geschieht häufig mit einer Art Escape-Sequenz . Für Druckgeräte, die ASCII-Codes direkt interpretieren, ist dies kein großes Problem, da die XON- und XOFF-Codes ASCII- Code-Nummern für die "Gerätesteuerung" verwenden.

Anwendungen

Die Software-Flusskontrolle wird häufig von Geräten mit niedriger Geschwindigkeit verwendet, insbesondere von älteren Druckern und dummen Terminals , um anzuzeigen, dass sie vorübergehend keine weiteren Daten akzeptieren können. Dies ist normalerweise auf eine Kombination aus begrenzter Ausgaberate und vollen Puffern zurückzuführen . Einige Terminalsteuerungspakete, wie z. B. termcap , verwenden "Auffüllen" (kurze Verzögerungen unter Verwendung der Millisekunden-Granularität), damit diese Geräte genügend Zeit haben, um die angeforderten Aktionen auszuführen, ohne XOFF aktivieren zu müssen.

XON / XOFF ist noch manchmal manuell durch Computer Operatoren verwendet, zum Anhalten und Neustart Ausgabe , die sonst bewegt die Anzeige zu schnell ab.

Die Terminalemulatorsoftware implementiert im Allgemeinen die XOFF / XON-Unterstützung als Grundfunktion. Dies umfasst im Allgemeinen die Systemkonsole auf modernen Unix- und Linux- Computern sowie GUI- Emulatoren wie xterm und die Win32-Konsole .

Robustes XON ist eine Technik zum Neustarten der Kommunikation, für den Fall, dass sie von einem versehentlich empfangenen XOFF gestoppt wurde. Die empfangende Einheit sendet periodische XON-Zeichen, wenn sie Daten empfangen kann, und die Leitung ist frei. Serielle Drucker (wie HP LaserJet II) verwenden häufig, um anzuzeigen, dass sie online sind und Daten empfangen können. Der XON wird je nach Firmware-Design des Druckers alle 1 bis 30 Sekunden gesendet.

Siehe auch

Verweise