CAN作為總線通信協(xié)議,在總線上可能會(huì)有大量的數(shù)據(jù)包同時(shí)傳輸,適當(dāng)?shù)倪^(guò)濾機(jī)制可以提升數(shù)據(jù)處理的效率,節(jié)省處理器的資源。通過(guò)配置CAN過(guò)濾器定義自己的數(shù)據(jù)接收規(guī)則,只接收和處理符合規(guī)程的CAN數(shù)據(jù)幀,規(guī)則之外的數(shù)據(jù)直接丟棄,此過(guò)程外設(shè)自動(dòng)處理,盡量減少軟件對(duì)報(bào)文篩選的干預(yù)。
本文僅適用于采用CH32F2x、CH32V2x、CH32V3x微控制器系列的CAN設(shè)備過(guò)濾器說(shuō)明,其他微處理器也可參考本文學(xué)習(xí)。
以CH32V307為例,最多支持28組過(guò)濾器配置,可選16位或32位過(guò)濾模式,支持兩種方式過(guò)濾(屏蔽位或標(biāo)識(shí)符列表)。
RTR:1遠(yuǎn)程幀,0數(shù)據(jù)幀;
IDE:1擴(kuò)展幀,0標(biāo)準(zhǔn)幀;
STID:標(biāo)準(zhǔn)幀ID;
EXID:擴(kuò)展幀ID;
在16位標(biāo)識(shí)符列表模式下,寄存器組被拆分成四個(gè)寄存器,四個(gè)寄存器都用作標(biāo)識(shí)符寄存器。
將CAN_FxR1[15:0]、CAN_FxR1[31:16]、CAN_FxR2[15:0]、CAN_FxR2[31:16]分別配置為0xFFE0、0x0FF0、0x1009、0x101F,第一個(gè)寄存器代表僅接收ID為7FF的標(biāo)準(zhǔn)數(shù)據(jù)幀,第二個(gè)寄存器代表僅接收ID為7F的標(biāo)準(zhǔn)遠(yuǎn)程幀,第三個(gè)寄存器代表僅接收擴(kuò)展ID的28位、15位為高并且ID第27位到第16位為低的擴(kuò)展數(shù)據(jù)幀,第四個(gè)寄存器代表僅接收ID的28位、第17位到第15位為高并且第27為到第18位為低的擴(kuò)展遠(yuǎn)程幀;
按上圖配置CAN硬件過(guò)濾,僅可接收下述符合規(guī)則的CAN數(shù)據(jù)幀:
1:ID為7FF的標(biāo)準(zhǔn)數(shù)據(jù)幀;
2:ID為7F的標(biāo)準(zhǔn)遠(yuǎn)程幀;
3:ID為10008000到1000FFFF的擴(kuò)展數(shù)據(jù)幀;
4:ID為10038000到1003FFFF的擴(kuò)展遠(yuǎn)程幀;
在16位模式下,寄存器組被拆分成四個(gè)寄存器,包含2組16位標(biāo)識(shí)符寄存器和16位屏蔽寄存器;
ID對(duì)應(yīng)關(guān)系與16位列表模式一致,只是高16位做MARK(掩碼),低16位做標(biāo)識(shí)符,掩碼位為高時(shí),代表接收CAN的幀對(duì)應(yīng)ID應(yīng)與標(biāo)識(shí)符寄存器對(duì)應(yīng)位一致(或幀格式一致),否則數(shù)據(jù)被過(guò)濾,反之不進(jìn)行該位驗(yàn)證;
以下圖為例:
1) 將CAN_FxR1[15:0]配置位0x0020,CAN_FxR1[31:16]配置為0x0038,標(biāo)識(shí)符寄存器的IDE與RTR為低,Mark的IDE與RTR為高,代表僅接收標(biāo)準(zhǔn)數(shù)據(jù)幀,在看標(biāo)識(shí)符寄存器的STID的第0位為高,Mark也為高,代表接收奇數(shù)ID,綜合一下CAN_FxR1寄存器限制CAN僅接收ID為奇數(shù)標(biāo)準(zhǔn)數(shù)據(jù)幀;
2) 將CAN_FxR2[15:0]配置位0xFFFF,CAN_FxR2[31:16]配置為0XFFFF,標(biāo)識(shí)符寄存器的IDE與RTR為高,Mark的IDE與RTR也為高,代表僅接收擴(kuò)展遠(yuǎn)程幀,CAN_FxR2[15:5]與CAN_FxR2[2:0]都為高,代表ID從15位開(kāi)始到28位全部為高,同時(shí)對(duì)應(yīng)的Mark也為高,代表ID在0x1FFF8000-1FFFFFFF才會(huì)被接收
以上就是16位CAN硬件過(guò)濾器應(yīng)用說(shuō)明,下面我們將介紹CH32FV系列32位CAN硬件過(guò)濾器的應(yīng)用說(shuō)明,可點(diǎn)擊閱讀。
今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動(dòng)化的發(fā)展,提升資源利用率,更多CAN總線模組產(chǎn)品以及CAN總線技術(shù)資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)和企業(yè)公眾號(hào)進(jìn)行了解,也可以直接撥打400電話咨詢技術(shù)專員!
相關(guān)閱讀:
1、【教程】利用ECAN-401實(shí)現(xiàn)CAN報(bào)文自定義協(xié)議轉(zhuǎn)發(fā)
2、CAN總線通信實(shí)現(xiàn)CAN報(bào)文帶ID標(biāo)識(shí)教程
3、CAN總線常見(jiàn)問(wèn)題說(shuō)明及匯總
7 X 24 銷售服務(wù)熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 南京辦事處葛經(jīng)理:17626012283
成都總部銷售經(jīng)理:
秦 科(無(wú)線模塊):18884314654 馮子恒(無(wú)線模塊):18884314734
蔡友銀(無(wú)線模塊):13882211021 葛宇龍(通信設(shè)備):19138800613
胡兵(外貿(mào)銷售經(jīng)理):18584911141、 [email protected]
業(yè)務(wù)郵箱:[email protected] 全國(guó)銷售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號(hào)B5棟(前臺(tái)座機(jī):028-61543675)
?? 成都億佰特電子科技有限公司【版權(quán)所有】 蜀ICP備13019384號(hào)