2015年10月29日木曜日

CANとはなにか?

Controller Area Network (CAN) は、相互接続された機器間のデータ転送に使われる規格です。耐ノイズ性の強化を考慮して設計されています。CANにはそのほかにも特徴があります。

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

これらがCANの特徴となっています。

CANは自動車において、速度、エンジンの回転数、ブレーキの状態、故障診断の情報などの優先度の高いデータの機器間の転送に使用されています。優先度の低いパワーウィンドウやエアコンなどには一般的にLINというものが使われています。

一言でいうと・・・
・・・CANは車の機器間の通信に使われるネットワークの名前。CANは高性能だけど実装するのに結構お金がかかる。それに対してLINは安価。

CANバスとはなにか。

CANバスは自動車のなかで各制御装置をつなぐもので、バスの停留所をつなぐように各制御装置をつなぐことからCANバスと名づけられました。なので英語のつづりもそのまま CAN bus です。

CANバスにおいてはそれぞれの機器がネットワークに接続し、そのネットワークを利用して双方向のデータ通信を行います。これによって車のかつて搭載されていた配線を大幅に減らし、なおかつ従来のシステムよりも応用範囲を大幅に広げることができました。

一言で言えば・・・
・・・車載ネットワークの目的は車内の複雑な配線を解消すること。CANはその車載ネットワークのひとつ。CANバスはそのCANというネットワークを利用したもの。

CANバスの技術的な話について

ネットワークに接続しているデバイスのことをノードといいます。ネットワークといえばインターネットが一番に思い浮かぶと思いますが、CANはもっとローカルな閉じたネットワークです。CANバスにおいてはそれぞれの機器がノードとなりネットワークに接続します。

CANバスにおいてはすべてのノードがあらゆるメッセージを受信します。ある特定のノードだけにメッセージを送る方法は存在しません。しかし、メッセージを受信したからといって、すべてのノードがすべてのデータに逐一反応するわけではありません。CANのハードウェアがデータのふるいわけをするので各ノードにとって重要なメッセージにのみ各ノードは反応します。

メッセージについて
CANバスではノードが送受信するメッセージのことをフレームといったりします。CANバスで4つの異なるフレーム(メッセージ)のタイプがあります。

1、データフレーム
2、リモートフレーム
3、エラーフレーム
4、オーバーロードフレーム

データフレームについて

データフレームはもっとも一般的なフレームタイプです。
データフレームは次のような要素から構成されます。

・Arbitration field 2つ以上のデータが同時にデータの送信をした(データの衝突)場合に優先度の高いデータを先にアクセスさせます。
・Data field 0から8バイトのデータが入っています。
・CRC field エラーの検出に使われる15ビットのChecksumが含まれます。
・Acknowledgement Slot これはデータが正常に受信された場合にのみ送信されます。正常な受信に成功したすべてのCANコントローラーがこのAcknowledgement bitを送信します。Acknowledgement bitが送信側に送られてこなかった場合、送信側はもう一度データを送信します。