本篇文章总结于江科大的《can》教程第三章+自己的初级理解
对于can的帧格式还不理解的可以阅读我上篇千字文章总结,可以帮助你理解
can的帧格式的链接:CAN的帧格式,千字手打,初级透彻-优快云博客
ok,准备开始:
位同步
SS应当是电平变换的位置,当然在SS处电平也可以不发生改变,如果电平变化不在SS处,则需用硬同步和再同步校准
问题:
1.没有在中间采用,就是需要第一个对齐中间(硬同步)
2.正常了一半,后面一半又不正常了(再同步)
位时序
是对1个位的具体分析,时间单位自己确定
硬同步
注意,这里画的是接收方内部的位时序图周期,红色的线是总线的波形
你看:红色的线,发送方从高电平到低电平,这就是sof,然后就是,接收方,就是那些格子,ss段没有和红色的下降沿重合(上图),所以就是自动移位重合了一下(下图)
sof:第一个下数据跳变的边沿
硬同步只在帧的第一个下降沿(逻辑电平的下降沿,差分电平的张开沿)
发送方出现第一个下降边沿,然后就是ss段,然后就是接收方就是知道了,也调到ss段,就将所有的秒表同步了
采样是在PBS!和PBS2之间交接处采样
然后就是接收方和发送方都有一个'秒表',当转动到ss就说明同步 了,然后就可以正常传送消息
但是,还是有点误差的,你知道吗,就是一会正常,后面就不正常了,所以就是下面的再同步
再同步
就是补偿误差,
注意这里sjw是最大补偿值,而不是每次都补偿规定的数,防止波形中的噪声对位时序造成过大影响
比如SJW=2,这里快了1个位置,还是只补偿一个位置,而不是2个,是要误差格子和SJW共同商量,
如果误差>SJW,都只补偿SJW最大的值
分析:
上图是接收方快于发送方,下图是接收方慢于发送方
1.上面两个图,就是比如先进行了一次硬同步,然后正常了一会,。然后就是又跑偏了,你看那个红色的下降沿都没有跟黄色的ss段重合,就是有误差了,要么是接收方的秒表跑快了,要么是发送方跑慢了。总之现在sahib接收方快于发送方
但是,发送方是固定的速度呀,不可能调整熟读的呀,只能接收方来调整,进行误差补偿,上图就红色那,加了两个延时,数据就往后延时了,采样就会在中间,没有就不在中间 了
注意:数据采样是在PBS1和PBS2之间 采样的,
2.你看这里就是接收方慢于发送方,发送方提前了,所以这里减少误差补偿就是2个Tq,然后就是你看左边绿色的PBS2是不是就是少了两个方格
注意,硬同步只能在第一个下降沿一次,二再同步可以在第一个下降沿的每一个数据段
波特率计算
每秒传输多少个bit
在二进制调制下,波特率=比特率的值
这里除了SS是1Tq,其他的都我们自己设置的