PC 教室ハードウエア外部装置インターフェース

ハードウエア~外部装置~外とお話したくない?(インターフェース)

一般的に、 IBM PC/AT 互換機の世界で言われている「シリアルポート」、 「シリアルインタフェース」は、RS-232C と呼ばれています。

正確に言うと、RS-232C という名前の規格は、既に存在しておらず、 ANSI-232-EEIA-232-E、 もしくは、TIA-232-E が、正確な呼び名です。

PC/AT 互換機で使われている D-Sub 9pin コネクターを使った物は、 実は、この規格の基になった RS-232C 規格には、 全く従っていませんでした。 しかし、今では、EIA-574 として規格化されました。

PC/AT 互換機に限定すれば、 EIA-574 と呼ぶべきインターフェースなのですが、 一般的には、RS-232C と言った方が、 意味が通じ易いです(EIA-574 と言っても、解ってもらえないことが多いでしょう)。

このインタフェースは、 情報を 1bit 毎に送るシリアルインタフェースです。 通信が行われていない状態であれば、大抵の場合、PC が動作している最中に、 コネクターを抜いたり、繋いだりしても問題が起こることはありません。

シリアルインタフェースなので、情報を伝える電線は、一本なのですが、 送信するための電線と、受信するための電線が、別々になっています。

ワンマンバスは、お客さんが乗り込むための入り口と、降りるための出口が、別々になっていますね。 送信と、受信のための線が別々になっているので、送信のための口と、受信のための口は、 ワンマンバスの、出口と入口のようなものです。

PC から送信するために使われる口は、接続する機器にとっては、 受信のための口に、また、PC が受信するための口は、 接続する機器にとっての送信するための口に、それぞれ接続しないと、 正しくデータのやり取りを行うことが出来ません。

このインタフェースを使って接続される物は、 モデムや、ISDNTA などがありますが、 それらの機器は、PC と接続して使うことが前提となっているので、 このことを気にする必要はありません。

PC が、前乗り、後ろ降りのワンマンバスだとしたら、 モデムや、ISDNTA は、 後ろ乗り、前降りのワンマンバスになっているということです。 前の扉と、後ろの扉をそのまま真っ直ぐに繋げば、 お互いの降り口が、相手の乗り口に繋がることになりますね。

RS-232C インタフェースを使って、 PCPC をつないで、 お互いの情報を交換することも出来ます。 PC 同士をつないで、お互いのファイルを共有したり、 一台のプリンタを共有できるようにすることが出来るものは、何でしょう? そう、LANLocal Area Network)ですね。

LAN は、抽象的な概念で、 インタフェースのことを言っているのではありません。 LAN という概念を実現するインターフェースは、 様々です。代表的な物は、Ethernet です。 Ethernet にも、色々な種類がありますが、 実際使われているものの大多数は、10base-T、 もしくは、100base-TX です。 LAN に使われるインターフェースで、 Ethernet 以外には、 ATMFDDIHomePNA などがあります。

さて、話を RS-232C に戻しましょう。 RS-232C インタフェースを使えば、 2 台の PC をつなぐことが出来ます。 Ethernet などは、もっと多くの PC 同士をつなげますが、 RS-232C で、普通につなげた場合は、2 台が限界です。

RS-232C を使ってつなげるネットワークは、 2 台の PC 同士をつなぐだけなので、 ある点と、ある点を直線で結ぶようなものです。 ですから、こういう接続形態を、Point To Point 接続と呼びます。

「あれれ?」って思いませんでしたか? 「どこかで、PPP というのを聞いたことがあるぞ。 あれは確か、Point To Point Protocol の略じゃなかったけ?」。 その通りです。RS-232C などの、 一対一の関係で接続することが、一般的であるインタフェースを、 LAN の仲間に入れるために創り出された物が、 「PPP」なんです。

PC 同士を RS-232C で繋げて、 お互いの情報を交換しようとすると、ケーブルにおける問題があります。 RS-232C インターフェース用のケーブルは、 大抵ストレートケーブルなので、お互いの送信・受信用の口同士が、 繋がることになってしまい、通信が出来ません。

この説明だけでは、良く解らないかもしれませんね。 先程、PCPC に接続されるモデムとの関係を、 ワンマンバスに喩えて書きました。 ワンマンバスで喩えれば、PC は、全部、前乗り後ろ降りのワンマンバスなので、 前の扉同士、後ろの扉同士を、真っ直ぐに繋ぐと、入り口同士、出口同士が繋がることになってしまいます。

お互いのバスに乗っている乗客が、 お互いのバスに乗り継ぐことが出来ない(データの交換が出来ない)ということなんです。

