webentwicklung-frage-antwort-db.com.de

Was ist der Unterschied zwischen DTR / DSR- und RTS / CTS-Flusskontrolle?

Was ist der Unterschied zwischen der DTR/DSR- und der RTS/CTS-Hardware-Flusskontrolle? Wann wird jeder verwendet? Warum brauchen wir mehr als eine Art von Hardware-Flusskontrolle? :)

71
Gili
  • DTR - Data Terminal Ready
  • DSR - Datensatz bereit
  • RTS - Anfrage zum Senden
  • CTS - Clear To Send

Es gibt mehrere Möglichkeiten, Dinge zu tun, da in den Standards niemals Protokolle eingebaut waren. Sie verwenden jeden Ad-hoc-Standard, den Ihr Gerät implementiert.

Nur auf der Grundlage der Namen scheint RTS/CTS eine natürliche Passform zu sein. Es ist jedoch rückwärts von den Bedürfnissen, die sich im Laufe der Zeit entwickelt haben. Diese Signale wurden zu einem Zeitpunkt erzeugt, an dem ein Terminal einen Bildschirm voller Daten im Stapelbetrieb sendete, der Empfänger jedoch möglicherweise nicht bereit war, sodass eine Flusssteuerung erforderlich war. Später würde sich das Problem umkehren, da das Terminal nicht mit den vom Host kommenden Daten Schritt halten kann, aber die RTS/CTS-Signale in die falsche Richtung gehen - die Schnittstelle ist nicht orthogonal, und es gibt keine entsprechenden Signale, die in die andere Richtung gehen. Die Gerätehersteller passten sich nach besten Kräften an, einschließlich der Verwendung der DTR- und DSR-Signale.

[~ # ~] edit [~ # ~]

Um ein bisschen mehr Details hinzuzufügen, ist es eine zweistufige Hierarchie, so dass "offiziell" beide stattfinden müssen, damit die Kommunikation stattfindet. Das Verhalten ist im ursprünglichen CCITT-Standard (jetzt ITU-T) V.28 definiert.

enter image description here

Das DCE ist ein Modem, das die Verbindung zwischen dem Endgerät und dem Telefonnetz herstellt. Im Telefonnetz befand sich ein weiteres Gerät, das sich zum Datennetz abspaltete, z. X.25.

Das Modem hat drei Zustände: Ausgeschaltet, Bereit ( Datensatz bereit ist wahr) und verbunden ( Datenträgererkennung)

Das Terminal kann nichts tun, bis das Modem angeschlossen ist.

Wenn das Modem Daten senden möchte, löst es RTS aus und das Modem erteilt die Anforderung mit CTS. Das Modem senkt den CTS, wenn der interne Puffer voll ist.

So nostalgisch!

59
Mark Ransom

Der Unterschied zwischen ihnen ist, dass sie verschiedene Stifte verwenden. Im Ernst, das war's. Der Grund, warum beide existieren, ist, dass RTS/CTS ursprünglich nie ein Flusskontrollmechanismus sein sollte. Es war für Halbduplex-Modems, zu koordinieren, wer sendete und wer empfing. RTS und CTS wurden so oft zur Flusskontrolle missbraucht, dass sie zum Standard wurden.

28
chaos

Ein wichtiger Unterschied besteht darin, dass einige UARTs (insbesondere 16550) den Empfang von Zeichen sofort beenden, wenn ihr Host sie anweist, DSR auf inaktiv zu setzen. Im Gegensatz dazu werden Zeichen weiterhin empfangen, wenn CTS inaktiv ist. Ich glaube, dass die Absicht hier ist, dass DSR anzeigt, dass das Gerät nicht mehr lauscht und daher das Senden weiterer Zeichen sinnlos ist, während CTS anzeigt, dass ein Puffer voll wird; Letzteres ermöglicht einen gewissen Schlupf, bei dem die Flusskontrolllinie ihren Zustand zwischen der DTE-Abtastung und dem nächsten übertragenen Zeichen geändert hat. In (relativ) späteren Geräten, die eine Hardware FIFO unterstützen, ist es möglich, dass eine Anzahl von Zeichen übertragen wird, nachdem der DCE CTS auf inaktiv gesetzt hat.

0
Frog