日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式分享

CAN 過濾器的本質(zhì)是 “基于 CAN 幀 ID 的硬件匹配電路”,其核心功能是通過預(yù)設(shè)的 “過濾規(guī)則”,判斷接收幀的 ID 是否符合條件,僅允許符合條件的幀進(jìn)入接收緩沖區(qū)。不同廠商的 CAN 控制器(如 ST 的 bxCAN、NXP 的 SJA1000、Microchip 的 MCP2515)在過濾器的硬件實現(xiàn)上略有差異,但核心邏輯一致,主要包含 “過濾器組”“過濾模式”“ID 類型”“接收 FIFO” 四大組件,共同構(gòu)成 “幀接收 - ID 匹配 - FIFO 存儲” 的完整流程。

(一)過濾器的核心組件:從規(guī)則定義到數(shù)據(jù)存儲

1. 過濾器組(Filter Bank):過濾規(guī)則的載體

CAN 控制器通常包含多個 “過濾器組”(如 STM32 bxCAN 支持 28 個過濾器組,SJA1000 支持 2 個),每個過濾器組可獨立配置一套過濾規(guī)則,實現(xiàn)多維度的篩選需求。例如,某汽車 ECU 需要同時接收 “發(fā)動機(jī)轉(zhuǎn)速幀”(ID=0x123)與 “水溫幀”(ID=0x124),可配置兩個過濾器組,分別匹配這兩個 ID;也可通過一個過濾器組的 “列表模式” 同時匹配多個 ID,靈活度取決于應(yīng)用場景。

每個過濾器組包含 “過濾器寄存器”(用于存儲目標(biāo) ID 與匹配規(guī)則)與 “控制寄存器”(用于配置過濾模式、ID 類型、激活狀態(tài)):

過濾器寄存器:通常分為 “過濾器 ID 寄存器”(Filter ID Register)與 “過濾器掩碼寄存器”(Filter Mask Register),前者存儲目標(biāo) ID 的位 pattern,后者定義哪些位需要嚴(yán)格匹配、哪些位可忽略(僅掩碼模式需要);

控制寄存器:配置過濾器的工作模式(掩碼模式 / 列表模式)、ID 類型(標(biāo)準(zhǔn) ID / 擴(kuò)展 ID)、關(guān)聯(lián)的接收 FIFOFIFO0/FIFO1)、激活狀態(tài)(激活 / 未激活)。

2. 過濾模式:精準(zhǔn)匹配與靈活篩選的選擇

CAN 過濾器支持兩種核心模式 ——掩碼模式(Mask Mode) 與列表模式(List Mode),分別對應(yīng) “靈活篩選一類 ID” 與 “精準(zhǔn)匹配多個固定 ID” 的需求,是過濾器配置的核心區(qū)別。

1)掩碼模式:靈活的 “模糊匹配”

掩碼模式(也稱為 “掩碼位寬模式”)通過 “過濾器 ID” 與 “過濾器掩碼” 的配合,實現(xiàn)對某一類 ID 的靈活篩選。其核心邏輯是:掩碼的每一位定義了過濾器 ID 對應(yīng)位的 “匹配強度”—— 掩碼位為 1 時,接收幀的對應(yīng)位必須與過濾器 ID 的對應(yīng)位完全一致(“嚴(yán)格匹配位”);掩碼位為 0 時,接收幀的對應(yīng)位可任意(0 1,“忽略位”)。這種模式適合篩選 “ID 具有相同前綴或后綴” 的一類幀,無需為每個 ID 單獨配置過濾器。

以標(biāo)準(zhǔn) ID11 位) 為例:若需篩選 ID 0x120~0x12F 的所有幀(共 16 ID),過濾器 ID 可設(shè)為 0x120(二進(jìn)制00010010000),過濾器掩碼設(shè)為 0x1F0(二進(jìn)制00011111000)。此時,掩碼的高 6 位(bit10~bit5)為 1,接收幀的這 6 位必須與過濾器 ID 000100完全一致(即 ID 的高 6 位為 0x12);掩碼的低 4 位(bit4~bit0)為 0,接收幀的這 4 位可任意(0~F),因此所有 ID 0x120~0x12F 范圍內(nèi)的幀都會被匹配。

