学习目标:
理解,配置CAN波特率
学习内容:
- 基础概念
波特率的计算涉及到几个关键参数,包括CAN控制器的时钟频率、分频因子、以及位时间的不同部分。
时钟频率(Fclk)
CAN控制器的时钟频率。
这是CAN模块的输入时钟,通常来自于微控制器的主时钟。
分频因子(Prescaler)(配置的参数)
用于从主时钟频率中分频得到位时间计数器的时钟频率。
分频因子可以增大位时间,使得CAN总线能够在较低的波特率下工作。
位时间(Bit Time)
位时间由几个部分组成,总共需要满足规定的时间量子(Time Quanta,TQ)数:
同步段(Sync Seg):
用于同步不同节点上的数据边缘,固定为1 TQ。
传播时间段(Prop Seg):(配置的参数)
用于补偿网络中的物理延迟,长度可以调整。
相位缓冲段1(Phase Seg1)(配置的参数)和相位缓冲段2(Phase Seg2):(配置的参数)
用于对抗信号抖动和网络延迟,长度可调。
- 计算方法
就是 波特率=时钟频率/ Prescaler /(Sync Seg+(prog seg+1)+(seg1+1)+(seg2+1))
采样点=(Sync Seg+(prog seg+1)+(seg1+1))/(Sync Seg+(prog seg+1)+(seg1+1)+(seg2+1))
例子:
已知:CAN时钟频率80Mhz,prog seg=77,seg1=63,seg2=16,Prescaler=1.
80000000/(1+78+64+16)=500000 Buad/s=500KBuad/s
再不懂可以点这个
小技巧:关于不同波特率如何配置prog seg,seg1,seg2,直接去can上位机设置里面找,很标准。比如Canking,CANalyzer里面都有。