RS-232によるシリアル通信の基礎

RS-232によるシリアル通信の基礎

著者の連絡先情報

要約

シリアル通信はエレクトロニクス業界で広く用いられています。パラレル型のインタフェースと比べると、システムを簡素化できることに加え、ハードウェアのオーバーヘッドを小さく抑えられるからです。シリアル通信向けには様々な規格が定められています。なかでも、EIA/TIA-232-Eは特に広く普及したものだと言えるでしょう。この規格は、EIA(Electronic Industry Association:米電子工業会)とTIA(Telecommunications Industry Association:米電気通信工業会)によって策定されました。EIA/TIA-232-Eの通称がRS-232です。RSという接頭語は「推奨規格(Recommended Standard)」という意味を表します。規格の策定元を特定できるようにするために正式名称が用いられるケースも増えていますが、本稿ではより一般的なRS-232の表記を使用することにします。

はじめに

実はEIA/TIA-232-Eには、もっと正式な名称があります。それは「Interface Between Data Terminal Equipment and Data Circuit-Terminating Equipment Employing Serial Binary Data Interchange(シリアル・バイナリ・データ交換を用いたデータ端末装置とデータ回線終端装置間のインタフェース)」というものです。この名称を見ると、非常に複雑な規格であるように感じられるかもしれません。しかし、この規格は、単にホスト・システムとペリフェラル・システムの間のシリアル・データ通信について定めたものにすぎません。ここで、ホスト・システムにあたるのがデータ端末装置(DTE:Data Terminal Equipment)です。一方のペリフェラル・システムがデータ回線終端装置(DCE:Data Circuit-Terminating Equipment)にあたります。

RS-232の規格は、1962年に策定されて以来、進化するシリアル通信アプリケーションのニーズに応えるために4回改訂されました。EIA/TIA-232-Eの末尾の「E」は、この規格の第5版であることを表しています。

RS-232の仕様

RS-232は完全な規格です。ホスト・システムとペリフェラル・システムの間の適合性を確保することを目的とし、以下の仕様を定めています。 

  1. 電圧レベルと信号レベル
  2. 信号の機能、ピンの配置/構成
  3. ホスト・システムとペリフェラル・システムをつなぐための最小限の制御情報

多くの規格では、インタフェースの電気的な仕様だけを定めています。それに対し、RS-232は電気的、機能的、機械的な仕様を定めることにより、上記3つの項目に対応しています。以下、それぞれの仕様について詳しく解説します。

電気的な仕様

RS-232の規格には電気的な仕様のセクションが設けられています。そのセクションでは、電圧レベル、信号レベルが変化するレート、ライン・インピーダンスが規定されています。

RS-232の最初の規格は、TTLロジックの時代より前の1962年に策定されました。そのため、この規格では5Vとグラウンドから成るロジック・レベルは使われていません。ドライバの出力については、ハイのレベルが5V~15V、ローのレベルが-5V~-15Vと定められています。一方、レシーバーのロジック・レベルについては、2Vのノイズ・マージンが得られるように定義されました。つまり、レシーバーでは、ハイのレベルが3V~15V、ローのレベルが-3V~-15Vとなっています。この仕様を図で表すと図1のようになります。RS-232による通信では、ローのレベル(-3V~-15V)がロジック・レベルの1と定義されています。この状態は「マーク」と呼ばれています。同様に、ハイのレベル(3V~15V)がロジック・レベルの0と定義されています。こちらは「スペース」と呼ばれます。

図1. ロジック・レベルの仕様

図1. ロジック・レベルの仕様

RS-232では、ドライバの出力の最高スルー・レートに制限が設けられています。その目的は、隣接する信号の間でクロストークが発生する可能性を低減することです。信号の立上がり時間と立下がり時間が長くなるほど、クロストークが発生する可能性は低くなります。このことを考慮し、30V/マイクロ秒という最高スルー・レートの仕様が定められました。また、最高データ・レートについては20kbpsと定義されています。これもクロストークの可能性を低減するための制限です。

ドライバとレシーバーの間のインタフェースについては、インピーダンスの仕様も定義されています。まず、ドライバから見た負荷は3kΩ~7kΩと規定されています。また、RS-232の最初の規格では、ドライバとレシーバーの間のケーブル長は最大15mと規定されていました。その後、EIA/TIA-232-Dの段階でその仕様に変更が加わりました。ケーブルの最大長ではなく、容量負荷の最大値として2500pFという値が規定されたのです。実際、この新たな仕様の方が明らかに適切だと言えるでしょう。ケーブルの最大長は、ケーブル製品の仕様に記載されている単位長あたりの容量値に応じて決まることになります。

