STM32H7- FD-CAN
フレキシブル・データレート・コントローラ・エリアネットワーク・インタフェース

1.0版

こんにちは、フレキシブルデータレートコントローラエリアネット
ワークインタフェース（FD-CAN)のプレゼンテーションへようこそ。
これは、広くCANネットワークにマイクロコントローラを接続するために使用されているこのインタフェースの主な機能をカバーしています。

1

概要• FD-CANコントローラは、2つのピンを介して外部CANトランシーバとの通信インタフェースを提供

ノード 1
STM32
...

FD-CAN
RX

2

ノード N

TX

アプリケーション側の利点

トランシーバ• マルチマスタ・コンセプト• オブジェクト指向通信

CAN ロー

CAN バス120 ohm

120 ohm

CAN ハイ• リアルタイム機能• 遅延が短いメッセージ転送• システム全体のメッセージの整合性

フレキシブル・データ・レート・コントローラ・エリア・ネットワークは、マイクロコントローラが同じネットワークバスに接続された外部デバイスと通信する標準シリアル差動バス・ブロード・キャスト・インタフェースです。
FD-CANインタフェースは高度な設定が可能で、ノードは2本のワイヤだけで簡単に接続できます。
アプリケーションは、メッセージ優先度、オブジェクト指向通信(ノード・アドレッシングは不要だが、コンテンツは識別)、メッセー
ジ転送遅延が少なく、システム全体のメッセージ整合性(エラー検出と管理メカニズム)を備えたマルチマスタ概念の恩恵を受けることができます。

2•2 FD-CANコントローラ•••

CANサブシステムの特徴

2つの異なるバスに接続することが可能

CANプロトコルバージョン2.0 AおよびB、CAN FDプロトコル･バージョン1.0に対応
ISO 11898-1:2015 -4に準拠•

最大64データバイトのCAN FD 64データバイト対応•

ビットレート:•

最大1Mビット/秒のアービトレーション・ビットレート•

最大8Mビット/秒のデータビットレート

RAM•

10Kバイト RAM•

フィルター/FIFO/バッファ/トリガなどの具体的なニーズと、使用するコントローラの数に応じて、セクションごとに割り当てられる

••

•

3

サポート

•

コントローラごとのマスク可能な割り込み•• 2つの独立した割込みライン• 30個のフルコンフィギュラブルな割込みフラグ
パワーダウンへの対応•

CANエラーロギング•

AUTOSAR、J1939のサポート•

優先度の高いメッセージを受信した際の別のシグナリング•

TTCAN(FD-CAN1のみ):•• TTCANプロトコルのレベル1とレベル2を完全にハードウェア化• イベント同期型のタイムトリガー通信に対応較正されたクロックを生成するために使用できる共通クロックキャリブレーション･ユニット

IPが管理するエレメントの最大数•

最大128エレメントの11ビット･フィルタ•

最大64エレメントの29ビット･フィルタ•

最大64エレメントの2つの受信FIFO•

最大64エレメントの受信バッファ•

最大32エレメントの送信バッファ•

最大32エレメントの送信イベントFIFO•

TTCAN用の最大64個のトリガアプリケーションに応じて、これらのセクションのサイズを決めるためには、ある種のトレードオフを行う必要がある

