CAN FD(CAN with Flexible Data Rate)とは
CAN FDは、高速・大容量通信に対応したCANの拡張規格で、車載ネットワークの進化やセキュリティ強化に貢献しています。
CAN FDとは
CAN FD(CAN with Flexible Data Rate)とは、CAN(Classic CAN)のプロトコル仕様を拡張し、従来のCANよりも通信速度の高速化と送受信データの大容量化に対応可能な通信プロトコルです。
近年、自動車の益々の電装化に伴い、車載制御系通信バスでは、接続ECUの増加によるデータ通信量の増大で、高トラフィックによる帯域不足、複数バス化によるコスト増などが課題になっています。これらの課題解決に、CAN FD通信が期待されています。
CANでは、1フレームのデータ長は最大8byteですが、CAN FDでは最大64byteに拡張しています。また、通信ボーレートもCANでは最大1Mbpsですが、CAN FDではペイロードの1Mbps以上の送信対応が可能になっています。
その他、通信セキュリティの用途でもCAN-FDは期待されています。CANと比較して多くのデータを1フレームで送信することが可能となるため、AUTOSARで規定されているSecOC(Security on board Communication)ベースのメッセージ認証を合わせて使うことが考えられています。
メッセージ認証は、データフレーム内に、暗号鍵を用いて作成したMAC値、データカウンタのFVを載せて送信します。受信側はMAC値とFVを参照して、通信の確からしさを検証できることにより、データの改ざんや成りすましを防止します。そのため、既存のCAN通信バスの置き換えだけでなく、より高度な安全運転支援システム領域のネットワークでのCAN FD通信の利用も検討されています。
CAN FDは、ISO11898-1:2015、ISO11898-2:2016により、従来のCANプロトコル仕様へ加える形でCAN FD仕様が規定されており、データフレームはCANとほぼ同等のフィールド構成となっています。そのため、CAN通信に馴染みがあれば、CAN FD通信の仕様理解もしやすくなっています。
CAN FDの特長
CANをベースとしたプロトコル
- 従来のCAN(Classic CAN)と物理層、システム構成がほぼ同等
- コントローラ、トランシーバはCAN FD対応が必要
- 同一バス上にClassic CANノードが残るとCAN FDフレームでバス障害。サブネット分離または全面CAN FD化が前提
データ部分の転送速度が可変
- 1Mbps以上の設定が可能(Ex:2Mbps,4Mbps,5Mbps,8Mbps等)
- ISO11898-2:2016では5Mbpsまでのタイミング要件を規定
- CAN FDフレームはアービトレーション部(調停部)とデータ部に分かれ、アービトレーション部はノミナル・ビットレート、データ部はデータ・ビットレートで動作。BRSビットでデータ部を高速化
データ長の大容量化
- 最大64Byteまで対応
- DLC(Data Length Code)は不連続値(0-8, 12, 16, 20, 24, 32, 48, 64)
- Stuff Countの導入、CRC17/21、固定スタッフビットなどでビットエラー耐性を向上
CAN FDフレームとビットフィールド - Classic CANとの違い
CAN FDのデータフレームはClassic CANの構成を踏襲しつつ、Control Fieldが拡張されています。
また、CAN FDは、データフレームのみ定義されています。 データフィールドが存在しないリモートフレームは転送速度の切替が必要ないため、CAN FDでは定義されていません。エラーフレーム、オーバーロードフレーム、インターフレームスペースはCANと同じものが使用されます。
CAN FDデータフレーム
CAN FDのデータフレームは標準フォーマット、拡張フォーマット共に、CANと同様にSOF(Start Of Frame)、Aribitration Field、Control Field、Data Field、CRC Field、ACK Field、EOF(End Of Frame)の7つの領域で構成されています。 従来のCAN(Classic CAN)と同様の転送速度部分をアービトレーションフェーズ、転送速度の高速可能な領域をデータフェーズと呼びます。
Classic CANとCAN FDフレームの違い
- RRS:CAN FDではリモートフレームを廃止 → RTR位置はRRS相当の予約/置換ビット(ドミナント固定)。
- FDF:CAN FDフレームであることを示す識別ビット(Classicには存在しません)。
- BRS:データ部のビットレート切替。BRS=1で高速化。
- ESI:送信ノードのエラーステート表示(Active=ドミナント / Passive=レセシブ)。
- DLC:0~8、12、16、20、24、32、48、64 にマップ。
Classic CANのControl FieldにはFDF/BRS/ESIは存在しません。
標準フォーマット比較
CANデータフレーム
CAN FDデータフレーム
拡張フォーマット比較
CAN拡張データフレーム
CAN FD拡張データフレーム
各フィールドの詳細
SOF(Start Of Frame)
データフレームの開始を通知する領域で、1bitのドミナントです。
- CAN FDフレーム
- CANフレーム
Arbitration Field(調停フィールド)
フレームの優先順位を判断する領域で、Base ID(Identifier)とRRSビットで構成されます。
- CAN FDフレーム
- CANフレーム
- Base ID(Identifier): 標準ID11bit分を設定
- RRS: CAN FDにはリモートフレームがないためCANで使用されていたRTRビットからRRSビットに置き換えられドミナントの固定になります。
Control Field
IDE、FDF、res、BRS、ESI、DLCで構成されます。
- CAN FDフレーム
- CANフレーム
- IDE: CANと同様に標準フォーマット時はドミナント、拡張フォーマット時はレセシブで表します。
- FDF: CANとCAN FDを区別するビット、CANはドミナント、CAN FDはレセシブで表します。
- res: 予約ビット
- BRS: CAN FDで追加されたビットで、データフェーズの高速化の切り替えを行います。このビットがレセシブの時にBRSビットのサンプリングポイントから転送速度を高速化させ、CRCデリミタのサンプリングポイントで全ノードがアービトレーションフェーズに戻ります。
- ESI: CAN FDで追加されたビットで、送信ノードのエラー状態を表します。エラーアクティブの時はドミナント、エラーパッシブの時はレセシブで表します。
- DLC: データ長を表すCAN FDで表せるデータ長は0~8、12、16、20、24、32、48、64byteになります。
データ長コードとCAN/CAN FDのデータ量比較
DLCと実データ長の重要な注意点
CAN FDのDLC値は連続値ではありません。指定できるDLC値と実際のデータ長の関係
注意事項:
- DLC=20を指定すると20バイト分のペイロード領域が確保され、20バイト未満でもゼロ詰めされます
- 異なるDLC設定間の通信互換性テストを必ず実施してください
Data Field
Data Fieldはデータを格納する領域で、データ長はCANでは0~8byte、CAN FDでは0~8、12、16、20、24、32、48、64byteとなります。
- CAN FDフレーム
- CANフレーム
CRC Field
フレームの伝送誤りを判断する領域で、Stuff Count、CRC、CRCデリミタで構成されています。 CANと同様にSOFからData Fieldまでの値を演算し、その結果を比較することで伝送誤りを判断します。
- CAN FDフレーム
- CANフレーム
- StuffCount: CAN FDで追加された4bitの領域SOF~DataFieldに含まれるスタッフビットの総数を8で割った余りを3bit長でグレイコード化した値で格納し、4bit目に偶数パリティを格納します。
StuffCount コーディング
- CRC: SOFからDataFieldまでの領域を演算します。CANではスタッフビットは計算に含まれていませんでしたが、CAN FDではスタッフビットも計算に含まれるようになりました。DataFieldが16byteまでが17bit、16byteを超える場合は21bitで格納します。またCRC Fieldでは、固定されたビット位置に固定スタッフビット(Fixed Stuff Bit)が配置されます。スタッフビットの値は、その直前のビットの値と逆の値になります。配置箇所は、CRC領域の先頭と、4ビット間隔の固定スタッフビットになります。
CRC Fieldのビットスタッフィング
- CRCデリミタ: CRC Fieldの終了を表す1bitのレセシブ。CAN FDでは、ノード間の位相のずれを考慮し、受信側では最大2bit時間を許容します。また、データフェーズはCRCデリミタの最初の1bitのサンプリングポイントまで有効で、それ以降は全ノードがアービトレーションフェーズに戻ります。
ACK Field
正常受信した確認の合図を表す領域で、ACKとACKデリミタで構成されます。
- CAN FDフレーム
- CANフレーム
- ACK: CANではACKは1bit時間でしたが、CAN FDの受信ノードでは、最大2bit時間までを有効なACKと認識可能です。追加の1bit時間は、高速なデータフェーズからアービトレーションフェーズへのクロック切り替えに発生するトランシーバの位相のずれおよび、バスへの伝達遅延の補完に使用されます。
- ACKデリミタ: ACKの終了を表す1bitのレセシブ
EOF(End Of Frame)
データフレームの終了通知する領域で7bitのレセシブです。
- CAN FDフレーム
- CANフレーム
波形で見るCANとCAN FDの違い
アービトレーションフィールド、データフィールド(8byte,64byte対比)、データフィールドのハイビットレートによる通信速度変更のサンプル波形をご覧いただけます。
CAN,CAN FDサンプル波形資料ダウンロード
必要事項をご入力の上、ダウンロードリンクをメールで受け取ってください。
関連情報
車載Ethernetは、高速通信や高信頼性を実現する自動車向けEthernet規格で、ADASや自動運転など次世代車載ネットワークを支えます。
CANは、自動車や産業機器で広く使われる、信頼性の高い国際標準のシリアル通信プロトコルです。
CXPIは、日本発の車載通信規格で、低コストかつ高応答性を実現する次世代HMI向けネットワークです。
LINは、低コストで導入できる車載用シリアル通信規格で、主にCANのサブネットワークとして利用されています。