外部インタフェース/API | ![]() ![]() |
シリアルポートの信号とピンの割り当て
シリアルポートは、2つの信号タイプ、データ信号と制御信号で構成されます。これらの信号タイプと信号の接地をサポートするために、RS-232標準は25ピン接続を定義します。しかし、ほとんどのPCおよびUNIXプラットフォームは、9ピン接続を利用します。実際に、シリアルポート通信には、データ受信、データ送信、信号の接地用に3つのピンだけが必要です。
DTEでの9-pピンオスコネクタに対するピンの割り当てを以下に示します。
9ピンコネクタに対応するピンと信号を以下に示します。25ピンコネクタで利用される信号とピンの割り当てについての説明は、RS-232標準を参照してください。
用語"データセット"は、"モデム"または"デバイス"と同義語で、"データターミナル" は"コンピュータ"と同義語です。
信号の状態
信号は、アクティブ な状態あるいはi非アクティブ な状態のいずれかです。アクティブな状態はバイナリ値1に対応し、非アクティブな状態はバイナリ値0に対応します。アクティブな信号の状態は、logic 1, on, true, mark として記述されます。非アクティブな信号の状態は、logic 0, off, false, space として記述されます。
データ信号に対して、"on"状態は受信された信号電圧が-3ボルトより低いときに発生し、"off"状態は3ボルトよりも高いときに発生します。制御信号に対して、"on"状態は受信された信号電圧が3ボルトより高いときに発生し、"off"状態は-3ボルトよりも低いときに発生します。-3ボルトと+3ボルトの間の電圧は遷移領域と考えられ、信号の状態は未定義です。
信号を"on"状態にするには、制御デバイスはデータピンに対する値をunasserts (低く) し、制御ピンに対する値をasserts (高く)します。反対に、信号を"off"状態にするには、制御デバイスはデータピンに対する値を高くし、制御ピンに対する値を低くします。
データ信号と制御信号に対する"on"および"off"状態を以下に示します。
データピン
ほとんどのシリアルポートデバイスは、データを同時に送受信可能な全二重 通信をサポートします。そのため、データの送信と受信には別々のピンが用いられます。これらのデバイスに対しては、TD, RD, GNDピンが用いられます。しかし、シリアルポートデバイスの中には、一方向のみ通信のあるいは半二重 通信のみをサポートするものがあります。これらのデバイスに対しては、TDとGNDピンのみが用いられます。本マニュアルでは、全二重シリアルポートがデバイスに接続されていると仮定します。
TDピンは、DTEからDCEに送信されたデータを運搬します。RDピンは、DCEからDTEに受信されたデータを運搬します。
制御ピン
制御ピンは、RTSとCTS, DTRとDSR, CD, RIを含みます。
RTSピンとCTSピン RTSピンとCTSピンは、デバイスがデータの送受信のための準備ができているかどうかを通知するために用いられます。ハードウェアハンドシェイクと呼ばれるこのタイプのデータフロー制御は、送信中にデータが失われることを防ぐために用いられます。DTEとDCEの両方に対して利用可能なとき、RTSとCTSを利用したハードウェアハンドシェイクは、以下のステップを行います。
MATLABでハードウェアハンドシェイクを可能にするためには、「データフローの制御: ハンドシェイク」を参照してください。
DTRピンとDSRピン 多くのデバイスは、接続され電源が入っているかどうかをDSRピンとDTRピンを使って通知します。DTRとDSRを使って接続されているデバイスの存在を知らせるには、以下のステップを行います。
DTRピンとDSRピンは、他のハードウェアハンドシェイクの方法を提供するために元々は設計されました。しかし、RTSとCTSピンは通常この方法で利用され、DSRとDTRピンはそうではありません。しかし特定のピンの挙動を決定するためには、デバイスのドキュメントを参照するべきです。
CDピンとRIピン CDピンとRIピンは、モデム間の接続中の信号の存在を示すために利用されます。
CDは、他のモデムと接続していることを通知したり、キャリアトーンを検出したことを通知するためにモデムによって利用されます。CDは、DCEが適切な周波数の信号を受信中にアサートされます。CDは、DCEが適切な信号を受信していない場合にはunassertされます。
RIは、電話のベルの音響信号の存在を示すために用いられます。RIは、ベルの信号を受信中のときにアサートされます。RIは、DCEがベルの信号を受信していないとき(例 ベルの間)にunassertされます。
![]() | シリアルケーブルを使って2つのデバイスを接続 | シリアルデータフォーマット | ![]() |