以擴(kuò)展 ID29 位) 為例:若需篩選擴(kuò)展 ID 0x12345000~0x12345FFF 的幀(低 8 位任意),過濾器 ID 設(shè)為 0x12345000,過濾器掩碼設(shè)為 0xFFFFFF00。掩碼的高 21 位為 1,需嚴(yán)格匹配 0x12345;低 8 位為 0,可任意,實現(xiàn)對該范圍 ID 的篩選。

掩碼模式的優(yōu)勢是 “一規(guī)則覆蓋多 ID”,節(jié)省過濾器組資源;缺點是無法排除 “范圍內(nèi)不需要的 ID”—— 例如,若 0x120~0x12F 中包含不需要的 0x128 幀,掩碼模式無法單獨排除,需結(jié)合軟件二次篩選(但仍比無過濾器時節(jié)省資源)。

2)列表模式:精準(zhǔn)的 “枚舉匹配”

列表模式(也稱為 “標(biāo)識符列表模式”)將過濾器 ID 寄存器直接作為 “目標(biāo) ID 列表”,接收幀的 ID 需與列表中的某一個 ID 完全一致才能通過篩選。其核心邏輯是:過濾器組的兩個寄存器(Filter ID1 Filter ID2)可存儲兩個目標(biāo) ID,接收幀的 ID 只需與其中一個完全匹配(標(biāo)準(zhǔn) ID 11 位全一致,擴(kuò)展 ID 29 位全一致),即可通過過濾。部分高端 CAN 控制器(如 STM32H7 bxCAN)支持 “擴(kuò)展列表模式”,可通過多個過濾器組級聯(lián),實現(xiàn)更多 ID 的精準(zhǔn)匹配。

例如,某工業(yè) PLC 需精準(zhǔn)接收 ID 0x001(緊急停止幀)、0x002(啟動幀)、0x003(暫停幀)的三個關(guān)鍵幀,可配置兩個過濾器組:

過濾器組 1Filter ID1=0x001,Filter ID2=0x002(列表模式,標(biāo)準(zhǔn) ID);

過濾器組 2Filter ID1=0x003Filter ID2=0x003(列表模式,標(biāo)準(zhǔn) ID,重復(fù)配置以僅匹配 0x003)。

此時,只有 ID 0x001、0x002、0x003 的幀能通過過濾,其他 ID(如 0x004、0x123)會被直接丟棄。

列表模式的優(yōu)勢是 “精準(zhǔn)篩選,無冗余數(shù)據(jù)”,適合需要嚴(yán)格控制接收 ID 的場景(如安全相關(guān)幀);缺點是 “一 ID 需一規(guī)則”,過濾器組資源消耗大 —— 若需匹配 10 ID,至少需要 5 個過濾器組(每個組存 2 ID),不適用于多 ID 篩選場景。

3. ID 類型:標(biāo)準(zhǔn) ID 與擴(kuò)展 ID 的匹配適配

CAN 幀的 ID 分為 “標(biāo)準(zhǔn) ID11 位)” 與 “擴(kuò)展 ID29 位)”,過濾器需先配置 “ID 類型”,確保與接收幀的 ID 位寬一致,否則會導(dǎo)致匹配失效。

標(biāo)準(zhǔn) ID 過濾:過濾器僅匹配 11 ID CAN 幀(CAN 2.0A 協(xié)議),過濾器 ID 寄存器的高 11 位存儲目標(biāo) ID,低 18 位(擴(kuò)展位寬)無效或設(shè)為 0;

擴(kuò)展 ID 過濾:過濾器僅匹配 29 ID CAN 幀(CAN 2.0B 協(xié)議),過濾器 ID 寄存器的高 29 位存儲目標(biāo) ID,低 3 位無效或設(shè)為 0。

