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

車載ネットワーク“CANの仕組み”教えます(4):実装や試験で役立つ物理層から見るCANの仕組み (1/3)

今回は「物理層」に注目し、CANの通信線の仕組みを解説。CANバスに信号を送信する際に考慮すべきポイントとは?

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

 前回までの内容で「CAN(Controller Area Network)プロトコル」について詳しく解説してきたが、今回は「物理層」部分に注目して、CANにおける通信線の仕組みを紹介する。

 これまでの制御解説と異なり、ハードウェア関連の解説が主になるが、ここでの内容をきちんと把握しておけば、実際にCANの実装や試験などを行う際に必ず役に立つはずだ。


CANバスへの接続

 まずは、各ノード(CANコントローラ)がどのようにCANバス(通信線)へ接続されるのか見てみよう。

 以下に、High Speed CANにおけるCANバスへの接続例を示す(図1)。

CANバスへの接続 図1 CANバスへの接続
※ベクター・ジャパンの資料を基に作成
  • マイクロコントローラ(マイコン)
     送信データ/受信データの処理を行う。ほかにノードの処理も行っている。
  • CANプロトコルコントローラ
     CANプロトコルの機能を実現する(ビットスタッフィング、通信調停、エラーハンドリング、CRCチェックなど)。フィルタを搭載している。
  • CANトランシーバ
     バス送信電圧の発生、調整、動作電流の確保、配線の保護を行う。
  • 終端抵抗
     反射電圧の抑制、バスレベルの調整用途で使用される。

 図1のようにCANコントローラは、CANトランシーバを介して、CANバスと接続される。High Speed CAN/Low Speed CANなど物理層での規格の差異はCANトランシーバにより吸収される。これは、どのような物理層であってもCANコントローラは影響を受けず、CANプロトコルの仕組みが共通で使用できることを意味する。

CANコントローラの分類

 続いて、CANコントローラの分類について紹介する。以下は、CANコントローラの分類を示したものだ(図2)。

CANコントローラの分類 図2 CANコントローラの分類
※ベクター・ジャパンの資料を基に作成

設置形態による違い

 「マイコンに外付け(スタンドアロン)」と「マイコンに内蔵」の2つのパターンがあるが、現在ではほとんどがマイコンに内蔵(搭載)されている。

プロトコルバージョンによる違い

 CANプロトコルには「標準フォーマット(2.0A)」と「拡張フォーマット(2.0B)」の2つの規格がある。この2つの大きな違いはメッセージIDの長さである。

メッセージマネジメントによる違い

 メッセージの送受信に関する取り扱い方式の違いにより、「Basic CAN」と「Full CAN」とに分類される。

設置形態による違い

 各半導体メーカーより、CANコントローラ機能を持たないマイコン向けのCANコントローラ単体製品やCANコントローラ機能を内蔵したマイコンなど、さまざまな製品が販売され、ユーザーの用途に応じたものが選択可能となっている。現在、販売されている車載用マイコンのほとんどの製品がCANコントローラ機能を内蔵しているため、CANの採用においてコストアップなどの影響は少ない。

プロトコルバージョンによる違い

 次に、CANのプロトコルバージョンによる違いを見てみよう(図3)。

プロトコルバージョンによる違い 図3 プロトコルバージョンによる違い
※ベクター・ジャパンの資料を基に作成

 すべてのプロトコルバージョンで標準フォーマット(2.0A)の送受信が可能である。拡張フォーマット(2.0B)については、プロトコルバージョン2.0Aでは送受信不可で、受信時にエラーフレームを送信してしまう。このため、拡張フォーマットが流れるCANバスにプロトコルバージョン2.0Aのノードが混在すると正常な通信であってもプロトコルバージョン2.0Aのノードからのエラーフレームで妨害されてしまう。

 プロトコルバージョン2.0B パッシブでは拡張フォーマットを送受信不可という点はプロトコルバージョン2.0Aと同じだが、受信時に拡張フォーマットのものを無視するため、エラーフレームを送信しない。プロトコルバージョン2.0B アクティブでは拡張フォーマットの送受信が可能である。

 以上により、拡張フォーマットを使用するCANネットワークを構成する場合、各ノードのCANコントローラはプロトコルバージョン2.0Bアクティブのみで構成する必要がある。拡張フォーマットと標準フォーマット双方を扱う場合においては、拡張フォーマットを扱わないノードはプロトコルバージョン2.0B パッシブ、拡張フォーマットを扱うノードはプロトコルバージョン2.0B アクティブを使用すれば通信に問題が発生することはない。

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.