CAN通信学习笔记——位时序
材料:STM32
目标:设置波特率完成通信
一个位的组成
这些段又由可称为 Time Quantum(以下称为Tq)的最小时间单位构成。
波特率=每秒传输码元数目
位速率=1/波特率
就STM32而言,传播时间段(PTS)与相位缓冲断1(PBS1)合并形成了时间段1。
因此,正常位时间=同步段(SS)+时间段1(PTS+PBS1)+时间段2(PBS2)
正常位时间单位为:qt(时间单元)
tq=(BRP[9:0]+1*Tpclk(一个时钟周期)
1位由多少个Tq 构成、每个段又由多少个Tq 构成等,可以任意设定位时序。通过设定位时序,多个单元可同时采样,也可任意设定采样点。
各时序段作用
SJW的产生
采样时间加大或减少量的最大值就是SJW
CAN_BTR寄存器
简单配置例子
波特率=36000(42000)/(Tbs1+Tbs2+1)*(BRQ+1)
STM32F103
设TS1=8、TS2=7、BRP=3
波特率=36000/[(9+8+1)*4]=500Kbps。
STM32F407
设TS1=6、TS2=5、BRP=5
波特率=42000/[(7+6+1)*6]=500Kbps。