没有合适的资源?快使用搜索试试~ 我知道了~
STM32的CAN过滤器详解.pdf
需积分: 5 33 下载量 89 浏览量
2021-12-18
09:42:53
上传
评论 1
收藏 274KB PDF 举报
温馨提示
试读
2页
STM32的CAN过滤器详解
资源详情
资源评论
资源推荐
STM32 的 CAN 过滤器详解
STM32 普通型芯片的 CAN 有 14 组过滤器组,互联型有 28 组过滤器组.一般我们用的都是
普通型的,所以在本文中可以说 STM32 有 14 组过滤器组.
根据配置,每 1 组过滤器组可以有 1 个,2 个或 4 个过滤器.这些过滤器相当于关卡,每当收
到一条报文时,CAN 要先将收到的报文从这些过滤器上"过"一下,能通过的报文是有效报文,收
进 FIFO 中,不能通过的是无效报文(不是发给"我"的报文),直接丢弃.所有的过滤器是并联的,
即,一个报文只要通过了一个过滤器,就是算是有效的.
每组过滤器组有两种工作模式: 标识符列表模式,标识符屏蔽位模式.
在标识符列表模式下,收到报文的标识符必须与过滤器的值完全相等,才能通过.
在标识符屏蔽位模式下,可以指定标识符的哪些位为何值时,就算通过.这其实就是限定
了处于某一范围的标识符能够通过.
在一组过滤器中,整组的过滤器都使用同一种工作模式.另外,每组过滤器中的过滤器宽
度是可变的,可以是 32 位或 16 位.由工作模式和宽度,一个过滤器组可以变成以下几中形式之
一:
(1) 1 个 32 位的屏蔽位模式的过滤器.
(2) 2 个 32 位的列表模式的过滤器.
(3) 2 个 16 位的屏蔽位模式的过滤器.
(4) 4 个 16 位的列表模式的过滤器.
所有的过滤器是并联的,即,一个报文只要通过了一个过滤器,就是算是有效的.
每组过滤器组有两个 32 位的寄存器用于存储过滤用的"标准值",分别是 FxR1,FxR2.在 32 位的
屏蔽位模式下:
有 1 个过滤器,
FxR2 用于指定需要关心哪些位,FxR1 用于指定这些位的标准值.
在 32 位的列表模式下:
有两个过滤器.
FxR1 指定过滤器 0 的标准值,收到报文的标识符只有跟 FxR1 完全相同时,才算通过.
FxR2 指定过滤器 1 的标准值.
在 16 位的屏蔽位模式下:
有 2 个过滤器.
FxR1 配置过滤器 0,其中,[31-16]位指定要关心的位,[15-0]位指定这些位的标准值.
FxR2 配置过滤器 1,其中,[31-16]位指定要关心的位,[15-0]位指定这些位的标准值.
在 16 位的列表模式下:
有 4 个过滤器.
FxR1 的[15-0]位配置过滤器 0,FxR1 的[31-16]位配置过滤器 1.
FxR2 的[15-0]位配置过滤器 2,FxR2 的[31-16]位配置过滤器 3.
STM32 的 CAN 有两个 FIFO,分别是 FIFO0,FIFO1.为了便于区分,下面 FIFO0 写作 FIFO_0,FIFO1
写作 FIFO_1.每组过滤器组必须关联且只能关联一个 FIFO.复位默认都关联到 FIFO_0.所谓"关
联",是指假如收到的报文从某个过滤器通过了,那么该报文会被存到该过滤器相连的 FIFO.从
另一方面来说,每个 FIFO 都关联了一串的过滤器组,两个 FIFO 刚好瓜分了所有的过滤器组
之胜
- 粉丝: 1
- 资源: 71
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0