PCMCIA DAQCardで遅いサンプリングレートによりデータ集録を行うと、なぜデータの更新が遅くなってしまうのですか?



使用ソフトウェア:
使用ソフトウェア・バージョン: N/A
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: N/A
ハードウェア: Multifunction DAQ (MIO)>>E Series>>DAQCard-6062E, Multifunction DAQ (MIO)>>E Series>>DAQCard-6036E, Multifunction DAQ (MIO)>>E Series>>DAQCard-6023E, Multifunction DAQ (MIO)>>E Series>>DAQCard-AI-16E-4, Multifunction DAQ (MIO)>>E Series>>DAQCard-6034E, Multifunction DAQ (MIO)>>E Series>>DAQCard-6035E, Multifunction DAQ (MIO)>>E Series>>DAQCard-6024E, Multifunction DAQ (MIO)>>E Series>>DAQCard-AI-16XE-50

問題: PCMCIA DAQCardからデータ集録をするとき、グラフの更新速度が非常に遅くなってしまいます。このとき、ドライバはNI-DAQmxで、集録モードは連続集録です。グラフの更新速度が、読み取るサンプル数とサンプリングレートに応じた速度で更新される(例えば、サンプリングレートが500S/sec.で読み取るサンプル数を100にした場合、1秒間に5回グラフを更新する)と期待してましたが、それよりも遅い速度でデータが更新されます。
グラフの更新速度を早くするためには、どうすればいいですか?また、なぜこのようなことが起こるのでしょうか?

解決策: データ転送条件プロパティを空でないオンボードメモリに設定すると、この問題を回避できます。 設定方法は、以下の通りです。
  1. DAQmx チャンネルプロパティノードを配置してください。

  2. 項目を開いてください。

  3. 具体的には、アナログ入力»一般プロパティ»上級»データ転送とメモリ»データ転送リクエスト条件です。

  4. 書き込みモードに変更し、プロパティを変更するために定数か制御器を作成してください。

  5. 空でないオンボードメモリを選択してください。

次に、この問題発生のメカニズムについてご説明します。
PCMCIAではDMA転送が使えないので、割り込み転送となります。割り込み転送を行う時には割り込み転送要求を行いますが、デフォルトではオンボードメモリが半分以上というモードになっているため、ボード上のFIFOの半分以上のデータがたまって初めて、割り込み要求を出すようになっています。すると、100Hz以下のサンプリングレートが遅い場合には、時間がたたないとFIFOの半分までデータがたまらないので、FIFOからPCのバッファになかなかデータが転送されず、グラフが更新されなくなってしまいます。そこで、FIFO上にデータがある場合には割り込み転送要求を行うように、空でないオンボードメモリというモードに変更すると、適宜FIFOからPCのバッファにデータが転送されるので、期待したのと同じ更新速度でグラフを更新できるようになります。
以上から、サンプリングレートが遅い場合(100Hz以下)、データ転送リクエスト条件空でないオンボードメモリにしてください。ただし、サンプリングレートが早い場合に空でないオンボードメモリと設定していると、データ転送効率が悪くなるので注意してください。

関連リンク:

添付:





報告日時: 10/30/2003
最終更新日: 08/18/2006
ドキュメントID: 32TESA2G