この場合は、クロスケーブルというケーブルを使って繋げます。 クロスケーブルは、こちらにとって送信の口が、相手にとっての受信の口に、 こちらにとって受信の口が、相手にとっての送信の口に繋がることになり、 正しく送受信できるのです。 送信・受信の関係がクロスするので、クロスケーブルと呼ばれるわけです。

10base-T/100base-TX でも、同じことが言えます。 Ethernet で、 Hub(ハブ)という機器の名前を聞いたことがありますか? Hub を使った場合、 Hub に繋がった PC 同士は、 カスケード接続と呼ばれ、PC と、 Hub を接続するケーブルは、ストレートケーブルを使います。

そうすると、Hub に接続された、 全ての PC は、10base-T/100base-TX 的には、 全て繋がったことになります。(バス型接続)

しかし、Hub を使わずに、 接続する場合、クロスケーブルを使わないといけません。 そう、10base-T/100base-TX も、シリアルインタフェースなんです。

RS-232C インターフェースを使って送られるデータは、 通信スピードに同調して送られます。 通信スピードは、1 秒間にどれだけの bit を送れるようにするのかという観点で、 通信に前もって決めます。

このスピードが、お互いに違うものになっていると、きちんと話をする事が出来ません。 このスピードのことをボーレート(Baud Rate)、 もしくは、bpsBit Per Second)で表します。

115,200bps と言ったら、 一秒間に、115,200bits 送ることが出来るスピードということになります。 ボーレートと、bps は、同じものと考えてください。

送信されるデータは、スタートビット、データビット、パリティピット、ストップビットのペアで送られます。 データビット、パリティビット、ストップビットは、どのように送り出すかを選ぶことが出来ます。

rs232c の設定

どのようなものが選べるのかは、「コントロールパネル」から開くことが出来る、 ダイアログによって、確認する事が出来ます。

このダイアログの表示方法を教えます。 「コントロールパネル」から、「シリアルポート」を選びます。 そこでダイアログが表示され、そこには、「COM1:」 「COM2:」という選択項目が表示されます。 この「COM1:」、もしくは、「COM2:」を選び、 「設定」ボタンを押すと、目的のダイアログが表示されます。

このダイアログで、色々な選択肢を参照する事が出来ますが、 今設定されている状態は、変えない様にしてください。 今設定されている状態を変えない様にするには、すべて「キャンセル」ボタンを押して、 表示されたダイアログを閉じていけば良いです。

これらの設定をどのようにすれば良いのかは、接続する機器の取扱説明書に明記されていますから、 その設定にする必要があります。

さて、送信されるスタートビット、データビット、パリティピット、ストップビットについて、もう少し説明します。 スタートビットと、ストップビットは、お互いの歩調を合わせるために使われ、 パリティビットは、通信によって、データの欠落が発生していないか、 というエラーを検出するために使われます。

RS-232C は、送信側が主導権を持った伝送方式になっています。 相手が送り出してきたデータは、必ず受取らないといけないという約束で成り立っています。

他のインターフェースでは、送信の際に、相手が受取れない状態になっていると、 送信しようとしても送信できない様にする、ハードウエア的な仕組みがあるものもあるのですが、 RS-232C では、受け取り側が、どのような状態であれ、送信できてしまう為、 受け取り側は、送信されたデータを必ず受取らないと、データが欠落してしまうのです。

ただし、受け取り側が、送信側に、受取れない状態になったという事を知らせる方法はあります。 ですが、送信側がそれを無視して送ってきたら、送られてきてしまうので、 送り手側がその約束に従ってくれないと成り立ちません。

このような通信上の基本的な約束事は、握手をするようなので、ハンドシェークと呼ばれます。 プロトコルという話をしましたが、プロトコルは、ハンドシェークの約束事を守った上で成り立つ物です。

RS-232C のハンドシェークは、 送受信のための線以外の信号線を使って行う、ハードウエアハンドシェークと、 通信停止・再開を意味するデータをやり取りする事で行う、XON/XOFF があります。 ハンドシェークの事をフロー制御とも言います。

XON/XOFF で行う場合、 RS-232C でやり取りできるデータに制限が出来ます。 この場合は、文字データしかやり取りできません。 何故なら、XON/XOFF を意味するデータを送ったら、 データの送信を意味せず、ハンドシェークの動きをしてしまうからです。

RS-232C は、 大型汎用機と端末を繋ぐための標準的なインタフェースでもあります。 この用途では、端末側のキーボードから入力されたデータと、 端末の画面に表示して欲しいデータがやり取りされるので、 文字データの伝送さえ出来れば、問題が無いのです。

どのようなデータでもやり取りできるようにするためには、ハードウエアハンドシェイクを使います。 モデムは大抵、ハードウエアハンドシェークです。