ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
Main Menu
Tweet
Facebook
Line
:-?
フラット表示 前のトピック | 次のトピック
投稿者 スレッド
webadm
投稿日時: 2008-2-20 12:21
Webmaster
登録日: 2004-11-7
居住地:
投稿: 3086
シリアルポートのジェンダーチェンジャー
今では一般人がシリアルポートを使うような機会はめったにないのだけれども、未だに組み込みとかでは良くお目にかかる。

いつも問題となるのは完成したばかりの装置のシリアルポートにPCを接続する時。

歴史的にシリアルインタフェースは古いのだが、昔から規格はあるものの通信機器メーカー以外は厳密にその規格に合致したものを用意していることはまれである。PCとかで使われているのは一応まともなほうだけど、非同期通信専用で厳密にはインチキ標準である。

なので規格書があるわけではなく、みな誰かのコピーか真似をしているだけにすぎない。厳密にはそれぞれどこか違っていて、時々その非互換性によって接続できなかったり出来たりする。

一番困るのがコネクタのピンアサインである。

コネクタにもオスとメスの二種類があることはご存じの通り。

例えばPCのDsub 9pinタイプのは9つの信号ピンがあって、第一列が1〜5、第2列が6〜9という台形の形で並んでいる。そのどれをどの信号に割り当てるかは業界標準で決まっているが、規格書がどっかにあるわけではない。もともとはIBMのPC ATがオリジナルといっていいかもしれない。日本のPC98にもシリアルポートがあるが、これは一応通信機器もやっているNEC製なのでRS232Cの規格に合致しているDsub 25ピンタイプのもの。

PC ATで採用されているPC本体側の信号ピンアサインがそこら中に流布されて今日に至っているが、PC本体のコネクタはオスである。

この場合、オリジナルのRS232Cの規格で言うData Terminal Equipment(データ端末装置)側に該当するのがPC本体ということになり、



このような信号ピンアサインになる。当然これに接続する装置はモデムとかが想定されていて、こちらも通常同じオス(MALE)のDsub 9pinとなるがData Control Equipment(データ制御装置)側で入力と出力がちょうど正反対なピンアサインとなる。

でPCとモデムを接続するには、同じピン番号の信号同士をつなげば済むようになっている。がしかし、ここで罠がある。

同じDsub 9pinのオスを向かい合わせにすると、ピンの番号の順番がちょうど逆向きになる。鏡に映した感じではない点に注意。

なので実際のストレートケーブルは両端のコネクタの同一ピン番号同士をつないでいるものの、ケーブルそのものはストレートではなく



これも勘違いすることがあるが、ストレートケーブルの両端のコネクタは互いに背中合わせだけど、鏡に映したようなピンアサインではない。どちらも同一仕様のメスのコネクタなので背中合わせに並べればピンの番号の順番は正反対になる。

なにを話したいかというと、表題の通りにジェンダーチェンジャーを作ろうとした時に勘違いをしてしまうとジェンダーチェンジャーにならないということである。

市販のストレートケーブルはケーブルを最短距離に短くしてしまえばメス・メスのジェンダーチェンジャーと同じである。

良く誤解されるのは単純にメスのコネクタを背中合わせに半田付けしてジェンダーチェンジャーを作ったつもりになってしまうということ。じつはそれでは何の役にもたたない代物を作っただけである。

本物のジェンダーチェンジャー、PCショップとかで売っているものは特許が取得されているだけにおもしろい構造をしている。

先のストレート結線が実はねじれていることがわかる通り、単純にどちらから見ても同じ向きにコネクタを背中合わせにすると結線が大変なことになってしまう。

市販のジェンダーチェンジャーを注意深く見ると、実は両端でコネクタの上下が逆さまになっている。



当たり前なことだけど、こうすることで内部の結線がストレートになって小さくできる。これで特許を取得して市場を独占している。

