Suzulan > しろうと無線 > ハンドメイド > |
パラレル・インターフェース・アダプタ
< Parallel Interface Adapter >
トランジスタ技術別冊で「VBと製作で学ぶ、初めてのパソコン応用工作」(CQ出版社)という書籍で、”おおっ、これはおもしろそう〜”という製作記事をみつけました。パソコンのプリンタポートを汎用インターフェースとして使用するアダプタの製作記事です。セントロニクス準拠などどいわれているI/Oポートで、パソコンの背面に出ているD-SUB-25Pのコネクタです。これにアダプタを作って接続し、汎用で使用できるパラレルI/O インターフェースにしてしまおうというわけです。製作するパラレルインターフェースアダプタの物理的な位置は下図のとおりです。見ておわかりのように、これだけ製作してもなんの役にもたちません。パソコンから8bitのデータをこのパラレルインターフェースアダプタに書き込むと、アダプタは同じ値の8bitデータを応用回路側に出力するだけです。またパソコンは応用回路側から与えられた8bitデータをパラレルインターフェースアダプタを介して読み取るだけです。応用回路はまだなにもないので、一見こんなものを製作してどうするんじゃい? と思いますが、実はこれが重要なのです。このデータの入出力が自由に行えるということは後段の応用回路さえ製作すれば利用価値は無限に広がります。オリジナルのロボットを作ることも夢じゃない。アマチュア無線で使っているロータだってパソコンでガンガン回せちゃう。つまり後は応用回路を考案することでどんなことでもできちゃうのです。ただし、←(ほらほら、やっぱりただし書きが出てきた!!)、ハードだけ作ってもダメで、コントロールするソフトも作らなくてはなりません。今回はとりあえず筆者の老化防止のため、手先を使うハード(パラレルインターフェースアダプタ)の製作と、頭を使うソフト(アダプタのテストプログラム)にチャレンジしました。といってもソフトはこの書籍に付属してきたものを使いましたが、勉強のため多少手を加えて使用しています。(^^; なお、動作原理など詳細は「・・・初めてのパソコン応用工作」を入手し参照してください。この他にも参考になるハード製作と対応ソフトの解説などが多数掲載されています。 |
パラレルインターフェースアダプタの物理的な位置
まずは製作したパラレルインターフェースアダプタの写真を見てください。TTL-IC5個とフラットケーブルコネクタが7個でほぼ基板を占領しています。実は前述の書籍の記事ではIC2個と抵抗など若干の回路定数を使用しているのみで、こんなにゴチャゴチャしていません。が・・・あまのじゃくの筆者は、まったく同じものを作るのも芸がないとばかり、少しばかり回路を付加してこんな形のものが出来上がったというわけです。付加した部分は回路図で説明します。手前の出っ張った部分はパソコンのプリンタ端子とケーブルで接続するD-SUB-25Pコネクタ(メス)です。配線はすべてジャンパリングで行っています。ICは、トラブル時に簡単に交換できるよう全てICソケットを使用して装着しています。論理回路は無線機のように高調波とか同調とか結合とか回り込みとか、厄介な問題が少ないので、このような配線でも結構、再現性は高いようです。もちろんエッチング処理をしてスッキリした基板を製作したほうがFBですが・・・。 |
||
パラレルインターフェースアダプタの回路図を示します。左側のCN1がパソコンと接続するD-SUB-25Pのコネクタです。パソコンとのデータのやり取りは全てこの端子を通して行われます。ICは入力データのバッファとして使用する74LS245(Octal 3 State Bus Buffers)と出力データをラッチする74ALS573(Octal 3 state D-Latch)で、ともに TTL-ICです。前述しましたが「・・・初めてのパソコン応用工作」の記事ではこの2個のICと周辺の回路定数のみで構成され、とてもコンパクトに作られています。回路図を見ておわかりのように筆者はこれに加え入力データ 8bit(IN0〜IN7) および出力データ 8bit(OUT0〜OUT7) 計 16bit のデータをLEDで目視観測できるようにしました。このLEDを点灯させるため 74LS04(Hex Inverters)を3個使用しています。また、74LS245の入力端子(B1〜B8)と74ALS573の出力端子(Q0〜Q7)を後述するコンソール盤のスイッチ操作で入出力のループ回路をつくり簡単に折り返し試験ができるようにしてあります。さらにコンソール盤のスイッチとLEDに配線を引き出すためフラットケーブルコネクタ5個(CN5〜CN9)を取り付けています。CN2・CN3もフラットケーブルコネクタで応用回路からの入力(IN0〜IN7)および応用回路への出力(OUT0〜OUT7)用端子です。左下のVcc(+5V)電源入力は+5V安定化電源に接続します。筆者は自作の+5V安定化電源パッケージに接続しています。 |
||
製作したパラレルインターフェースアダプタへのアクセスはパソコン内部のプリンタポートへアクセスすることにほかなりません。筆者は最初Windows2000でプリンタポートへアクセスしてみましたが、うまくいきませんでした。そこでよくよく、「・・・初めてのパソコン応用工作」を読むと専用ドライバが必要なことがわかりました。書籍に付属してくるIN・OUT命令を実行するためのdllはWindows98用です。インターネットで調べると、Windows2000用のdllファイルがシェアウェアで入手できそうでしたがあえて購入せず、OSがWindows98のノートパソコン(SONY-PCG-505RX + ポートリプリケータ)に変更し、ようやく正常動作を確認しました。XPの時代に無印98とは・・・。まあ、お遊びですし、ちょうどそろそろお払い箱にしようと思っていた98マシンがあったのでこれを有効利用しました。おかげで数百円のシェアウェアも購入しないで済みました。←(ケチッ!!) (^^; |
||
2005.12.18 | ||
その後、JE1TSN渡辺OMが開発された、XPマシンで直接I/O制御を可能にするフリーウェアドライバがHP上で見つかりました。さっそくダウンロードしてサンプルプログラムをインターフェースアダプタ試験プログラム用に書き直し実行したところすこぶる快調に動作しました。プログラムは98用と同様に、0〜255(&H00〜&HFF)の値をパラレルインターフェースアダプタに対し、書き込み読み出しを実行し、書き込んだ値と読み出した値のコンペアを行って、同じ値ならOKとするものです。試験回数のデフォルト値は 32,000 回になっていますが、”Const c = 32000”を INT整数値の範囲内で自由に設定できるようにしてあります。32,000回試験で98(Pentium/266MHZ)のときは2時間以上かかっていた実行時間が、XP(Pentium4/2.2GHz)では、わずか1分45秒で終了してしまうのには驚きました。(TNX JE1TSN) |
||
■ パラレルインターフェースアダプタ試験プログラム(VB) ■ |
◎ このコーナーで公開した自作品は、筆者の単なる個人的な趣味で製作したものです。
本機製作により発生したいかなる不具合もしくは損害について、筆者が責任を負うものではありません。
◎本機の製作にあたり、JA8JCR(松田OM)から技術的な支援をいただきました。TNX .
◎引用文献:VBと製作で学ぶ初めてのパソコン応用工作 ( CQ出版社 )