40年前の技術の影響
40年前に開発された CAN の仕様は、当時の技術を強く反映している。当時のマイクロプロセッサは、 8ビット処理でクロックも4MHzや8MHz 程度であった。メモリーも非常に高価で容量も4キロバイトや8キロバイトが当たり前の時代だった。
マイクロプロセッサには高速処理は期待できず、十分なメモリ領域も確保できなかった。例えばプロセッサの処理能力不足に対応する「オーバーロードフレーム」機能や、エラーカウンタの最大値が 255(8ビット)に制限されているあたりに、当時の事情を思い起こさせるものがある。このような事情が背景にあり、ソフトウェア処理ではなくハードウェア処理が主役の制御方式になっている。
特にバスの特性を巧みに利用した制御方式は秀逸だ。しかし、この巧妙な方式が処理速度アップの障害になっているのも事実だ。CAN が活用したバスの主な特性は次の4点だ。ハードウェアに興味のある方は、読み進んでいただきたい。
送受信同時動作が可能
複数ノードが同時送信可能
全ノードがデータ共有
Wired OR 原理で「0」が優勢
バスの特性
送受信同時動作が可能
図1 のように、ECU(CAN ノード)には、ノードを制御するマイクロプロセッサとメモリや周辺回路がある。マイクロプロセッサの I/O の一つとして、CAN プロトコルコントローラがある。

CAN プロトコルコントローラのTx(送信信号)は、CAN トランシーバ内で2本の差動信号 (CAN_H/CAN_L)に変換され、CAN バスに繋がる。また、2本の差動信号(CAN_H/ CAN_L)はCAN トランシーバで比較し、「0」または「1」のデジタル信号に変換され Rx
(受信信号)として CAN プロトコルコントローラが受け取る。
この構造から分かるように、Tx(送信信号)はバスを経由し Rx(受信信号) となる。このようなバス構造では、送信信号と同時にバスの状態を受信信号として同時モニターすることができる。他のノードの Tx(送信信号)により信号レベルが変化したり、外来ノイズ
等によりデータ化けを起こした場合にも、信号変化を検出することができる。
複数ノードが同時送信可能
信号衝突が発生するが、複数ノードは同時に送信することができる。

全ノードがデータ共有
送信ノード1の信号(データ)は自分自身を含め全てのノードに配信される。

Wired OR
複数のノードが同時に送信すると信号が衝突する。衝突時は、Wired or の原理でドミ
ナント「0」が優勢になる。
- 全ての送信ノードが、同時に「1」を送信すると、CAN バス上は「1」
- 全ての送信ノードが、同時に「0」を送信すると、CAN バス上は「0」
- 複数のノードが同時送信し、「1」と「0」が混在すると、CAN バス上は「0」
Wired OR 動作原理
図4(左) のように、バス線が+5V に抵抗でプルアップされている。0V に繋がったスイッチは全て off になっている。この時は、バス線には全く電流が流れないため、 バス線はプルアップされた +5V になっている。図4(右)は、1つのスイッチがon になると+5V から 0V に向かい電流が流れる。スイッチ内部の抵抗はプルアップ抵抗(R)に比べはるかに小さいため、バス線はほぼ 0V に変わる。

これが Wired OR の原理で、全てのスイッチが off の場合は、バス線は「High Level (リセッシブ)」になる。1つでもスイッチが on になると、バス線は「Low Level (ドミナント)」になる。実際の回路は、スイッチが CAN トランシーバに変わる。
スイッチ on は、図5 のように、CAN トランシーバ(送信側)が送信 Enable で「0」を送信した時に相当する。

高速CAN
CAN は2線式のバス構造だ。主な物理層規格として「高速 CAN」と「低速 CAN」がある。高速 CANは、通信速度が最大 1Mビット/秒まで動作するため、主に高速なデータ交換が要求されるパワートレイン系で使用される。通信は2本線の差動方式で、2本の電圧差で「ドミナント」 (論理「0」)と「リセッシブ」(論理「1」)を判断する。差動方式は、外来ノイズがほぼ同時に2本の通信線に加わるが、電圧差で信号レベルが決まるため、ノイズは相殺し影響が少なくなる。外来ノイズの影響を受けにくい方式だ。図6 のように、CAN_HとCAN_Lの電圧差は規格では1.8Vで、両端の 120Ω 終端抵抗により 30mA の電流でCANトランシーバを駆動している。

低速CAN
低速 CAN は、通信速度が最大 125kビット/秒まで動作するため、パワートレイン制御ほどの高速データ制御が要求されないボディー制御などで使用される。通常時は、高速 CAN と同じように2本の電圧差で「ドミナント」と「リセッシブ」を判断する。
いずれかの通信線に障害が発生した場合、シングルワイヤーモードに切り替わり単線で通信を継続する。フェールセーフな機能を持っている。図7 のように、2.2KΩ の抵抗で各電圧に繋がる。

高速 CAN /低速 CAN の信号レベル
高速 CAN と低速 CAN の「リセッシブ」「ドミナント」の信号レベルは、図8、図9 のようになる。
符号変換と同期
CAN の符号変換は NRZ(Non Return to Zero)方式だ。最も簡単な符号変換方式で、多くの通信プロトコルに採用されている。元の信号データが、そのまま「0」と「1」に変換される方式だ。この方式は変換が簡単だが、元の信号データで「1」や「0」が続くと NRZ 変換信号は変化しない。
CAN ノードは、各々独自の発振子(基準クロック)で動作しているため、ノードごとに、動作クロックの周波数や位相がずれている。受信ノードは、受信データに合わせたデータの取り込みが必要になる。このずれを抑えるため、CAN の受信ノードは、受信データの「立下り↓」で同期をとる仕組みだ。立下りがない期間が長くなると、タイミングのズレが大きくなりエラーが起きる。CAN は一定数の「0」や「1」が続くと、強制的に信号を反転させる「スタッフビット」を挿入することで、一定期間内に「立下り↓」を作り、必ず同期がとれるようになっている。

CAN バスは、全てのノードが送信していないときは Bus Idle 状態(リセッシブ)で、送信が始まると SOF(ドミナント)に変化する。受信ノードは、この受信データの「立下り↓」でフレーム開始を認識し、受信を開始する。CAN の受信ノードは、データ受信中も「立下り↓」で同期を取り直すが、フレーム開始も「立下り↓」で同期を取り受信を開始する(図11)。

ビットスタッフィング
CAN では、スタッフビットを挿入することで、定期的にデータの「立下り↓」を作るようになっている。NRZ 変換の欠点を補完するためだ。具体的には、バス上で同じ状態が5回連続した場合に、送信側で強制的に信号を反転させる「スタッフビット」を挿入する。
スタッフビットの挿入で、バス上では同じ状態が6回以上連続することはなくなる。受信側は、データ受信後スタッフビットを削除し、元の状態に戻す。
スタッフビットの挿入により、少なくとも10ビットに1回はデータの「立下り↓」があり、再同期をかけることができる。最悪の状態では、10ビット×1.58%×2 = 31.6% の誤差が発生する。かなりきわどい誤差だ(図12)。

車載ネットワーク
-
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 […]