低レベルVXIアクセスコールを使用する(viMapAddress()を使用)

NI-VISA Measurement & Automation

低レベルVXIアクセスコールを使用する(viMapAddress()を使用)

低レベルのVXIアクセス関数は、ハードウェアに対する最も低いレベルのインタフェースを提供し、結果として最高のPeek/Poke性能が得られます。ただし、これを使用するのは、高レベル関数を使用するほど簡単ではありません。viMapAddress()は、仮想アドレス範囲のウィンドウをVXIアドレス範囲の一部にマッピングします。これで、バックプレーンのメモリへ直接アクセスできます。ただし、そのウィンドウのコンテキストの管理、バスのエラーの確認、ウィンドウの境界を越えた読み取りないし書き込みをしないようにする必要があります。

低レベルコールを使用すべきでないときに使用するケースが頻繁にあります。VXIアドレス範囲の範囲が時間重視でない場合は、ウィンドウをその領域にマッピングしないでください。その代わり、高レベルコールでこれらのデバイスと通信してください。また、データブロックの転送のため、viPeekX()/viPokeX()の呼び出しをループに置くことがよくあります。これは、ブロック転送をするのに一番効率の良い方法ではありません。代わりに、ブロック転送関数viMoveX()を使用してこのタスクを行ってください。

低レベルアクセスコールをプログラムで使用する場合は、ナショナルインスツルメンツが提供するサンプルをご覧ください。