データキャリア検出

データ キャリア検出( DCD ) またはキャリア検出( CD ) は、コンピュータとモデムなどの他のデバイスを結ぶRS-232シリアル通信ケーブル内に存在する制御信号です。この信号は、データ通信装置( DCE )からデータ端末装置( DTE )、つまり通常はモデムまたはその他の周辺機器からコンピュータに送信される単純な「高/低」ステータスビットです。この信号は、事実上すべての PC シリアル ポート (9 ピン ( DE9 ) シリアル ポートのピン 1、または 25 ピン ( DB25 ) ポートのピン 8) に存在します。その目的は接続されているデバイスによって異なりますが、最も具体的な意味は、モデムが電話回線を介して別のリモート モデムに接続されていることを示すことです。

「キャリア」という言葉は、モデムによって生成されるアナログキャリア信号を指し、これはデータを伝送するために変調されます。データモデムでは、キャリアの損失は接続の終了と同義です。

PC のシリアル ポート上のリング インジケータ信号と同様に、DCD 信号の状態が変化すると、DCD 信号の状態が変化するたびにプロセッサによってキャプチャできるハードウェア割り込みが生成されるため、PC がピンを継続的にポーリングする必要がなくなります。

モデムで使用される

DCDはモデムにとって非常に重要です。これは、コンピュータがモデムとリモートホストの接続が失われたことを認識するための主な手段だからです。意図的な切断以外にも、電話回線の切断など、さまざまな理由でモデムの接続が予期せず失われることがあります。DCD信号のないモデムを使用することは可能ですが、コンピュータが接続が切断されたことを認識する唯一の方法は、モデムがデータ回線を介して「NO CARRIER」という単語を送信することです。「NO CARRIER」という単語は通常のデータセッションのコンテキストでも表示されるメッセージであるため(たとえば、リモート側のユーザーが入力した場合)、コンピュータプログラムが接続を介して送信された単語とモデムから送信された単語を明確に区別することはできません。

LEDステータスランプ付きの外付けモデムには通常、「CD」(キャリア検出)というラベルの付いたランプが付いています。このステータスランプは、モデムがDCDラインに送信している信号と直接連動しています。

デフォルトでは、モデムの電源投入時にDCD信号はデアサートされます。モデムが発信または着信に応答し、相手側のデータモデムと接続するまで、DCD信号はアサートされません。この信号は、モデムがCONNECTメッセージを報告すると同時にアサートされ、通話が切断されるまで(意図的または回線障害によって)アサートされたままになります。ローカルモデムがリモートモデムからのキャリアを受信しなくなると、どちらの側が切断を開始したかに関係なく、DCD信号はデアサートされます。DCD信号がハイレベルである限り、コンピュータはモデムから送信されるすべてのデータがリモート側から送信されたものと想定できます。

ほぼすべての新しいモデムでは、DCD信号の動作を設定できます。利用可能な一般的なオプションには、「常にDCDをアサートする」、「接続時のみDCDをアサートする」、「切断を検知した直後を除き、常にDCDをアサートする」などがあります。

DCDの意味は、モデムがFAXモードまたは音声モードのときによって異なります。これらのモードでは、DCDの重要性は低くなります。

ヌルモデムで使用される場合

シリアルポートは、コンピュータ同士を直接接続するためによく使用されます。このためには、ヌルモデムと呼ばれるアダプタが必要です。これは従来の意味でのモデムではなく、2つのシリアルポートの相補的なピンを交差させることで通信を可能にするコネクタプラグです。ヌルモデムは通常、各コンピュータのDTR出力を、もう一方のコンピュータのDCD入力とDSR入力の両方に接続します。

このシナリオで使用する場合、DCDは相手側の存在やセッション開始の準備状況を検出するために使用されます。例えば、Windows PCでは、何らかのプログラムが実行されてシリアルポートにアクセスし、DTR信号をハイにするまで、DTR出力はローに保持されます。リモート側は、これをDCD入力がハイになったと認識します。機器によっては、この遷移のみをセッションの開始と認識します。ルーターのコンソールポートなど、他の機器では文字の送信を期待する場合がありますが、DCD信号がハイであることはすべての通信の前提条件です。

PPS(パルス/秒)タイミングの使用

シリアルDCDピンはRFC 2783に記載されているようにPPS信号を正確に検出するために使用できます。 [ 1 ]

PPS信号をコンピュータシステムに供給する便利な方法の一つは、その信号をコンピュータのシリアルラインインターフェース上のモデム制御ピンに接続することです。この目的では、データキャリア検出(DCD)ピンがよく使用されます。通常、タイムソースからのタイムコード出力は、同じシリアルラインを介してコンピュータに送信されます。コンピュータは、通常は割り込みを受信することでDCDピンの信号遷移を検出し、できるだけ早くタイムスタンプを記録します。

他のハードウェアで使用される場合

Linuxでは、各シリアル ポートは 2 つのデバイス名で参照されます。1 つは (最初のシリアル ポート用) で、/dev/ttyS0もう/dev/cua01 つは です。これらは両方とも同じ物理ポートを参照しますが、Linux がこれら 2 つのデバイス名を処理する方法の重要な違いの 1 つは、DCD ラインに関係しています。 ttyS0 がシステム コールで待機されている場合、Linux はこのデバイスが電話の受信用であるため、プロセスをスリープ状態にすると想定しますつまり、DCD が低い限り何もすることがないと判断します。cua0 が使用される場合 (電話をかけるときのように)、Linux は、番号をダイヤルするために DCD が低い間にソフトウェアがポートにアクセスする必要があると想定するため、このブロッキング動作は存在しません。ただし、実際にこの動作を有効または無効にする CLOCAL と呼ばれる制御モードフラグがあり、デフォルトでは、このフラグは cua0 に対しては設定されていますが、ttyS0 に対しては設定されていません。 「cua」ポートではなく「tty」ポートの使用を要求するアプリケーションは、正常に動作するためにジャンパー線でDCDを強制的にハイにする必要がある例です。 [ 2 ]

参考文献

  1. ^ Mogul, J.; Mills, D.; Brittenson, J.; Stone, J.; Windl, U. (2000年3月). 「はじめに」 . UNIX系オペレーティングシステム向けPulse-Per-Second API . IETF . p. 3. doi : 10.17487/RFC2783 . RFC 2783 .
  2. ^ Coldwell, Charles GNU/Linux における端末概念Archived 2008-04-29 at the Wayback Machine

参照