找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 7661|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

stm32 CAN濾波器設(shè)置教程

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
stm32CAN濾波器設(shè)置見附件。
1 前言
         在CAN協(xié)議里,報(bào)文的標(biāo)識(shí)符不代表節(jié)點(diǎn)的地址,而是跟報(bào)文的內(nèi)容相關(guān)的。因此,發(fā)送者以廣播的形式把報(bào)文發(fā)送給所有的接收者。節(jié)點(diǎn)在接收?qǐng)?bào)文時(shí),根據(jù)標(biāo)識(shí)符(CAN ID)的值決定軟件是否需要該報(bào)文;如果需要,就拷貝到SRAM里;如果不需要,報(bào)文就被丟棄且無需軟件的干預(yù)。
         為滿足這一需求,bxCAN為應(yīng)用程序提供了14個(gè)位寬可變的、可配置的過濾器組(13~0),以便只接收那些軟件需要的報(bào)文。硬件過濾的做法節(jié)省了CPU開銷,否則就必須由軟件過濾從而占用一定的CPU開銷。每個(gè)過濾器組x由2個(gè)32位寄存器,CAN_FxR0和CAN_FxR1組成。
        為了讓大家了解STM32的bxCAN的接收過濾機(jī)制,首先大家需要了解幾個(gè)概念。
2 幾個(gè)重要的概念
2.1 過濾器組
        STM32總共提供14個(gè)過濾器組來處理CAN接收過濾問題,每個(gè)過濾器組包含兩個(gè)32位寄存器CAN_FxR0和CAN_FxR1組成,在設(shè)置為屏蔽位模式下,其中一個(gè)作為標(biāo)識(shí)符寄存器,另一個(gè)作為屏蔽碼寄存器。過濾器組中的每個(gè)過濾器,編號(hào)(叫做過濾器號(hào))從0開始,到某個(gè)最大數(shù)值(這時(shí)最大值并非13,而是取決于14個(gè)過濾器組的模式和位寬的設(shè)置,當(dāng)全部配置為位寬為16,且為標(biāo)識(shí)符列表模式時(shí),最大編號(hào)為14*4-1=55)。
2.2 過濾器的過濾模式
        STM32提供兩種過濾模式供用戶設(shè)置:屏蔽位模式和標(biāo)識(shí)符列表模式。
2.2.1 屏蔽位模式
為了過濾出一組標(biāo)識(shí)符,應(yīng)該設(shè)置過濾器組工作在屏蔽位模式。
        在屏蔽位模式下,標(biāo)識(shí)符寄存器和屏蔽寄存器一起,指定報(bào)文標(biāo)識(shí)符的任何一位,應(yīng)該按照“必須匹配”或“不用關(guān)心”處理。
2.2.2 標(biāo)識(shí)符列表模式
為了過濾出一個(gè)標(biāo)識(shí)符,應(yīng)該設(shè)置過濾器組工作在標(biāo)識(shí)符列表模式。
        在標(biāo)識(shí)符列表模式下,屏蔽寄存器也被當(dāng)作標(biāo)識(shí)符寄存器用。因此,不是采用一個(gè)標(biāo)識(shí)符加一個(gè)屏蔽位的方式,而是使用2個(gè)標(biāo)識(shí)符寄存器。接收?qǐng)?bào)文標(biāo)識(shí)符的每一位都必須跟過濾器標(biāo)識(shí)符相同。
2.3 過濾器的位寬
        每個(gè)過濾器組的位寬都可以獨(dú)立配置,以滿足應(yīng)用程序的不同需求。根據(jù)位寬的不同,每個(gè)過濾器組可提供:
        ●1個(gè)32位過濾器,包括:STDID[10:0]、EXTID[17:0]、IDE和RTR位
        ●2個(gè)16位過濾器,包括:STDID[10:0]、IDE、RTR和EXTID[17:15]位
2.3 過濾器組的過濾模式和位寬設(shè)置
        過濾器組可以通過相應(yīng)的CAN_FMR寄存器(CAN過濾器主控寄存器)配置。但是不是什么時(shí)候都可以直接配置,在配置一個(gè)過濾器組前,必須通過清除CAN_FAR寄存器(CAN過濾器激活寄存器)的FACT位,把它設(shè)置為禁用狀態(tài)。然后才能設(shè)置或設(shè)置過濾器組的配置。
•    通過設(shè)置CAN_FS1R(CAN過濾器位寬寄存器)的相應(yīng)FSCx位,可以配置一個(gè)過濾器組的位寬。
•    通過CAN_FM1R(CAN過濾器模式寄存器)的FBMx位,可以配置對(duì)應(yīng)的屏蔽/標(biāo)識(shí)符寄存器的標(biāo)識(shí)符列表模式或屏蔽位模式。(見后續(xù)3.2節(jié))
應(yīng)用程序不用的過濾器組,應(yīng)該保持在禁用狀態(tài)。
關(guān)于過濾器配置,可參見下圖:


完整的Word格式文檔51黑下載地址:
STM32之CAN---CAN ID過濾器分析.docx (629.71 KB, 下載次數(shù): 80)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:478584 發(fā)表于 2019-10-21 18:34 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

板凳
ID:478584 發(fā)表于 2019-10-21 18:34 | 只看該作者
謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表