CAN入力
- 更新日2025-10-09
- 8分で読める
CANフレームが受信されるまで待機し、そのフレームを返します。
CAN入力を使用してCANポートから読み取るには、以下の手順に従ってください。
- ターゲットとデバイスを追加ダイアログボックスを使用して、CANモジュールをCompactRIO構成に追加します。プロジェクトエクスプローラウィンドウでCANモジュールを右クリックし、プロパティを選択してモジュールの構成プロパティを指定します。
- CAN用にFPGA I/O項目を作成するには、プロジェクトエクスプローラウィンドウのマイ コンピュータの下のFPGAターゲットを右クリックし、FPGA I/O一覧に新規→FPGA I/Oを選択してCAN»NI 9852»CAN0(またはCAN»NI 9853»CAN0)および/またはCAN»NI 9852»CAN1(またはCAN»NI 9853»CAN1)を追加します。
- FPGA I/OパレットからFPGA I/OノードをFPGA VIのブロックダイアグラムに配置します。
- FPGA I/Oノードを右クリックしてFPGA I/Oを選択»CAN»NI 9852»CAN0(またはFPGA I/Oを選択»CAN»NI 9853»CAN0)またはFPGA I/Oを選択»CAN»NI 9852»CAN1(またはFPGA I/Oを選択»CAN»NI 9853»CAN1)を選択します。
- FPGA I/Oノードを右クリックして読み取りに変更を選択し、CAN入力用のI/Oノードとして使用します。
- FPGA I/Oノードを右クリックしてプロパティを選択し、Data Typeを選択します。
CAN入力を使用する前にCANポートの通信を開始してください。モジュール構成で自動開始を有効にするか開始メソッドを呼び出して通信を開始してください。
CAN Advanced Port Configurationダイアログボックスの入力タイムアウト (ms)は、新しいフレームが受信されるまで待機する時間を指定します。入力タイムアウト (ms) を0に指定すると、CAN入力ノードは新規フレームが到着したかどうかのみを確認します (ブロックなし)。
プロパティダイアログ
Data Typeは、CAN入力ノードから返されるCANフレームのタイプを選択します。利用可能な値はCluster(デフォルト)およびArray of 6 U32です。
Clusterデータタイプを使用する利点は以下のとおりです。
- 使いやすいシンプルなブロックダイアグラム
- フロントパネルを使用せずブロックダイアグラムのみに使用を限定する場合、高速で効率的
Array of 6 U32データタイプの利点、およびホストVIに一度に整数をハンドシェイクする利点は以下のとおりです。
- ホストVIへの通信が高速
- 使用するFPGAゲートが少ない
クラスタと配列の使用の詳細については、LabVIEW FPGA アプリケーション アプリケーションノート「Using Clusters and Arrays」を参照してください。
ノード入力
ノード出力
| Data Type | 要素 | 説明 |
|---|---|---|
|
|
タイムスタンプ高、タイムスタンプ低 | フレーム受信時のタイムスタンプ。タイムスタンプはCANフレームの最後に取得されます。HighとLowのU32 (符号なし倍長整数) で、単一のU64 (符号なし64ビット整数) タイムスタンプを表現します。タイムスタンプは、ロールオーバー処理を回避するのに十分なサイズです。タイムスタンプは相対値のゼロ基準です。CAN通信の開始時に時間が0から開始します。分解能は100 nsです。 |
|
|
識別子 | アービトレーションID。 ビット29 (16進数形式で20000000) がクリアである場合、このIDは標準形式 (11ビット) を使用します。 ビット29が設定されている場合、このIDは拡張形式 (29ビット) を使用します。 |
|
|
タイプ | フレームのタイプ。
|
|
|
インフォA | 将来の使用のために予約済みです。 |
|
|
インフォB | 将来の使用のために予約済みです。 |
|
|
データ長 |
データフレームの場合、データ(0~8)内のバイト数を示します。 リモートフレームの場合、要求されたバイト数を示します。 |
|
|
データ |
データフレームの場合、データバイトを提供します。この配列は、8バイトの固定サイズを使用します。 リモートフレームの場合、データに含まれる値は有効ではないため、無視する必要があります。 データタイプが6つのU32の配列に設定されている場合、CANフレームは以下のテーブルに示すように6つのU32値の配列として表現されます。 |
| 最上位バイト | ... | ... | 最下位バイト |
|---|---|---|---|
| タイムスタンプ(上位U32) | |||
| タイムスタンプ(下位U32) | |||
| 識別子 | |||
| タイプ | インフォA | インフォB | データ長 |
| データ[0] | データ[1] | データ[2] | データ[3] |
| データ[4] | データ[5] | データ[6] | データ[7] |
上記のテーブルでは、各要素の意味はクラスタデータタイプと同じです。