CAN通信的一个bit由下面4个部分组成:(波特率=1秒传输的bit数量,如1M波特率就是1秒传输1000000个bit)

Sync_Seg:同步段,同步起始的边沿。
Prog_Seg:传播时间段,用于补偿网络内的物理延迟时间。包括总线上的信号传播时间和CAN节点的内部延迟时间。
Phase_Seg1/Phase_Seg2:用于补偿边缘相位误差。
单片机对此位是高还是低信号的采样,在Phase_Seg1和Phase_Seg2之间进行。
对应到STM32:

STM32把一个bit分成了3个部分,每个部分的计量单位是tq
tq就是时钟节拍,是接给CAN的时钟。
第1个部分固定为1,后面两个部分由寄存器来配置。
采样点的设置对CAN通信的稳定性有很大影响。CiA(CAN in Automation)推荐的采样点设置如下:
波特率大于800Kbps时,采样点应为75%。
波特率在500Kbps到800Kbps之间时,采样点应为80%。
波特率小于或等于500Kbps时,采样点应为87.5%。


3万+

被折叠的 条评论
为什么被折叠?



