「干货」CH32FV系列CAN建设过滤器建树诠释
简介
CAN当作总线通讯契约,在总线上可能会有宽广的数据包同期传输,妥贴的过滤机制不错擢升数据措置的后果,浮松措置器的资源。通过建树CAN过滤器界说我方的数据接纳章程,只接纳和措置合乎规程的CAN数据帧,章程以外的数据凯旋丢弃,此历程外设自动措置,尽量减少软件对报文筛选的抑止。
本文仅适用于接纳CH32F2x、CH32V2x、CH32V3x微律例器系列的CAN建设过滤器诠释,其他微措置器也可参考施行裁习。
以CH32V307为例,最多复旧28组过滤器建树,可选16位或32位过滤模式,复旧两种花样过滤(屏蔽位或绮丽符列表)。
16位绮丽符列表
表 16位列表模式
RTR:1云尔帧,0数据帧
IDE:1扩张帧,0法式帧
STID:法式帧ID
EXID:扩张帧ID
在16位绮丽符列表模式下,寄存器组被拆分红四个寄存器,四个寄存器齐用作绮丽符寄存器。
法式ID对应表(IDE=0)
扩张ID对应表(IDE=1)
将CAN_FxR1[15:0]、CAN_FxR1[31:16]、CAN_FxR2[15:0]、CAN_FxR2[31:16]离别建树为0xFFE0、0x0FF0、0x1009、0x101F。第一个寄存器代表仅接纳ID为7FF的法式数据帧;第二个寄存器代表仅接纳ID为7F的法式云尔帧,第三个寄存器代表仅接纳扩张ID的28位、15位为高何况ID第27位到第16位为低的扩张数据帧,第四个寄存器代表仅接纳ID的28位、第17位到第15位为高何况第27位到第18位为低的扩张云尔帧。
按上图建树CAN硬件过滤,仅可接纳下述合乎章程的CAN数据帧:
① ID为7FF的法式数据帧
② ID为7F的法式云尔帧
③ ID为10008000到1000FFFF的扩张数据帧
④ ID为10038000到1003FFFF的扩张云尔帧
16位屏蔽位模式
表 16位屏蔽位模式
在16位模式下,寄存器组被拆分红四个寄存器,包含2组16位绮丽符寄存器和16位屏蔽寄存器。
ID对应研究与16位列表模式一致,仅仅高16位作念MARK(掩码),低16位作念绮丽符,掩码位为高时,代表接纳CAN的帧对应ID应与绮丽符寄存器对应位一致(或帧步伐一致),不然数据被过滤,反之不进行该位考据。
以下图为例:
(1)将CAN_FxR1[15:0]建树位0x0020,CAN_FxR1[31:16]建树为0x0038,绮丽符寄存器的IDE与RTR为低,Mark的IDE与RTR为高,代表仅接纳法式数据帧。再看绮丽符寄存器的STID的第0位为高,Mark也为高,代表接纳奇数ID,详尽一下CAN_FxR1寄存器纵脱CAN仅接纳ID为奇数法式数据帧。
(2)将CAN_FxR2[15:0]建树位0xFFFF,CAN_FxR2[31:16]建树为0XFFFF,绮丽符寄存器的IDE与RTR为高,Mark的IDE与RTR也为高,代表仅接纳扩张云尔帧。CAN_FxR2[15:5]与CAN_FxR2[2:0]齐为高,代表ID从15位启动到28位一起为高,同期对应的Mark也为高,代表ID在0x1FFF8000-1FFFFFFF才会被接纳。
「福利」蓝牙+Wi-Fi模块王炸福利!免费送样