部分 CAN 控制器支持 “混合模式”(如 SJA1000 的 “雙緩沖器模式”),可同時接收標(biāo)準(zhǔn) ID 與擴(kuò)展 ID 幀,但過濾器需分別配置 —— 例如,用一個過濾器組匹配標(biāo)準(zhǔn) ID,另一個過濾器組匹配擴(kuò)展 ID,避免 ID 類型混淆導(dǎo)致的過濾錯誤。

4. 接收 FIFO:過濾后數(shù)據(jù)的暫存區(qū)

通過過濾的 CAN 幀會被存入 CAN 控制器的 “接收 FIFO”(通常包含 FIFO0 FIFO1 兩個獨立 FIFO),FIFO 的作用是 “暫存有效數(shù)據(jù),避免 MCU 讀取不及時導(dǎo)致的數(shù)據(jù)丟失”。每個 FIFO 有固定的深度(如 STM32 bxCAN FIFO 深度為 3 級,可存儲 3 幀數(shù)據(jù)),當(dāng) FIFO 未滿時,新過濾后的幀會依次存入;當(dāng) FIFO 滿時,新幀的處理策略由 “FIFO 溢出模式” 決定:

丟棄模式:新幀直接丟棄,僅保留 FIFO 中的舊數(shù)據(jù);

覆蓋模式:新幀覆蓋 FIFO 中最早存入的幀(FIFO 頭部數(shù)據(jù)),確保最新數(shù)據(jù)不丟失(適用于實時性要求高的場景)。

MCU 通過讀取 FIFO 中的數(shù)據(jù)(如讀取 CAN_RIR 寄存器獲取 ID,CAN_RDLR/CAN_RDHR 寄存器獲取數(shù)據(jù)),完成有效幀的處理;處理后需通過 “釋放 FIFO” 操作(如讀取 FIFO 后自動釋放,或通過寄存器手動釋放),為新幀騰出空間。

(二)過濾器的工作流程:從幀接收到數(shù)據(jù)存儲

CAN 過濾器的工作流程是 “硬件自動執(zhí)行” 的,無需 MCU 干預(yù),核心步驟可分為四步:

幀接收與 ID 提?。?span>CAN 控制器接收總線上的差分信號,解析出 CAN 幀的結(jié)構(gòu)(幀起始、ID 場、控制場、數(shù)據(jù)場、CRC 場、ACK 場),并提取 ID 場的二進(jìn)制數(shù)據(jù)(11 位標(biāo)準(zhǔn) ID 29 位擴(kuò)展 ID),暫存到 “臨時 ID 寄存器”。

過濾器激活判斷:控制器檢查當(dāng)前配置的過濾器組是否處于 “激活狀態(tài)”(通過控制寄存器的 “激活位” 判斷)—— 未激活的過濾器組不參與匹配,所有幀直接進(jìn)入 FIFO(或丟棄,取決于控制器配置);激活的過濾器組進(jìn)入下一步匹配。

ID 匹配與規(guī)則判斷:激活的過濾器組根據(jù)預(yù)設(shè)的 “過濾模式” 與 “ID 類型”,對臨時 ID 寄存器中的 ID 進(jìn)行匹配:

若為掩碼模式:將臨時 ID 與過濾器 ID 進(jìn)行 “按位與” 運算,再與 “過濾器 ID & 過濾器掩碼” 的結(jié)果比較 —— 若一致,說明 ID 符合規(guī)則;若不一致,判定為無效幀。

若為列表模式:將臨時 ID 與過濾器 ID1、過濾器 ID2 分別比較 —— 若與任意一個 ID 完全一致,判定為有效幀;若均不一致,判定為無效幀。

有效幀存儲與無效幀丟棄:

有效幀:控制器將完整的 CAN 幀(ID + 數(shù)據(jù) + 狀態(tài))存入關(guān)聯(lián)的接收 FIFOFIFO0 FIFO1),若 FIFO 未滿,直接存入;若 FIFO 滿,按溢出模式處理(丟棄或覆蓋),同時置位 “FIFO 滿標(biāo)志”,提醒 MCU 及時讀取。

無效幀:控制器直接丟棄該幀,不占用 FIFO 資源,也不觸發(fā) MCU 中斷,僅更新 “無效幀計數(shù)寄存器”(部分控制器支持),用于后續(xù)故障排查。