表1は、RS-232の電気的な仕様についてまとめたものです。

表1. RS-232の仕様
RS-232
ケーブル シングルエンド
デバイスの数 送信1、受信1
通信モード 全二重
距離(最大) 19.2kbpsの場合に50フィート
データ・レート(最高)
1Mbps
信号の伝送方式 非平衡
マーク(データ1) -5V(最小)、-15V(最大)
スペース(データ0) 5V(最小)、15V(最大)
入力レベル(最小) ±3V
出力電流 500mA(注:通常、PCで使用されるドライバICは10mAに制限されている)
インピーダンス 5kΩ(内部)
バスのアーキテクチャ ポイントtoポイント

機能的な仕様

RS-232は完全な規格であり、電気的な仕様以外の事柄についても詳細に定められています。信号の機能やピンの配置/構成を明確化するために、インタフェースの機能的な仕様も定義されました。つまり、RS-232では、インタフェースで使用される様々な信号の機能が定義されています。各信号は、コモン、データ、制御、タイミングの4種に分けられます(表2)。RS-232には豊富な制御信号が用意されており、プライマリとセカンダリの通信チャンネルをサポートしています。ただ、実際には定義済みのすべての信号を必要とするアプリケーションはごくわずかしか存在しないでしょう。例えば、一般的なモデムでは8つの信号だけが使用されます。なお、RS-232が実際のアプリケーションでどのように使用されているのかについては後述します。また、表2には定義済みのすべての信号を示してありますが、本稿では主要な信号以外については触れないことにします。

表2. RS-232で定義されている信号
信号のニーモニック 信号名 信号の方向 信号の種類
AB 信号コモン コモン
BA
BB
送信データ(TD)
受信データ(RD)
To DCE
From DCE
データ
CA
CB
CC
CD
CE
CF
CG
CH
CI
CJ
RL
LL
TM
送信要求(RTS)
送信可(CTS)
DCEレディ(DSR)
DTEレディ(DTR)
リング・インジケータ(RI)
受信ライン信号検出**(DCD)
信号品質検出
DTEからのデータ信号のレート検出
DCEからのデータ信号のレート検出
受信レディ
リモート・ループバック
ローカル・ループバック
テスト・モード
DCEへ
DCEから
DCEから
DCEへ
DCEから
DCEから
DCEから
DCEへ
DCEから
DCEへ
DCEへ
DCEへ
DCEから
制御
DA DTEからの送信信号エレメント・タイミング DCEへ  
DB
DD
DCEからの送信信号エレメント・タイミング
DCEからの受信信号エレメント・タイミング
DCEから
DCEから
タイミング
SBA
SBB
セカンダリの送信データ
セカンダリの受信データ
DCEへ
DCEから
データ
SCA
SCB
SCF
セカンダリの送信要求
セカンダリの送信可
セカンダリの受信ライン信号検出
DCEへ
DCEから
DCEから
制御
カッコ内に略語を示したものは、最も一般的に使用される8種の信号です。
** この信号は、一般にデータ・キャリア検出(DCD)と呼ばれます。

機械的な仕様

RS-232が対象とする3つ目の領域はインタフェースの機械的な仕様です。具体的には、機能的な仕様として定義されたすべての信号を収容できる25ピン、最小サイズのコネクタについて定めています。図2に示したのがそのコネクタのピン配置です。DCE用のコネクタは、コネクタ・ハウジングがオスで接続ピンがメスになっています。同様に、DTEのコネクタはハウジングがメスで接続ピンがオスです。RS-232では25極のコネクタが規定されているわけですが、この仕様どおりのコネクタはあまり使用されていません。なぜなら、ほとんどのアプリケーションは、定義済みのすべての信号を必要とするわけではないからです。つまり、25ピンのコネクタは必要以上に大きいということになります。このような理由から、別のタイプのコネクタが一般的に使用されます。恐らく最もよく使われているのは、図2にも示してある9極のDB9Sコネクタです。例えば、同コネクタはモデム・アプリケーションで信号を送受信するために使われています。この種のアプリケーションについては後述します。

図2. RS-232のコネクタのピン配置

図2. RS-232のコネクタのピン配置

RS-232に対応するICの進化

