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


82

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

回答:


69
  • DTR-データターミナルレディ
  • DSR-データセット対応
  • RTS-送信リクエスト
  • CTS-送信を許可

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

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

編集

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

ここに画像の説明を入力してください

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

モデムには、電源オフ、準備完了(データセット準備完了がtrue)、接続済み(データキャリア検出)の3つの状態があります。

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

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

懐かしい!


1
うまく要約されています。その後、「ソフト」フロー制御xOn / xOffが登場しました。
n8wrl 2009年

注:80年代半ば以降、DTR / DSRはRTS / CTSよりも一般的ではなくなりました。LinuxカーネルがDTR / DSRをサポートすることはありませんでした。LinuxカーネルがDTR / DSRをサポートするまでに、232シリアルは廃止されていました。
david 2013

8
@davidこれらの信号はRS232に限定されませんが、TTLUARTでも使用されます。そして、これらは時代遅れになるにはほど遠いです。
glglgl 2013年

したがって、DTE(コンピューター)とDCE(モデム)に関して、RTS / CTSは、DCE(モデム)がデータに圧倒されないことを保証し、DTR / DSRは、DTE(コンピューター)がデータに圧倒されないことを保証します。あれは正しいですか?
skinnedKnuckles 2018年

@skinnedKnucklesそれは私の記憶の限りでは正しいです。私がこのことを心配しなければならなかったので、それはあまりにも長い年月です。
マークランサム

30

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


1
半二重を完全に忘れてしまいました。コンボラインプリンター/カードリーダーでそれが実際に動作しているのを見たのをぼんやりと覚えています。その答えをありがとう。
マークランサム

現在、superuser.comは存在し、質問の時点で、LinuxカーネルはDTR / DSRシグナリングをサポートしていなかったことがわかります。superuser.com/questions/345005/…。これは別の違いを示しています。DTR/ DSRシグナリングはあまり一般的ではない/スマートモデムでは使用されていませんでした。
david 2013

1

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.