NI-VISA USB RAWモードを使用してデバイスと通信するには?

更新しました Nov 17, 2018

使用製品

Driver

  • NI-VISA

問題

NI-VISA 3.0がUSBサポートを導入したことに気付きました。 RAWモードでUSBデバイスとの通信を開始するにはどうすればよいですか?

解決策

USBデバイスと通信するには、次の手順をおこないます。
  1. Windowsによってデバイスが認識され、NI-VISAがデバイスドライバとして割り当てられているかを確認します。Windowsでは、これを.infファイルを使用しておこないます。各USBデバイスには、固有のベンダー番号およびモデル番号があります。.infファイルは、デバイスに対してこれらの番号とデバイスを操作するドライバに関する情報が含まれています。プラグアンドプレイデバイスがPCに接続されると、Windowsはデバイス情報を読み取り、ベンダー番号およびモデル番号を使用して.infファイルを検索します。一致する.infファイルが見つかると、Windowsは登録されているドライバとデバイスを関連づけます。 
     
  2. NI-VISAでデバイスと通信するには、NI-VISAドライバとUSBデバイスを関連させる.infファイルを作成する必要があります。NI-VISAパッケージにはVISA Driver Development Wizardというユーティリティがあり、適切なベンダー番号とモデル番号を入力すると自動的に.infファイルを生成します。VISA Driver Development Wizardに関する詳細は、関連リンクを参照してください。
     
  3. .infファイルが適切な場所に保存します。場所は、SYSTEM_DIR\infという隠しディレクトリです。USBデバイスを接続すると、Windowsはハードウェア検出ウィザードを通して、デバイスのドライバとしてNI-VISAを割り当てます。インストール後、デバイスが適切なリソース名とともにMeasurement & Automation Explorer(MAX)に表示されます。
     
  4. これにより、USB用のVISA関数(viUsbControlInおよびviUsbControlOut)が利用できるようになります。これらの関数は、各USBデバイスがデフォルトで持つコントロールパイプにアクセスが可能です。VISAプロパティを使用してデバイスとの通信をセットアップします。USB特有のVISAプロパティに関する詳細は、こちらを参照してください。

NI-VISAは、開いたエンドポイントからデバイスをスキャンします。割り込みもしくはバルクパイプに対して開いたエンドポイントがある場合、各パイプに対するエンドポイント属性には開いたエンドポイントの最も低い開いたエンドポイントが表示されます。この属性が-1の場合、そのパイプにはエンドポイントがないことを示しています。このポイントからデバイスの通信セットアップは、デバイスを特定します。

追加情報

USB RAWモードは、USB仕様の低レベル通信メカニズムにアクセスすることが可能です。NI-VISAは、既に仕様上で定められたメカニズムを利用しやすくするものなので、ユーザはUSB仕様およびUSBのプログラミング方法をあらかじめ熟知していることが前提となります。NI-VISA USB RAWモードは、割り込み、バルク、および制御データ転送をサポートしています。アイソクロナス転送(等時転送)は、サポートしていません。 

さらに、NI-VISA USB RAWモードでのUSB通信方法は、デバイスの仕様に依存し、デバイス動作に関するより深い知識が必要です。これは、NI-VISA PXIサポートを使用したレジスタレベルプログラミングに類似しています。NI-VISAは、デバイスへの通信チャンネルを提供しますが、データの意味はデバイスの仕様に依存します。

NI-VISAは、USBTMCモードとRAWモードという2種類のUSB通信モードをサポートします。このページは、VISA USB RAWモードに関する情報です。USBTMCの詳細は、What is USBTMC and How Can I Communicate with My USB Instrument?を参照してください。

この記事はお役に立ちましたか?

いいえ