CANフィルタ学習のSTM32 407

 

 

この構成によれば、各グループのフィルタのセットは、1つ、2つ、または4つのフィルタを有することができる。
これらのフィルタは、パケットが受信されるたびにレベル、に対応するには、最初のパケットを受信するCAN
これらをフィルタリング「オフ」に、メッセージを介してFIFOに組み込まれた有効なメッセージ、ある、
廃棄された(「I」はメッセージに送信されません)無効なメッセージ、することはできません。
並行してすべてのフィルタすなわち、限り、フィルタを介してパケットとして、有効であると考えられる。

各フィルタセットは2つの動作モードを有する:モード識別子リストを、識別子マスクビットパターン
識別子リストモードでは、受信しましたパケット識別子は通過するように、フィルタの値と正確に一致しなければならない
識別子であっても、この介して、どのビット値を指定することができ、パターンマスクビット識別子に実際にの範囲の識別を規定します突破。
フィルタの一組では、フィルタの完全なセットは、同じ動作モードを使用する。

また、フィルタの各フィルタの幅は可変であり、とすることができる32ビットまたは16ビット。
動作モード。幅は、フィルタは、いくつかの形態の以下の群の一つになることができる:
(1)32ビット フィルタマスクビットパターン。
(2)2つの32ビットリストモードフィルタ。
(3)2つの16ビットのマスクビットパターンをフィルタリングします。
(4)4 16ビットリストモードフィルタ。
すべてのフィルタが並列に接続されている、すなわち、限り、フィルタを介してパケットとして、有効であると考えられる。


各フィルタセットが濾過記憶された「標準値」のための2つの32ビットレジスタを有し、即ちFxR1、FxR2。
32ビットのマスクビットパターンの:
    フィルタがあり、
    FxR2は心配する必要があるビットを指定し、FxR1規格は、これらのビットの値を指定します。
32ビットリストモードで:
    。2つのフィルタがある
    。FXR1はフィルタ0の標準値を指定し、パケットがFXR1同一とみなさ渡されたときにのみ識別子とともに受信
    標準値はFxR2フィルタ1を指定しました。
16ビットのマスクビットパターン:
    2つのフィルタがある。
    [31-16]ビット当該指定前記FXR1フィルタ設定0、ビット[15-0]ビット指定これらの標準値。
    FxR2構成[31-16]は、標準値を関心のビットを指定し、前記フィルタ1は、[15-0]ビットは、これらのビットを指定する。
16ビットリストモード:
    4つのフィルタがある。
    のFXR1 [15 0]ビット構成フィルタ0、FxR1 [31-16] 1.フィルタ構成ビット
    [15-0]はFxR2フィルタ構成[31-16]のビット2、FxR2フィルタ装置3ビット

STM32のCANを2 FIFO、それぞれFIFO0、FIFO1は。FIFO_0を書き込む以下FIFO0の区別を容易にするために、FIFO1はFIFO_1。書き込みがある
フィルタに関連付けられている必要があり、各グループは、関連することができ、FIFOデフォルトはFIFO_0をリセットするために関連している。
いわゆる「関連します」フィルタからの受信パケットは、パケットをフィルタに結合されたFIFOに格納されている場合、それは意味している。
一方、各FIFOは、フィルタのグループの一連の関連しています、ちょうど2つのFIFO フィルタのすべての良いセットを分割する。




メッセージが受信されるたびに、一致した場合、関連した最初のメッセージフィルタFIFO_0と比較することができ、このメッセージFIFO_0にで。
、そうでない場合そして、もし一致し、パケットのいくつかそれFIFO_1にパケットフィルタ関連FIFO_1を比較します。
それでも一致しない場合、パケットは廃棄されます。

すべてのフィルタは、各FIFOに平行である限り、フィルタを介してそれらのいずれかのように、パケットが有効である。
パケットはFIFO_0の規定に沿ったものである場合は、だけでなく、コンプライアンスFIFO_1、明らかに、FIFO_0に配置します動作シーケンスに従う。

FIFOは、フィルタ20を有している場合、各FIFOのみ、換言すれば、フィルタ関数まで活性化されるが、刺激された場合にのみ5、
その後、それは比較のためにのみ5フィルタを取った、パケットを比較し
、一般的なフィルタを使用する際に、直接初期化フェーズでそれを有効にします。
各FIFOは、少なくとも活性化されなければならないことに留意すべきですフィルタは、メッセージを受信することが可能である。フィルタは、アクティブ化されていない場合は
、すべてのパケットが廃棄されるように。
あなたは洗練されたフィルタリングを使用しない場合は、一般的には、FIFOは、フィルタのみグループのセットをアクティブにすることができますビット32ビット・モードでは、マスクするように設定
つの標準値レジスタ(FxR1、FxR2)はすべてのパケットが通過することができ、このように0に設定されている。


STM32ことができ、他のフィルタは、数を把握することは困難です。
パケットを受信したCPUを加速するためのフィルタ番号 リーは
、有効なメッセージを受信すると、メッセージが受信されることができ、その数スルーフィルタは、受信メールボックスと一緒に記憶されて
すばやく知るフィルタの数に応じて、処理時のCPUそれによって処理を行う使用のパケットは、
フィルタ番号なしでは、実際に可能であり、このときCPUは、受信したパケット識別子を分析することであるので、メッセージの目的を知っている。
より多くの情報識別子が処理に含まれますスローに少し立ち上がっ

STM32の数をフィルタリングするために、次の規則を使用しています:
(1)FIFO_0とFIFO_1フィルタは、独立した輸入した番号は0から始まり、順番に番号が付け立ちます。
(2)FIFOと関連するすべてのフィルタを、そこが活性化されていないかどうか、番号を統一している。
(3)のために、大きなに小さな多数のフィルタ群によって、ゼロから数え。
(4)と同じでフィルタグループは、小から少数のレジスタで構成される多数.FxR1フィルタに、FxR2はフィルタの多数配置されている。
(5)同じレジスタ、ビット数内で昇順で[15-0]ビット小さなフィルタ構成の数、[31-16]フィルタのビット構成が多数。
(6)フィルタコードは、弾性であるインポートする。設定を変更する際、番号は各フィルタが変更されます。
    しかし設定されていません変更の場合には、各フィルタの数が比較的安定している

ように、各フィルタは、FIFO内の独自の番号を持っている。 
0から番号FIFO_0に- Mがある(M-1)、フィルタの総数。
FIFO_1で、0から番号- 。(N-1) 、 Nは、フィルタの総数で

FIFOは、多くのフィルタがある場合、メッセージは、いくつかのフィルタがあってもよいです、渡すことができ
、この時間は、このメッセージがどこから来ること? 
STM32をフィルタの使用において、以下の配列によってフィルタ
(1)は、32ビット幅であります フィルタ、優先順位は、フィルタの16ビット幅以上である
(2)フィルタの同じビット幅のために、識別子リストモードが優先マスクビットパターンよりも高い
(3)ワイドビットと同じフィルタリングモード、フィルタによって決定される優先順位番号は、フィルタは、高優先度の小さい数で

この順に、フィルタを介して最初のパケットフィルタは、メールボックスに格納されている受信パケット数です。

おすすめ

転載: www.cnblogs.com/pquan/p/11456586.html