RS-232に対応するIC(トランシーバーなど)は数多く製品化されています。RS-232は長く使われてきたので、それに対応するICもその間に大きく進化しました。つまり、様々な機能が追加されていったということです。以下、そうした機能について説明します。

レギュレート用のチャージ・ポンプ


Maxim Integrated(現在はアナログ・デバイセズの一部門)の「MAX232」は、RS-232に対応するドライバ/レシーバーICです。当初、このICをはじめとする製品では、入力電圧を単純に2倍にして反転し、RS-232に対応するドライバ回路に供給していました。この設計では、実際に必要な電圧よりもはるかに高い電圧が生成されることになります。その結果、電力が浪費されていました。RS-232では、電圧レベルは5kΩのインピーダンスに対して±5Vと定義されています。そこで、Maximは、RS-232に適した新たな設計のトランシーバー製品を投入しました。それらの製品は、低ドロップアウトの新たな出力段を備えている点を特徴とします。また、レギュレートされた±5.5Vの出力を供給するためのチャージ・ポンプを内蔵しています。この設計により、電源電流を最小限に抑えつつ、トランスミッタの出力をRS-232に対応するレベルに維持することが可能になりました。


低電圧動作


新たなレギュレート用のチャージ・ポンプと低ドロップアウトのトランスミッタ出力を採用することで、出力電圧を下げることができました。それにより、電源電圧を下げることも可能になりました。Maximがその後リリースしたRS-232対応トランシーバーICのほとんどは、3.0Vまでの電源電圧で動作します。


AutoShutdown


バッテリの寿命を延ばすための戦いに終わりはありません。この目的に向けて、MaximはAutoShutdownと呼ばれる技術を他社に先駆けて開発しました。この技術を採用したICは、RS-232の有効な動作が検出されない場合、低消費電力のシャットダウン・モードに移行します。RS-232の有効な出力を検出したら、RS-232に対応するアクティブなポートがケーブルの他端に接続されているか否かをシステムのプロセッサに提示します。「MAX3212」の場合、より高度な機能を搭載しています。その機能は、同ICが内蔵する遷移検出回路によって実現されます。入力ラインのいずれかに状態の変化が生じたら、その回路のラッチ出力が割り込みとして機能し、システムをウェイクアップさせることができます。


AutoShutdown Plus


MaximはAutoShutdownの成功に基づき、AutoShutdown Plusという技術を開発しました。この技術を適用したICでは、電源電流を1μAに抑えられます。それらのICは、次のようなケースでは消費電力の少ないシャットダウン・モードに自動的に移行します。すなわち、RS-232のケーブルが接続されていない場合、接続されているペリフェラルのトランスミッタが非アクティブである場合、トランスミッタの入力を駆動するUART(Universal Asynchronous Receiver Transmitter)のポートが30秒以上にわたって非アクティブである場合です。トランスミッタまたはレシーバーの入力のうちいずれかにおいて有効な遷移を検出されたら、再び通常動作に戻ります。AutoShutdown Plusにより、既存のBIOSやOSに変更を加えることなく電力を節約することができます。


MegaBaudモード


MegaBaudモードでは、RS-232の仕様を超える性能が得られます。このモードでは、ドライバのスルー・レートを高めることにより、最高1Mbpsのデータ・レートを実現します。DSL(Digital Subscriber Line)やISDN(Integrated Services Digital Network)に対応するモデムなど、高速なペリフェラルの間で短距離の通信を行いたい場合に有用な機能です。


高いESD耐性


IC製品の中には、より高いESD保護性能を実現するように設計されているものがあります。そうした製品は、人体モデルの放電とIEC 801-2で規定されたエアギャップ放電の両方に対して、±15kVのESD保護性能を達成します。Maximの優れたESD保護技術を適用すれば、対応にはコストを要する現場での障害を防ぐことができます。それだけでなく、TRANSZORBのようなESD保護用の高価な外付けデバイスを使用する必要がなくなります。

実装に関する検討事項

RS-232に対応するICを使用する上では、留意すべきいくつかの事柄が存在します。以下では、いくつかの課題について解説を加えることにします。

コンデンサの選択

先述したように、Maximが提供するRS-232対応のトランシーバー製品の中にはチャージ・ポンプを内蔵しているものがあります。この回路は、コンデンサを使ってエネルギーを変換/蓄積します。そのコンデンサの選択は、回路全体の性能に影響を及ぼします。一部の製品のデータシートを見ると、代表的なアプリケーション回路で有極性のコンデンサが使用されていることがあります。ただ、その情報は、有極性コンデンサを使用したいお客様のために提供されているものです。実際には、MaximのRS-232対応ICではセラミック・コンデンサを使用するのが最適です。

