From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



PCI-6601,PCI-6602で出力できる最大周波数



ハードウェア: Counter/Timers (TIO)>>Devices>>PCI-6602

問題:
PCI-6601,PCI-6602でパルストレインを出力する際に出力できる最大周波数は何MHzですか?

解決策:
概略:
カウンタボードで出力できる最大の周波数は、タイムベース周波数の1/4の周波数、または、条件が限定されますが、タイムベース周波数の1/2の周波数になります。

解説:
カウンタデバイスで出力できる最大の周波数は、ボードのタイムベースクロックと出力するパルスの仕様によって変ってきます。基本となるのは、タイムベースクロックで、タイムベースクロックの周波数が高ければ、それに合わせて出力できる周波数も高くなります。PCI-6601の最大タイムベースクロックは20 MHzで、PCI-6602では80 MHzです。

タイムベースクロックと出力周波数の関係を理解するためには、最初に、カウンタがどのようにパルストレインを出力するのかを理解しなければなりません。 指定されたパルストレインを出力するために、カウンタは2つのレジスタ(レジスタA、レジスタB)を使います。

従来型NI-DAQでは、GPCTR_Change Parameter 関数や、Counter Set Attribute.viを使います。重要なパラメータは、"pulse spec 1" (load register A) と "pulse spec 2" (load register B)です。(DAQmxの場合は、チャンネル作成時に内部で自動的に設定されます。)

カウンタを動作させると、まず、レジスタAがカウンタに読み込まれます。そして、入力信号(タイムベースや外部クロック信号)の立上がりエッジ毎にレジスタの値が減っていきます。レジスタの値が0になる とカウンタは出力を行います。出力の方法は以下の二つがあります。

(1):出力を反転させる("toggled output"、トグル出力モード)
(2):入力信号の一周期分のパルスを出力する("pulsed output"、パルス出力モード)

これらの設定は、従来型NI-DAQでは、GPCTR_Change Parameter 関数や、Counter Set Attribute.vi の "output mode"で、設定できます。DAQmxの場合は、DAQmx>>DAQmx上級タスクオプション>>DAQmxエクスポート信号パレットにある"DAQmx信号のエクスポートプロパティノード"を使います。プロパティを、イベント>>カウンタ出力イベント>>出力状態と選び、"COイベント出力状態”にします。入力で定数を作成すると、”パルス”か”トグル”かを選べるようになっています。

カウンタ動作を実行して、レジスタAが0になり出力すると、次に、レジスタBが読み込まれます。そして、レジスタBが0になると、カウンタは出力を反転させるか、パルスを出力します。

カウンタによってパルスがどのように生成されるかを理解すると、ボードのクロックや外部クロックなどのソースクロックと出力パルスの最大周波数との関係が分かります。出力パルスの特性は、ソースクロックの倍数で決まります。もし、20 MHz タイムベースを使うと、1周期は、1 s / (20 x 10^6 cycles) = 50 ns となります。"pulse spec 1" (load register A) を 7、"pulse spec 2" (load register B) を3にして、"toggled" モードにすると、出力パルスは、ロー状態が 350 ns (7 x 50 ns)、ハイ状態が 150 ns (3 x 50 ns)になり、デューティー比30%で、周波数が2MHzとなります。

出力できるパルスの最大周波数は、それぞれのレジスタに読み込める最小値で決まります。それぞれのレジスタに読み込める最小値は2なので、20 MHz タイムベースを使って、"toggled" モードで出力できるパルスは、ロー状態が100 ns (2 x 50 ns)、ハイ状態が 100 ns (2 x 50 ns)、周期が 200 nsとなり、周波数は5MHzになります。

したがって、"toggled" モードで出力できる最大の周波数は、タイムベースとして使用するソース信号の周波数の 1/4 の周波数ということになります。このことから、タイムベースの周波数が高ければ高いほど、出力できる周波数も高くなるということが分かります。

制約がありますが、さらに高い周波数で出力する方法もあります。"toggled" モードの代わりに、"pulsed" モードを使うと、タイムベースとして使用するソース信号の周波数の 1/4 の周波数よりも高い周波数で出力できます。"pulsed"モードでは、レジスタが0になる毎にソース信号の1周期分のパルスを出力します。二つのレジスタをそれぞれ2にセットし、20 MHz タイムベースを使うと、2 x 50ns = 100 ns 毎にパルスが出力されるので、出力周波数は 10 MHz となり、"toggled" モードの2倍の周波数が得られることになります。

"pulsed" モードで出力できる最大の周波数は、タイムベースとして使用するソース信号の周波数の 1/2 の周波数ということになります。この方法では、それぞくれのレジスタである"pulse spec 1" と "pulse spec 2" が等しくなる必要がありますので、出力されるパルスのデューティー比は50%のみとなります。レジスタ設定が異なる場合は、一定の周波数で出力されません。

カウンタボードで出力できる最大の周波数は、"pulse spec 1" と "pulse spec 2" をそれぞれ2に設定した場合になります。DAQmxの場合は、チャンネル作成の方法により異なりますが、例えば、カウンタ出力>>パルス生成>>周波数の場合は、デューテーサイクルを50%にして最大の周波数を設定した場合になります。

"toggled"モードの場合は、タイムベース周波数の1/4の周波数になり、"pulsed"モードの場合は、タイムベース周波数の1/2の周波数になります。

PCI-6601 は、最大のタイムベースクロックが20MHzなので、出力できる最大の周波数は、"toggled" モードで5MHz、"pulsed" モードで10 MHzになります。PCI-6602の場合は、最大のタイムベースクロックが80MHzなので、出力できる最大の周波数は、"toggled" モードで20MHz、"pulsed" モードで40 MHzになります。

(40MHzでの出力の場合は、接続の方法にも注意する必要がありますので、 NI 660x ユーザマニュアルの、3-9ページのメモを参照してください)

メモ: この情報は、6601や6602に使われているカウンタの TIO チップ とEシリーズに使われているDAQ-STC チップとMシリーズに使われるDAQ-STC2 チップに関して適用できます。

関連リンク:
製品マニュアル: NI 660x ユーザマニュアル
技術サポートデータベース 1J2GM1LL: NI-660xシリーズのカウンタボードで、5MHzを越えるパルストレインを生成することができません。
サンプルプログラム: NI-DAQmx: Generating a 40 MHz Pulse Train with Counter Output

添付:





報告日時: 01/28/2000
最終更新日: 05/22/2017
ドキュメントID: 1TRA8L00