CAN FD対応?Renesas RA4M1とMCP2515の真実を徹底解説!

「CAN FD(CAN Flexible Data-Rate)」という言葉を耳にして、自分の使っているマイクロコントローラーやCANモジュールが対応しているのか気になっていませんか?

今回は、Arduino Uno R4の心臓部であるRenesas RA4M1と、広く使われているCANモジュールであるMicrochip MCP2515が、CAN FDに対応しているのかどうか、その真実を詳しく解説していきます!


 

CAN FDとは?CANとの違いをざっくり解説

 

まず、CAN FDが何かを簡単に理解しておきましょう。

従来のCAN(Classic CAN)は、最大データ転送速度が1Mbps、データペイロード(実際に送れるデータ量)が最大8バイトという制限がありました。これは、自動車の制御や産業機器の基本的な通信には十分でしたが、自動運転や高度なセンサーデータ処理など、より多くの情報を高速にやり取りする必要が出てきたことで限界が見えてきました。

そこで登場したのがCAN FD(CAN Flexible Data-Rate)です!

  • 高速化: データ部分の転送速度を従来の最大1Mbpsから、最大5Mbps、あるいはそれ以上に高速化できます。

  • 大容量化: データペイロードを最大8バイトから、最大64バイトに拡張できます。

これにより、CAN FDはClassic CANの優れた信頼性やリアルタイム性を保ちつつ、より多くのデータをより速く送れるようになった、いわば「進化したCAN」なのです。


 

Renesas RA4M1(Arduino Uno R4のマイコン)はCAN FDに対応しているか?

 

Arduino Uno R4に搭載されているRenesas RA4M1は、その強力な32ビットARM Cortex-M4コアと豊富な周辺機能を持つマイコンです。では、CAN FDについてはどうでしょうか?

結論から言うと、Renesas RA4M1は、CAN FDに対応しています!

RA4M1のデータシートや製品情報を見ると、「CAN FD Controller」や「CAN-FD」という表記が見つかります。これは、RA4M1がハードウェアレベルでCAN FDプロトコルを処理できるコントローラーを内蔵していることを意味します。

つまり、Arduino Uno R4でCAN FD通信を行いたい場合、RA4M1のCAN FD機能を活用できるということです。ただし、これまで解説してきたように、CAN FDに対応した外部のCANトランシーバーは別途必要になります。Classic CAN用のトランシーバーとCAN FD用のトランシーバーは異なる場合があるため、必ずCAN FD対応のトランシーバーを選びましょう。

Renesas RA4M1(=Arduino Uno R4)はCAN FDに対応しているので、より高速で大容量のCAN通信をArduino Uno R4で実現できる大きな強みがあります。


 

Microchip MCP2515(広く使われているCANモジュール)はCAN FDに対応しているか?

 

次に、Arduino Uno R3などで広く使われている外部CANモジュールの中核をなすMicrochip MCP2515について見ていきましょう。

結論から言うと、Microchip MCP2515は、CAN FDには対応していません。

MCP2515は、Classic CANプロトコルに特化したCANコントローラーです。最大1Mbpsの速度と最大8バイトのペイロードというClassic CANの仕様で動作するように設計されています。

もしMCP2515をCAN FDネットワークに接続しようとしても、CAN FDの高速なデータ部分や64バイトのペイロードを正しく処理することはできません。CAN FDネットワークでMCP2515を使用すると、エラーが発生したり、データが破損したりする可能性があります。

MCP2515はClassic CANのプロジェクトで信頼性と実績のあるチップですが、CAN FDが必要な場合は別のソリューションを検討する必要があります。


 

CAN FD対応のCANモジュールを選ぶには?

 

MCP2515がCAN FDに対応していないとなると、「じゃあ、どんなCANモジュールを選べばいいの?」と思うかもしれません。

CAN FDに対応した外部CANコントローラーチップとしては、Microchip社の「MCP2517FD」や「MCP2518FD」といった製品が挙げられます。これらのチップは、SPIインターフェースでマイコンと接続し、CAN FDの送受信を処理できます。また、これらのチップとCAN FD対応トランシーバーが一体になったモジュールも市販されています。

Renesas RA4M1(Arduino Uno R4)を使用する場合は、既にCAN FDコントローラーが内蔵されているため、あとはCAN FD対応のトランシーバー(例:Microchip MCP2561FD、NXP TJA1051Gなど)のみを外部に接続すればCAN FD通信が可能です。


 

まとめ:プロジェクトに合わせて適切なチップを選ぼう

 

今回の解説で、Renesas RA4M1とMCP2515のCAN FD対応状況がお分かりいただけたでしょうか。

  • Renesas RA4M1(Arduino Uno R4): CAN FDに対応しており、高速・大容量のCAN通信が可能です。CAN FD対応のトランシーバーを接続すればOKです。

  • Microchip MCP2515: Classic CANにのみ対応しており、CAN FDには対応していません。

CAN通信を始める際には、あなたのプロジェクトがClassic CANで十分なのか、それともCAN FDの高速性や大容量が必要なのかを検討することが重要です。