アカデミック 会社 イベント NI Developer Zone サポート ソリューション 製品とサービス お問い合わせ MyNI
コントローラエリアネットワーク(CAN)のよくある質問(FAQ)
質問はこちら  0120-527196

この Q&A 集では、NI-CAN インタフェースに関する下記の質問の回答がご覧いただけます。


【目次】
Q1:ナショナルインスツルメンツの CAN インタフェースは、J1939 ネットワークと互換性がありますか?
Q2:NI-CAN のエラーコードの意味を教えてください。
Q3:NI-CAN インタフェースでは、物理層でどの程度の絶縁がされていますか?
Q4:使用している LabVIEW/LabWindows/CVI のバージョンをサポートする NI-CAN の最新バージョンを教えてください。
Q5:NI-CAN Channel API と Frame API について
Q6:NI-CAN ハードウェアの正しい終端方法
Q7:ナショナルインスツルメンツでは CAN I/O を提供していますか?

A1: ナショナルインスツルメンツの CAN インタフェースは、J1939 ネットワークと互換性がありますか?
J1939 ネットワークでは、CAN 2.0B 規格で指定されている拡張フレームフォーマットを採用しています。全てのナショナルインスツルメンツの CAN インタフェースは CAN 2.0B 規格に準拠していますので、拡張フレームフォーマットをサポートしています。この拡張フレームフォーマットでは、アービトレーション ID に標準の11ビットではなく29ビットを使用します。NI-CAN 2.0 以降のバージョンでは、データベースファイル(.dbc または .ncd)を NI Measurement & Automation Explorer(MAX)にインポートすることが可能です。これらのデータベースファイルには、標準と拡張の両方のアービトレーション ID を含めることができます。

J1939 ネットワークで使われているマルチフレームメッセージは、NI-CAN ツールでも使用することができます。現在 NI-CAN Channel API では直接サポートされていませんが、個々のメッセージ(フレーム)を読み取ってソフトウェアによってつなげることは可能です。一般的な J1939 ネットワークに含まれるマルチフレームメッセージは少ないため、この部分をプログラムにより実装するのは比較的簡単な作業です。

J1939 通信に必要なツールは、全て NI-CAN ツールに含まれています。J1939 通信の大半は NI-CAN ドライバでサポートされていますが、例えば2つの別個のフレームをつなげてマルチフレームメッセージを作成する場合など、プログラミングが必要になることもあります。

A2: NI-CAN のエラーコードの意味を教えてください。
LabVIEW を使用して CAN アプリケーションを開発している場合は、Simple Error Handler.vi を使ってエラーコードが示すエラーの詳細を見ることができます。

他のプログラミング環境(VB や C)を使用している場合は、バージョン 2.0 以降の NI-CAN ドライバで通常以下の場所にインストールされる explain.exe というユーティリティを使用できます。

C:\Program Files\National Instruments\NI-CAN\Utilities\

コマンドラインからこのユーティリティを実行してエラーコードを渡すと、エラーの説明が返されます。図1は、この実行ファイルの呼び出し方法を示しています。


図1. explain.exe の呼び出し


全ての NI-CAN エラーコードとその説明の一覧は、以下のリンクからご覧いただけます。

参考資料:
技術サポートデータベース:NI-CAN のエラーコードの意味を調べる方法(英語)

A3: NI-CAN インタフェースでは、物理層でどの程度の絶縁がされていますか?
CAN 物理層(V+ と V-)には、外部電源と内部電源どちらの CAN インタフェースでも、PC との絶縁やポート間(2ポート CAN インタフェース)の絶縁が施されています。内部電源の絶縁は、5V のDC-DC コンバータによって行われています。この DC-DC コンバータには 500 V の絶縁が行われ、つまり CAN 物理層に供給される電力は、PC の電源とグラウンドを CAN 物理層から絶縁する DC-DC コンバータを使って PC 電源から提供されているということになります。

外部電源を使用している場合も、PC と CAN 物理層の電源とグラウンドの間に 500 V の光学絶縁が適用されています。CAN 物理層には、外部電源からの電力とグラウンドを得るための 5 VDC のレギュレータと、配線に誤りがあったときに CAN 物理層と外部電源が損傷を受けるのを防ぐための保護回路があります。

メモ:オプションのシールド信号は、コンピュータの電源とグラウンドから絶縁されていません。

A4: 使用している LabVIEW/LabWindows/CVI のバージョンをサポートする NI-CAN の最新バージョンを教えてください。
特定の LabVIEW/LabWindows/CVI のバージョンに対応した NI-CAN ドライバソフトウェアの最新情報については、以下の技術サポートデータベースを参照してください。


参考資料:
NI-CAN ドライバソフトウェアをダウンロード
使用している LabVIEW/LabWindows/CVI のバージョンをサポートする NI-CAN の最新バージョン(英語)

