CAN には、データフレーム/リモートフレーム/オーバーロードフレーム/エラーフレームの4種類のフレームタイプがある。データフレームには標準フォーマットと拡張フォーマットの2種類がある。両者の違いは、識別コード(ID)の長さだ。標準フォーマットは 11 ビットの識別コード、拡張フォーマットには 29 ビットの識別コードがある。

名称 | 概要 |
---|---|
データフレーム | 通常のデータ送信フレーム(標準/拡張フォーマット) |
リモートフレーム | データフレーム送信要求 |
エラーフレーム | エラーを他のノードに通知 |
オーバーロードフレーム | 前回のフレーム処理が完了していないことを通知 |
CANの元々の考え方は、データを必要とするマスタノードがリモートフレーム(送信要求)を送信し、要求されたスレーブノードがデータフレームを返すというハンドシェーク方式だ(図2 ハンドシェーク動作)。この方式は、送受信に必要なときのみノード内のプロセッサが起動し、プロセッサリソースの無駄がない。バス上も最低限必要な送受信フレームだけになり、無駄なフレームの送受信はなくなる。データの更新頻度が低い場合は、効率の良い方法だ。
しかし、データの更新頻度が高くなると状況が変わる。必要なデータフレームの数と同じ数のリモートフレームが必要であるため、バスの使用効率は悪くなる。リモートフレームの送信をやめ、データフレームを定期的に送るポーリングの方がバス使用率を改善できる。ポーリング方式は、無駄なデータを送受信する可能性があるが、データ更新間隔が短くなると無駄なデータを取り込む確率が下がる。現在では、プロセッサの性能が向上し、ボトルネックにならないこともあり、リモートフレームを使用せずデータフレームのみで通信するポーリング方式が主流だ(図2 ポーリング動作)。

CSMA/CR
CAN は、マルチマスタ方式だ。同時に複数のノードがバスにメッセージを送信すると衝突が起き、データは壊れる。バスの競合を回避するために、 CAN は CSMA/CR(Carrier Sense Multiple Access/Collision Resolution) と呼ばれる調停方法を使用している。バスの調停方法は、調停後に勝者に送信権を渡すのが一般的だが、CAN はデータ送信と同時進行で調停を行う方式だ。調停プロセスで帯域を消費しない効率の良い手法だ。
CSMA/CR の基本動作は次のようになっている。
誰もデータを送信していないことを確認する
誰もデータを送信していないならば、送信準備を完了している複数のノードが送信を開始する。
自分自身が送信したデータと異なるデータを受信することで、衝突を検出できる。衝突はフレーム先頭部の「識別部(ノード番号)」で起きる。調停で勝利したノードは送信を続け、敗退したノードは送信を停止する。識別部は、ノードの識別番号(ID)そのものであるため、そのまま送信を続けることができる。調停は識別部の範囲で行うため、後に続くデータ部は破壊されない。
CAN の衝突解決手順を図3 の例で説明したい。

- CAN バスは空き状態で誰も送信していない。
- 送信できるデータを持つノード A は、CAN バスの空きを確認し、送信開始。送信中は、信号衝突やエラーは発生していない。
- ノード A の送信が終わり、CAN バスは空き状態。
- 送信できるデータを持つノード B は、CAN バスの空きを確認し、送信開始。送信中は、信号衝突やエラーは発生していない。ノードA は、ノードB 送信開始時点で、送信準備ができていないため競合しない。
- ノード B の送信が終わり、CAN バスは空き状態。
- ノード A とノード B はいずれも、送信できるデータを持っている。いずれのノードも CAN バスの空きを確認し、送信を開始する。同時に送信を開始するため、ノード A/B の調停部の信号が衝突し、調停が始まる。調停の結果、ノード A が勝利し、送信を続ける。 ノード B は敗退し、送信を停止する。データ部は衝突がないため、ノード A は無事データを送信を完了する。
- CAN バスは空き状態で誰も送信していない。
- 敗退し待ち状態のノード B は、 CAN バスの空きを確認し、再送信開始。送信中は、信号衝突やエラーは発生していない。
[6]で信号が衝突したにもかかわらず、勝利したノード A の識別部(ID)は破壊されず、無事に送信を完了する。これこそが、バスの Wired OR 機能を使ったCAN 特有のユニークな調停方法だ。調停方法の詳細はこれから説明したい。また、Wired OR の仕組みは後ほど説明する。
衝突時の調停
CSMA/CR は、バス使用中に他のノードがデータフレームやリモートフレームを送信することはできない。しかし、複数のノードが同時に送信開始することを防ぐことができない。複数ノードが同時にデータフレームやリモートフレームを送信した場合、「衝突時の調停」を行い、勝者に送信権を与え敗者が引き下がる工夫が必要になる。
衝突時の優先度は、調停部の ID(Arbitration Field)と RTR で決まる。優先度は、ID の値が小さい方が強く、大きい方が弱い。標準フォーマットの優先度を決定する領域を、図3 に示す。ここで注意しなければならないのは、CAN では MSB(最上位ビット)から出力されることだ。一般的な通信や LIN では、LSB(最下位ビット)から出力する。順序が真逆だ。

