車載ネットワーク(4)CANのマルチマスタとシングルマスタ

CAN は、複数のマスタノードが1組のバスラインに接続される「マルチマスタ」方式だ。全てのノードはバス接続され、送信データを全ノードが共有する。マルチマスタ方式は、平等にバスにアクセスでき、バスに空きがあればどのノードも通信を開始できる。送受信の自由度が高い反面、衝突を回避するための「制御権の調停」が必要になる。CAN はマルチマスタ方式だが、LIN はシングルマスタ方式だ。

シングルマスタ

シングルマスタ方式は、バス上で唯一のマスタが全ての送受信を制御する。マスタからスレーブへの送信では、マスタが指定した特定のスレーブにのみデータを送信するケースと、全員に同じデータを同報するケースがある。

図1 のように、スレーブからの受信では、マスタは特定のスレーブ(スレーブ 2)に送信を要求し、指定されたスレーブはバス上にデータを送信しマスタが受信する。この通信には無関係な「スレーブ 1」は、受信データを廃棄し無視する。

シングルマスタ動作例
図1 シングルマスタ動作例

マルチマスタ

マルチマスタ方式は、複数のマスタノードがバス上にあり、バスの送信権を奪い合う方式だ。基本的には「早い者勝ち」で送信権を獲得するが、同時に送信権獲得が始まった場合は、調停が必要になる。一般的な送信権の調停は、一定の調停時間後通信を開始するが、CAN は CSMA/CA または CSAM/CR と呼ばれる時間ロスのないアクセス制御(調停方法)を採用し効率を改善している。ハード・リアルタイム性を追求する車載ネットワークならではの工夫だ。調停方法は後ほど詳しく説明したい。

マルチマスタ方式は1台のノードが「マスタ機能」と「スレーブ機能」の両方を持つのが一般的だ。図2 は3台のノードの送信権獲得が同時に始まり、ノード1 が勝者になり、ノード1 はノード3 にデータ送信を要求する例だ。次のような手順で動作する。

  • ノード1/2/3 が同時に送信権獲得を開始
  • ノード1 が送信権獲得競争に勝ち「マスタ」になる
  • ノード1 は、ノード3 にデータ送信要求を送る。この時、ノード2/3 は「スレーブ」
  • ノード2/3 はノード1 の送信要求を受信する。ノード3 は自分宛てと判断し受け取り、ノー ド2 は自分宛てでないため廃棄
  • ノード3 は、送信権を獲得後「マスタ」になり、ノード1 あてのデータを送信する
  • ノード1/2 はスレーブとしてデータを受信する。ノード1 は自分宛てと判断し受け取り、 ノード2 は自分宛てでないため廃棄
マルチマスタ動作例
図2 マルチマスタ動作例

CAN のアクセス制御は CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)と呼ぶ。WiFi などの無線 LAN の制御方式でもある。この方式は、キャリア信号を検出すると、キャリア信号が無くなるまで待ち、さらにランダムな待ち時間を挿入し、その後再度送信を行う方式だ。ランダムな待ち時間を設定することで、再衝突を避けるのが狙いだ。
CAN は待ち時間を挿入しないので、CSMA/CA には少し違和感がある。 CSMA/CR(Carrier Sense Multiple Access/Collision Resolution)と説明する場合がある。衝突時点で問題を解決するという意味合いだが、こちらの方が実際の動作に近い。

車載ネットワーク

この記事を書いた人

岩崎 有平

早稲田大学 理工学部 電子通信学科にて通信工学を専攻。
安立電気(現 アンリツ)に入社後、コンピュータ周辺機器の開発を経てネットワーク機器の開発やプロモーションに従事する。
おもにEthernetを利用したリアルタイム監視映像配信サービスの実現や、重要データの優先配信、映像ストリームの安定配信に向けた機器の開発行い、Video On Demandや金融機関のネットワークシステム安定化に注力した。
現在は、Ethernetにおけるリアルタイム機能の強化・開発と普及に向けて、Ethernet TSNの普及活動を行っている。