ツイストペア(平衡型伝送)技術を用いて高速・長距離を実現するために、 たくさんの EIA 規格が今までに作られました。平衡型の伝送は、場合によっ ては 非平衡型の EIA-232 よりも百倍も速いことがあります。ある速度の場合、 距離(最大ケーブル長)はツイストペアを使った方が何倍も長くできます。です が PC では「時代遅れな」EIA-232 が使われ続けています。というのも、 モデムやマウスはケーブルが短いため、これで十分だからです。この HOWTO 文書が最新版であり、かつ以下に示す非 EIA-232 を Linux がサポートしてい れば、筆者にお知らせください。
EIA-423 は非平衡型の EIA-232 とほとんど同じですが、電圧が 5 V しかない点が異なります。これは EIA-232 規格に含まれるので、EIA-423 は EIA-232 ポートに接続することができます。この仕様は EIA-232 より多少 速い速度を求めています(ですが長時間動作すると非平衡伝送が衝突を起こす ので、これはほとんど役に立ちません)。
Apple の Macintosh のうち、1998 年の中頃より古いものには EIA-232/EIA-422 ポートが付いており、ツイストペア(平衡型)を送受信(422 として使った時)に使うことができました。これは(仕様上は) EIA-423(これ自 体は EIA-232 より多少高速です) のちょうど 100 倍高速です。 Macintosh は小さくて丸い "ミニ DIN-8" コネクタを使っていました。従来の EIA-232 ポートも付いていましたが、これは 5 V でしか使えませんでした(それで も正当な EIA-232 です)。これを EIA-232 と同じように使うには、 RxD+ (平衡ペアの片方の端)を接地した特殊なケーブルを使い、 RxD- を受信ピンとして使わなければなりません。 TxD- は送信ピンとして使われますが、いくつかの理由によって TxD+ は接地 してはなりません。 Macintosh Communications FAQ も参照してください。しかし、Macintosh (およびこれ を改良したもの)は PC よりも値段が高いため、Linux 用のホストコンピュー タとしてはあまり使われていません。
これは EIA-422 (平衡型) に似ています。半二重です。これは point-to-point 接続だけでなく、マルチドロップ LAN (32 ノードまで)にも 使うことができます。コネクタの仕様は存在しません。
2M ビット/秒(平衡型) の EIA-530-A (平衡型ですが、非平衡型として使 うこともできます)は EIA-232 を置き換えるためのものでしたが、ほとんど使 われませんでした。EIA-232 と同じ 25 ピンコネクタを使います。
高速シリアルインタフェース (High Speed Serial Interface, HSSI = EIA-612/613)では 50 ピンのコネク タを使います。約 50 M ビット/秒の速度が出ますが、数メートルの距離でし か使えません。Linux 用にも HSSI をサポートしている PCI カードがありま す。このようなカードを販売している会社が Linux 用のドライバを提供して いること(あるいはドライバのありかを示していること)もよくあります。この 話題については、mini-HOWTO のようなものが必要でしょう。
汎用シリアルバス(USB)は、PCI チップに組み込まれています。新しい PC は USB を備えています。USB は 4 ピンコネクタを持つツイストペアケーブル (2 つの結線は電源供給)を使って 12M ビット/秒の速度で通信できます。 ただし最長 5 メートル(この数字は構成によって変化します)という短い距離 でしか接続できません。
USB を説明するには別の HOWTO 文書が必要です。Linux で USB をサポートす るための作業は現在進行中です(ただし HOWTO 文書はまだありません)。USB は同期通信を行い、ネットワークと同様に特殊なパケットを使って送信を行い ます。ちょうどネットワークと同じように、USB には複数のデバイスを接続す ることができます。USB 上の各デバイスには、排他的な使用を行うための短い 時間のタイムスライスが与えられます。デバイスは、バスを固定の時間間隔で 使用できることが保証されます。他のデバイスが USB バスを使おうとしなけ れば、1 つのデバイスが USB バスを独占することができます。USB を詳しく 説明することは容易ではありません。
EIA-232 の非同期通信(など)の他に、同期シリアルポート通信の規格が たくさんあります。実際は EIA-232 に同期通信の仕様がありますが、これは 普通は PC のシリアルポートには付いていません。しかしまずは同期通信がど ういうものかを説明しましょう。
非同期(async, asynchronous)とは「同期的でない」という意味です。 実際には非同期信号は、非同期シリアルポートが送受信するデータであり、ス タートビットとストップビットによって範囲が定められたバイト列のストリー ムです。同期(sync)とは、非同期でないものほとんど全てです。ですが、これ では基本的な概念の説明になりませんね。
理論的には、同期通信とは一定の速度でクロック信号の刻みに合わせてバイ ト列が順に送られることです。クロック信号を送るための配線やチャンネルが 別になっていることもよくあります。非同期通信の場合には、バイトデータの 間の時間が(キーボードで文字を打ちこむ場合のように)不規則に変化しても送 信ができます。
同期通信あるいは非同期通信のどちらかへの分類が必要となる場合があります。 非同期シリアルポートでも、多くの場合は一定速度のストリームを送ります。 これは同期通信のように思われるかもしれませんが、それでもスタートビット やストップビットがあるので(これによりデータを不規則な速度で送信できま す)非同期通信と呼ばれます。別の場合としては、(スタートビットやストップ ビットを含まない)バイトデータが、不規則なパケット間隔を持つことがある パケットに入れられることがあります。これは同期通信です。というのも、各 パケットに入っているバイト列は同期させて送信しなければならないからです。
読者の皆さんは、シリアルポート用の 25 ピンコネクタの未使用のピンが 一体何なのかを疑問に思ったことはないでしょうか? 未使用のピンのほとんど は同期通信用なのですが、同期通信を PC で行うことは滅多にありません。 同期タイミング信号や同期反転チャネルのためのピンがあります。 EIA-232 の仕様には同期通信と非同期通信の両方が定義されていますが、PC は 16450, 16550A, 16650 等の UART (Universal Asynchronous Receiver/Transmitter) チップを使っており、同期通信を扱えません。 同期通信を行うには USART チップあるいはそれと同等のチップを使う必要が あります。 USART の S は同期(synchronous)を表しています。 同期通信はすきま市場なので、同期シリアルポートは多くの場合かなり高くつ きます。
EIA-232 の同期に関する部分の他にも、EIA には同期に関する規格が色々あり ます。EIA-232 では、コネクタの 3 つのピンがクロック(あるいはタイミング) 信号のために予約されています。 また、ときにはモデムが何らかのタイミング信号を生成し、同期モデム (あるいは同じくタイミング信号を生成する「同期モデムエリミネータ」) なしには同期通信ができないようにすることもあります。
シリアルポートが同期対応であることはほとんどないのですが、 V.42 エラー訂正を使うモデムを用いた、電話回線上での同期通信はよく行わ れます。このエラー訂正はスタートビットとストップビットを取り除き、パケッ ト中に日付バイトを入れるもので、その結果として電話回線上で同期操作を実 現します。