複数のノードが同時に送信を開始した場合の調停を説明したい。バス接続では、バスの信号状態を常に監視することができる。また、複数ノードが送信した信号が全てリセッシブ(「1」)ならば、バス上もリセッシブになるが、1本でもドミナント(「0」)があると、バスはドミナントになる。Wired OR の原理だ。
SOF を検出するとフレームの送受信が始まる。調停の仕組みは、先頭の1ビット目(ID 10)から始まる。自分が送信した信号レベルとバス上をモニターした信号レベルが一致すれば、送信を継続する。送信した信号レベルとバスをモニターした信号レベルが異なると、「調停に敗退」したと判断し送信をやめる。ID 10 から始まり調停領域最後の RTR までこれを繰り返す。送信信号とバスをモニターした信号が全て一致し、送信を継続したノードが勝者となり、フレームを最後まで送信することになる。
つまり、他のノードがリセッシブ(「1」)を送信しているときに、ドミナント(「0」)を送信したノードが勝者になる仕組みだ。最強のノードは、全てのビットがドミナント(全ビットが「0」)のノードで、ID の値が小さいほど優先順位が高い。ID の値は設計者が自由に設定でき、 CAN は、重要度の高いノードに、より小さい ID を与えることで優先度をコントロールすることができる。
具体例で、「調停」の動きを確認したい。図5 は3台のノード(A/B/C)が同時にデータフレームを送信開始した例だ。各ノードが送信する ID の値は表2 、同時送信時の挙動は表3 だ。

SOF | ID 10 | ID 9 | ID 8 | ID 7 | ID 6 | ID 5 | ID 4 | ID 3 | ID 2 | ID 1 | ID 0 | RTR | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ノード A | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 0 |
ノード B | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
ノード C | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
SOF | ID 10 | ID 9 | ID 8 | ID 7 | ID 6 | ID 5 | ID 4 | ID 3 | ID 2 | ID 1 | ID 0 | RTR | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ノード A | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | × | × |
ノード B | 0 | 1 | 1 | 0 | 1 | × | × | × | × | × | × | × | × |
ノード C | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
バス | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
ID7 で敗退したノードBは、ID6 から送信停止(x:リスニング状態)
ID1 で敗退したノードAは、ID0 から送信停止(x:リスニング状態) 調停で敗北したノードは、敗北を認識した次のビットから「リスニング状態」に遷移最後まで勝利したノードCは、ID+RTR を最後まで送信し、送受信を継続できる
先ず SOF が送信される。SOF は1ビット長のドミナントで、バスの状態もドミナントになっている。3台のノードは、送信した内容とモニターしたバスの状態が同じであるため、送信を継続する。ID 10 ~ ID 8 までは、この状態が続き、全てのノードは送信を続ける。
ID 7 で状況が変わる。ノード A とノード C は、ドミナント(「0」)で、ノード B はリ セッシブ(「1」)を送信した。バス上はドミナントになり、ノード B は送信信号とモニターした受信信号が異なるため、調停に敗退し、送信を停止しリスニング状態になる。これで、ノード B は調停の場から姿を消すことになる。
ID 6 ~ ID 2 までは、ノード A/C は同じデータを送信しているので、状態は変化しない。 ID 1 で、ノード A はリセッシブ、ノード C はドミナントを送信し、バスはドミナントになる。ここでノード A は敗退し、送信を停止しリスニング状態になる。この時点で、調停の勝者はノード C に決定する。
本来、衝突時の調停は ID のみで実行できるが、同じ ID のデータフレームとリモートフ レームが同時に送信された場合調停できない。そこで、RTR を調停の対象に加えることになった。データフレームの RTR はドミナント、リモートフレームの RTR はリセッシブであるため、データフレームの優先度が高い。
CAN には標準フォーマットと拡張フォーマットがある。拡張フォーマットは、調停用の ID が 29 ビットに拡張されている。2種類のフォーマットが同時に送信を開始した場合も問題は起きない。先頭の 11 ビットの ID が同じ場合でも、次の RTR(標準データフレーム)がドミナントで、拡張フォーマットの同じ場所(SRR)はリセッシブだ。必ず、標準フォーマットが勝つ仕組みになっている(図6)。

