飞思卡尔CAN的ID滤波配置,目前测试芯片为9S08DZ60

飞思卡尔的CAN的ID滤波设置

主要是根据ID配置两个寄存器值,CANIDAR和CANIDMR,担心我讲得不明白,把我参考的资料都贴上来。

原理的是参考的 《飞思卡尔MSCAN接收ID滤波器设置指南》,里面有个PDF下载下来会有更详细的东西参考。http://huxiongwei.spaces.eepw.com.cn/articles/article/item/108637

第二个参考例程

http://www.pudn.com/Download/item/id/1980189.html


下面说下该怎么配置

CAN 的ID结构


在我们给的ID里没包含SRR与IDE与RTT,比如扩展帧ID:0x10F81099,展开为:

0001 0000 1111 1000 0001 0000 1001 1001,这个ID里的标准帧11位于扩展后的18位直接相连的,我们需要把SRR与IDE和RTR加进去就是我们滤波的CANIDAR寄存器的值;

扫描二维码关注公众号,回复: 1717792 查看本文章

具体方法为,从第19位开始向左移3位,空出SRR和IDE;低18位向左移一位,空出RTR

1 0000 1111 10 xx 00 0001 0000 1001 1001 x

绿色的'x'为移动后空出的位

整理下为:1000 0111 110x x000 0010 0001 0011 001x

 空出的位,根据帧类型填就行,也可随便填,我们CANIDMR的值,在该位取1,不关心该为就好了;      

  例如我们需要过滤出扩展帧0x10F81099;

则根据上面的,得出AR值为: 1000 0111 110x x000 0010 0001 0011 001x,把x取1,则为

1000 0111 1101 1000 0010 0001 0011 0011 即AR寄存器值为 0x87D82133    ,那么MR值只把SRR,IDE,RTR位取1

0000 0000 0001 1000 0000 0000 0000 0001 即MR寄存器值为 0x00180001    ,这样就能过滤出扩展帧ID0xF81099



测试结果:


仿真后能进入中断,能看到ID是正确的


猜你喜欢

转载自blog.csdn.net/mjfmjj/article/details/80346990