CANサブシステムは、FD-CAN1とFD-CAN2という2つのFD-CANコントローラをサポートしています。これら2つのコントローラは独立しており（クロック・キャリブレーション・ユニットとRAMが共有されていることを除く）、同じ機能を持っています（FD-CAN1のみでサポートされているTTCANを除く）。
これらのコントローラは、最大ビットレート1Mビット/秒の基本的な拡張CANプロトコルバー
ジョン2.0 AおよびBと、最大64データバイト、最大8Mビット/秒のCAN FDプロトコルバー
ジョン1.0の両方をサポートしています。
また、10KバイトのメッセージRAMメモリを共有しています。完全にプログラム可能なこのRAMには、フィルタ、バッファ、FIFO、タイムトリガCAN（TTCAN）のトリガなどが格納されています。
1台のコントローラーでフル構成をサポートするために必要なメモリの総量は17.4Kバイト（最大）です。10KバイトのRAMメモリしか使用できないため、アプリケーションの機能に応じて、いくつかのトレードオフを行う必要があります。
また、各コントローラは2つの独立したマスク可能な割込みをサポートしており、それぞれの割込みフラグは30個まで設定可能です。
コントローラはパワーダウンモードを備えています。エラーロギング、AUTOSAR、J1939、優先度の高いメッセージの受信時の個別信号をサポートしています。
コントローラFD-CAN1は、イベント同期型タイムトリガ通信、グローバルシステムタイム、クロックドリフト補正を含むタイムトリガCAN（TTCAN）をサポートしています。クロック・キャリ
ブレーション・ユニットは、FD-CAN1とFD-CAN2の両方のコントローラのキャリブレーションされたクロックを生成するためにオプションで使用できます。このユニットは、FD-CAN1が受信したCANメッセージを評価することで、HSI内部のRCオシレーターとPLLを使用します。

3

FD-CAN動作モード

4

スリープモード

FD CAN(LFMおよび/またはFFM)

リセット‘クラシック’CAN
TT CAN(DARモード*)

通常モード

初期化モード制限
バスモニタリング
テストモード* DARモード: 自動再送信の無効化

FD-CANには、初期化・通常・スリープの3つの主要な動作モードがあります。
ハードウェアリセット後、FD-CANはソフトウェアを介して初期化モードに入ります。
このモードでは、次の手順を実行します。

• ペリフェラルの設定（ビットタイミングとRAMの割り当て）を行う必要があります。‘ビットタイミング’の設定では、レートが設定され、実際のシリアルバスラインに合わせてサンプリングポイントが調整されます。
• CANコントローラは、11連続の劣性ビット（Consecutive recessive bit）を待つことによってCANバスと同期します。
CANが通常モードの場合、ユーザは異なる特定のサブモードを選択できます。






“クラシック“CANモード
FD CANモード：ロングフレームモードとファストフレームモード
TT CANモード：タイムートリガコミュニケーション。このモードでは、自動再送信機能を無効にする必要があります（DARモード）。
制限モード：コントローラはデータフレームを受信して確認することはできますが、フレームは送信しません。これは、異なるCANビットレートに適応するアプリケーションで使用することができます。
バスモニタリングモード：コントローラはデータフレームを受信することができます（ただし、データフレームを確認することはできません）。これは、支配的なビットの送信によってそれに影響を与えることなく、CANバス上のトラフィックを分析するために使用することができます。
テストモードo
外部ループバックモード：コントローラが自身の送信メッセージを受信メッセージとして扱う
o
内部ループバックモード：稼働中のCANシステムに影響を与えることなく、コントローラのテストが可能

CPUからの要求により、バスアイドル状態を検出した場合は、低消費電力で動作するスリープモードになります。

4

CANサブシステム･ブロック図(シングルCANコンフィグ)5APB
FD-CAN1レジスタ

タイムトリガレジスタ

RXコントローラ･ハンドラ-アクセプタンス･フィルタ

フィルタ・コンフィギュレーション・レジスタ
送信／受信ステータス・レジスタ
RAMコンフィギュレーション・レジスタ

FD-CAN1セクション
11ビット･フィルタ

クロック・キャリブレーション・ユニット
クロック分割

キャリブレーション

CCUコンフィグおよびステータス・レジスタ

RAM+アービタ

29ビット･フィルタ

RX FIFO 0

RX FIFO 1RXバッファ

トリガ･メモリ

Tx Evt FIFO

TXバッファ

CANコア(プロトコル･ハンドラ)

コントロール・コンフィギュレーション・レジスタ

TXコントローラ･ハンドラ-TX優先順位付け-フレーム同期
CAN1_TX

CAN1_RX

この図は、シングルのFD-CAN構成におけるCANサブシステムの簡略化したブロック図で、その基本的な機能と制御機能を示しています。


3種類のレジスタを搭載：コントロール・コンフィギュレーション・レジ
スタ、フィルタ・コンフィギュレーション・レジスタ、ステータス・レジ
スタの3種類です。タイムトリガレジスタは、FD-CAN1コントローラにのみ搭載されているため、独立して表示されます。



