CAN には、データフレーム/リモートフレーム/オーバーロードフレーム/エラーフレームの4 種類のフレームタイプがある(表1)。
名称 | 概要 |
---|---|
データフレーム | 通常のデータ送信フレーム(標準/拡張フォーマット) |
リモートフレーム | データフレーム送信要求 |
エラーフレーム | エラーを他のノードに通知 |
オーバーロードフレーム | 前回のフレーム処理が完了していないことを通知 |
主に乗用車で使われる「標準フォーマット」とトラックなどの大型車で使われる「拡張フォーマット」が通常時使用されるフォーマットだ。リモートフレームは、データフレーム送信要求フレームだが、ポーリング動作が主流になったため、かつてほど重要ではない。
エラーフレームは、エラーを検出したノードが他のノードにエラーを通知するフレームだ。エラーフレームは、 Wired or の原理を使い送信中のフレームを破壊するフレームだ。フレームに違いはないが、「フレーム破壊信号」に近いイメージだ。
オーバーロードフレームは、受信フレームの処理が間に合わず次のフレームを受信できないときに送信される。これも、「フレーム送信抑制信号」とでも呼んだ方が実態に近い。最近のプロセッサは十分な性能があるため、オーバーロードフレームが送信されることは極めてまれだ。
標準フォーマット

以下のフレーム構造図で、信号のハイレベルを「リセッシブ」、ローレベルを「ドミナント」と呼ぶ。ドミナントにのみ線がある部分はドミナント固定、リセッシブにのみ線がある部分はリセッシブ固定、両方に線がある部分はデータにより変化する部分だ。フレーム間ギャップは、誰も送信していない状態で「アイドル」状態を表す。
標準フォーマットの各部の機能は次のとおりだ。
ノードから最初に送信され、フレームの開始位置を示す(Start Of Frame)。ノード間の同期にも使用する。1ビットのドミナント。
データ内容や送信ノードの識別、調停の優先度を決める。標準フォーマットでは、11 ビット長、拡張フォーマットでは11+18 で29ビット長になる。
データフレームとリモートフレームの識別領域。データフレームの場合はドミナント、リモートフレームの場合はリセッシブになる。RTRも調停に使用する。1 ビットのリセッシブ。
IDE/FDF/DLC で構成する。IDE は標準フォーマットと拡張フォーマットの識別、 FDF(旧規格では予約ビット) は CAN と CAN FD の識別、CAN ではいずれのビットもドミナント。
DLCは、コントロールフィールドに続く Data Field で送信するバイト数を示す。DLC の設定範囲は 0~8 で、9 以上を設定できるが、データ長は 8 バイトに制限される。しかし、曖昧さの残る規定だ。
送信データを格納する領域で、データ長は DLC の設定で決まる。Data Field では、全バイトの MSB(最上位ビット)から送信される。一般的な通信や LIN ではLSB (最下位ビット)から送信されるので、注意が必要だ。
フレームの伝送誤りを判断する領域。CRC15 の演算範囲は、SOF~Data Field で、送 信側は演算結果を CRC Sequence に格納する。受信側は送信側と同様に SOF~Data Field の演算を行い、演算結果と受信した CRC Sequence と比較し判断する。SOF- Arbitration Field-RTR-Control Field は合計で19ビットある。上位3ビットが最上位ワードになる。CRC15 の多項式は、X15 + X14 + X10 + X8 + X7 + X4 + X3 + 1 。
CRC Sequence の終了を表す区切りで、1ビット長のリセッシブ信号。CRC Sequence とCRC Delimiter を併せて「CRC Field」と呼ぶ。
送信ノードは、1ビット長のリセッシブを送信する。受信ノードは、CRC Field まで正 常に受信できた場合は、ACK のタイミングでドミナントを送信する。CAN では、ドミナントとリセッシブが同時に送信されると Wired OR の原理でドミナントになる。送信が正常に終了すると ACK はドミナントになる。

ACK の終了を表す区切りで、1ビット長のリセッシブ固定。ACK と ACK Delimiter を合わせて ACK Field になる。
データフレームの終了を表す。7ビット長のリセッシブ信号。
フレーム間を分離する領域で、連続した最小3ビットのリセッシブで構成する。
拡張フォーマット
図3 、図4 から分かるように、標準フォーマットと拡張フォーマットの違いは、ベース Identifier から拡張 Identifierまでだ。 RTR 以降は全く同じだ。フレームを受信したノードは、11 ビットの Identifier 受信後の 2 ビット情報で、標準と拡張を識別できる。


