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相当の予約/置換ビット(ドミナント固定)。
  • FDFCAN 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データフレーム

CAN FDデータフレーム

CAN FDデータフレーム

拡張フォーマット比較

CAN拡張データフレーム

CAN拡張データフレーム

CAN FD拡張データフレーム

CAN FD拡張データフレーム

各フィールドの詳細

SOF(Start Of Frame)

データフレームの開始を通知する領域で、1bitのドミナントです。

  • CAN FDフレーム
SOF CAN FD
  • CANフレーム
SOF CAN

Arbitration Field(調停フィールド)

フレームの優先順位を判断する領域で、Base ID(Identifier)とRRSビットで構成されます。

  • CAN FDフレーム
Arbitration CAN FD
  • CANフレーム
Arbitration CAN
  • Base ID(Identifier): 標準ID11bit分を設定
  • RRS: CAN FDにはリモートフレームがないためCANで使用されていたRTRビットからRRSビットに置き換えられドミナントの固定になります。

Control Field

IDE、FDF、res、BRS、ESI、DLCで構成されます。

  • CAN FDフレーム
Control CAN FD
  • CANフレーム
Control 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比較表

注意事項:

  • 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フレーム
Data CAN FD
  • CANフレーム
Data CAN

CRC Field

フレームの伝送誤りを判断する領域で、Stuff Count、CRC、CRCデリミタで構成されています。 CANと同様にSOFからData Fieldまでの値を演算し、その結果を比較することで伝送誤りを判断します。

  • CAN FDフレーム
CRC CAN FD
  • CANフレーム
CRC CAN
  • StuffCount: CAN FDで追加された4bitの領域SOF~DataFieldに含まれるスタッフビットの総数を8で割った余りを3bit長でグレイコード化した値で格納し、4bit目に偶数パリティを格納します。
StuffCount コーディング

StuffCount コーディング

  • CRC: SOFからDataFieldまでの領域を演算します。CANではスタッフビットは計算に含まれていませんでしたが、CAN FDではスタッフビットも計算に含まれるようになりました。DataFieldが16byteまでが17bit、16byteを超える場合は21bitで格納します。またCRC Fieldでは、固定されたビット位置に固定スタッフビット(Fixed Stuff Bit)が配置されます。スタッフビットの値は、その直前のビットの値と逆の値になります。配置箇所は、CRC領域の先頭と、4ビット間隔の固定スタッフビットになります。
CRC Fieldのビットスタッフィング

CRC Fieldのビットスタッフィング

  • CRCデリミタ: CRC Fieldの終了を表す1bitのレセシブ。CAN FDでは、ノード間の位相のずれを考慮し、受信側では最大2bit時間を許容します。また、データフェーズはCRCデリミタの最初の1bitのサンプリングポイントまで有効で、それ以降は全ノードがアービトレーションフェーズに戻ります。

ACK Field

正常受信した確認の合図を表す領域で、ACKとACKデリミタで構成されます。

  • CAN FDフレーム
ACK CAN FD
  • CANフレーム
ACK CAN
  • ACK: CANではACKは1bit時間でしたが、CAN FDの受信ノードでは、最大2bit時間までを有効なACKと認識可能です。追加の1bit時間は、高速なデータフェーズからアービトレーションフェーズへのクロック切り替えに発生するトランシーバの位相のずれおよび、バスへの伝達遅延の補完に使用されます。
  • ACKデリミタ: ACKの終了を表す1bitのレセシブ

EOF(End Of Frame)

データフレームの終了通知する領域で7bitのレセシブです。

  • CAN FDフレーム
EOF CAN FD
  • CANフレーム
EOF CAN

波形で見るCANとCAN FDの違い

アービトレーションフィールド、データフィールド(8byte,64byte対比)、データフィールドのハイビットレートによる通信速度変更のサンプル波形をご覧いただけます。

CAN,CAN FDサンプル波形資料ダウンロード

必要事項をご入力の上、ダウンロードリンクをメールで受け取ってください。

ボタンを押下すると、入力されたメールアドレス宛に資料ダウンロード用のリンクを送信します。