|
|
FTDI社のUSB-ICを組込んでいる 他社製品との同時使用について |
弊社USBインターフェイス製品には、FTFI社のFT245RL/BLなどのUSBインターフェイスICを使用しています。
1台のWindowsパソコンに、複数の弊社製品を接続する場合の対策は、各製品の取扱説明書に記述しているように、
製品基板上のDIPスイッチにより、異なるID番号を設定する方法となります。このID番号をアプリケーションソフトが読取って、
デバイスハンドル番号と対応させることにより、それぞれの基板を区別して動作させることができます。
では、FTDI社のUSBインターフェイスICを使用している、他社製品と同時に動作させる場合はどうなるでしょうか。
本ページにて説明する内容は、ダイレクト版ドライバを使用した場合を対象としています。
仮想COM版にてプログラミングする場合は、COMポート番号で識別する方法となります。
コマンドの応答により識別する方法
(1) FT_ListDevices関数により、接続デバイス数を確認。
接続デバイスすべてにつき、次の処理を行う。
(2) デバイスを open
(3) Wコマンドなどを送信
(4) Wコマンドに対しRレスポンスがあればOK。
(5) Wコマンドに対しレスポンスがなければNG。
デバイスを closeし、対象デバイスから除外する。
対象外のデバイスを、いったんopenするのは、あまり気持の良いものではないという方は、次の方法をご覧ください。
シリアル番号にて識別する方法 (推奨)
(1) FT_ListDevices関数により、接続デバイス数を確認。
例 ftStatus = FT_ListDevices(&numDevs,NULL,FT_LIST_NUMBER_ONLY);
接続デバイスすべてにつき、次の処理を行う。
(2) FT_ListDevices関数によりデバイスのシリアル番号を取得
例 ftStatus = FT_ListDevices((PVOID)devIndex,serbuf,
FT_LIST_BY_INDEX|FT_OPEN_BY_SERIAL_NUMBER);
(3) シリアル番号の先頭文字がDであればOK。続いてデバイスopen処理を行う。
(4) シリアル番号の先頭文字がDでなければNG。対象デバイスから除外する。
シリアル番号の先頭1文字だけで識別できない場合は、2文字目も確認対象とします。
シリアル番号の2文字目は製品グループごとに異なっています。製品に貼付けてあるシリアル番号シールを確認ください。
3文字目以降は製品個別の番号となっていますので、識別対象としないでください。
なお、2文字目については、将来にわたって同一文字であることを保証しているものではありません。
先頭文字だけの識別で問題が生じない限り、2文字目を識別対象としないようにお願いします。
シリアル番号とコマンド応答を組合せた
デバイス選択open処理プログラム
弊社製デバイス、例えばモーションコントロール基板と計測ユニットなどを同時使用する場合も、この方法により選択動作をさせることが可能です。
このページに直接こられた方は、こちらをクリックして、
ダックス技研株式会社 計測制御用電子機器のHOMEに移動してください。
USB接続のDIO、計測ユニットなどDACS製品を掲載しています。 |
|