では、セラミック・コンデンサとしてはどのようなものを選択すればよいのでしょうか。Z5UやY5Vのコンデンサの場合、誘電体の電圧係数と温度係数が非常に大きいので選択すべきではありません。X5RやX7Rなどのコンデンサを選択すれば、必要な性能が得られます。


未使用の入力

RS-232に対応するレシーバーの入力部には、5kΩのプルダウン抵抗が実装されています。そのため、このレシーバーの入力を使用しない場合にはフローティング状態にしても問題は生じません。一方、トランスミッタでは事情が異なります。CMOSベースのトランスミッタの場合、インピーダンスが非常に高い入力部を備えています。そうした入力を使用しない場合には、問題が生じないようにするために有効なロジック・レベルで駆動しなければなりません。つまり、トランスミッタの入力を使用しない場合には、VCCまたはグラウンドに接続する必要があるということです。

基板のレイアウト

MaximのRS-232対応ICを使用する場合、基板のレイアウトに留意する必要があります。いわばDC/DCコンバータと同様の扱いでレイアウトを実施しなければなりません。具体的には、チャージ・ポンプの充電サイクルと放電サイクルの両方に関してAC電流の流れを分析する必要があります。容易かつ効果的にレイアウトを実施できるようにするために、Maximの製品では、すべての重要なピンについて外付け部品をすぐ近くに配置できるようにしています。

小型パッケージを採用した製品

低消費電力のRS-232対応トランシーバーは、小型のパッケージを採用しています。具体的には、UCSP、TQFN、TSSOPの各パッケージで提供されています(表3)。例えば「MAX3243E」は32ピンのTQFN(7mm×7mm)を採用しています。これであれば、TSSOPのソリューションと比べて基板上の実装スペースを20%節約することができます。また、20ピンのTQFN(5mm×5mm)を採用した「MAX3222E」の場合、実装スペースを40%節約することが可能です。これら以外にもTQFNを採用したトランシーバーの製品ファミリを用意しています。MAX3222Eと「MAX3232E」は2つのドライバと2つのレシーバーを内蔵しています。一方、「MAX3221E」は1つのドライバと1つのレシーバーを内蔵した製品です。これらの製品はAutoShutdown機能を備えているので、電源電流を1μAに抑えることができます。そのため、バッテリ駆動の機器に最適です。

MAX3228E/MAX3229E」ファミリは、30バンプのUCSP(3mm×2.5mm)で提供されています。これらの製品を採用すれば、実装スペースを約70%節約することができます。そのため、ノート型のPCや携帯電話端末、ハンドヘルド機器など、スペースに制約のあるアプリケーションに最適です。また、シャットダウン時の電源電流が1μAで、実装スペースを抑えられるUCSPを採用したRS-232対応トランシーバーも提供されています。それらの製品は、超低消費電力のシステムに最適です。 

表3. 小型パッケージを採用したRS-232対応トランシーバー
品番 パッケージ シャットダウン時の電源電流〔μA〕 データ・レート〔kbps〕 ドライバ/レシーバーの数 ESD耐圧〔±kV〕
MAX3221E 20ピンTQFN 1 250 1/1 15
MAX3222E 16ピンTQFN 1 250 2/2 15
MAX3223E 20ピンTQFN 1 250 2/2 15
MAX3230E 20バンプUCSP 1 250 2/2 15
MAX3231E 20バンプUCSP 1 250 1/1 15
MAX3232E 16ピンTQFN 1 250 2/2 15
MAX3237E 28ピンSSOP 10nA 1Mbps 5/3 15
MAX3243E 32ピンTQFN 1 250 3/5 15
MAX3246E 36バンプUCSP 1 250 3/5  

RS-232の実際の使われ方

最近のシステムは、RS-232の規格で定められた電圧レベルを使用するように設計されることはほとんどないでしょう。そのため、RS-232による通信を実現するにはレベル変換が必要になります。レベル変換は、RS-232向けの特別なICによって行います。その種のICは、RS-232に必要な電圧レベルを生成するライン・ドライバと、RS-232の電圧レベルを損なうことなく受信できるライン・レシーバーの両方を備えています。通常、それらのドライバとレシーバーは信号の反転にも対応しています。RS-232では、ロジック・レベルの1は低い電圧レベル、ロジック・レベルの0は高い電圧レベルで表現されるからです。

