簡介
32位硬件過濾器與16位硬件過濾器一樣具有兩種模式32位標識符模式與32位屏蔽位模式。
32位和16位在使用規則上沒有太大的區別,唯一存在區別的是寄存器的ID映射區域不同,下文根據不同模式分別進行32位硬件過濾器實例分析。
32位標識符列表
32位標識符模式較16位更好理解,一個CAN_FxRx寄存器不再拆分,這樣就可以更完整的過濾ID,比如16位寄存器無法的擴展ID的第14位到第0位進行規則匹配,而32位就可以完整限制ID過濾規則,比如下圖列舉的過濾規則:將CAN_FxR1[31:0]為0x200002,IDE為低,RTR為高,限制僅接收標準遠程幀,由于為標準幀,ID通過CAN_FxR1[31:21]限制為1,綜合來看此規則訂閱CAN僅接收ID為1的標準遠程幀。將CAN_FxR2[31:0]為0x400004,IDE為高,RTR為低,限制僅接收擴展數據幀,由于為擴展,ID通過CAN_FxR2[31:3]限制為0x80000,綜合來看此規則訂閱CAN僅接收ID為0x80000的擴展數據幀。
32位屏蔽位模式
與16位屏蔽位模式規則一致,標識符寄存器用來存儲規則,屏蔽位寄存器用于是否開啟判斷,就不再贅述。
舉例說明:將標識符寄存器CAN_FxR1[31:0]為0x200000,屏蔽位寄存器CAN_FxR2[31:0]為0x200000,屏蔽位寄存器CAN_FxR2的IDE與RTR均為低,代表可以通過標準幀、擴展幀、數據幀、遠程幀,由于標準與擴展的ID判斷的映射區域不同,分開進行分析。
? 標準幀解析過程:標識符寄存器的CAN_FxR1[31:21]為1,并且屏蔽位寄存器的對應位也為1,代表可以接收該bit位為1的標準幀ID(即僅接收標準ID為奇數的CAN幀),綜合前置調整,該配置可通過標準ID為奇數的遠程幀與數據幀。
? 擴展幀解析過程:標識符寄存器的CAN_FxR1[31:3]為0x40000,并且屏蔽位寄存器的對應位也為1,代表可以接收第20位bit為高的擴展幀,比如ID為0x40000、0x4FFFF、0x7000等ID的擴展遠程幀和數據幀。
通過限制IDE位可實現標準ID與擴展ID的限制,比如下面這個配置案例,限制IDE為低(標識符寄存器的IDE映射位為低,屏蔽位寄存器的IDE映射位為高)達到限制可接受的ID類型為標準數據幀和標準遠程幀兩種的效果,再加上標準幀ID的映射區數值為0x1,屏蔽位寄存器的ID映射區也為0x1,代表該限制僅接收標準ID為奇數的數據幀與遠程幀。
接下來的舉例限制可接收的數據幀為標準ID為奇數的數據幀。
下圖的舉例將接收數據幀限定為擴展ID(標識符寄存器的IDE映射位為高,屏蔽位寄存器的IDE映射位為高),再加上擴展幀ID的映射區數值為0x1,限定條件也為0x01,代表下圖配置僅接收擴展ID為奇數的遠程幀與數據幀。
下圖配置同時限制ID類型與幀類型,僅接收擴展ID為奇數的數據幀。
過濾器優先級
不少芯片支持多組CAN過濾器配置,比如CH32V307最多支持28組過濾器配置,若出現某個報文數據可以通過多個過濾器的過濾,則接收郵箱中存放的過濾器編號會根據過濾器的優先級規則來決定存放哪個過濾器編號,過濾器的優先級規則如下:①所有32位的過濾器優先級均高于16位的過濾器;②對于同寬度的過濾器,標識符列表的過濾器優先級高于屏蔽位模式的過濾器;③寬度和模式都一致的過濾器,編號小的過濾器優先級更高。
相關推薦
★ CAN總線 ? 串口服務器高性能CAN-Bus總線分析儀,兼容USB2.0總線全速規范,構成現場總線、工業控制、汽車電子網絡等控制節點。串口服務器提供串口轉網絡功能,能夠將串口數據轉換成TCP/IP協議數據,實現串口與網絡的雙向透明傳輸。
-
CAN
+關注
關注
57文章
2744瀏覽量
463614 -
硬件
+關注
關注
11文章
3312瀏覽量
66200 -
過濾器
+關注
關注
1文章
428瀏覽量
19593
發布評論請先 登錄
相關推薦
評論