DMA を使用した変化検出の考慮点



使用ソフトウェア:
使用ソフトウェア・バージョン: 9.0
使用ソフトウェア・バージョンに特化:
二次のソフトウェア: N/A
ハードウェア: Digital I/O (DIO)>>High-Speed Digital I/O>>PCI-6534

問題:
DAQmx サンプルの変化検出をもとに 8 ビットデジタルポートを読み取っています。ある場合にはデジタルラインが 4 回変化した後にデータがアップデートされる場合や DAQmx からエラー 200284 を返す場合があります。変化検出されるラインが変化したり検出されない原因は何ですか?

解決策:
この問題は DAQmx のプログラムが DMA (ダイレクトメモリアクセス)で構成されているために起きている問題です。PCI デバイスから LabVIEW 上の DAQmx メモリ領域に DMA 転送される際に 32  ビットのデータのまとまりで転送されます。したがってポート形式であれライン形式であれ 8 ビットの単一ポートを 4 回の計 32 ビット検知するまでデータ収録されたデータは転送されていないために更新されません。

DMA 転送が行われる前に 32 ビットの変化検出を行うか DMA 転送の代わりに割り込みを行ってください。LabVIEW の初期設定では DMA 転送になっておりますが、プロパティーノードを使用してコード上で割り込みモードに変更をすることができます。データ転送方法の設定は下記リンクをご参照ください。

もし故意に DMA 転送を使用して変化検出を行いたい場合にはタイムアウトの設定時間を想定される 32 ビットの変化検出にかかる時間以上の値を設定してください。

関連リンク:

KnowledgeBase [3KP9R6BH]:  Which NI DIO Devices Support Change Detection?
KnowledgeBase [3EHDN4QT]:  What Is Change Detection and How Does It Work On The 653x DIO Boards?
KnowledgeBase [2YMAJ2B9]:  The Difference Between Change Detection or Change Notification in Traditional NI-DAQ and NI-DAQmx
KnowledgeBase [34FGAFVM]:DAQmx と従来型 DAQ でデータ転送方法(DMA または割り込み)を構成する方法



添付:





報告日時: 12/21/2005
最終更新日: 03/09/2010
ドキュメントID: 3SKA1UX1