図3に示したのは、RS-232に対応するライン・ドライバ/レシーバーの活用例です。ここでは、代表的なモデム・アプリケーションを例にとっています。この場合、シリアル通信に必要な信号はUARTによって生成/受信されます。RS-232に対応するライン・ドライバ/レシーバーICは、CMOS/TTLとRS-232のインタフェースの間で必要とされるレベル変換を実行します。

図3. RS-232を利用する代表的なモデム・アプリケーション

図3. RS-232を利用する代表的なモデム・アプリケーション

UARTは、非同期のシリアル通信に必要な「オーバーヘッド」のタスクを担います。通常、非同期の通信ではホスト・システムによってスタート・ビットとストップ・ビットが付与されます。それらにより、ペリフェラル・システムに対し、通信がいつ開始され、いつ停止されるのかを示すということです。また、送信されたデータが破損していないことを確認するために、パリティ・ビットが使用されることも少なくありません。通常、UARTはデータの送信時にスタート・ビット、ストップ・ビット、パリティ・ビットを生成します。それらにより、データを受信する際、通信エラーを検出することが可能になります。加えて、UARTは、パラレル(バイト幅)の通信とシリアル(ビット幅)の通信の仲介役としても機能します。つまり、送信時には1バイトのデータをシリアルのビット・ストリームに変換し、受信時にはシリアルのビット・ストリームを1バイトのデータに変換するといった具合です。

ここまでで、TTL/CMOSとRS-232のインタフェースの関係についての初歩的な説明は終わったことになります。ここからは、RS-232を利用する実際のアプリケーションについて検討することにしましょう。先述したとおり、RS-232を利用するアプリケーションがRS-232の規格に厳密に従うケースは稀です。通常、RS-232の全信号のうち不必要なものは省略されます。例えば、多くのモデム・アプリケーションでは、9つの信号(2つのデータ信号、6つの制御信号、グラウンド)しか使われません。なかには、5つの信号(2つのデータ信号、2つのハンドシェイク用信号、グラウンド)しか必要としないアプリケーションも存在します。更には、ハンドシェイクの制御も使用せず、データ信号だけをやり取りするアプリケーションも珍しくありません。

RS-232を利用するモデム・アプリケーション

現実の例として、まずは代表的なモデム・アプリケーションについて考えてみましょう。その種のアプリケーションは、RS-232の用途の中でも特に一般的なものだと言えます。図4に示したのが、代表的なモデム・アプリケーションの例です。このアプリケーションにおいて、DTEはPCであり、DCEはモデムです。各PCとそれに接続されたモデムの間の通信は、RS-232をベースとして実施されます。また、2台のモデムの間の通信は電気通信回線を介して行われます。なお、RS-232を利用するアプリケーションでは、通常、マイクロコントローラはDTEとして機能します。ただ、これはRS-232規格の厳密な解釈によって義務づけられているというわけではありません。

図4. RS-232を利用するモデム・アプリケーション。2台のPCの間でモデムを介して通信が行われます。

図4. RS-232を利用するモデム・アプリケーション。2台のPCの間でモデムを介して通信が行われます。

この種のアプリケーションでも25ピンのコネクタが使用されることはあります。ただ、実際にはDTEとDCEの間のインタフェースでは9つの信号(グラウンドを含む)しか扱いません。そのため、25ピンのコネクタは必須ではなく、多くの場合、9ピンまたは15ピンのコネクタが使用されます(前掲の図2に9ピンのコネクタを示してあります)。モデムの通信で使用される基本的な9つの信号は、前掲の図3に示したとおりです。DTEには、RS-232に対応する3つのドライバと5つのレシーバーが必要です。以下では、9つの信号について説明しますが、その中では「オン」はRS-232の高い電圧レベル(5V~15V)、「オフ」はRS-232の低い電圧レベル(-5V~-15V)を指すことにします。また、RS-232の高い電圧レベルは実際にはロジック・レベルの0を表し、低い電圧レベルはロジック・レベルの1を表すことに注意してください。それぞれの信号の意味は以下のようになります。

送信データ(TD): 個別のデータ信号は2つ存在します。それらのうちの1つが送信データです。この信号はDTEが生成し、DCEが受信します。

