メインコンテンツまでスキップ

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 バス プロトコルの拡張です。

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 により次のことが可能になります。

  • より高い更新レート
  • 待ち時間の短縮
  • よりスムーズで応答性の高いモーター制御

前提条件

このチュートリアルでは、次のハードウェアが使用されます。

ファームウェアをボードにアップロードするには、ST-LINK V2 クローンが必要です。安価なクローン ST-LINK V2 は 5 ドル以下で購入できます。

CAN FD通信

Aotenjo One は CAN FD 経由で通信するため、CAN_HCAN_LVCCGND の 4 本のワイヤだけを使用して複数の Aotenjo One ボードを制御できます。

CAN FD ネットワークでは、信号の反射を防ぐためにネットワークの両端に 終端抵抗が必要であることに注意してください。

上に示したセットアップでは、メイン CAN ハブ (Aotenjo Master) に終端抵抗が組み込まれています。したがって、以下の図に示すように、ボードの上面にある終端ジャンパ​​ーをはんだ付けすることによって、チェーン内の最後の Aotenjo One ボード (M0 ユニットなど) で終端を有効にするだけで済みます。

インストール

VScode と PlatformIO

PlatformIO は、VSCode 拡張機能マーケットプレイスからインストールできます。

STM32CubeProgrammer

これはファームウェアをボードにフラッシュするために必要です。

クローンを作成 リポジトリ

git clone https://github.com/aotenjo-xyz/one.git
cd one

クイックスタート

  1. モーターのシャフトに磁石を置きます。

モーターシャフトの磁石

  1. Aotenjo One ボードを ST-LINK V2 プログラマに接続します。

    ST-LINK V2 <-> Aotenjo One
    3.3V <---> 3.3V
    GND <---> GND
    SWDIO <---> SWDIO
    SWCLK <---> SWCLK
    RST <---> NRST
    備考

blackpill ボードとは異なり、NRST ピンを STM32G4 シリーズの ST-LINK V2 プログラマに接続する必要があります。 あるいは、アップロード中に Aotenjo One ボードの NRST ボタンを押し続けると、同じ効果が得られます。 ::: 3. ST-LINK V2 プログラマをコンピュータに接続します。 4. VSCode でプロジェクト フォルダーを開きます。 5. 左側のサイドバーの「PlatformIO」タブをクリックし、「Upload」ボタンをクリックしてファームウェアをボードにアップロードします。

これで、CAN バス通信を使用してモーターを制御する準備が整いました。

次の手順については、「青天井マスター CAN FD チュートリアル](/docs/aotenjo-master/fdcan)」を参照してください。