RS-422 <-> RS-232C変換回路

 シリアル通信といえばRS-232C(Recommended Standard 232のVer.C)と言われるくらいRS-232Cは一般的に使われている。
 残念なことに、最近のPCではシリアルポートもパラレルポートもなくなる方向となっているが。
 替わりにUSBとかLANなどのポートが標準で装備されてきている。

 しかし、PC以外の分野(計測機器、制御機器など)ではまだまだRS-232Cは滅びる様子はない。
 機器内蔵用のマイコンには標準でシリアルポートが用意されていたりする。
 歴史も古く、ノウハウもそれなりに蓄積されているうえに、最低限の仕様さえ守っていれば、ソフト的にもハード的にも使うのが簡単だというのがその理由である。
 たしか今の正式名称はEIA-232-Eだと思ったが、RS-232Cのほうが通りがいいという事実がその普及度を示している。

 一方、同じシリアル通信でも、もうちょっと使用環境が厳しい場合にはRS-422が使用される。
 電気的な特性が異なるがデータの構成内容はRS-232Cと同様に使えるので、インターフェース部のみを置き換えることでRS-422にすることができる。

 よくRS-422はRS-232Cの上位互換の仕様といわれることがあるが、信号レベル的には異なる規格であり、上位互換とはいえない
 が、条件さえ整えば上位互換として使うことも可能である。
 現に、まっくと言われる機械についているRS-422は、RS-232Cとしても使えるように作られているらしく、このようないい方が広まっているのではないだろうか。
 どこかで見た記述によると、まっくのRS-232Cは±5V動作ということで、ぎりぎり規格内の値らしい
 しかし、これは例外的な物なので、上位互換だと言い張っている人がいたらちゃんと規格を見てから言えと注意してあげることを奨める。
 そうしないと「おたくが大丈夫だといったこの装置、動かないですよ」と己の身に厄災が降りかかることになる。


 以下にRS-232CとRS-422の違いを簡単にまとめてみた。
 規格を見ろといっているわりにはいいかげんなので、詳細は各自で調べてほしい。


