CANとCAN FDの違い
CAN FDは従来のCANを拡張した方式で、1フレームのデータ長が8バイトから最大64バイトになり、アービトレーション後にビットレートを切り替えられます。既存ネットワークへの追加では、各ノードのコントローラとトランシーバの対応条件を確認してください。
はじめての方へ
CAN の基礎
CAN は、自動車の中の多くの制御装置(ECU)が、2 本の線を共有して情報をやり取りするための通信方式です。いまでは産業機器やロボットでも使われています。
1 組の線にみんながつながる
CAN では、すべての装置が同じ 2 本の線(バス)につながり、送りたい装置がメッセージを流します。メッセージには宛先ではなく、中身の種類を表す番号(ID)が付いていて、受け取る側が必要なものだけを拾います。
同時に送ったときのルール
2 つの装置が同時に送り始めると、ID の番号が小さい(優先度が高い)ほうがそのまま送り続け、もう一方は送るのをやめて、あとで送り直します。メッセージを壊さずに、優先度の高い情報を先に通せるのが CAN の特徴です。
CAN FD ができた理由
従来の CAN は、1 回に送れるデータが 8 バイトまで、速さも最大 1 Mbit/s でした。車の中でやり取りするデータが増えたため、1 回に最大 64 バイトを送れ、データの部分だけ速く送れるように広げたのが CAN FD です。
雑音に強いつくり
2 本の線(CAN_H と CAN_L)の電圧の差で 0 と 1 を表す差動方式なので、自動車のような雑音の多い環境でも通信しやすくなっています。
このページに出てくる言葉
- ECU
- 自動車のエンジンやブレーキなどを制御するコンピュータ。
- バス
- 複数の装置が共有する通信の線。
- ID(識別子)
- メッセージの種類と優先度を表す番号。小さいほど優先。
- Mbit/s
- 1 秒間に送れるビット数(100 万ビット単位)。
あわせて読む: シリアル・バスの早見表
データの長さと、ビットレートを切り替える区間を比べられます。
フレームの流れ(幅は時間を表しません)
- 識別・調停
公称レート - 制御 → データ → CRC
- ACK・終端
公称レート
データ部の容量:1マス=1 byte
Classical CAN:最大8 byte
CAN FD: byte(最大64 byte)
BRSは任意です。切り替えはBRSビット内で行い、CRC delimiterで公称レートへ戻ります。フレーム図は詳細ビット配置・スタッフビット・送信時間を省略しています。既存ノードやトランシーバの対応可否は別に確認してください。
最大データ長
0〜8バイト
最大64バイト。DLCの8〜15に8/12/16/20/24/32/48/64バイトが割り当てられる
ビットレート
最大1 Mbit/s
調停フェーズとデータフェーズで異なるビットレートを使用できる。データフェーズの上限はコントローラ・トランシーバ・バス構成で決まり、8 Mbit/sは一部製品の対応例
ビットレート切替
なし
BRSビットでデータフェーズのビットレートを切り替える。速度比を一律に8倍とはしない
CRC
15ビット
データ長16バイト以下は17ビット、17バイト以上は21ビット
リモートフレーム
あり
なし(RTRがRRSに置き換わる)
識別子
標準11ビット、拡張29ビット
標準11ビット、拡張29ビット
距離との関係
40 m未満で最大1 Mbit/s。125 kbit/sでは500 mまで
高速化するほど寄生容量の許容が厳しくなる
共存
従来のコントローラはCAN FDフレームをエラーとして扱い、通信を妨げる場合がある
すべてのノードのFDフレーム対応を確認する。Classical CANフレームだけで運用する場合と、FDフレームを流す場合を区別する
CAN
- 送るデータが1フレーム8バイト以内に収まる場合
- 既存のCANネットワークや機器と合わせて運用する場合
- 1 Mbit/s以下のビットレートで足りる場合
CAN FD
- 1フレームで8バイトを超えるデータを送りたい場合
- データ部のビットレートを上げて、同じ量をより短い時間で送りたい場合
- より強いCRC(17/21ビット)でエラー検出を重視する場合
観点ごとの違い
| 観点 | CAN | CAN FD |
|---|---|---|
| 最大データ長 | 0〜8バイト | 最大64バイト。DLCの8〜15に8/12/16/20/24/32/48/64バイトが割り当てられる |
| ビットレート | 最大1 Mbit/s | 調停フェーズとデータフェーズで異なるビットレートを使用できる。データフェーズの上限はコントローラ・トランシーバ・バス構成で決まり、8 Mbit/sは一部製品の対応例 |
| ビットレート切替 | なし | BRSビットでデータフェーズのビットレートを切り替える。速度比を一律に8倍とはしない |
| CRC | 15ビット | データ長16バイト以下は17ビット、17バイト以上は21ビット |
| リモートフレーム | あり | なし(RTRがRRSに置き換わる) |
| 識別子 | 標準11ビット、拡張29ビット | 標準11ビット、拡張29ビット |
| 距離との関係 | 40 m未満で最大1 Mbit/s。125 kbit/sでは500 mまで | 高速化するほど寄生容量の許容が厳しくなる |
| 共存 | 従来のコントローラはCAN FDフレームをエラーとして扱い、通信を妨げる場合がある | すべてのノードのFDフレーム対応を確認する。Classical CANフレームだけで運用する場合と、FDフレームを流す場合を区別する |
置き換え・調達で確認すること
- CAN FD通信を行うには、使用するコントローラとトランシーバのCAN FD対応状況を仕様書で確認する
- 使用するデータレート、バス長、終端・スタブ、コントローラとトランシーバの組合せを指定する。トランシーバ単体のFD対応だけで既存ノードとの共存を判断しない
- リモートフレームを使っている既存設計は、CAN FDフレームでは使えない点を確認する
関連する比較
一般的な傾向をまとめたものです。個々の製品の値はデータシートで確認してください。誤りはこちらからお知らせください。