CAN硬件过滤器简介
32位CAN硬件过滤器与CH32FV系列16位CAN硬件过滤器一样具有两种模式32位标识符模式与32位屏蔽位模式。
32位和16位在使用规则上没有太大的区别,唯一存在区别的是寄存器的ID映射区域不同,下文根据不同模式分别进行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的扩展数据帧;
与16位屏蔽位模式规则一致,标识符寄存器用来存储规则,屏蔽位寄存器用于是否开启判断,就不再赘述。
举例一:
将标识符寄存器CAN_FxR1[31:0]为0x200000,屏蔽位寄存器CAN_FxR2[31:0]为0x200000,屏蔽位寄存器CAN_FxR2的IDE与RTR均为低,代表可以通过标准帧、扩展帧、数据帧、远程帧,由于标准与扩展的ID判断的映射区域不同,分开进行分析;
1. 标准帧解析过程:标识符寄存器的CAN_FxR1[31:21]为1,并且屏蔽位寄存器的对应位也为1,代表可以接收该bit位为1的标准帧ID(即仅接收标准ID为奇数的CAN帧),综合前置调整,该配置可通过标准ID为奇数的远程帧与数据帧;
2. 扩展帧解析过程:标识符寄存器的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组过滤器配置,若出现某个报文数据可以通过多个过滤器的过滤,则接收邮箱中存放的过滤器编号会根据过滤器的优先级规则来决定存放那个过滤器编号,过滤器的优先级规则如下:
1、所有32位的过滤器优先级均高于16位的过滤器;
2、对于同宽度的过滤器,标识符列表的过滤器优先级高于屏蔽位模式的过滤器;
3、宽度和模式都一致的过滤器,编号小的过滤器优先级更高;
今天的分享就到这里啦,EBYTE每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多CAN总线模组产品以及CAN总线技术资料,感兴趣的小伙伴可以登录我们的亿佰特官网和企业公众号进行了解,也可以直接拨打400电话咨询技术专员!
相关阅读:
1、【教程】利用ECAN-401实现CAN报文自定义协议转发
7 X 24 销售服务热线
4000-330-990深圳办事处柯经理:18218726658 杭州办事处戴经理:17512568697
常州办事处崔经理:15906110783 南京办事处葛经理:17626012283
业务邮箱:support@cdebyte.com
全国销售投诉电话:19934352316
地址:四川省成都市高新西区西区大道199号B5栋(前台座机:028-61543675)
©© 成都亿佰特电子科技有限公司【版权所有】 蜀ICP备13019384号-3