在嵌入式程序猿的公众号里,曾多次介绍过NXP的flexcan以及基于flexcan的一些其他协议和开发,最近在用NXP的另外一款片子,使用的是mscan,这两种在底层存在很大区别,所有寄存器和配置都不一样,但都遵守CAN2.0A/B大家在使用时候要注意。flexcan 里面寄存器都是32位,而mscan都是8位,且二者在结构机制上有不同,在芯片级是两个IP。mscan是之前NXP的8位机上普遍采用的机制,而在kinetis32位上基本都是flexcan。


在CAN中大家一定要记住隐性代表就是1,显性代表就是0,如果记不住,可以这样记,0比较胖不容易隐藏,所以就是显性,1比较瘦所以容易隐藏就是隐性

还有最最重要的一点,个人认为就是要会配置跟波特率位时间相关的几个参数,曾经推送过的计算文章和实用,如果忘记了可以去在反复看下,希望能帮到各位。
在配置位速率相关参数时候都必须遵循CAN标准的位时间要求

同步段:
NXP mscan与flexcan的区别解析

本文探讨了NXP的mscan和flexcan在嵌入式CAN通信中的差异。mscan常见于NXP的8位机,而flexcan在32位kinetis芯片上更为普遍。两者在寄存器大小、结构机制和配置方式上有所不同。CAN通信中,理解隐性与显性的概念,以及如何配置波特率和位时间参数至关重要,这些参数包括同步段、传播段、相位缓冲段和采样点。在mscan和flexcan的配置中,相位缓冲段的设置方式有所差异。
最低0.47元/天 解锁文章
8600

被折叠的 条评论
为什么被折叠?



