新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STM32的CAN總線的標識符過濾器組使用注意事項

STM32的CAN總線的標識符過濾器組使用注意事項

作者: 時間:2016-11-09 來源:網(wǎng)絡(luò) 收藏
CAN總線標識符過濾器很重要。

1. 標識符過濾器是用于接收的,發(fā)送的時候無需設(shè)置過濾器,這點一定要整明白。
根據(jù)發(fā)送端發(fā)送來的幀數(shù)據(jù),通過標識符過濾器就可以設(shè)置僅接收需要接收的幀數(shù)據(jù)有效降低CPU多余的處理時間。

2 什么是標識符?
標識符主要包括如下,也可以簡單的理解僅包含ID號,但是在這里下面這些都是要包含的。


比如:數(shù)據(jù)幀和遙控幀,標識符就包含在其中,所以發(fā)送端發(fā)幀數(shù)據(jù)給接收端后,接收端就可以通過硬件標識符過濾器進行篩選,節(jié)省了CPU時間:




3. 下面就是最重要的,STM32的CAN總線標識符濾波器組包含兩種實現(xiàn)方法:
屏蔽位模式和標識符列表模式,這兩種方式怎么理解呢,重點看下面的截圖:


書面上解釋屏蔽位模式和標識符列表模式的區(qū)別
屏蔽位模式
在屏蔽位模式下,標識符寄存器和屏蔽寄存器一起,指定報文標識符的任何一位,應(yīng)該按照“必須匹配”或“不用關(guān)心”處理。
標識符列表模式
在標識符列表模式下,屏蔽寄存器也被當作標識符寄存器用。因此,不是采用一個標識符加一個屏蔽位的方式,而是使用2個標識符寄存器。接收報文標識符的每一位都必須跟過濾器標識符相同。
===================================
標識符的列表模式比較好理解,就是指的所有的過濾器寄存器位全部用于過濾,簡單的說就是發(fā)送端發(fā)送的標識符所有的位必須跟接收端的濾波器寄存器定義一樣。有一個位定義不一樣,拒收此消息。


比STM32F103有14個過濾器組,如果采用兩個16位的過濾器形式,那么就可以固定識別出14 * 4 = 56個不同的標識符,實際使用中也夠用了。為什么是乘以4,注意看上面的截圖,4個16位過濾器--標識符列表
===================================

本文引用地址:http://m.butianyuan.cn/article/201611/317908.htm

屏蔽位模式要稍麻煩一些,我們以2個16位過濾器---標識符屏蔽為例進行說明:


將過濾器寄存器分成兩個部分,標識符寄存器和屏蔽位寄存器。
上面截圖中ID部分就是標識符寄存器,屏蔽部分就是屏蔽位寄存器。
比如
ID : 0xFED0;
屏蔽:0xFFE0;
那就是表示,接收端接受幀數(shù)據(jù)時,前11位的數(shù)值必須跟ID中定義的前11位一致,后面的5位數(shù)據(jù)忽略。
不管是什么值都可以。也即是說屏蔽位中的數(shù)值:
0: 不關(guān)心,該位不用于比較;
1: 必須匹配,到來的標識符位必須與濾波器對應(yīng)的標識符寄存器位相一致。
基于此原因:
為了過濾出一組標識符,應(yīng)該設(shè)置過濾器組工作在屏蔽位模式。
為了過濾出一個標識符,應(yīng)該設(shè)置過濾器組工作在標識符列表模式。



關(guān)鍵詞: STM32CAN總線標識符過濾

評論


技術(shù)專區(qū)

關(guān)閉