戻る 次へ

2章 USB汎用インターフェース・キットを使う
〜市販のインターフェース・キットを利用して
 外部制御の基礎から外部制御プログラミング方法について紹介する 。
 
 本節では外部制御インターフェースを利用して外部制御の基礎的な手法について紹介します.はじめに,学習用にどのようなインターフェースを選べばいいのかについてもふれます.次に制御対象としてスイッチとLEDを使用した4入力4出力のテストボードの製作について紹介します.そのあと,これらを利用して制御プログラミングの手法を紹介します.
   
2.1 実験に適した外部制御インターフェース
 
 本節は外部制御インターフェースとして利用するUSB汎用インターフェース・キットについて紹介します.1章でマイクロコンピュータとそのIOについて紹介しましたが,CPUがPentiumになってもOSがWindowsXPになっても外部制御の基本部分は図3.1に示すようなデータバスと外部ポートとの接続です.ソフト的に見れば機械語のIN命令とOUT命令ということになります.パソコンの場合,ハード,ソフトとも複雑になり,これらの動作を直接試すことは困難ですが,なるべくこの形態に近い方法で動作の様子を確かめる実験が行えるほうが基本的な理解には望ましいといえます.
 
図3.1 外部制御の基本
CPUがPentiumになってもOSがWindowsXPになっても
外部制御の基本はデータバスと外部ポートとの接続です.
ソフト的に見れば機械語のIN命令とOUT命令です.


 このような実験を現状のパソコン環境で簡単に入手可能なインターフェースで行うことを考える
  • オーソドックスな方法はPCIカード型のパラレルI/Oポートを利用することでしょう.
    しかし単純な実験のためにはやや高価ですしノートパソコンでも試したいといった場合もあるでしょう.
  • 最も安価な方法はFTDI社のFT232BなどUSB変換のチップを利用する方法です.
    ただ,パラレルI/Oポートとして使用する場合,入出力あわせて8本と小規模ですし,いきなりモジュールだけを入手して工作するものいささか心細いかもしれません.
  • 最近になってこの2例の中間ともいえるUSB汎用インターフェース・キットが入手できるようになりました.
    キットで使われるUCT-203というモジュールにはEZ-USB/FX2というハイスピードUSB対応の高機能チップが使われていますが,シンプルなパラレルI/Oポートとしても利用できます.
これら3つのボードを図3.2に示します.
 
図3.2 外部制御インターフェースの方法
左からPCIカード型のパラレルポート,
FT232Bモジュール,
USB汎用インターフェース・キット付属のボード
 
○USB汎用インターフェース・キット
 ここで使用するUSB汎用インターフェース・キットは図3.3のようにUSB変換ボード,ドライバ等のCD-ROM,マニュアルの3点セットでCQ出版より販売されています.USB経由の外部制御インターフェースは現状のパソコン環境ではもっとも適当な方法の1つと言えます.しかし,USB変換チップを使って1から組み立てようとすると,デバイスドライバの開発やファームウェアの開発など,図3.4に示すように様々な問題が存在します.これらを添付のプログラムとして提供することで,図3.5に示すようにうまく解決したのがこのキットであると言えます.キットを構成するボード,ファームウェア,ドライバなどの仕様を表3.1に示します.
 キットに付属するボードUCT-203を図3.6に示します.ボードにはチップ等はすべて実装されており,あとは必要に応じたコネクタや結線をするだけです.ボードの内容は図3.7に示すような構成でUSB変換チップとシリアルROMが搭載されています.UCT-203のI/O仕様を表3.2,I/Oコネクタのピン配置と名称を表3.3に示します.UCT203自体は3.3Vで動作していますがHC-TTLなど5V系ロジックとはそのまま接続可能です.
 
 
図3.3 USB汎用インターフェース・キット
キットはUSB変換ボード,ドライバ等の
入ったCD-ROM,マニュアルの3点セットで
構成される
 
図3.6 キットに付属するUSB汎用インターフェースボード(UCT-203)
チップ等はすべて実装されており,あとは必要に応じたコネクタや結線をするだけ
 
 
図3.4 USB経由の外部制御インターフェースの問題点 
デバイスドライバの開発やファームウェアの開発など解決すべきものが多い
 
図3.5 USB汎用インターフェース・キットのメリット
デバイスドライバやファームウェアを添付することにより,外部制御そのものにすぐ着手できる
 
 
 
 
図3.7 USB汎用インターフェースボード(UCT-203)の構成
UCT-203はEZ-USB/FX2とシリアルROMで構成される
 
○EZ-USB/FX2
 キットに付属するUSB汎用インターフェースボード,UCT-203にはUSBコントローラとしてサイプレス社のEZ-USB/FX2が使われます.EZ-USB(AN2131),EZ-USB,EZ-USB/FX2と進化たしてきたUSBコントローラです.AN2131という名前の方が有名な初期型のEZ-USBの頃からチップには8ビットマイクロコントローラの8051が内蔵されています.この8051は通常は外付けのシリアルROMからファームウエアをダウンロードして動作しますが,それシリアルROMが無効な場合はUSB経由で直接ファームウェアをダウンロードすることもできます.EZ-USB/FXでは外部デバイスとのやりとりをハード的に行うGPIF(General Programmable Interface)と連続した高速データ転送を可能にするDMAエンジンが追加され,EZ-USB/FX2ではハイスピードUSB対応となりました.これらの機能によりチップ単体でUSB-ATAブリッジなどをつくることができます.
 初期状態のEZ-USB/FX2はシリアルROMが無効な場合,8051のファームウェアのダウンロード装置としても動作します.
 
○PIOモード
 キット付属のEZ-USB/FX2のファームウェアEzFirm/FX2はコントロール用のエンドポイント1つとデータ用のエンドポイント4つを持ちます.EzFirm/FX2の仕様を表3.4,エンドポイント設定を表3.5に示します.EzFirm/FX2はこれらのエンドポイントを利用して図3.9に示すような4つの動作モードでデータの転送が可能です.PIOモード以外がEZ-USB/FX2本来の高機能な高速転送を可能にするモードですが,外部制御の基礎を学ぶためには単純なパラレルポートが実現されるPIOモードを使用するのが適当と思われます.
 PIOモードを使用するとキット付属のボードは図3.10のように入力,出力に設定可能な3つの8ビットパラレルポート,入力専用2ビット,出力専用3ビットのI/Oポートとして利用できます.これらのポートはベンダーリクエストのPIOReadとPIOWriteを利用することで単純に入力と出力ができます.ですから,最初に紹介した「外部制御の基本は外部ポートをIN命令,OUT命令で操作する」に比較的近いかたちで外部制御の操作が実現できることになります.
 
 
 
図3.9 ファームウェアEzFirm/FX2で可能な4つの動作モード
PIOモード以外がEZ-USB/FX2本来の高機能な高速転送を可能にするモードですが,
外部制御の基礎を学ぶためには単純なパラレルポートが実現されるPIOモードを使用します.
 
図3.10 PIOモード      
PIOモードでは入力,出力に設定可能な3つの8ビットパラレルポート,
入力専用2ビット,出力専用3ビットのI/Oポートが利用できる
 
表3.4 ファームウェアEzFirm/FX2の仕様
 

次へ