STM32,CAN总线过滤器的设置详细讲解
屏蔽位模式:
在屏蔽位模式下,標識符寄存器和屏蔽寄存器一起,指定報文標識符的任何一位,應該按照“必須匹配”和“不用關心”處理。標識符列表模式:
在標識符列表模式下,屏蔽寄存器也被當做標識符寄存器用。因此,不是采用一個標識符加一個屏蔽位的方式,而是采用兩個標識符寄存器。接收報文的每一位都必須跟過濾器標識符相同。STM32普通型芯片的 CAN 有14組過濾器組(互聯型有28組過濾器組) ,用以對接收到的
幀進行過濾。每組過濾器包括了2個可配置的32位寄存器:CAN_FxR0和 CAN_FxR1。
對于過濾器組, 可以將其配置成屏蔽位模式, 這樣 CAN_FxR0中保存的就是標識符匹配值,
CAN_FxR1中保存的是屏蔽碼,即 CAN_FxR1中如果某一位為1,則 CAN_FxR0中相應
的位必須與收到的幀的標志符中的相應位吻合才能通過過濾器; CAN_FxR1中為0的位表
示 CAN_FxR0中的相應位可不必與收到的幀進行匹配。 過濾器組還可以被配置成標識符列
表模式,此時 CAN_FxR0和 CAN_FxR1中的都是要匹配的標識符,收到的幀的標識符必
須與其中的一個吻合才能通過過濾。
一般我們用的都是普通型的,所以在本文中可以說 STM32有14組過濾器組。
根據配置,每1組過濾器組可以有1個,2個或4個過濾器。
這些過濾器相當于關卡,每當收到一條報文時,CAN 要先將收到的報文從這些過濾器上”
過”一下,能通過的報文是有效報文,收進 FIFO,不能通過的是無效報文(不是發給”我”
的報文),直接丟棄。
所有的過濾器是并聯的,即一個報文只要通過了一個過濾器,就是算是有效的。
每組過濾器組有兩種工作模式:標識符列表模式和標識符屏蔽位模式。
每組過濾器組必須關聯且只能關聯一個 FIFO。復位默認都關聯到 FIFO_0。
所謂“關聯”是指假如收到的報文從某個過濾器通過了,那么該報文會被存到該過濾器相連
的 FIFO。
從另一方面來說,每個 FIFO 都關聯了一串的過濾器組,兩個 FIFO 剛好瓜分了所有的過
濾器組。
總結
以上是生活随笔為你收集整理的STM32,CAN总线过滤器的设置详细讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 类的模板
- 下一篇: 作者:窦勇(1966-),男,博士,国防