受信データ(RD):もう1つの個別のデータ信号です。この信号はDCEが生成し、DTEが受信します。

送信要求(RTS):ホスト・システム(DTE)がペリフェラル・システム(DCE)にデータを送信する準備が完了したら、RTS(送信要求)がオンになります。それにより、シンプレックス(単信)とデュプレックス(二重)のシステムではDCEが受信モードに維持されます。半二重システムでは、RTSがオンになることによってDCEが受信モードに維持されます。一方、送信モードはディスエーブルになります。RTSがオフの状態では、DCEが送信モードに維持されます。RTSがアサートされた後、DCEは通信を開始する前に、次に説明するCTSをアサートする必要があります。

送信可(CTS):CTSはRTSと共に使用します。それにより、DTEとDCEの間のハンドシェイクが実現されます。DCEは、RTSがアサートされたことを検知した後、通信を開始する準備ができたらCTS(送信可)をオンにします。

データ・セット・レディ(DSR):この信号は、DCEによってオンになります。それにより、電気通信回線に接続されていることが示されます。

データ・キャリア検出(DCD):この信号は、DCEがリモートのDCEから基準に適合する信号を受信しているときにオンになります。DCDは、適切なキャリアの信号が検出できている限りオンのままになります。

データ端末レディ(DTR):DTRは、DTEの準備が完了していることを表します。DCEとの間でデータを送受信する準備が完了したら、DTEによってオンに設定されます。DTRは、DCEがDSRをアサートする前にオンになっている必要があります。

リング・インジケータ(RI):RIがアサートされたら、通信チャンネルで呼び出し信号が受信されていることになります。

これらの信号は、モデム通信の基礎となるものです。それらが実際にどのようにやり取りされるのかを理解する最良の方法は、モデムがPCとの間でインタフェースを確立する際の挙動を順を追って調べることです。以下に示すステップは、リモートのモデムがローカルのモデムを呼び出す際のトランザクションについて説明したものです。

  1. ローカルのPCは、ソフトウェアを使用してRI(リング・インジケータ)を監視します。
  2. リモートのモデムは、ローカルのモデムと通信しようとする場合、RIを生成します。この信号はローカルのモデムからローカルのPCへ転送されます。
  3. ローカルのPCは、通信の準備が完了したらDTR(データ端末レディ)をアサートすることでRIに応答します。
  4. モデムは、DTRがアサートされたことを認識したら、通信回線に接続された後にDSR(データ・セット・レディ)をアサートすることで応答します。DSRは、モデムがDTEと更に制御信号を交換して通信を開始する準備ができたことをPCに示します。DSRがアサートされたら、PCは通信回線でデータが送信されていることを示すDCD(データ・キャリア検出)の監視を開始します。
  5. モデムは、リモートのモデムから基準に適合するキャリア信号を受信した後にDCDをアサートします。
  6. この時点でデータの転送を開始できる状態になります。ローカルのモデムが全二重機能を備えている場合、CTS(送信可)とRTS(送信要求)はアサートされている状態で保持されます。モデムが半二重機能しか備えていない場合には、CTSとRTSはデータ・フローの方向を制御するために必要なハンドシェイクを実行します。データはRD(受信データ)とTD(送信データ)として転送されます。
  7. データの転送が完了したら、PCはDTRをディスエーブルします。それに続いて、モデムはDSRとDCDの使用を禁止します。この時点で、PCとモデムはステップ1で説明した元の状態に戻ります。

最小限のハンドシェイクを行うアプリケーション

上述したモデム・アプリケーションでは、必要な信号の数に応じてRS-232の実装を簡略化していました。それでも、現実の多くのアプリケーションの要件に比べれば複雑だと言えます。多くのアプリケーションでは、2本のデータ・ラインとハンドシェイク用の2本の制御ラインしか必要としません。それらにより、ホスト・システムとペリフェラル・システムの間の通信を確立して制御します。例えば、環境の制御を担うシステムにおいて、半二重通信方式を使用し、サーモスタットとのインタフェースを確立する必要があったとします。そのシステムは、任意のタイミングでサーモスタットから温度の値を読み取り、別のタイミングで温度のトリップ・ポイントをサーモスタットにロードするとしましょう。この種の単純なアプリケーションでは、5つの信号(2つのデータ信号、2つのハンドシェイク用信号、グラウンド)しか必要ありません。

