CAN通信におけるデータ送信の仕組みとは?:車載ネットワーク“CANの仕組み”教えます(2)(3/3 ページ)
CANを理解するうえで欠かせないフレーム。今回はデータフレームとリモートフレームの構造や使われ方、通信調停を解説する
通信調停
CANで採用しているCSMA/CAでは、バス使用中に他ノードはデータフレームやリモートフレームを送信することができない仕様になっている。
しかし、実際には複数ノードから同時に送信されてしまうことを防ぐことができない。そのため、通信調停を行う必要がある。
CANにおいて通信調停に使用されるのは図6のIDとRTRだ(ここでは標準フォーマットを例に解説する)。
それでは、実際の通信調停がどのように行われているのかを見てみよう。
図7に、ID 0x653と0x65Bの2台のノードより同時にデータフレームが送信された場合を示す。
同時にデータフレームが送信される場合、複数ノードからの開始位置は同一となる。はじめにSOFが送信されるが、SOFは1ビット長のドミナント固定となっており、バスの状態はドミナントとなる。
各ノードは自身が送信したものとバス状態をモニターし比較するが、SOFにおいては各ノード自身が送信した内容のままになっていると判断し送信を継続する。
続いて、IDが1ビットずつ送信されるが、送信中の複数ノードの送信ビットが同一、例えば複数ノードからリセッシブが送信されればバスはリセッシブとなり、送信した内容そのままとなる。
リセッシブとドミナントが別々のノードより同時に送信された場合、ドミナントが優先され、バスの状態はドミナントとなる。このとき、リセッシブを送信したノードは自身が送信したものとバス状態の違いにより、通信調停に負けたことを検出し送信を停止する。
このことより、複数ノードから同時送信が起こってしまった場合、他ノードがリセッシブ送信を行っているときにドミナントを送信したノードが通信調停に勝つので、優先順位が高いIDは0x0であり、IDの値が小さいものほど優先順位が高くなる。
IDの割り当てについてはデータフレームのデータフィールドの割り当てと同様に、設計者が自由に割り当てできるが、通信調停時の優先順位の関係で重要度の高いものはIDの値を小さくするなど、ネットワーク全体を考慮する必要がある。
基本的にはIDのみで通信調停が行えるが、なぜRTRも通信調停に使用するのか? それは、同じIDのデータフレームとリモートフレームが同時に送信された場合、IDのみでは調停は行えないからである。このようなことが起きた場合、IDだけではなくRTRも使用して通信調停を行うが、データフレームではRTRはドミナント、リモートフレームではRTRはリセッシブであるため、データフレームが優先されることになる。
さて、次回は残る2つのフレーム「オーバーロードフレーム」と「エラーフレーム」と、エラー処理について解説する予定だ。(次回に続く)
ベクター・ジャパン株式会社 トレーニング部 チームリーダー
https://www.vector.com/jp/ja/
https://vector-academy.com/vj_training_jp.html
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 次世代の車載ネットワーク「CAN FD」とは
セキュリティ対応や自動運転などの車両の高機能化に伴い、より高速な車載ネットワークが求められている。本稿では次世代の車載ネットワークの1つとして考えられているCAN FD導入の背景やプロトコルの概要ついて紹介する。 - いまさら聞けない 車載ネットワーク入門
ますます高度化するカーエレクトロニクス。その土台を支える車載ネットワークも用途に応じて多くの仕様に細分化されている - 連載記事「車載ネットワーク『LIN』入門」
- 連載記事「次世代車載ネットワーク FlexRay入門」
- 「車載ネットワーク」記事一覧