Suzulan > しろうと無線 > ハンドメイド > |
シリアル・インターフェース・アダプタ
< Sirial Interface Adapter >
![]() |
トランジスタ技術別冊で「VBと製作で学ぶ、初めてのパソコン応用工作」(CQ出版社)に掲載されていたシリアルインターフェースアダプタを作成してみました。パソコンの背面に出ているD-SUB-9PのCOMポートを介して入出力を行う汎用インターフェースです。製作したシリアルインターフェースアダプタの物理的な位置は下図のとおりです。パソコンの通信制御により、COMポートを介して8bitのシリアルデータ(1bitずつ順次伝送するデータ)をシリアルインターフェースアダプタに送り込むと、アダプタは8bitパラレルデータ(8bitをまとめて並列に伝送するデータ)に変換し応用回路側に出力します。また応用回路側から与えられた8bitパラレルデータをCOMポートを介してシリアルデータでパソコンに読み込むことができます。図に示すとおり応用回路はまだ製作されていないため、このままではなんの役にもたちません。しかしさまざまな応用回路を考案することによって利用価値は無限に広がります。モータを制御する回路を製作してロボットを作ったり、温度を感知する回路を製作し気温を測ったりと、まぁ応用回路を考案することでなんでもできちゃうのです。ただし、ハードだけ作ってもダメで、コントロールするソフトも作らなくてはなりません。今回はとりあえずシリアルインターフェースアダプタの製作と、アダプタの正常性を確認するテストプログラムを走らせてみました。なお、詳細な動作原理などは「・・・初めてのパソコン応用工作」を入手し参照してください。この他にも参考になるハード製作と対応ソフトの解説などが多数掲載されています。 |
![]() |
||
シリアルインターフェースアダプタの回路図を示します。左側のCN1がパソコンと接続するD-SUB-9Pのコネクタです。パソコンとのデータのやり取りは全てこの端子を通して行われます。ICは8bitパラレルデータをシリアルデータに変換するための74HC165 (Parallel-load 8bit Serial-IN Shift Register) とパソコンからの8bitシリアルデータをパラレルデータに変換およびラッチをするための74HC595 (8bit 3 State outputs Shift Register/Latch)を使用しています。前述しましたが「・・・初めてのパソコン応用工作」の記事ではこの2個のICと周辺の回路定数のみで構成され、とてもコンパクトに作られています。回路図を見ておわかりのように筆者はこれに加え入力データ 8bit(IN0〜IN7) および出力データ 8bit(OUT0〜OUT7) 計 16bit のデータをLEDでモニタできるようにしました。このLEDを点灯させるため 74LS04(Hex Inverters)を3個使用しています。また、COMポートの通信(TxD,DTR,DSR,RTSリード)をモニタするため74LS00(Quad 2 Input NAND)を1個使用しています。(74LS04でもかまいません。) さらに74HC165の入力端子(A〜H)と74HC595の出力端子(QA〜QH)を後述するコンソール盤のスイッチ(SW0〜SW7)操作で入出力のループ回路をつくり簡単に折り返し試験ができるようにしてあります。コンソール盤のスイッチとLEDに配線を引き出すため26Pフラットケーブルコネクタ2個(CN5〜CN6)を取り付けています。CN2・CN3は10Pフラットケーブルコネクタで応用回路からの入力(IN0〜IN7)および応用回路への出力(OUT0〜OUT7)用端子です。左下のVcc(+5V)電源入力は+5V安定化電源に接続します。筆者は自作の+5V安定化電源パッケージに接続しています。 |
|
||
|
||
今回使用した74HC165と74HC595のIC内部の結線図を示します。パラレルからシリアルへの変換は74HC165で行います。S/Lを"L"にすることによりA〜Hに設定されている8bitデータをシフトレジスタにロードします。S/Lを"H"にし、CKにクロックを与えることによりデータは1クロックごとにシフトレジスタを左から右に移動していき、QHから溢れるようにシルアルデータとして出力されます。QHはパソコンのCOMポートに接続されており、パソコンで受信されます一方シリアルからパラレルへの変換は74HC595により行われます。パソコンのCOMポートから送られてくるシリアルデータはSIで受けます。シリアルデータに同期したクロックがSCKに与えられるとシリアルデータは1クロックごとにFFAからFFHに向かって移動していきます。8bitを受けたところでRCKの立上がりパルスにより、LA〜LHにパラレルデータとしてラッチします。ラッチされたデータは、Gが"L"になっていると、QA〜QHにそのまま8bitパラレルデータとして出力されます。 |
||
基板上の部品配置図を以下に示します。
参考に製作ステージを紹介します。2.54mmピッチのユニバーサル基板を使用し、ジャンパリング配線で回路を組みました。このような方法で製作する場合、最も注意しなければならない点は、ブリッジ(隣の端子にまたがって半田が盛られ導通状態になること)です。反対にあたかも半田が盛られているように見えていても実は半田の線材への吸い込みが悪く不導通状態になっていることもあります。半田が終わったらルーペなどでブリッジになっていないか確認するとともに、線材をチョット引っ張ってみて抜けてこないかを必ずチェックします。また、あるブロックの配線が終わったら、その都度こまめにテスターなどによる配線チェックをすることが大切です。これをしないで全ての配線が終了したあとチェックをして、不幸にも異常が発見された場合、異常個所の特定が困難になるばかりでなく、配線が混み入っていて修復も難しくなるからです。急がば回れのたとえどおり、少し配線したらチェックの繰り返しが、後々苦労しない製作方法です。なお写真
|
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|||
![]() |
![]() |
![]() |
![]() |
![]() |
|
![]() |
![]() RS232Cコードつなぎ込み |
![]() よる動作試験 |
製作したあとのテストプログラムで引っかかりました。どうしてもうまく動作してくれないのです。テストプログラムを走らせてもモニタ用のLEDに変化がありません。基板を取り外して配線チェックしても異常なしです。基板を再度取り付け、電源を入れてパソコンに接続し主要ポイントの電圧をチェックしたところどうもCOMポートに接続されている箇所がおかしいことに気がつきました。まさかと思いつつもRS232C接続ケーブルの導通試験をしたところ案の定、片方の2番ピンがもう片方の3番ピンに、片方の3番ピンがもう片方の2番ピンに接続されています。ここはストレートケーブルを使用しなければなりませんがリバースケーブルを使用していたのです。ストレートケーブルに取替えテストプログラムを走らせたら一発でOKとなりました。初歩的なミスですがよくあるミスです。なおテストプログラムはWindows98上で走らせました。 | ||
その後、WindowsXPのAPI(Application Programming Interface)関数を使用したアクセスを試みてみました。Windows98上で正常動作が確認されたテストプログラムをWindowsXPのAPI関数を使用したプログラムに修正しアクセスしたところうまく動作してくれました。APIを使用するには参照宣言など難解な手続きが必要ですが、「VBと製作で学ぶ初めてのパソコン応用工作」付属のCD-ROMに収録されていましたので、これをそのまま利用しました。またCOMポートの設定プログラムについてもCD-ROM収録のものをそのまま利用しています。詳細については同文献を参照してください。以下に参考として今回最製作したシリアルインターフェースアダプタをアクセスするプログラムと、このプログラムをCallしてシリアルインターフェースアダプタの試験をするプログラムを示します。 |
||
|
■ シリアルインターフェースアダプタ試験プログラム(VB) ■ | ||
◎ このコーナーで公開した自作品は、筆者の単なる個人的な趣味で製作したものです。
本機製作により発生したいかなる不具合もしくは損害について、筆者が責任を負うものではありません。
◎本機の製作にあたり、JA8JCR(松田OM)から技術的な支援をいただきました。TNX .
◎引用文献:VBと製作で学ぶ初めてのパソコン応用工作 ( CQ出版社 )