CAN总线之CAN ID过滤器分析

CAN总线的CAN ID过滤器主要涉及报文筛选,包括16位和32位过滤器模式,以及标识符列表和屏蔽位模式。过滤器匹配序号、CAN_FiRx寄存器和位宽设置是关键。在不同模式下,过滤器寄存器的使用和配置有所不同,如32位屏蔽模式下,接收标准ID时需设置正确的ID和屏蔽码。列表模式则允许设置多个期望的CAN ID。
摘要由CSDN通过智能技术生成

(参考博客:http://blog.csdn.net/flydream0/article/details/8148791)

1.CAN报文标识符:并不代表节点的地址 而是和报文的内容有关 发送者以广播的形式发送消息 节点在接收报文时根据标识符(CAN ID)决定是否需要该报文

 如果需要则拷贝到SRAM中 不需要则丢弃
实现硬件过滤 节省CPU开销

2.过滤器组 Filterx  x为过滤器号
 STM32总共提供14个过滤器组来处理CAN接收过滤问题,每个过滤器组包含两个32位寄存器CAN_FxR0和CAN_FxR1组成

3.过滤器的过滤模式 通过CAN_FilterMode设置
a.屏蔽位模式IdMask:为了过滤出一组标识符,应该设置过滤器组工作在屏蔽位模式。 在屏蔽位模式下,标识符寄存器和屏蔽寄存器一起,指定报文标识符的任何一位,应该按照“必须匹配”或“不用关心”处理。如需要出生年月需要找出1995的则出生年月中年份的四位必须匹配 月和日则不用关心
b.标识符列表模式IdList:为了过滤出一个标识符,应该设置过滤器组工作在标识符列表模式。在标识符列表模式下,屏蔽寄存器也被当作标识符寄存器用。因此,不是采用一个标识符加一个屏蔽位的方式,而是使用2个标识符寄存器。接收报文标识符的每一位都必须跟过滤器标识符相同。

4.过滤器的位宽 通过CAN_FilterScale设置
每个过滤器组的位宽都可以独立配置,以满足应用程序的不同需求。根据位宽的不同,每个过滤器组可提供:
●1个32位过滤器CAN_FilterScale_32bit,包括:STDID[10:0]、EXTID[17:0]、IDE和RTR位

●2个16位过滤器CAN_FilterS

  • 14
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值