車載ネットワーク
-
4.車載ネットワーク
車載ネットワーク(1)変遷
自動車の基本的な機能(走る・曲がる・止まるなど)は、機械や油圧などの機能ごとの比較的単純な制御だった。アクセルペダルを踏めば加速し、ブレーキペダルを踏めば車が止まる。排ガス規制やエンジン高性能化の要求が強くなり、エンジン […] -
4.車載ネットワーク
車載ネットワーク(2)社会の変化と技術トレンド
社会の変化 2020年代に入り、自動車制御は大きく変わった。自動運転の進展が大きな要因だ。条件付きで自動運転を可能とする自動運転レベル3や、無人運転を可能にする自動運転レベル4が登場した(表1)。自動運転レベルの基準は米 […] -
4.車載ネットワーク
車載ネットワーク(3)CAN規格の歴史と概要
CAN 規格の歴史 CAN(Controller Area Network)は、、1983年にBosch社が開発した通信プロトコルだ。1986年に公式発表され、1987年に販売を開始した。CAN は数度に渡り規格が改定さ […] -
4.車載ネットワーク
車載ネットワーク(4)CANのマルチマスタとシングルマスタ
CAN は、複数のマスタノードが1組のバスラインに接続される「マルチマスタ」方式だ。全てのノードはバス接続され、送信データを全ノードが共有する。マルチマスタ方式は、平等にバスにアクセスでき、バスに空きがあればどのノードも […] -
4.車載ネットワーク
車載ネットワーク(5)CAN 通信手順とCSMA/CR 衝突時の調停
CAN には、データフレーム/リモートフレーム/オーバーロードフレーム/エラーフレームの4種類のフレームタイプがある。データフレームには標準フォーマットと拡張フォーマットの2種類がある。両者の違いは、識別コード(ID)の […] -
4.車載ネットワーク
車載ネットワーク(6)CAN 通信手順とフレーム構造
CAN には、データフレーム/リモートフレーム/オーバーロードフレーム/エラーフレームの4 種類のフレームタイプがある(表1)。 名称概要データフレーム通常のデータ送信フレーム(標準/拡張フォーマット)リモートフレームデ […] -
4.車載ネットワーク
車載ネットワーク(7)CAN 通信手順とエラー処理
車載ネットワークは、オフィスネットワークに比べ格段に環境条件が厳しい。CAN は平衡伝送方式で比較的ノイズに強いが、GND は不安定で電気的にも厳しい環境だ。障害発生時も、ネットワーク全体を停止させることは危険だ。一部の […] -
4.車載ネットワーク
車載ネットワーク(8)CAN ハードウェア
40年前の技術の影響 40年前に開発された CAN の仕様は、当時の技術を強く反映している。当時のマイクロプロセッサは、 8ビット処理でクロックも4MHzや8MHz 程度であった。メモリーも非常に高価で容量も4キロバイト […] -
4.車載ネットワーク
車載ネットワーク(10)LIN ハードウェア
トポロジ ネットワークに接続する通信機器を「ノード」と呼び、複数のノードを相互接続しネットワークを構成する方法を「トポロジ」と呼ぶ。車載ネットワークでは、ECU( Electronic Control Unit )がノー […] -
4.車載ネットワーク
車載ネットワーク(9)LINの規格概要
LIN規格 LIN(Local Interconnect Network)は、車載ネットワークのコストダウンを目的に、LIN コンソーシアムで策定された通信規格だ。LIN コンソーシアムは、欧州の自動車メーカや半導体メー […] -
4.車載ネットワーク
車載ネットワーク(11)LIN 通信手順
マスタタスクとスレーブタスク LIN は1つのマスタノードと複数のスレーブノードで構成され、唯一のマスタノードが、ネットワーク全体の通信を制御する方式だ。ネットワーク上での衝突や調停(Arbitration)をなくし、低 […] -
4.車載ネットワーク
車載ネットワーク(12)LINのフレーム構造
LIN フレームは、マスタタスクが送信する「ヘッダ」部と、スレーブタスクが送信する「レスポンス」部で構成される(図1)。ヘッダ部は次の5つで構成される。 (1) Break fieldフレームの区切り(13ビット以上)( […] -
4.車載ネットワーク
車載ネットワーク(13)LINの節電機能・エラー処理・発振子
節電機能 車載ネットワークでは「節電」は重要なテーマだ。限られたバッテリー電力と発電量の範囲内で動作しなければならない。LIN は限られた電力を有効に使うため、「ネットワーク管理」として Sleep と Wake Up […] -
4.車載ネットワーク
基礎から学ぶ車載 Ethernet 技術(1)車載 Ethernet 物理層
概要 Ethernet を底辺で支えているのが物理層だ。物理層の基本機能は、0と1で表現されるデジタルデータを電気信号や光パルスに変換し媒体を介して通信することだ。OSI 階層では最下層に相当する。第2層以上の論理層と最 […] -
4.車載ネットワーク
基礎から学ぶ車載 Ethernet 技術(2)SPE( Single twisted Pair Ethernet )
SPE( Single twisted Pair Ethernet ) 従来の汎用 Ethernet は、RJ45 コネクタと 2対または 4対の UTP ケーブルで機器間を 1対1 接続するトポロジを採用している。車載 […] -
4.車載ネットワーク
基礎から学ぶ車載 Ethernet 技術(3)物理層規格
解説対象規格 Ethernet は40年以上に渡り規格が追加・修正された歴史がある。10Mbps の 10BASE5 から始まり、400Gbpsまで拡張されている。車載ネットワークを対象とする 10Mbps から1000 […] -
4.車載ネットワーク
基礎から学ぶ車載 Ethernet 技術(4)「10BASE-T1S」 概要
10BASE-T1 登場の背景 汎用 Ethernet はオフィス、産業分野や通信キャリアで広く使われている業界標準の通信規格だ。パソコンやプリンタなどの機器にも標準実装されている。技術的にも完成し最も低価格な通信方式の […] -
4.車載ネットワーク
基礎から学ぶ車載 Ethernet 技術(5)「10BASE-T1S」 4B5B/DME/PAM2 変換 / フレーム構造
4B5B/DME/PAM2 変換 汎用 Ethernet の 10BASE5/2/-T は、伝送路上のフレーム間ギャップは無信号状態になっている。これは、1本の伝送路を複数ノードで共有する方式のため、信号の衝突を避けるた […] -
4.車載ネットワーク
基礎から学ぶ車載 Ethernet 技術(6)「10BASE-T1S」 PLCA
PLCA 10BASE-T1S のマルチドロップ環境(Mixing Segment)では、複数ノードが半 2重通信でバス接続される。複数のノードが同時に通信を開始しようとした場合に衝突回避のため、衝突回避機能 PLCA( […] -
4.車載ネットワーク
基礎から学ぶ車載 Ethernet 技術(7)「100BASE-T1 」概要
100BASE-T1 登場の背景 永年に渡り車載ネットワークの主役は CAN だ。2012年に CAN FD が公開されるまでは、CAN の伝送速度は 1Mbps だった。2002年に CAN より高速な FlexRay […] -
4.車載ネットワーク
基礎から学ぶ車載 Ethernet 技術(8)「100BASE-T1 」4B3B/3B2T/PAM3 変換 / フレーム構造
4B3B/3B2T/PAM3 変換 初期の 10BASE5/2/-T は、伝送路上のフレーム間ギャップは無信号状態になっている。これは、1本の伝送路を複数ノードで共有するバス方式のため信号の衝突を避けるためにはデータを送 […] -
4.車載ネットワーク
基礎から学ぶ車載 Ethernet 技術(9)「100BASE-T1 」スクランブラ
スクランブラ スクランブラは、100BASE-T1 が動作時にコネクタやケーブルから放射する妨害波(EMI)を抑えるために実装された機能だ。電磁妨害波が他の機器の誤動作を引き起こすため、米国の FCC や日本の VCCI […] -
4.車載ネットワーク
基礎から学ぶ車載 Ethernet 技術(10)「1000BASE-T1」概要
1000BASE-T1 登場の背景 2015年に 100BASE-T1 の標準化が完了したが、当時から 100Mbps では帯域不足との指摘があった。主な理由はカメラ映像の伝送だ。既に実用化された 100BASE-T1 […] -
4.車載ネットワーク
基礎から学ぶ車載 Ethernet 技術(11)「1000BASE-T1」符号変換の概要 80B81B / RS FEC
初期の 10BASE5/2/-T は、伝送路上のフレーム間ギャップは無信号状態になっている。これは1本の伝送路を複数ノードで共有するバス方式のため、信号の衝突を避けるにはデータを送信していない期間を無信号にする必要がある […] -
4.車載ネットワーク
基礎から学ぶ車載 Ethernet 技術(12)「1000BASE-T1」符号変換 スクランブル/3B2T/PAM3 変換
3B2T/PAM3 次に、3B2T/PAM3 変換の手順を説明する。 「図1 1000BASE-T1 符号化処理」は、3B2T/PAM3 の一連の信号変換の例だ。伝送クロックは 750MHz で、GMII の 125MH […] -
4.車載ネットワーク
基礎から学ぶ車載 Ethernet 技術(13)「1000BASE-T1」OAM / フレーム構造 / 上位層制約事項
OAM OAM(Operation / Administration / Maintenance)は、送信側 PHY と受信側 PHY がお互いの PHY リンクの健全性ステイタスを交換するために使用する。OAM は 1 […]