CANとは
CAN(Controller Area Network)oller Area Network)は、主に自動車、医療機器、FA機器、産業機器などなど様々な分野で採用されているシリアル通信プロトコルである。
CANはISO(国際標準化機構)によって、ISO11898、ISO11519として規格化されている。
#CANの始まり
1970年代に自働車の低コスト、低公害(排気ガス等)、安全性等の向上を目指して電子化が進んでいた。様々な電子制御システムが開発されたが、統一規格がないため複数のバスラインが構成され、配線が増加した。配線の重量やスペースも大きくなるなどの負担が増えたため、「配線の削減」、「複数LANでの大容量高速通信」を実現するために車載ネットワーク用に開発されたのが始まりである。
現在では、CAN以外に「LIN(Local Interconnect Network)」、「「MOST(Media
Oriented System Transport)」、「FlexRay」、「Ethernet」などの通信規格がある。
また、自動運転などによって通信需要が増えたため、近年ではCANの拡張、上位版である「CAN FD(CAN with Flexible Data rate)」プロトコルも登場した。
CANの特徴
1.ライン型ネットワーク(バス型?)
ネットワークにつながる様々な通信機器はノードと呼ばれる。複数ノードを繋げてネットワークを構築する方法には、スター型、リング型などがある。CANではライン型を採用しており、シンプルにネットワークを構築できる。元々配線の複雑さや増加を解消するためにCANが開発されたため、配線設計を比較的容易に、ラインの追加削除も容易に行えるライン型が採用されている。
2.マルチマスター方式
バス(通信経路)が空いているときは、バスに接続されているすべてのノードが各ノードに対してバスアクセスが可能となっている。メリットとして、「優劣がないため、均一な設計が行える」、「優劣がないため、イベント指向通信に向いている」、「ノードの追加が容易になる」が挙げられる。
3.CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)
上記、マルチマスター方式によって各ノードがバスが空いているときに同時にメッセージを送ろうとする場合がある。同時にメッセージを送信するとメッセージが衝突し、通信に影響がでてしまう。
メッセージの衝突を減らすため、CANではCSMA/CAが採用されている。CSMA/CAは、メッセージにIDを付与することでIDの優先順位によってメッセージの送信を遅らせたりする。このIDの比較を通信調停(アービトレーション)という。
4.耐ノイズ性
車載ネットワークに使用するために開発されたため、信頼性の高い通信規格である必要があった。外部からのノイズも多いため、その影響を受けないように「2線式作動電圧方式」が採用されている。
通常は1本線のみで電圧レベルによって0-1を判定するが、外部ノイズによって誤判定を起こしやすい。2線式作動電圧方式では、2本線を用いてそれぞれに流れる電圧差を用いて0-1を判定するため、外部ノイズの影響を受けにくくしている。
5.その他
その他にもエラー検出機能や、様々あるが割愛!
用語関連
ドミナント/レセシブ
CAN通信は、デジタル信号"0","1"で行われる。"0"を「ドミナント(優勢)」、"1"を「レセシブ(劣勢)」と表し、CAN様々な仕様や機能はこのドミナントとレセシブが大きく関係する。
バスアイドル
CANは通信を行っていない場合、レセシブとなっている。この状態のことを「バスアイドル」という。
DLC
DLCはデータレングスコードと呼ばれ、送信するデータの大きさ(Byte)を示す。0~8Byteの間で設定ができる。
CRC
CRCは、データ送信におけるデータの誤りや破損を検出する。ただ、データの改ざん等に対する耐性はない。
最後に
フレームタイプ、CANの上位プロトコルであるJ1939、High Speed CANとLow Speed CANなどなど書こうと思えば幾らでもあるが一旦ここまで。