連載
» 2008年10月17日 00時00分 UPDATE

車載ネットワーク“CANの仕組み”教えます(5):総まとめ、活用・トラブル事例から学ぶCAN (1/3)

実務でCANの設計・開発を行う際に役立つポイントを紹介。また、CANに関連するキーワードとその特徴をまとめて解説する

[増田浩史(ベクター・ジャパン),@IT MONOist]

 これまで「CAN(Controller Area Network)」のプロトコルや物理層の仕組みなど、CANを実装するための基礎知識について解説してきたが、これだけでは実務で「CANをどのように使うべきか?」「どのように設計するべきか?」といった具体的なイメージを把握し切れなかったのではないだろうか。

 こうした読者のために今回は、実際にCANを採用するときに必要となる知識・ポイントについて事例を交えながら解説するとともに、CANプロトコル全般のまとめを行い、実務でCANの設計・開発、採用を検討するための基礎を伝授したいと思う。

CANの適用範囲

――本題に入る前に、

 【序章】「ベンツ SクラスではじまるCAN普及の歴史」でも少し触れたが、現在CANは自動車用途だけではなくさまざまな分野で使用されている。ここでもう一度、CANの適用範囲について確認しておこう。

 CANの適用範囲には、主に標準フォーマットで使用される普通乗用車向けの「CAN」と、拡張フォーマットで使用される大型車向けの「J1939」がある。また、CANをベースとした「CANopen」というプロトコルもあり、こちらは主に産業機器向けに使用されている(図1)。

CANの適用範囲 図1 CANの適用範囲
※画像提供:ベクター・ジャパン

 このように、CANはほぼすべての自動車(普通乗用車、大型車など)に採用されている通信プロトコルであり、さらには、産業機器やFA(Factory Automation)などにも活用されている。本連載では、車載ネットワーク(普通乗用車用)としてのCANを中心に解説を行ってきたが、ここできちんとCANの仕組みを理解できれば、自動車以外の用途でのCAN設計・開発業務にも必ずや役に立つはずだ。

 それでは、CANの適用範囲を再認識できたところで、普通自動車における具体的なCANの利用・知識、実務で役立つ事例について紹介していこう。

CANデータの解析

 開発中に何度も行う作業の1つが“通信内容の解析”だろう。ここでは、CANデータの解析に必要な手順について、具体例を交えながら解説する。

 まずは、一般的な測定機器を使用した通信内容の解析から見ていこう。

 一般的な測定機器での通信内容の解析は、通信波形(図2)の収録から始まる。そして、通信速度より1ビットの長さを求め、収録した通信波形を「1」「0」に置き換え、それをフォーマットに従い16進数データに変換して(図3)、通信仕様と比較することでデータ解析を行う。

CANの通信波形 図2 CANの通信波形
※画像提供:ベクター・ジャパン
ビット変換 図3 ビット変換
※ベクター・ジャパンの資料を基に作成

 車載ネットワーク用測定機器がない場合、このように一般的な測定機器を用いることがよくある。しかし、こうした一般的な測定機器では信号特性の確認こそ可能だが、10ミリ秒周期などで送信・更新されるデータをリアルタイムで解析することは非常に難しい。

 一方、車載ネットワーク用測定機器は現在、ハードウェア主体のものや、PC上で稼働するソフトウェアとインターフェイスとなるハードウェアを組み合わせたものなどが主流となっており、一般的な測定機器を用いるよりも簡単にデータを取得できる。しかし、通信波形と通信仕様との比較を行わなければならないという点においては、一般的な測定機器と変わらない。

 こうした通信波形と通信仕様とを比較するための仕組みとして用いられるのが「CANデータベース」だ(図4)。これにより、送信・更新されるデータの解析をリアルタイムかつ自動で行うことができるだけでなく、複数名での開発の際、同一のCANデータベースを使用できるため、それぞれの仕様理解の違いによる影響を最小限に抑えられる。また、CANデータベースを変更するだけで、同じ車載ネットワーク用測定機器での仕様変更が可能になるため、使い慣れた環境をそのまま別の開発ですぐに使用できるなどのメリットがある。

CANデータベース 図4 CANデータベース
※ベクター・ジャパンの「Vector CANdb++エディタ」で表示(画像提供:ベクター・ジャパン)

 それでは、CANデータベースの中身がどのようになっているのかを詳しく見ていこう。

 基本的に、CANデータベースはCAN通信仕様を測定機器で読み込める形に置き換えたもので、通信仕様と同一の内容となっている。

 CANデータベースでは、一般的にCANのデータフレームを「メッセージ」として表現する。また、設計者はデータフレーム内のデータフィールド(最大8バイト)をどのような形で使用するかを自由に設定でき、1バイトデータ、2バイトデータ、1ビットデータなどの混在が自由に行える。これら個々のデータのことを一般的に「シグナル」と表現する(図5)。

メッセージとシグナルの関係 図5 メッセージとシグナルの関係
※ベクター・ジャパンの資料を基に作成

 メッセージでは、「ID」「メッセージ名」「DLC」「フォーマット」「含まれるシグナル」「送信ノード」「各シグナルのメッセージ内での配置」などの定義が可能である。

 シグナルでは、CAN上に流れるデータと実際の値(例:km/h、Nmなどの物理値)との違いが散見される。これは“シグナル値が「1」変化したら、「0.25km/h」の変化とする”などのシグナル値の分解能(1ビット当たりの値)、シグナルの物理値の範囲によって必要となるオフセットなどが影響を与えている。CANデータベースにおいては、シグナル定義時に分解能を「ファクタ」、オフセットを「オフセット」として定義できる。ほかには、「シグナル名」「シグナル長」「バイト順」「最小・最大値」「単位」などの定義が可能である。

 ネットワークノードでは、「ノード名」「受信するシグナル」「ネットワークマネジメント関係」の定義などが可能である。

 これらの情報を含むCANデータベースを使用することで、いろいろなCANデータの解析が簡単に行える。図6はCANデータベース未使用時と使用時の違いを車載ネットワーク用測定ソフトウェアで示したものである。ID、DLC、データフィールドなどの内容を16進数で表示するよりも、CANデータベースを使用して通信仕様と同じ内容で表示した方が簡単に解析を行える(図7)。

CANデータベース未使用時と使用時の違い 図6 CANデータベース未使用時と使用時の違い
※画像提供:ベクター・ジャパン
解析画面の例 図7 解析画面の例
※ベクター・ジャパンの「CANoe」で表示(画像提供:ベクター・ジャパン)

 ただし、自動車メーカー各社で通信仕様が異なるため、ほとんどの場合、CANデータベースの内容も各社別々のものとなっているので注意が必要だ。

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.