ノードから最初に送信され、フレームの開始位置を示す(Start Of Frame)。
ノード間の同期にも使用する。1ビットのドミナント。
データ内容や送信ノードの識別、調停(アービトレーション)の優先度を決める。 標準フォーマットでは、11ビット長、拡張フォーマットでは 11+18 で29ビット 長になる。
代替リモート要求。常に1 ビット長のリセッシブ。
29ビットの識別子を持つ拡張フォーマットを示す。常に1 ビット長のリセッシブ。
リモートフレーム
リモートフレームは、データフレーム送信要求に使用する。基本構造は、データフレームから Data Field を除いた形だ。リモートフレームの ID は要求するデータフレームの ID を設定し、 DLC は要求するデータフレームの DLC を設定する。リモートフレームで送信するデータ長では ない(リモートフレームには Data Field がない)。
データフレームとの違いは、RTR がリセッシブになることだ。RTR でデータフレームとリモートフレームを識別することができる。
例えば ECU がセンサ情報を収集する場合、ECU はセンサに対し「リモートフレーム」を送信し、センサは「データフレーム」を送信する。これが CAN の本来の姿だ。しかし、「リモートフレーム」と「データフレーム」のハンドシェークはほとんど使われていない。リモートフレームを使用せず、データフレームを定期的に送信する方式が主流だ。
リモートフレームを使わなくなった理由は2つある。
- データフレームの送信頻度が高くなるとリモートフレームによる帯域ロスが大きい
- DLC(送信バイト数を指定)の定義があいまいで、互換性問題が起きる。CAN は0~8バイトのデータを送信できるが、DLC の設定範囲は、0~15 で9以上を指定された場合の動作が曖昧だ。

オーバーロードフレーム

CAN は約40年前に開発されたかなり古い規格だ。規格化当初は、マイクロプロセッサの処理能力が低く、受信データ処理に時間がかかり、次のデータを受信できない事態が想定された。データフレーム受信中に処理が間に合わないノードは、オーバーロードフレームを送信し、次のデータフレーム送信開始を遅らせることができる。
オーバーロードフレームは、データフレームまたはリモートフレームの EOF に続く 6~7 ビッ トの「Overload Flag」と 8 ビットの「Overload Delimiter」で構成される。
最近は、マイクロプロセッサの性能が向上し、このような事態は想定できない。ネットワーク帯域を無駄に消費するため、オーバーロードフレームを使用しないのが一般的になった。
エラーフレーム

エラーフレームは、通信中にエラーが発生した時に送信されるフレームだ。ネットワークに接続されている他のノードに異常を通知する役割がある。エラーフレームは、送信中のデータフレームやリクエストフレームを破壊し、ビットスタッフィングルールを破ることで、他のノードにエラーが発生したことを知らせるようになっている。エラーフレームは、Error Flag と Error Delimiter の2つの領域で構成されている。
エラーを検出したノードが送信する Error Flag には「アクティブエラーフラグ」と「パッシブエラーフラグ」の 2種類がある。アクティブエラーフラグは 6 ビットのドミナント、パッシブエラーフラグは 6ビットのリセッシブで構成される。先行する(最初に検出)アクティブエラーフラグは、ビットスタッフィングルールを破ることで、他のノードにもエラーフラグ(パッシブエラーフラグ)を送信することを促す。エラー検出のタイミングは微妙で、アクティブエラーフラグを受信していない状態ではアクティブエラーフラグを送信するが、ノード間でのノード間での時間ずれが起き得る。
他ノードのエラー検出タイミングにより、パッシブエラーフラグのドミナントの幅は 0 ~ 6 バイトの幅で変わる。結果として、 6 ~ 12 ビットのドミナントが Error Flag としてバス上に現れることになる。
8 ビットのリセッシブで、エラーフレームの終了を表す。データフレームやリモートフレームは、8 ビットのリセッシブ(1 ビットの ACK Delimiter + 7 ビットの EOF)で終わ るが、エラーフレームも同じ 8 ビットのリセッシブで終わるようになっている。
車載ネットワーク
-
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 […]