波特率:1秒发送的二进制数据位数
位时间:发送一位需要的时间
Tq等于一个CAN时钟周期,一般求波特率先求Tq,
频率等于周期的倒数
CAN时钟频率 = 1/Tq = 1/CAN时钟周期
位时间 = 就那几个段的时间相加
本质:波特率 = 1/位时间
波特率 = (CAN时钟频率➗位时间)➗波特率分频系数
CAN总线采用的是异步串行通信,也就是没有单独的时钟线来保证各个收发器之间时钟的一致,每个收发器是按事先设置的波特率来对总线上的电平进行分位。因此波特率设置准确对CAN总线的稳定通信来说非常重要。
CAN总线里我们可以通过对CAN 节点里的位定时寄存器的控制来实现不同波特率的通信。CAN协议里将一个位时间分为同步段、传播段、相位缓冲段1和相位缓冲段2。每个段的时间长度都可以用一个整数的基本时间单位表示,该基本时间单位由系统的时钟振荡器分频得到。
同步段位于一个位的起始位置,CAN-bus规定跳变沿为同步信号,但是发送节点发送一个位跟接收节点接收到这个位之间存在网络传播延迟,传播段则是为了补偿这段传播延迟,由于采样点位置在相位缓冲段1跟相位缓冲段2之间,通过设置相位缓冲段1和相位缓冲段2的值,可以调整采样点位置,保证每个位采样点一致。缓冲段的长度调节范围则是由同步跳转宽度(SJW)决定。