[Kinetis] 【经验分享】KE06 MSCAN标识符接收滤波器配置讲解

[复制链接]
3674|7
 楼主| FSL_TICS_ZJJ 发表于 2015-5-29 10:23 | 显示全部楼层 |阅读模式
本经验分享主要讲解KE06 MSCAN模块中的接收滤波器的功能以及如何配置,并且在FRDM-KE06板子上举例实现接收滤波器的功能。
接收滤波器是把接收ID寄存器IDR经过掩码寄存器DMR和接收寄存器IDAR比较,通过则认为匹配接收报文,否则则拒绝报文。
标识符接收模式一共有四种,可以通过标识符接收控制器CANIDAC的IDAM位控制,
四种接收模式分别为:2个32位接收滤波器;4个16位接收滤波器;8个8位接收滤波器以及关闭滤波器。
下面分别讲解三种接收滤波器是如何工作以及举例验证。

具体内容以及代码请查看附件:
KE06_CAN_MASK.rar (1.04 MB, 下载次数: 306)


李香兰 发表于 2015-5-29 14:12 | 显示全部楼层
主要讲解KE06 MSCAN模块中的接收滤波器的功能以及如何配置,谢谢楼主
FSL_TICS_Jeremy 发表于 2015-6-1 08:55 | 显示全部楼层
很赞的分享哦,必须顶一下!:)
sltian09 发表于 2015-7-7 11:56 | 显示全部楼层
版主您好!很高兴看到您的分享**,令我受益匪浅!!但我还是这里不明白:
文中说“每次接收到的 ID,放在 IDR 寄存器中, 该寄存器的值首先要先和 IDMR 比较,查看
哪些位是需要比较,哪些位不需要比较。 IDMR 位为 1, 不需要比较; 0 则需要和
对应的 IDAR 位比较,即必须和 IDAR 位相同的 IDR 寄存器值对应的 ID 才能被接
收,否则被抛弃”
那么 NODE_ID2<<1 变为0x0000 1004了 既然是这样那么怎么还能接受0x802这个标识符呢?
而您说的“而 IDAR 寄存器组合起来的扩展 ID, 就是规定的 0X802 值。” 是什么意思呢?
quray1985 发表于 2015-7-7 14:47 | 显示全部楼层
接收滤波器是把接收ID寄存器IDR经过掩码寄存器DMR和接收寄存器IDAR比较,通过则认为匹配接收报文,否则则拒绝报文。
xiyingdcy 发表于 2015-10-5 16:52 | 显示全部楼层
感谢楼主!看到楼主的分享恍然大悟,困扰一周的问题,几分钟就解决了!
shaoyj 发表于 2016-11-24 14:04 | 显示全部楼层
真的很有用,谢谢楼主
Berlin001 发表于 2017-3-3 15:48 | 显示全部楼层
终于分清IDAR、IDMR、IDR几个寄存器的作用了,IDAR 用于过滤 ID 寄存器IDR 的所需要过滤的位置,而IDMR则用来确定以上两个寄存器相应的位是否比较。谢谢楼主。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

165

主题

5069

帖子

88

粉丝
快速回复 在线客服 返回列表 返回顶部