FPGAタイミング関数で実行レートを管理する (FPGAモジュール)

タイミングI/Oアプリケーションを作成する

多くのアプリケーションでは、特定の周波数でI/Oを実行する必要があります。たとえば、制御ループで使用されるアルゴリズムでは、一般的に既知のレートで入力がサンプルされる必要があります。Whileループで「ループタイマ」Express VIを使用して、以下のブロックダイアグラムに示すようにI/Oの実行レートを制御します。

「ループタイマ」Express VIを使用してI/Oの実行レートを制御するには、Whileループの内側にシーケンスストラクチャを配置します。「ループタイマ」Express VIをシーケンスストラクチャの最初のフレームに配置します。表示されるループタイマを構成ダイアログボックスのカウンタ単位および内部カウンタのサイズを構成します。I/OのLabVIEWコードを、シーケンスストラクチャの次のフレームに配置します。

ヒント  アプリケーションに適した最小の内部カウンタのサイズを選択することにより、FPGAターゲットの領域を節約することができます。

「ループタイマ」Express VIへの最初の呼び出しでは、この呼び出しで後に続く呼び出しの基準タイムスタンプが確立されるため、待機や遅延は発生しません。最初の「ループタイマ」Express VIへの呼び出しの後、「ループタイマ」Express VIへのそれ以降の呼び出しは、前の呼び出しの後にカウントパラメータで指定された時間が経過するまで返されません。カウントパラメータで指定される時間が、FPGAターゲットがWhileループでコードを実行する時間よりも短い場合、「ループタイマ」Express VIはWhileループのタイミングに影響を与えません。

イベント間の遅延を作成する

待機」Express VIを使用して、FPGA VIのイベント間で遅延を作成します。たとえば、トリガを受信した後に、一定の遅延を置いてから、出力を行うことができます。その場合、トリガのLabVIEWコードをシーケンスストラクチャの最初のフレームに配置します。その後、「待機」Express VIを以下のフレームに配置します。最後に、出力のLabVIEWコードをシーケンスストラクチャの最後のフレームに配置します。以下のブロックダイアグラムに示すように、シーケンスストラクチャで複数の待機VIを使用して、一連の遅延を作成することもできます。

イベント間の時間を測定する

ティックカウント」Express VIを使用して、デジタル信号のエッジなどのイベント間の時間を測定します。LabVIEWコードの一部の実行時間を判断する場合、または入力信号の周波数、パルス幅、周期を判断する必要がある場合は、このExpress VIを使用できます。

たとえば、関数またはLabVIEWコードの一部が実行するのにかかる時間を判断する場合は、以下のブロックダイアグラムに示すように、2つの「ティックカウント」Express VIとシーケンスストラクチャを使用します。

「ティックカウント」Express VIをシーケンスストラクチャの最初のフレームに配置します。そして、測定するLabVIEWコードをシーケンスストラクチャの2番目のフレームに配置します。最後に、もう1つの「ティックカウント」Express VIをシーケンスストラクチャの最後のフレームに配置します。その後、2つの「ティックカウント」Express VIの結果の差を計算して、実行時間を確認できます。計算結果から1を引くことで、「ティックカウント」Express VIの実行時間を補正します。

「ティックカウント」Express VIには、時間を記録するための内部カウンタがあります。同じブロックダイアグラムに配置する各「ティックカウント」Express VIの内部カウンタは、同じ開始時間を共有します。そのため、カウンタ単位および内部カウンタのサイズオプションで同じ値を使用する各「ティックカウント」Express VIは、同じ時間を記録します。たとえば、同じティックカウントを構成オプションを使用する2つの「ティックカウント」Express VIを呼び出すと、同じティックカウント値を返します。

「ティックカウント」Express VIは、カウンタ単位で整数値を返します。ティックカウント値は、カウンタ単位uSecまたはmSecに構成される場合に発生する可能性のある小数値の時間周期を表記することができません。uSecまたはmSecカウンタ単位を構成すると、タイミング測定の確度が±1 カウンタ単位値になります。たとえば、上記のブロックダイアグラムで「ティックカウント」Express VIを構成して、時間 (ミリ秒) を測定することができます。1番目の「ティックカウント」Express VIは、47.9ミリ秒で実行し、ティックカウントは47の値を返します。2番目の「ティックカウント」Express VIは、53.2ミリ秒で実行し、ティックカウントは53の値を返します。この例の遅延は5.3ミリ秒ですが、返された値の差は6ミリ秒です。



この記事は役に立ちましたか。

役に立たなかった