- 8
- 0
- 约6.72万字
- 约 6页
- 2016-12-23 发布于贵州
- 举报
转:SJA1000中CAN总线同步跳转宽度+波特率控制寄存器的设置
SJA1000 CAN控制器对时序的设置真的一点也不马虎,到底是怎么样的不马虎法呢?这一篇笔记就让我们听听他的故事。
在总线时序寄存器0和1中,除了对总线的波特率可编程以外,还加了对采样位与同步跳转宽度位域的设置,我们一一的来探索吧:
采样位,也就是对[采样]动作进行设置的标志位,在总线时序寄存器1的最高位,也就是SAM位。
?
当SAM为逻辑1时,采样的次数为3次,反之SAM为逻辑0,采样次数为1次。这里就存在一个问题,那么什么时候才需要将SAM位置1呢?网络中有这样一个定义,当总线的波特率为中,低等级时,建议将SAM位置1,则当总线波特率为高时SAM位置为0,那么说得比较具体一点的,当总线波特率从100k起为高波特率,波特率从10k~99k之间为中波特率,波特率10k以下为低波特率。(以上的波特率区分等级是从网络中得知的,见笑了)
接下来要探索的就是同步跳转宽度位域,这个专业词听起来很像很可怖似的,但实际上只要明白后会发现到很容易理解的。在CAN 2.0 协议里,CAN使用了同步跳转宽度位域来兼容不同波特率的总线,视觉化的说法就是说,除了本身设定的波特率以外,该波特率还有上限下界的容差值
这些波特率的上限与下界容差换傻瓜的话来说,假设有一个节点将总线时序设置为10kbps,该节点除了支持目前与该它拥有同
原创力文档

文档评论(0)