FPGA VIとNI スキャンエンジンを同期する (FPGAインタフェース)
- 更新日2025-10-09
- 8分で読める
CompactRIO再構成可能埋め込みシャーシ、統合型コントローラおよびシャーシ、Ethernet RIOシャーシ、およびSingle-Board RIO(sbRIO)デバイスには、スキャンクロックI/O項目があります。スキャンクロック項目を使用して、NI スキャンエンジンがFPGA VIとRTホストVIの間でデータ転送を行うタイミングを監視します。
スキャンクロック情報をユーザ定義I/O変数と併用することで、NI スキャンエンジンでデータ転送を同期できます。ユーザ定義I/O変数のデータ転送をスキャンエンジンと同期させることで、FPGA VIとRTホストVI間で転送するデータセットの一貫性が保証されます。
NIは、スキャンエンジンがFPGA VIとRTホストVI間のデータ転送を行っていない時に、読み取り/書き込み操作を実行するようなアプリケーションの設計を推奨します。スキャンエンジンがデータ転送を行っている間にユーザ定義I/O変数の読み取りや書き込みを行うと、スキャンエンジンはデータの一貫性を保証できず、データ転送は次の機会に持ち越されます。
以下のイメージは、スキャンエンジンのHIGH時間中にユーザ定義I/O変数からの読み取りまたは書き込みを行った場合や、ユーザ定義I/O変数の読み取りまたは書き込み操作がスキャンエンジンの立ち下がりエッジを逃した場合のスキャンエンジンの応答を示します。
また、スキャンクロック情報を使用してスキャンエンジンに同期するRTホストVIのコードとFPGA VIのコードの実行を同期することができます。
以下のスキャンクロックI/O項目、メソッド、およびプロパティを使用して、スキャンエンジンからの情報を監視します。
スキャンクロックI/O項目
FPGA I/Oノードを使用して、スキャンクロックI/O項目にアクセスします。
スキャンクロックI/O項目にアクセスするには、プロジェクトのシャーシI/OフォルダからスキャンクロックI/O項目をFPGA VIのブロックダイアグラムにドラッグします。FPGA I/Oノードをブロックダイアグラム上に配置し、FPGA I/Oノードの要素部分をクリックして、ショートカットメニューからシャーシI/O»スキャンクロックを選択することもできます。
スキャンクロックメソッド: 立ち上がりエッジで待機
FPGA I/Oメソッドノードを使用して、スキャンクロックI/O項目の立ち上がりエッジで待機メソッドにアクセスします。
立ち上がりエッジで待機メソッドは、スキャンクロック信号の次の立ち上がりエッジ、またはタイムアウトが発生するまで、FPGA I/Oメソッドノードの実行を一時停止します。
スキャンクロックプロパティ
FPGA I/Oプロパティノードを使用して、スキャンクロックI/O項目の以下のプロパティにアクセスします。
サンプルVI
ユーザ定義I/O変数とスキャンクロックI/O項目および立ち上がりエッジを待機メソッドの使用例については、labview\examples\CompactRIO\NI Scan Engine\Advanced\Scan Engine Synchronization\Scan Engine Synchronization.lvprojにある「User-Defined IOV Synchronized」VIを参照してください。
ユーザ定義I/O変数とスキャンクロックI/O項目およびHIGH時間出力を含む立ち上がりエッジを待機メソッドの使用例については、labview\examples\CompactRIO\NI Scan Engine\Advanced\Scan Engine Synchronization - Advanced\Scan Engine Synchronization - Advanced.lvprojにある「User-Defined IOV Advanced Sync」VIを参照してください。