CAN FD通信
このチュートリアルでは、Aotenjo One ボードを CAN FD 通信用に準備し、閉ループ角度制御を実行する方法を紹介します。
CAN ネットワーク内のボードが Aotenjo One v1.x または Aotenjo Master v1.x の場合、CAN FD 通信は使用できません。代わりに CAN バス通信チュートリアル を参照してください。
CAN FD とは
CAN FD (Controller Area Network Flexible Data-Rate) は、従来の CAN を拡張した通信規格です。通信速度の向上と、1 フレームで送信できるデータ量の拡大に対応しています。
Classic CAN とは異なり、CAN FD では次のことが可能です。
- メッセージの データ フェーズ中のビット レートの向上
- 単一フレーム内の最大 64 バイトのペイロード
このため、CAN FD は、モーター制御、ロボット工学、高性能産業システムなど、高い更新レート、低遅延、より複雑なデータ構造を必要とするアプリケーションに最適です。
CANとCAN FDの比較
| 比較項目 | CANバス | CANFD |
|---|---|---|
| 最大データレート | 最大1Mbps | 最大8Mbps(データフェーズ) |
| データペイロードサイズ | 最大8バイト | 最大64バイト |
| フレームフォーマット | 標準 (11 ビット) と拡張 (29 ビット) | 標準と拡張 |
| エラー検出 | CRC (巡回冗長検査) | 強化された CRC とビット スタッフィング |
| RTRサポート | サポートされている | サポートされていません |
| 使用例 | 自動車、産業 | 自動車、産業、高速制御 |
モーター制御にとってCAN FDが重要な理由
CAN FD は単に帯域幅が広いだけではありません。
フレームあたりのペイロードを大きくできるようにすることで、CAN FD は以下によって引き起こされるプロトコル オーバーヘッドを大幅に削 減します。
- 仲裁
- フレームヘッダー
- フレーム間の間隔
これは、メッセージごとにより多くの有用なデータが転送されることを意味し、全体的なバス効率が向上します。
例
クラシック CAN の場合:
- モーター位置データは複数のフレームに分割する必要がある場合があります
- これによりバス負荷が増加し、制御ループ周波数が制限されます。
CAN FD の場合:
- 位置、速度、電流、ステータスデータを 1 つのフレームに詰め込むことができます
- 制御サイクルごとに必要なフレームが少なくなる
- より高い周波数で、タイミングの安定した制御ループを実行しやすくなります
その結果、CAN FD により次のことが可能になります。
- より高い更新レート
- 待ち時間の短縮
- よりスムーズで応答性の高いモーター制御
事前準備
このチュートリアルでは、以下の機器を使用します。
- Aotenjo Oneボード MCU: STM32G431CBU6 バージョン: Aotenjo One V2.0
- 直径方向着磁ディスクマグネット(Aotenjo Oneに付属)
- ST-LINK V2 クローン
- BlackPill STM32 ボード
- BE4108 75T ジンバルモーター
- 電源(12V)
- はんだ付けキット
ファームウェアをボードにアップロードするには、ST-LINK V2 クローンが必要です。安価なクローン ST-LINK V2 は 5 ドル以下で購入できます。
CANバス接続
CAN FD のバス配線と終端抵抗の配置は Classical CAN と共通です。CAN バス接続の手順に従って基板を接続し、バスの物理的な両端で終端抵抗を有効にしてください。配線と終端設定が完了したら、このページに戻って CAN FD ファームウェアのセットアップを続けてください。
開発環境の準備
VSCode と PlatformIO
PlatformIO は、VSCode 拡張機能マーケットプレイスからインストールできます。
STM32CubeProgrammer
ファームウェアを基板に書き込むためのツールです。
リポジトリの取得
git clone https://github.com/aotenjo-xyz/one.git
cd one
クイックスタート
- モーターのシャフトに磁石を置きます。

-
Aotenjo One ボードを ST-LINK V2 書き込み器に接続します。
ST-LINK V2 <-> Aotenjo One3.3V <---> 3.3VGND <---> GNDSWDIO <---> SWDIOSWCLK <---> SWCLKRST <---> NRST備考
STM32G4 シリーズでは、BlackPill と異なり、基板の NRST ピンも ST-LINK V2 に接続する必要があります。
あるいは、アップロード中に Aotenjo One ボードの NRST ボタンを押し続けると、同じ効果が得られます。
:::
3. ST-LINK V2 書き込み器を PC に接続します。
4. VSCode でプロジェクトフォルダーを開きます。
5. 左側のサイドバーの「PlatformIO」タブをクリックし、「Upload」ボタンをクリックしてファームウェアをボードにアップロードします。
これで、CAN バス通信を使用してモーターを制御する準備が整いました。
続いて、Aotenjo Master の CAN FD チュートリアルに進んでください。