一個(gè)CAN節(jié)點(diǎn)接入總線后,濾波不使能的情況下,總線上所有CAN數(shù)據(jù)幀都能被接收。若僅需接收一個(gè)固定范圍ID的數(shù)據(jù)幀,可以通過(guò)配置屏蔽碼和驗(yàn)收碼,從而對(duì)數(shù)據(jù)幀進(jìn)行過(guò)濾處理。數(shù)據(jù)幀在CAN總線上傳輸時(shí),CAN節(jié)點(diǎn)通過(guò)驗(yàn)收濾波器來(lái)對(duì)比總線上的數(shù)據(jù)幀的ID與本節(jié)點(diǎn)的ID是否一致,若ID一致,CAN控制器才允許將已接收信息存入對(duì)應(yīng)的寄存器中;ID不一致,該數(shù)據(jù)幀會(huì)被丟棄以此減輕CAN控制器的工作量。驗(yàn)收濾波器是由驗(yàn)收代碼寄存器(ACR)和驗(yàn)收屏蔽寄存器(AMR)共同組成。用戶通過(guò)配置驗(yàn)收屏蔽寄存器和驗(yàn)收代碼寄存器,進(jìn)而得出對(duì)應(yīng)的屏蔽碼和驗(yàn)收碼對(duì)CAN數(shù)據(jù)幀進(jìn)行過(guò)濾處理。本文以SJA1000為例進(jìn)行說(shuō)明,其濾波方式分為單濾波和雙濾波兩種。由模式寄存器AFM位控制,AFM=1時(shí)為單濾波;AFM=0時(shí)為雙濾波。
?雙濾波雙濾波模式下,定義了兩個(gè)驗(yàn)收濾波器,接收的數(shù)據(jù)幀只要通過(guò)其中一個(gè)驗(yàn)收濾波器,就被認(rèn)定為有效幀,即能被正常接收并存入寄存器中。ACR0、ACR1和AMR0、AMR1組成第一個(gè)驗(yàn)收濾波器,ACR2、ACR3和AMR2、AMR3組成第二個(gè)驗(yàn)收濾波器。以接收CAN拓展幀為例,該數(shù)據(jù)幀的ID段的前兩個(gè)字節(jié),即29位ID中的高16位參與濾波。ACR0和ACR1控制ID位為No.13-No.28,ACR2和ACR3也控制ID位為No.13-No.28,如表1所示。這意味著該CAN拓展幀ID位No.13-No.28這16位要與這兩組驗(yàn)收代碼中的其中一組一致才能被該節(jié)點(diǎn)正常接收并存入接收緩存區(qū);否則該數(shù)據(jù)幀會(huì)被丟棄,這樣達(dá)到了兩次濾波的效果。表1 AMR、ACR和控制ID位對(duì)應(yīng)表
?單濾波
單濾波模式下,所有AMR為“0”的位所對(duì)應(yīng)的ACR位和參與單濾波數(shù)據(jù)對(duì)應(yīng)的位需要一致才能被認(rèn)定為驗(yàn)收濾波通過(guò),如表2所示。接收CAN標(biāo)準(zhǔn)幀時(shí),11位ID、RTR位和DATA段前16位都參與濾波;接收CAN拓展幀時(shí),29位ID和RTR位參與濾波,如圖1所示。表2AMR、ACR和濾波ID對(duì)應(yīng)表

圖1CAN標(biāo)準(zhǔn)幀和CAN拓展幀的幀格式示意圖
?CSM330A
我司的隔離SPI/UART轉(zhuǎn)CAN芯片CSM330A并未采用單濾波或者雙濾波的方式進(jìn)行接收濾波。CSM330A的驗(yàn)收濾波器是由1個(gè)驗(yàn)收屏蔽寄存器和6個(gè)驗(yàn)收代碼寄存器組成,用戶可以通過(guò)配置一組屏蔽碼“管理”6組驗(yàn)收碼。當(dāng)屏蔽碼某位值為 1 時(shí),則該位對(duì)應(yīng)的驗(yàn)收碼會(huì)被“使能”,被“使能”的“驗(yàn)收碼”和產(chǎn)品要接收的 CAN 幀的“幀 ID”相同,該 CAN 幀才會(huì)被接收到接收緩沖區(qū)。當(dāng)“屏蔽碼”的位值為0時(shí),驗(yàn)收碼不起作用,相應(yīng)位的幀標(biāo)識(shí)為任何值都可被接收,如表3所示。
表3濾波、屏蔽碼真值表

?產(chǎn)品應(yīng)用
CSM330A適用于工業(yè)通訊、電池檢測(cè)、充電樁、軌道交通、樓宇自動(dòng)化等領(lǐng)域。CSM330A協(xié)議轉(zhuǎn)換芯片應(yīng)用在智能汽車司機(jī)行為監(jiān)測(cè)的應(yīng)用方案,如圖2所示。ZLG面向DMS行業(yè)客戶主要提供主控、供電、通訊防護(hù)等的模塊化方案。主控方面為Cortex-A35 M1808 AI核心板,搭載自研圖像傳感技術(shù)搭配出車載行為檢測(cè)系統(tǒng)解決方案??蓪?shí)現(xiàn)駕駛員身份識(shí)別,對(duì)司機(jī)異常操作發(fā)出警報(bào)和提醒等功能。
圖2司機(jī)行為檢測(cè)應(yīng)用方案
-
寄存器
+關(guān)注
關(guān)注
31文章
5620瀏覽量
130455 -
CAN
+關(guān)注
關(guān)注
59文章
3097瀏覽量
473580 -
通信
+關(guān)注
關(guān)注
18文章
6457瀏覽量
140284
發(fā)布評(píng)論請(qǐng)先 登錄
請(qǐng)問如何在CAN通信中的每個(gè)CAN消息對(duì)象中添加過(guò)濾器?
在STM32的CAN收發(fā)通信中,接收超時(shí)為什么不能發(fā)出一個(gè)報(bào)文的功能?
怎么實(shí)現(xiàn)can消息的過(guò)濾過(guò)程
CAN通信使用標(biāo)識(shí)符過(guò)濾來(lái)實(shí)現(xiàn)固定節(jié)點(diǎn)的數(shù)據(jù)收發(fā)
在CubeMX上實(shí)現(xiàn)STM32的CAN通信
對(duì)CAN通信的過(guò)濾器配置的理解
CAN總線在多機(jī)通信中的應(yīng)用
CubeMX STM32實(shí)現(xiàn)CAN通信——回環(huán)測(cè)試數(shù)據(jù)收發(fā)
PCI接口在CAN通信中有何作用?
Coral3568如何軟硬件過(guò)濾can幀及優(yōu)化?
CAN通信中幀格式的作用
CAN協(xié)議的軟件過(guò)濾和硬件過(guò)濾
解析ECAN-E02單過(guò)濾器CAN硬件過(guò)濾
CAN通信中的“過(guò)濾”是怎樣實(shí)現(xiàn)的?
評(píng)論