整個流程的耗時均為 “硬件級速度”(通常為幾十納秒),遠(yuǎn)快于 MCU 的軟件解析速度(需數(shù)百納秒到微秒),確保了篩選的高效性。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

特朗普集團(tuán)近日取消了其新推出的T1智能手機(jī)“將在美國制造”的宣傳標(biāo)語,此舉源于外界對這款手機(jī)能否以當(dāng)前定價在美國本土生產(chǎn)的質(zhì)疑。

關(guān)鍵字: 特朗普 蘋果 AI

美國總統(tǒng)特朗普在公開場合表示,他已要求蘋果公司CEO蒂姆·庫克停止在印度建廠,矛頭直指該公司生產(chǎn)多元化的計劃。

關(guān)鍵字: 特朗普 蘋果 AI

4月10日消息,據(jù)媒體報道,美國總統(tǒng)特朗普宣布,美國對部分貿(mào)易伙伴暫停90天執(zhí)行新關(guān)稅政策,同時對中國的關(guān)稅提高到125%,該消息公布后蘋果股價飆升了15%。這次反彈使蘋果市值增加了4000多億美元,目前蘋果市值接近3萬...

關(guān)鍵字: 特朗普 AI 人工智能 特斯拉

3月25日消息,據(jù)報道,當(dāng)?shù)貢r間3月20日,美國總統(tǒng)特朗普在社交媒體平臺“真實社交”上發(fā)文寫道:“那些被抓到破壞特斯拉的人,將有很大可能被判入獄長達(dá)20年,這包括資助(破壞特斯拉汽車)者,我們正在尋找你。”

關(guān)鍵字: 特朗普 AI 人工智能 特斯拉

1月22日消息,剛剛,新任美國總統(tǒng)特朗普放出重磅消息,將全力支持美國AI發(fā)展。

關(guān)鍵字: 特朗普 AI 人工智能

特朗普先生有兩件事一定會載入史冊,一個是筑墻,一個是挖坑。在美墨邊境筑墻的口號確保邊境安全,降低因非法移民引起的犯罪率過高問題;在中美科技產(chǎn)業(yè)之間挖坑的口號也是安全,美國企業(yè)不得使用對美國國家安全構(gòu)成威脅的電信設(shè)備,總統(tǒng)...

關(guān)鍵字: 特朗普 孤立主義 科技產(chǎn)業(yè)

據(jù)路透社1月17日消息顯示,知情人士透露,特朗普已通知英特爾、鎧俠在內(nèi)的幾家華為供應(yīng)商,將要撤銷其對華為的出貨的部分許可證,同時將拒絕其他數(shù)十個向華為供貨的申請。據(jù)透露,共有4家公司的8份許可被撤銷。另外,相關(guān)公司收到撤...

關(guān)鍵字: 華為 芯片 特朗普

曾在2018年時被美國總統(tǒng)特朗普稱作“世界第八奇跡”的富士康集團(tuán)在美國威斯康星州投資建設(shè)的LCD顯示屏工廠項目,如今卻因為富士康將項目大幅縮水并拒絕簽訂新的合同而陷入了僵局。這也導(dǎo)致富士康無法從當(dāng)?shù)卣抢铽@得約40億美...

關(guān)鍵字: 特朗普 富士康

今年5月,因自己發(fā)布的推文被貼上“無確鑿依據(jù)”標(biāo)簽而與推特發(fā)生激烈爭執(zhí)后,美國總統(tǒng)特朗普簽署了一項行政令,下令要求重審《通信規(guī)范法》第230條。

關(guān)鍵字: 谷歌 facebook 特朗普

眾所周知,寄往白宮的所有郵件在到達(dá)白宮之前都會在他地進(jìn)行分類和篩選。9月19日,根據(jù)美國相關(guān)執(zhí)法官員的通報,本周早些時候,執(zhí)法人員截獲了一個寄給特朗普總統(tǒng)的包裹,該包裹內(nèi)包含蓖麻毒蛋白。

關(guān)鍵字: 美國 白宮 特朗普
關(guān)閉