[[labs.beatcraft.com]] [[電子工作]] * RS-232C レベル変換 [#l3f0292d] ** RS-232Cのしくみ [#nf28b597] RS-232Cは、送信と受信で それぞれ1本の信号線を使い、(多くの場合は) 8bit長の データを 1bitずつ順番に送受信しています。このように 1bitずつ順番に 通信する方式をシリアル通信と呼びます。 PCでは シリアル通信と言えば、RS-232Cのことと思われがちですが、 USB, IEEE-1394をはじめキーボードやマウス(PS/2インターフェイス) などもシリアル通信の一種です。 RS-232Cは、端末とモデムを接続するために開発された通信規格のひとつであり、現在では、25pinコネクタを 使ったものは EIA-232, 9pinコネクタを使ったものは EIA-574として、規格化されています。 この規格がカバーする範囲はかなり広い範囲になります。PCではあまり使われない仕様も含まれています。 ここでは シリアルコンソールとして使用する場合など、PCとの接続に必要な範囲に限定します。また、 名称も RS-232Cを使います。 PCのRS-232Cでは、非同期式が使われます。同期式はほとんど使われていません。 シリアルコンソールとして接続するときは、非同期式になります。 非同期式では、送信を開始する合図になるスタートビット、終了する合図になる ストップビットを付けます。またデータの整合性を検証するためのパリティ ビットを付ける場合があります。~ パリティビットとは、一定のデータ長の中に 0のビットの数が 偶数個 または奇数個になるように付加されるビットのことです。受信側では 0のビット数を数え、予め予定された状態(偶数か奇数)と異なれば、正 しく受信できなかったと判定するために使われる特別なビットのことです。 現在の通信では、ほとんど使われていません。パリティビットは、2つのビット が同時に反転したときには、誤りを検出できなかったり、検出できても それを訂正するための有効な仕組みを持っていないためです。 そのため、信頼性の高い通信を必要とするときは、上位の手順(kermitや X/Y/Z-modem等)で、 誤りの検出やリカバリを行い、必要に応じた再送信のリクエストを行うことが主流です。 ですからパリティビットを利用する機会が少なくなり、使われなくなりました。 RS-232Cでは スタートビット、データビット(通常 8ビット)、ストップビットの順に 1ビットずつ順番に送受信します。 各ビットの 0 と 1 は±3〜15Vの電圧(以下 12Vで代表します)を使って表現しています。 0 は +12V (この状態をスペースと呼びます) 1 は -12V (この状態をマークと呼びます) マークとスペースは、それぞれ +12V, -12Vの物理的な状態を呼びます。 そしてそれぞれに 1 と 0 が割り当てられています。 &ref(RS232C_VS_TTL.png); この図は、RS-232CとCPUが使うTTLレベルの電圧の概略を比較したものです。このように 使用している電圧のレベルに互換性がありません。そのために直接ケーブルを接続して 通信を行うことができません。そこで、両者の違いを吸収し、相互に電圧の変換を 行う必要があります。 RS-232Cは、マイクロコンピュータでは数多く使われるため、このレベル変換用のICが 各社から出ています。 MAX3232は、ひろく使われているICの一品種です。同じ機能を持ったIC(互換品)が、 多くのICメーカーから出荷されています。 配線の例~ &ref(MAX3232.JPG); 3ワイヤ接続 と呼ばれる方法では、通信用にTxD, RxD, GNDの3本を接続します。 この場合、ハードウェアフロー制御の信号線は接続されません。 ハードウェアフローを有効にするには、もう2本追加して配線します。 MAX3232には、送信、受信用にそれぞれ 2組のトランシーバー/レシーバーが 入っていますので、1個で接続することができます。 また、各トランシーバー/レシーバーは独立して使えますので、3ワイヤ接続ならば 2ch分を 1個のMAX3232で接続することも可能です。 ----- RIGHT:by ryuchi