完全に設定なRAMメモリには、TXおよびRXハンドラが必要とするすべてのフィルタとメッセージが格納されています。これらの異なるセクションの割り当ては、RAMコンフィギュレーション・レジスタのプログラミングによって行われます。

TXハンドラは、CANコアのプロトコルハンドラにメッセージを送信する前に、優先順位付けとフレーム同期を管理します。

RXハンドラは、CANコアからのメッセージを受信し、RAMからロードされたフィルタのメッセージ機能を受け入れるか否かを決定します。



最後に、クロック・キャリブレーション・ユニットを使用して、FD-CAN1で受信したCANメッセージを評価し、HSIの内部RCオシレータとPLLから校正されたクロックを生成することができます。



フィルタとトリガは、APBバスを通じてCPUから直接送信されます。

5

CANサブシステム･ブロック図(デュアルCANコンフィグ)

6

APB

タイムトリガレジスタ

FD-CAN1コントローラ TXコントローラ･ハンドラ-TX優先順位付け-フレーム同期
FD-CAN1コントローラ RXコントローラ･ハンドラ-アクセプタンス･フィルタ

コントロール・コンフィギュレーション・レジスタ

フィルタ・コンフィギュレーション・レジスタ
送信／受信ステータス・レジスタ
RAMコンフィギュレーション・レジスタクロック・キャリブレーション・ユニット
クロック分割

キャリブレーション

FD-CAN1セクション

RAM+アービタ

FD-CAN2セクション

29ビットフィルタ

11ビットフィルタ

RX FIFO 0RX FIFO 1RX FIFO 0

RXバッファ

トリガメモリRXバッファ

Tx Evt FIFO

TXバッファ

Tx Evt FIFO

29ビットフィルタ

CCUコンフィグおよびステータス・レジスタ
TXバッファ

FD-CAN2レジスタ
コントロール・コンフィギュレーション・レジスタ

フィルタ・コンフィギュレーション・レジスタ
送信／受信ステータス・レジスタ
RAMコンフィギュレーション・レジスタ

CAN1_TX

CAN1_RXRX FIFO 1

FD-CAN2コントローラ RXコントローラ･ハンドラ-アクセプタンス･フィルタ
FDCAN2コントローラ TXコントローラ･ハンドラ-TX優先順位付け-フレーム同期

CANコア(プロトコル･ハンドラ)

11ビットフィルタ

CANコア(プロトコル･ハンドラ)

FD-CAN1レジスタ

CAN2_RXCAN2_TX

この図は、デュアルCAN構成のFD-CANの簡略化したブロック図で、その基本的な機能と制御の特徴を示しています。
シングル構成と比較して、以下のことがわかります。


レジスタマップ、TXハンドラ、RXハンドラ、CANコアは重複しています。ただし、タイム・トリガ・レジスタはFD-CAN1にしか存在しないことに注意してください。



また、RAMメモリには、FD-CAN1用とFD-CAN2用の2セットのデータセクションが格納されています。



最後に、クロック・キャリブレーション・ユニットが使用されている場合、FD-CAN1とFD-CAN2の両方のクロックを生成します。

6

応用例

7

CAN

コントロール・エリア・ネットワーク（CANバス）は、もともと自動車用に設計されたものですが、現在では他の多くの場面でも使用されています。

7

FD-CAN割込み

8• コントローラごとに準備された2本の独立した割込みライン• 以下の30個の設定可能な割込みフラグとは別にイネーブル/ディセーブルの設定が可能
割込みイベント
予約アドレスへのアクセス
データ･フェーズのプロトコル･エラー
アービトレーション･フェーズでのプロトコル･エラー
ウォッチドッグ
バス オフ
警告ステータス
エラー･パッシブ
エラー･ログのオーバーフロー
ビットエラー補正なしビットエラー補正
専用Rxバッファにメッセージ格納
タイムアウトの発生
メッセージRAMアクセスの失敗
タイムスタンプ･ラップアラウンド
TXイベントFIFOエレメントの喪失