図5に示したのは、半二重通信用の単純なインタフェースです。ご覧のように、データはTD(送信データ)ピンとRD(受信データ)ピンを介して転送されます。そして、RTS(送信要求)ピンとCTS(送信可)ピンにより、ハンドシェイクの制御が行われます。RTSはDTEによって駆動されます。それにより、データの方向が制御されます。RTSがアサートされると、DTEは送信モードになります。RTSの使用が禁止されると、DTEは受信モードになります。CTSはDCEによって生成されます。それにより、データの流れが制御されます。CTSがアサートされると、データをやり取りすることが可能になります。CTSの使用が禁止されると、データの転送は中断されます。データの転送は、CTSが再びアサートされるまで停止されたままになります。

図5. 半二重通信用のインタフェース

図5. 半二重通信用のインタフェース

RS-232の欠点

RS-232が規格化されてから40年以上が経過しました。その間にエレクトロニクス業界は大きく変化しました。そのため、RS-232の規格にはいくつかの欠点が存在している状態にあります。例えば、この規格では20を超える信号が定義されています。このことは欠点の1つだと言えるでしょう。実際には、すべての信号や25ピンのコネクタが使用されることはほとんどありません。

上記の欠点を解消する方法については既に明らかにしました。ただ、それ以外の欠点に対応するのは必ずしも容易ではありません。以下では、そうした問題について解説します。


電圧レベルの生成


ここで、RS-232の電気的な仕様について思い出してください。RS-232は、TTLやCMOSで使用される0Vと5Vの電圧レベルには対応していません。ドライバは、ロジック・レベルの0を表現するためには5V~15V、ロジック・レベルの1を表現するためには-5V~-15Vを供給する必要があります。つまり、RS-232の規格に準拠した動作を実現するには電源を追加しなければなりません。通常、RS-232に対応する出力を駆動するためには12Vと-12Vの電源が使用されます。システム内に、これらの電源電圧を必要とするものが他に存在しなかったとしたらどうなるでしょうか。その場合、非常に不都合な要件が加わっている状態になります。この点を考慮し、Dallas Semiconductor(Maximが買収済み)が提供するRS-232対応の製品は、通信に必要な電圧レベルを生成するためのチャージ・ポンプ回路を内蔵しています。1つ目のチャージ・ポンプは、標準的な5Vの電源電圧を実質的に2倍にします。それにより、ロジック・レベルの0を表現するために必要な電圧を供給します。2つ目のチャージ・ポンプは、その電圧を反転させます。それにより、ロジック・レベルの1を表現するために必要な電圧を供給します。これら2つのチャージ・ポンプが用意されていることから、RS-232に対応するそれらの製品は5Vの単一電源で動作させることができます。


最高データ・レート


RS-232のもう1つの欠点は最高データ・レートです。同規格では、最高データ・レートを20kbpsに制限しています。このデータ・レートは、昨今のアプリケーションでは低すぎる値だと言えます。そこで、Dallas SemiconductorのRS-232対応製品は、最高250kbpsのデータ・レートを保証しています。実際には、最高350kbpsでの通信も実現できるはずです。それらの製品は、このようなデータ・レートを提供しつつ、30V/マイクロ秒という最高スルー・レートの仕様には従っています。それにより、隣接する信号間でクロストークが生じる可能性を低減しています。


最大ケーブル長


先述したように、RS-232の旧来の規格に含まれていたケーブル長の仕様は、2500pFの最大負荷容量の仕様に置き換えられました。許容できるケーブルの全長を見定めるためには、総ライン容量を求める必要があります。図6は、導体の総ライン容量を簡単に近似するための方法を示したものです。ご覧のように、総ライン容量は、信号用の導体間の相互容量と、導体とシールド間の容量(シールドのないケーブルの場合は浮遊容量)の和によって近似できます。

例えば、機器を相互接続するためにシールドのないケーブルを使用するとします。ケーブルの相互容量Cmは、ケーブルの仕様によって1フィート(30.48cm)あたり20pFであることがわかっているとしましょう。レシーバーの入力容量が20pFであると仮定すると、相互接続用のケーブルの容量としては2480pFまで許容できます。図6に示した式から、1フィートあたりの総容量は30pFとなります。2480pFを30pFで割ると、最大ケーブル長は約80フィート(24.384m)となります。更に長いケーブルを使用したい場合には、相互容量の小さいケーブル製品を探す必要があります。

図6. ケーブルの単位長あたりの容量

図6. ケーブルの単位長あたりの容量