Archived: アナログ出力のFIFOモードとは何ですか?また、どのように使用すればよいのでしょうか?

This document has been archived and is no longer updated by National Instruments



ハードウェア: Multifunction DAQ (MIO)>>E Series

問題:
FIFOモードとnon-FIFOモードを使用した場合で、DAQデバイスのスペック表でのアナログ出力レートに違いがあるようなのですが、その違いはどのようなものなのでしょうか?また、LabVIEWのプログラム内でどのように設定すればよいのでしょうか?

解決策:
FIFOモードでのアナログ出力の際、システムに依存しない更新レートを実現するため、データが部分的にDAQデバイスのハードウェアのFIFOにロードされます。一度データがFIFOにロードされると、DAQデバイスのアナログ出力のアップデートクロックは、ユーザーがアナログ出力を停止するまでFIFOの循環によってデータを出力します。データはボード上のFIFOに前もってロードされますので、アナログ出力の間、PCIバスやPCのメモリによる割り込みはありません。システムの相関が無いので、最大アップデートレートは通常はFIFOモードを用いた場合のほうが早くなります。
デフォルトでのアナログ出力モード(non-FIFOモード)では、アナログ出力のバッファサイズはPCのメモリによってサイズを変更されます。PCのメモリに対するバッファとアナログ出力ハードウェアとの相互作用は自動的に切り替えられるので、DAQデバイスの出力は両方のモードで同じはずです。しかしながら、NI-DAQドライバはPCのメモリ内で扱われているので、連続出力のためはDAQカードへデータを転送する必要があります。バッファサイズや、アナログ出力のチャンネル数、アップデートレートによっては大量のCPUの使用率やPCIバスのデータ転送が生じることになります。ハードウェアタイミングで操作を行っている場合は、DAQデバイスに対して十分な速さでデータを送信する性能以前にシステムが追いつかなくなる場合には、DAQエラーが生じます。
non-FIFOモードを使用する主な利点は、バッファサイズの許容範囲です。FIFOメモリを全て使用しても足りないようなバッファサイズをPCメモリを使用することによって設定できます。それゆえ。PCメモリの相互作用がDAQデバイスへのデータ転送に必要になります。
もし設定するデータがそんなに大きくないものである場合には、FIFOモードのほうがより連続アナログ出力を正確に実行するには有効です。FIFOモードを使用する前に、まず使用しているデバイスがFIFOモードに対応しているか否かを確認して下さい。また、そのサイズも確認して下さい。単純で周期的な信号の場合、比較的小さなFIFOであっても、初期設定では連続した信号を生成するために繰り返し生成されている1周期分の信号を出力するには通常であれば十分です。
FIFOモードでのアナログ出力は、AO Config.viの入力端子を使用して簡単に設定することができます。入力名は"割り当てモード"で、FIFOモードの設定には値として6の "FIFOメモリを使用"を選択してください。
AO Configにバッファサイズを送信したときに、それぞれのアナログチャンネルへ過多なデータが割り当てられます。ハードウェアのFIFOサイズは保存できる量が決まっているため、全てのチャンネルのデータのために共有される必要があります。それゆえ、FIFOモードを使用する場合には、DAQデバイスのFIFOのサイズを出力するチャンネルの数で割った値から最大のバッファサイズを計算してください。



関連リンク:
Developer Zone Example: FIFO vs non-FIFO Mode Analog Output

添付:





報告日時: 08/19/2002
最終更新日: 11/02/2007
ドキュメントID: 2OI95OEW