STM32 - CANバスボーレートとビットタイミング詳細

私は、マイクロコントローラを参照しないマイクロコントローラの他のタイプに似STM32F407、されて使用しています!

まず、標準のCANプロトコルビットタイミングのコンセプト

CANは、非同期通信であるため、シリアル非同期通信の間に接続されていないクロック信号線が、ネットワーク内の各ノードと同一のバスのようにできなくなり、ノード規則を使用して、良好なボー通信。
一方、また、「使用できるビット同期干渉、吸収誤差」アプローチを、バス信号のレベルは、正常な通信を確保するために、正確なサンプリングを達成します。
SSセグメント、PTS部、PSB1部、PBS2部:この同期ビットを達成するために、CANプロトコルは、各ビットのタイミングは、4つに分解されます。最小の時間単位が定義されている間:Tqと、セグメントの長さは、4つのX 1はTq =で表され、ビット列まで追加。

画像は少しであってもよい表現するための図を使用し、タイミングがビット19Tqで示されています。

 

これらは、CANビットタイミング定義された標準プロトコルであり、STM32周辺簡素化この規格。

 二、STM32 CANバスビットタイミングの概念

周辺CANはSTM32は3つしか含まセグメントタイミングビット:セグメント同期SYNC_SEG、上記BS1ビットセグメント(セグメント又はPSB1 PTSマージ)とビットセグメントBS2を。

 

前記固定SYNC_SEG 1Tqの長さは、他の二つの長さCAN_BTRに設けられていてもよいです。

 

ここでは、細部に注意を払う必要があり、期間BS1の長さは、実際に私たちが書く+1値、BS2が同じセグメントに等しいです。

第三に、ボーレートが計算されます

セグメントBS1とBS2部の長さを設定した後、我々は、CANの各データ・ビットの長さを決定することができます。

時間のBS1期間は:Ts1の= Tqが*である(TSI1 [3:0] + 1)
時間のBS2期間:: Ts1の= Tqの*(+ 1 TSI2 [0 2])
データ・ビットの時間:T1bit = Ts1の+ Ts2とは1 TQ +

1つのデータの時間が見つかりました。ビット:ボーレート= 1 / T1bit

また、この式はTqの未知数。 

ボーレートに関連するCAN周辺構成およびパラメータにBRPある(ボーレートプリスケーラ)

         

 

CAN1周辺Iの使用はSTM32F407 APB1バスに搭載され、そのデフォルトのクロック周波数45M、TPCLK = 1 / 45M。

BRP定義されたパラメータ:Tqが= BRPである[9:0] * TPCLK

上記の式にも出て、そのような値TQが、決定されたボーレートCANバス転送のボーレートであることができます。

 

 

 

おすすめ

転載: www.cnblogs.com/Irvingcode/p/11802541.html