2368455_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2368455_ja-JP

2368455_ja-JP

CANドライバの復旧

こんにちは、

私はFRDM-A-S32K344プラットフォーム上でFlexCANドライバ(割り込みモード)の開発に取り組んでいます。CANドライバが、システムリセットやイグニッションリセットなしでCANバス障害からの自動復旧をサポートしているかどうかを確認したい。このリカバリ機能がSDKバージョン3.0.0に存在する場合、ドライバのどこに実装または反映されているのか、また、どこで確認すればよいのか教えてください。

Re: CAN driver recovery

こんにちは、 @ganavi1 さん

@shepさんが指摘したように、RTDパッケージに含まれるFlexCANドライバを使用すると、「AutoBus Recovery」機能を有効にできます。

Julin_AragnM_0-1779302922996.png

これはデフォルトで設定されており、追加の設定は必要ありません。このビットが有効になると、FLEXCANは自動的にバスオフ状態から正常状態への復旧を試みます(バスオフの原因となった外部条件が解消された場合)。

よろしくお願いします、
ジュリアン

Re: CAN driver recovery

S32K FlexCANレジスタは、バスオフ時の自動復旧機能をサポートしています。SDKのマニュアルは持っていませんが、関連するセクションを検索して、リファレンスマニュアルに記載されている部分と連携しているかどうかを確認してみてください。

以下はリファレンス・マニュアルからの抜粋です。

CTRL1レジスタ
BOFFREC
バスの事故復旧
FlexCANがバスオフ状態からどのように復旧するかを決定します。0の場合、CAN仕様2.0Bに従ってバスオフ状態からの自動復旧が行われます。1の場合、バス停止からの自動復旧は無効になります。このフィールドに1を書き込むまで、モジュールはバスオフ状態のままです。
CANバス上で11ビットの劣性ビットのシーケンスが128回検出される前にこのフィールドが0になった場合、バスオフからの復旧は、このフィールドが一度も1になったことがないかのように行われます。11ビットの劣性ビットのシーケンスが128回発生した後にこのフィールドが0になった場合、FlexCANはバスと再同期します。バスに加わる前に、11個の劣性遺伝子を待つ。
このフィールドが0になった後、バスオフ中に再び1になることができますが、それはモジュールが次にバスオフになったときにのみ有効になります。モジュールがバスオフ状態のときにこのフィールドが0になった場合、このフィールドに1を書き込んでも、現在のバスオフからの復旧には効果がありません。
詳細については、CANプロトコル規格ISO 11898-1:2015の「バスオフ」の項を参照してください。
注記
0b - 有効
1b - 無効

このビットのデフォルト値は0なので、デフォルトではバスオフからの復旧が自動的に実行されます。

Re: CAN driver recovery

以下にいくつかのエラー訂正機能を示します。お役に立てば幸いです。

メモリ読み出しアクセスにおけるエラーの検出と訂正:
FlexCANメモリの各バイトは、5ビットのパリティビットに対応しています。
誤り訂正機構により、この13ビットワードの1ビットにおける誤り(訂正可能な誤り)を訂正することが可能になります。
—2ビットのエラーは検出できますが、訂正することはできません(訂正不可能なエラー)。

Tags (1)
No ratings
Version history
Last update:
Thursday
Updated by: