なぜDAQのアナログ入力動作で、予期したデータポイント数を返さないのでしょうか?



使用ソフトウェア:
使用ソフトウェア・バージョン: N/A
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: Driver Software>>NI-DAQmx
ハードウェア: Multifunction DAQ (MIO)>>E Series, Multifunction DAQ (MIO)

問題: Multifunction DAQ Device (MIO)をしようしており、データ転送に割り込み(IRQモード)を使用してアナログ入力を行っています。読み取るポイント数を設定してDAQ deviceから読み取ります。プログラムはLabVIEWでAI Read.vi/DAQmx Read.viを使用、もしくはCVIでDAQmxReadAnalogF64を使用しています。しかし、読み取るポイント数を無視して、DAQ VIは0ポイント又は256の倍数を転送します。
これはなぜでしょうか? データが取りこぼされた見えませんが、指定通りにデータは転送されていません。何が起こっているのでしょうか?
(note - DAQCardのようなPCMCIAデバイスは、すべてIRQモードを使用します。)

解決策: ほとんどのMIOボードは、バッファーサイズが512サンプルのオンボードメモリ(FIFO)を持っています。デフォルトでは、データ転送に割り込み(IRQモード)を使用すると、512サンプルFIFOの半分のバッファ(256サンプル)に達する毎に、割り込みが生成されます。従って、読み取り動作は、一度に256サンプルのセグメントデータを転送することができます。従って読み取ったサンプル数の合計は、256の倍数になるでしょう。デフォルト動作を変更するには、次の手順の様に行います。

以上により、サンプリング毎に割り込みが発生するようハードウェアを設定し、一回あたりデータを転送点数を任意に設定できます。
この方法では、転送のためDAQボードによるCPU割り込みが頻繁になり、CPU時間を多く消費することに留意してください。

関連リンク:

添付:





報告日時: 10/23/2003
最終更新日: 01/16/2005
ドキュメントID: 32MB0DW0