割込みイベント
TXイベントFIFOフル
TXイベントFIFOのウォーターマークに到達
TXイベントFIFO新しいエントリ
TX FIFOエンプティ割込み
送信のキャンセルの完了
トランスミッション完了
優先度の高いメッセージ
RX FIFO1メッセージ喪失
RX FIFO1メッセージフル割込み
RX FIFO1ウォーターマークに到達
RX FIFO1新しいメッセージ
RX FIFO0メッセージ喪失
RX FIFO0フル割込み
RX FIFO0ウォーターマークに到着
RX FIFO0新しいメッセージ• クロック・キャリブレーション・ユニットの1つの割込みライン、2つの割込みイベント付きキャリブレーション状況の変更

キャリブレーション・ウォッチドッグ・イベント

FD-CANコントローラペリフェラルは、2つの独立した割込みラインを提供します。
CANサブシステムが提供するのは:• コントローラ用の独立した4つの割込みライン• クロック・キャリブレーション・ユニット用の1つの割込みライン
このスライドでは、可能な割り込みイベントの全リストを見ることができます。

8低電力モード
モード

9

説明

RUN

アクティブ

SLEEP

アクティブ
ペリフェラル割込みにより、デバイスはSLEEPモードを終了

STOP

停止
ペリフェラル･レジスタの内容は保存される

STANDBY

パワーダウン
STANDBYモードを終了した後は、ペリフェラルを再初期化する必要がある

ここでは、CANサブシステムの低消費電力設定モードの概要を説明します。デバイスのSTOPまたはSTANDBYモードでは、いかなる通信も実行できません。ペリフェラルがSTOPまたはSTANDBYモードに入る前に、すべてのCANトラフィックが完了していることを確認することが必要です。

9デバッグ･サポート

10• CPUコアがデバッグ･モードの間は、次のような状態となる• FD-CANは通常の機能モードのまま• 「読取り時にリセット」または「読取り時に設定」と記載のあるタイプのレジスタは無効になり、それらを読んでも値には影響しない

CPUコアがデバッグモード(ブレークポイントで停止)の間、
FD-CANは通常の機能モードを維持しています。特に、受信は通常通り継続しており、これによりFIFOやバッファが一杯になると受信オーバーランエラーが発生することがあります。
「読み取り時にリセット」または「読み取り時に設定」と記載のあるタイプのレジスタは無効になり、それらを読んでも値には影響しません。

10

CAN関連ペリフェラル

11• 次のペリフェラルのトレーニング資料もご参照ください• CANクロック制御と有効化/リセットの詳細については、リセットとクロック･コントローラ(RCC)• FD-CANの割込みのマッピングの詳細については、ネスト化されたベクタ割込みコントローラ(NVIC)• FD-CANの入力ピンと出力ピンの詳細については、汎用I/Os(GPIO)• CPUが停止したときのFD-CANの動作に関する詳細は、デバッグ･サポート(DBG)

詳細については、FD-CANの動作に影響を与える可能性のあるこれらのペリフェラルのトレーニングを参照してください。
-リセットおよびクロックコントローラ（RCC）：CANクロック制御およびイネーブル/リセットの詳細については、「リセットおよびクロックコントローラ（RCC）」を参照してください。
-FD-CANの割り込みのマッピングの詳細については、「割り込み」を参照してください。
-汎用I/O(GPIO)FD-CANの入力ピンと出力ピンの詳細については、「汎用I/O(GPIO)」を参照してください。
-デバッグモードでのFD-CANの動作の詳細については、「デバッグサポート（DBG）」を参照してください。

11

参照

12

• 詳細については、以下のリソースを参照ください• アプリケーションノートAN3154: Description of the CAN protocol used in the STM32 bootloader• アプリケーションノートAN3364: Migration and compatibility guidelines for STM32
microcontroller applications• Web (接続例、使用可能な監視ツールなど)

CANのトピックをカバーするアプリケーションノートは、www.st.comで入手できます。
CANインタフェースの詳細については、CAN通信プロトコルやバス・モニタリング・ツールについて説明しているさまざまなWebページを参照してください。
多くのデジタルオシロスコープは、CANバスを介して送信されたデータの直接読み取りと解析をサポートしています。

12