種類HI電圧レベルLO電圧レベル伝送距離
RS-232C-5〜-15V+5〜+15V15m
RS-422+端子と-端子間
0.2〜5V
+端子と-端子間
-0.2〜-0.5V
1.5km

 RS-232Cは、回路の0Vに対して信号線が何Vかという方式、RS-422は+端子と-端子間の電位差でHI/LOを決めている(差動方式)ため、RS-422は+の線と-の線をツイストして結合を密にしておく必要がある。
 いわゆるツイストペア線というやつ。
 外部からノイズが加わった場合、RS-232Cでは信号線の電圧が変動する(GND線はインピーダンスが低いので変動しにくい)ので誤認識の可能性があるが、RS-422の場合は+の線と-の線に同じようにノイズが乗ることとなり、その差を見ているためにノイズの影響を受けにくくなっている。
 まぁ、RS-232Cも振幅が大きい分、ある意味ノイズに強いと言えなくもないのだが。

 また、RS-422のほうが電圧振幅が小さいのでHIからLOに移り変わる時間が少なくて済むために、高速伝送に有利になる。

 しかしながら、RS-422では信号線の本数がRS-232Cの倍になるため、RS-232Cで足りるところではRS-232Cで済ますのが楽なのは確か。

 RS-422の電圧レベルの±5Vというのは、ちょっと調べた範囲では見当たらなかったのでドライバICの仕様から引っ張ってきたもの。
 伝送距離は伝送速度が高速になるほど距離は短くなるので、あくまで参考。
 多分9,600bpsでの値と思われる。

 このように、同じ伝送速度であればRS-422のほうが長距離伝送が可能、同じ距離であれば高速伝送が可能ということである。


 さて、このようにいろいろと有利なRS-422であるが、実際に使うと信号のモニターがやりにくいのである。
 ほとんどのシリアルモニターはRS-232Cを対象に作られており、直接RS-422を接続してモニターできるものは少ない。
 本ページで紹介したシリアルモニターも、PCのシリアルポート、つまり、RS-232Cをモニターするものである。
 つまり、周辺の環境を含めて考えると、RS-422はなにかと不便なのである。

 そこで、RS-422をRS-232Cに変換する回路を用意すれば通常のシリアルモニターでデータを見ることができるのである。
 もちろん変換回路は市販されている。
 しかし、そんなに頻繁に使うわけじゃないんで買うのもなんだよなぁということで、作ってしまうのである。

 とりあえずは回路図




 画像データサイズを小さくするために、回路図を詰めて書いているので見にくいかもしれないが、それほど難しい回路ではないのでわかってもらえると思う。
 当然ではあるが、この回路を動かすために5V電源が別途必要である。
 回路図のVCCと書いてあるところに接続する。

 各信号を一旦5Vロジックレベルに変換し、再度必要な電圧レベルに変換しているだけである。
 回路自体はなんて事ないと思うが、RS-422用のドライバICというのはなじみがない人が多いのではないだろうか。

 RS-232Cと5Vロジックへの変換は、かなりメジャーなMAXIMのMAX232Aを使う。
 スイッチング電源回路をICに内蔵しているため、5V電圧だけでRS-232Cに必要な±10Vを作りだしてくれる。
 末尾にAがつくものは外付けコンデンサがすべて0.1uFで済むので楽である。
 そうじゃないものは、0.1uFと1uFが必要だったような気がする
 現在入手できるのはほとんどAバージョンだと思う。
 他のメーカーでも互換品は出ている。
 さらにMAX233だと外付けコンデンサもいらないので、入手可能で金額を気にしないのならこちらのほうが作るのは楽である。
 いちおう、入出力には保護の意味で抵抗を一本入れている。

 RS-422と5Vロジックへの変換はMAX3491を使う。
 MAX3491はローパワーシャットダウン機能付きで、NSの75ALS181とピンコンパチブルである。
 また、MAX3488とMAX3490はというのもあり、これらは8ピンパッケージで、MAX3488はスルーレート制限付きなのでEMI対策に有利。
 他にも探せばあると思うが、多分MAX3491とか75ALS181辺りがメジャーなところかと。

 こちらも入出力に抵抗を入れているが、入力側は多少複雑である。
 基本的にRS-422は入力側を120Ωでターミネートすることとなっているので、その抵抗とIC間に保護用の抵抗を入れておく。
 抵抗の値の出所に関しては不明(笑)。
 とりあえずこれで動いているので、だいたいこの辺の値にしておけば問題はないだろう。
 まめな人は差動の各入力をそれぞれ1MΩくらいの抵抗で電源とGNDに接続しておき、入力がオープンになった場合に出力が変動しないようにするのであるが、今回のはあくまで変換回路であるため、入力オープン状態で不定出力が出ても気にしないこととして抵抗2本をけちってある。
 たとえ4ヶ所といえども半田付けをするのが面倒だっただけの話なのだが。

 各入出力をそれぞれ適当なコネクタに接続してあげれば、変換回路のできあがりである。
 これで手持ちのシリアルモニターでRS-422の信号をモニターできることとなる。

 この回路は入出力の2本の信号のみであるが、制御信号も必要な場合はこの回路を複数作って制御信号も変換してあげればいい。

 RS-485というものもあるが、これは信号レベル的にはRS-422と同じもので、出力にハイインピーダンス状態を設定できるようになっており、バス構成とかマルチドロップとかいって一組の信号ラインに複数の送受信端子を接続できるようになっているものである。
 このハイインピーダンス機能を使わず、送受信を一組に限定すればRS-422と同じものとなる。

 参考までに一般的に使われているコネクタのピン配置をメモしておく。
 一般的というのは、RS-232CはふつーのDOS/Vマシンのやつ、RS-422はインタフェース社やコンテック社などの拡張カードなどで使われているものであって、まっくなどで使われているもののことではないので注意してほしい。

 信号名の意味などについては、各自調べてほしい。





表紙へ