あとよくある勘違いが、コネクタのオスのピン番号のアサインとメスのピン番号のアサインがちょうど鏡で映したような位置関係にあるということである。つまり外から見るとオスとメスとでは左右逆順にピン番号が振られることになる。



なので装置に採用するコネクタがメスかオスかによって信号のピンアサインを注意しないと、市販のケーブルではつながらない装置を設計してしまうことに成りかねない。

いや実際にそういうことがあるのだ。もとはといえば設計者が規格書なり、仕様を良く吟味せずにいい加減な知識で図面を書いてしまって後の祭りというパターンが多いのだが。こんなんで基板改版とか恥ずかしくてできないから専用ケーブル作れと。

まあ、そこまで原因が明らかになればそれで落着なのだけど、そこに居たるまでの切り分けがたいへん。

市販のRS232Cチェッカーというのを使えば、信号の状態を確認することができる。接続する方とされる方にそれぞれ同じチェッカーをつないで、ランプが点く信号がバッティングしなければストレートケーブルでつながる。しかしどちらも同じLEDが点くとなると出力と出力が衝突するのでそのままつないでデータを流すと場合によってはどちらかのレベル変換ICドライバが過電流で壊れてしまうことがありえる。

シリアルポートの信号伝送方式は古い時代に出来たので、モールス信号による伝送の発展系みたいな感じ。電圧もしくは電流の変化で0と1を伝える。RS232Cの規格ではそれぞれ+12Vと-12Vの信号レベルが使われている。従って、出力同士が衝突すると片方は+12V出力しているときに片方が-12Vにドライブすると双方の電位差は24Vとなり電流が単純にショートしたケースより多く流れてしまう。

そのため初めて接続する時には信号のバッティングは避けなければならない。そのために事前に接続せずに各コネクタに出ている信号レベルをチェックし、どのピンが出力か入力かを確認しておく必要がある。テスタがあれば、入力ピンとGNDの間は電位が無いのですぐわかる。もちろんGNDピンの位置が合っているという前提だが。

結構市販のシリアルケーブルもジェンダーチェンジャーも値段が張るので、自前で作る機会もあったりする。市販されていない三つ叉ケーブルとか(プロトコルアナライザ用)は専用ケーブルとなる。

あとPCのシリアルポートでリングネットワークを構成するとか、あまりないけどいろいろおもしろいことが出来る。これも特殊なケーブルが必要である。

あと先に述べた通り、現在のシリアルポートインタフェースの規格はあって無いようなものなので、信号のレベルもまちまちである。低電圧動作のICが多い昨今では、規格通りの±12Vとかの高電圧駆動は無理なので、せいぜい±5Vとか、もっとひどいのはとにかく信号が変化した時に最低限0クロスするレベルであれば十分とかいう抜け道的なものまで様々。相手側がちゃんとしていればつながるというもの。

これは実際にテスターやオシロで観測してみまいとどれくらいまともなのか、インチキなのかは判断できない。つながったとは言え、じつは相手を選ぶというものだったりすると、デスクトップPCではつながったのにノートやUSBシリアル変換とかにしたらうまくつながらないというのも起こり得る。

あと市販されているのではクロスケーブルとか、延長ケーブルがある。延長ケーブルは片側がオス、他方がメスということなのでこれは図的にもストレートに結線されている。クロスケーブルもいろいろあるが、ちゃんとしたのはNULLモデムケーブルというもので、DTEとDTE同士を接続する際に片方から見て片方が互いにDCEに見せかけるようにするものである。この場合基本的に出力信号が衝突しないように片方の入力を他方の出力ピンにつないだり、それぞれ自分の出力信号を自分の入力信号に折り返したりして接続やデータ転送に支障が無いようにしている。これは目的や用途によってバリエーションがあるので紹介しきれない。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » シリアルポートのジェンダーチェンジャー webadm 2008-2-20 12:21

投稿するにはまず登録を
 
ページ変換(Google Translation)
サイト内検索