一個CAN節點接入總線后,濾波不使能的情況下,總線上所有CAN數據幀都能被接收。若僅需接收一個固定范圍ID的數據幀,可以通過配置屏蔽碼和驗收碼,從而對數據幀進行過濾處理。數據幀在CAN總線上傳輸時,CAN節點通過驗收濾波器來對比總線上的數據幀的ID與本節點的ID是否一致,若ID一致,CAN控制器才允許將已接收信息存入對應的寄存器中;ID不一致,該數據幀會被丟棄以此減輕CAN控制器的工作量。驗收濾波器是由驗收代碼寄存器(ACR)和驗收屏蔽寄存器(AMR)共同組成。用戶通過配置驗收屏蔽寄存器和驗收代碼寄存器,進而得出對應的屏蔽碼和驗收碼對CAN數據幀進行過濾處理。本文以SJA1000為例進行說明,其濾波方式分為單濾波和雙濾波兩種。由模式寄存器AFM位控制,AFM=1時為單濾波;AFM=0時為雙濾波。
?雙濾波雙濾波模式下,定義了兩個驗收濾波器,接收的數據幀只要通過其中一個驗收濾波器,就被認定為有效幀,即能被正常接收并存入寄存器中。ACR0、ACR1和AMR0、AMR1組成第一個驗收濾波器,ACR2、ACR3和AMR2、AMR3組成第二個驗收濾波器。以接收CAN拓展幀為例,該數據幀的ID段的前兩個字節,即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位要與這兩組驗收代碼中的其中一組一致才能被該節點正常接收并存入接收緩存區;否則該數據幀會被丟棄,這樣達到了兩次濾波的效果。表1 AMR、ACR和控制ID位對應表 ?單濾波
單濾波模式下,所有AMR為“0”的位所對應的ACR位和參與單濾波數據對應的位需要一致才能被認定為驗收濾波通過,如表2所示。接收CAN標準幀時,11位ID、RTR位和DATA段前16位都參與濾波;接收CAN拓展幀時,29位ID和RTR位參與濾波,如圖1所示。表2AMR、ACR和濾波ID對應表
圖1CAN標準幀和CAN拓展幀的幀格式示意圖
?CSM330A
我司的隔離SPI/UART轉CAN芯片CSM330A并未采用單濾波或者雙濾波的方式進行接收濾波。CSM330A的驗收濾波器是由1個驗收屏蔽寄存器和6個驗收代碼寄存器組成,用戶可以通過配置一組屏蔽碼“管理”6組驗收碼。當屏蔽碼某位值為 1 時,則該位對應的驗收碼會被“使能”,被“使能”的“驗收碼”和產品要接收的 CAN 幀的“幀 ID”相同,該 CAN 幀才會被接收到接收緩沖區。當“屏蔽碼”的位值為0時,驗收碼不起作用,相應位的幀標識為任何值都可被接收,如表3所示。
表3濾波、屏蔽碼真值表
?產品應用
CSM330A適用于工業通訊、電池檢測、充電樁、軌道交通、樓宇自動化等領域。CSM330A協議轉換芯片應用在智能汽車司機行為監測的應用方案,如圖2所示。ZLG面向DMS行業客戶主要提供主控、供電、通訊防護等的模塊化方案。主控方面為Cortex-A35 M1808 AI核心板,搭載自研圖像傳感技術搭配出車載行為檢測系統解決方案??蓪崿F駕駛員身份識別,對司機異常操作發出警報和提醒等功能。圖2司機行為檢測應用方案
-
寄存器
+關注
關注
31文章
5363瀏覽量
121192 -
CAN
+關注
關注
57文章
2770瀏覽量
464389 -
通信
+關注
關注
18文章
6072瀏覽量
136432
發布評論請先 登錄
相關推薦
評論