1.3、接收方数据采样和同步问题
挂载在CAN总线上的所有设备初始都默认为接收方,当某一个设备想要广播自己的数据时,会变成发送方
1、接收方数据采样
总线上所有设备约定波特率,确定每一位数据位的时长。
为保证采样点在数据位中心附近,可以初始跳变沿为参考,延迟半个数据位左右的时间,进行第一次的数据采样
2、位时序
对每一个数据位进行细分
Tq可在程序中自己指定
(1)硬同步(硬件同步/初始位置同步)
发送方的SOF下降沿对应SS段,但这个下降沿并不在接收方的SS段里,此时接收方把自己的SS段与波形的下降沿对齐
(2)再同步(重新同步)
由于不同设备的时钟精度不一样,可能会存在系统误差(如发送方1微秒发送一个数据,而接收方由于时钟不是绝对精确,导致1.05微秒接收一个数据),
再同步就是为了补偿误差
SJW = 1~4Tq,SJW是补偿的最大值,具体补偿多少宽度,由误差大小和SJW共同决定。
如果误差小于或等于SJW,那么误差为几个Tq就补偿几个Tq;如果误差大于SJW,那么只会补偿SJW指定的Tq数(可防止波形中的噪声对位时序造成过大影响)
3、波特率计算
SS固定1Tq,其他自己设置