web-dev-qa-db-ja.com

DTR / DSRとRTS / CTSフロー制御の違いは何ですか?

DTR/DSRとRTS/CTSハードウェアフロー制御の違いは何ですか?それぞれがいつ使用されますか?なぜ複数の種類のハードウェアフロー制御が必要なのですか? :)

71
Gili
  • DTR-データ端末準備完了
  • DSR-データセット準備完了
  • RTS-送信リクエスト
  • CTS-送信許可

標準にはプロトコルが組み込まれていないため、物事を行う方法は複数あります。機器が実装するアドホックな「標準」を使用します。

名前だけに基づいて、RTS/CTSは自然に適合するように思われます。しかし、それは時間の経過とともに発展してきたニーズから後退しています。これらの信号は、端末がデータでいっぱいの画面をバッチ送信するときに作成されましたが、受信機の準備ができていない可能性があるため、フロー制御が必要です。ターミナルはホストからのデータに追いつくことができなかったため、後で問題は逆転しますが、RTS/CTS信号は間違った方向に進みます-インターフェースは直交せず、対応する信号は他の方向にありません。機器メーカーは、DTR信号とDSR信号の使用を含めて、できる限り最適化を行いました。

[〜#〜] edit [〜#〜]

もう少し詳細を追加するには、通信が行われるために「公式に」両方が発生するように2レベルの階層が必要です。動作は、元のCCITT(現在のITU-T)標準V.28で定義されています。

enter image description here

DCEは、端末と電話ネットワークを接続するモデムです。電話ネットワークには、データネットワークに分割された別の機器がありました。 X.25。

モデムには、電源オフ、準備完了(Data Set Readyがtrue)、接続済み(Data Carrier Detect)の3つの状態があります

端末は、モデムが接続されるまで何もできません。

モデムがデータを送信する場合、RTSを発生させ、モデムはCTSを使用して要求を許可します。モデムは、内部バッファがいっぱいになるとCTSを下げます。

懐かしい!

59
Mark Ransom

それらの違いは、異なるピンを使用することです。真剣に、それだけです。両方が存在する理由は、RTS/CTSが元々フロー制御メカニズムであると想定されていなかったためです。半二重モデムが送信者と受信者を調整するためでした。 RTSとCTSはフロー制御に頻繁に誤用され、標準になりました。

28
chaos

重要な違いは、一部のUART(特に16550)は、ホストがDSRを非アクティブに設定するように指示すると、文字の受信をすぐに停止することです。対照的に、CTSが非アクティブの場合、文字は引き続き受信されます。ここでの意図は、デバイスがリッスンしていないことをDSRが示しているため、それ以上の文字の送信は無意味であり、CTSはバッファーがいっぱいになっていることを示すことだと思います。後者は、フロー制御線がそれをサンプリングするDTEと送信される次の文字との間で状態を変更する、一定量の「スキッド」を可能にします。ハードウェアをサポートする(比較的)後のデバイスでは、FIFO DCEがCTSを非アクティブに設定した後に、多くの文字が送信される可能性があります。

0
Frog