A5: Q5:NI-CAN Channel API と Frame API について
NI-CAN ドライバを用いると、ナショナルインスツルメンツの CAN インタフェースをプログラミングするための2つの API がインストールされます。Channel API と Frame API のどちらを使用するかは、アプリケーションのニーズとユーザの個人的な好みなどによって決まります。Channel API は、使いやすいシンプルな物理単位で CAN ネットワークにアクセスできるため、多くのユーザが使用しています。この API を使用すると、NI-CAN ソフトウェアは CAN メッセージの生データをチャンネル構成の各チャンネルの物理単位に変換したり、あるいはその逆の変換を行います。ただし、Frame API では CAN ネットワークの低階層へのアクセスが可能なため、事情によっては Frame API の方が推奨される場合もあります。Frame API を使用した方が良いのは以下のような場合です。

  • NI-CAN 1.6以前のバージョンでアプリケーションを開発している。
  • デバイスへの書き込み、デバイスからの送信のためのコマンド/応答プロトコルをデバイスで実装しようとしている。
  • デバイスでリモートフレームを使用したい。この機能は、Channel API ではサポートされていません。
  • CAN 通信と DAQ デバイスからのデータ集録との同期を行っている。Frame API では Channel API よりもさらに低い階層の RTSI 機能を利用できるため、高度な同期には適しています。

メモ:同じ CAN インタフェースで Channel API と Frame API を同時に使用することはできません。つまり、アプリケーションが Frame API を使用して1つの CAN0 で実行中の場合、同じ CAN0 で Channel API を使用して別のアプリケーションを実行することはできないということです。2ポートの CAN カードをお持ちの場合は、別個のインタフェース上で異なるアプリケーションを実行したり、時間をずらしてそれらのアプリケーションを実行することができます。

参考資料:
NI CAN Channel API

A6: NI-CAN ハードウェアの正しい終端方法
反射によって通信に障害をきたさないようにするため、伝送回線は終端する必要があります。CAN ハードウェアの終端方法は、ハードウェアの物理層(高速、低速、単線式、ソフトウェア選択式)によって異なります。高速CAN:高速 CAN の場合、信号線のペア(CAN_H と CAN_L)の両端を終端する必要があります。それは、CAN バスが双方向通信であるためです。標準の9ピン Dサブコネクタ上では、CAN_L はピン2、CAN_H はピン7です。ケーブル上の終端抵抗器は、ケーブルの公称インピーダンスと一致している必要があります。ISO 11898 では、公称インピーダンスが120オームのケーブルが必要ですので、終端には120オームの抵抗器を使用しなければなりません。ケーブル上に複数のデバイスが設置されている場合は、ケーブルの両端にあるデバイスにのみ終端抵抗器が必要です。図2は、高速ネットワークの終端方法の例を示したものです。


図2. 高速ネットワークの終端例


低速CAN:低速 CAN の場合、ネットワーク上の各デバイスは、各データラインに終端抵抗器が必要です(CAN_H に R(RTH)、CAN_L に R(RTL))。高速 CAN と異なり、低速 CAN ではケーブルではなくトランシーバに終端が必要です。各抵抗器の抵抗の計算には、いくつかの公式が使用されます。このプロセスは、下記リンクにある NI-CAN ハードウェア/ソフトウェアマニュアルの 4-10~4-12ページに詳しく説明されています。図3は、低速ネットワークで終端抵抗器を配置する場所を示しています。

図3. 低速ネットワークにおける終端抵抗器の配置


単線式CANインタフェース:NI の単線式 CAN ハードウェアには、9.09 kオームの負荷抵抗器が搭載されています。この負荷抵抗はネットワークに十分な値であるため、追加の抵抗器は必要ありません。

ソフトウェアで選択可能なCAN:ソフトウェア選択式 CAN ハードウェアは、高速、低速、単線式インタフェースのいずれかで動作するよう構成できます。必要とされる終端は、使用するよう構成されている物理層により異なります。

A7: ナショナルインスツルメンツでは CAN I/O を提供していますか?
はい。ナショナルインスツルメンツでは、FP-1300 という CAN I/O デバイスを提供しています。FP-1300 を使用すると、CAN ネットワークに簡単に I/O を追加することができます。NI FP-1300 は、CAN メッセージをユーザが完全に制御可能な FieldPoint対応の CAN インタフェースモジュールです。FP-1300 は全ての FieldPoint I/O モジュールに対応していますので、CAN ネットワークにアナログ I/O、デジタル I/O、温度計測、歪み計測などを追加することが可能です。このモジュールは、デバイスのプロトタイプ作成や、自動車、航空宇宙、マシン構築などのアプリケーションで CAN ネットワークに I/O を追加するために設計されたものです。



図4. ナショナルインスツルメンツの FP-1300 CAN インタフェースモジュール


参考資料:
ナショナルインスツルメンツの CAN I/O

関連リンク
コントローラエリアネットワーク(CAN) トップページ

お問い合わせ

E-mail: salesjapan@ni.com Tel: 0120-527196 Fax: 03-5472-2977