連載
» 2008年06月16日 00時00分 UPDATE

車載ネットワーク“CANの仕組み”教えます(1):CANプロトコルを理解するための基礎知識 (1/2)

現段階においてCANは車載ネットワークの事実上の標準といえる。だからこそ、その特長と基礎をしっかり押えておきたい

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

――今回から、ベクター・ジャパン トレーニング部の増田浩史氏を筆者に迎え、連載「車載ネットワーク“CANの仕組み”教えます」の本編がスタートする。本編では、車載ネットワークで標準的に使用されている「CAN(Controller Area Network)」について、さらに詳しく解説していく予定だ。

 前回の解説のとおり、車載ネットワークの適用範囲は幅広く、パワートレイン系、ボディ系、快適装備系など実にさまざまな用途に使用されているが、「安全性」「信頼性」「コスト」「外的要因への耐性」「開発工数」など多くの要求を満たさなければならない。こうした要求に対して、これまでいろいろな通信方式が考案され、実際に使用されてきたが、本連載の主役であるCANこそが現段階における車載ネットワークの事実上の“標準”といっても過言ではない。

 さて、本編第1回となる今回は“CANプロトコルを理解するために必要な基礎知識”をテーマに解説する。そして、次回以降で“データ送信の仕組み”などについて説明する予定だ。

CANの特長

 はじめに、CANの特長を以下に示す。

  • ライン型構造
  • マルチマスター方式
  • CSMA/CA
  • IDを使用したメッセージ・アドレッシング
  • 耐ノイズ性に優れた物理層
  • エラー検出メカニズム
  • データの一貫性

 これらの項目について、どのような目的で採用されたのか? どのようなことを行っているのか? 早速解説していこう。

ライン型構造

 車載ネットワークに限らず、一般的にネットワークに接続される通信機器のことを“ノード”という。車載ネットワークでいうと「電子制御ユニット(ECU:Electronic Control Unit)」がそれに当たる。

 そして、複数のノードを接続してネットワークを実現するわけだが、その方式にもいくつかの種類がある。例えばリング型、スター型、ライン型などだ。なお、CANでは「ライン型」が採用されている(図1)。

ライン型構造図 図1 ライン型構造図
※ベクター・ジャパンの資料を基に作成

 ライン型によるネットワーク方式は、通信線(注)に各ノードを接続していくことによりネットワークを構成できるため、ネットワークがシンプルで、その設計が容易に行えるというメリットがある。車載ネットワークには、もともと“複雑な配線の解消”という目的があり、その点からしてもライン型構造は目的に合致している。

※注:通信線は、“バス(bus)”とも呼ばれ、各ノードを接続するもの。


マルチマスター方式

 CANではライン型構造で接続される各ノードに平等なバスアクセス(注)が可能な「マルチマスター方式」を採用している。

※注:バスアクセスとは、通信線へ情報を送信すること。


 マルチマスター方式を使用するメリットとしては、

  • 各ノードが均一仕様で設計できる
  • 各ノードに優劣がないため、イベント指向通信に向く
  • ノードの追加接続が容易

などが挙げられる。

 つまり、開発時には各ノードを同一仕様で設計できることに加え、データ伝達を必要な場合に送信することができ、各ノードに優劣がないため自由度の高いネットワーク構成が可能となるのだ。車載ネットワークでは、さまざまな使われ方や設計変更などのケースが考えられるため、このような自由度の高いネットワーク構成は非常に重要といえる。

CSMA/CA

 通常、複数のノードから自由にデータが送信されてしまうとデータが衝突してしまうため、“通信線が使用中であれば、データ送信をさせない”仕組みが使用されている。しかし、複数のノードから同時に通信線にデータが送信される場合には、これを防ぐことができない。

 これに対して、CANは「CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)」を採用し、複数のノードから同時に通信線へデータが送信されても、その中の“優先順位が高いものを(衝突させることなく)送信する”ようになっている。これにより、複数ノードからの同時送信が起きた場合も、重要なデータに高い優先順位を設定しておけば、確実にデータ伝達が行われるのだ(図2)。

CSMA/CA図 図2 CSMA/CA図
※ベクター・ジャパンの資料を基に作成

 例えば、エンジンECUからのデータが重要であれば、エンジンECU側にあらかじめ高優先順位を設定しておく。そうすれば、仮にエンジンECUからのデータとエアコンECUからのデータが同時に送信されても、エンジンECUからのデータは破壊されることなく通信線に送信することができる。具体的な処理方法については、次回以降に解説を行う。

IDを使用したメッセージ・アドレッシング

 IDを使用したメッセージ・アドレッシングとは、データの中に“ID(識別子)を付加して送信する”方式で、各ノード間でデータをやりとりする際に使用される。データを受信する側は、このIDにより「どのようなデータなのか?」「自分が使用するデータなのか?」を判断できる。

 また、この方式を使用することで、1つの送信ノードからのデータを複数の受信ノードが同時に受信できる。車載ネットワークで考えると、エンジンECUからのデータを、メーターECUとエアコンECUが同時に受信して、それを使用できる。つまり、複数のECUが同時に協調して制御を行うことが容易になるのだ。

耐ノイズ性に優れた物理層

 パワートレイン系に使用される「High Speed CAN(CAN-C)」では、“2線式差動電圧方式”により通信を行っている。2線式差動電圧方式とは、2本線(ツイストペア)の各線に流れる電圧の差が“ある”か“ない”かによってデータを送信する方式だ。この方式を使用することにより、外部からノイズが混入した場合でも、各線に混入するノイズの電圧はほぼ同一となる(つまり、各線の差電圧は変化しない)ため、ノイズによる影響が受けにくい(図3)。

差電圧図 図3 差電圧図
※ベクター・ジャパンの資料を基に作成

 車載機器では外部ノイズによる影響は避けて通れないが、CANではそれらの影響を受けにくくする方式を採用しているため、信頼性の高いネットワークを構築することができるのだ。

エラー検出メカニズム

 安全面を重視する車載ネットワークにおいては、“各ノードで使用されるデータが何らかの異常によって間違ったまま届き、正常な制御が行えなくなる”といった状態に陥ることは確実に避けなければならない。

 この対策として、CANではさまざまなエラー検出メカニズムを実装しており、これにより、ほぼ100%に近い確率で各種エラーを検出することが可能となっている。例えば、送信ノード自身が、送信するデータと通信線上に流れたデータが合っているかどうかを確認し、違いがある場合にはエラー検出を行うなどだ。なお、詳細なエラー検出メカニズムについては、次回以降で解説する。

データの一貫性

 車両制御において、あるタイミングで各ノードが協調し、同時に制御を行う場合がある。

 例えば、現在のエンジン回転数を使用して複数のノードが制御を行う場合、エンジンECUから各ノードにエンジン回転数のデータが送信される。通常、すべての受信側で正常に受信できれば問題ないが、もし1台のノードがエラーとなりデータを受信できなかったらどうなるだろうか?

 「受信に失敗したノードのみエンジンECUからデータを再送信してもらえばいいのでは」と思うかもしれないが、これではエンジン回転数の変化が起きた後のデータを受け取る可能性がある。つまり、各ノードで使用するエンジン回転数データが異なる恐れが出てくるわけだ。

 これに対してCANは、“もし1台のノードが受信に失敗したら、データを受信できた全ノードはそのデータを破棄し、全ノードが受信に成功するまでこれを繰り返す”ようになっている。CANではこのように、データの一貫性を保っている。

 そのほかのCANの特長としては、

  • 1回に送信できるデータ量が最大8bytes
  • 最大通信速度1Mbps

などがある。

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.