太原网站建设山西悉云科技,类似享设计的网站,网站正建设中,衡阳seo排名目录
1、理论
2、实践
3、注意事项 在CAN总线系统中#xff0c;波特率的计算是一个关键步骤#xff0c;它确保网络上的所有设备能够以相同的速率进行通信。
1、理论
波特率的计算涉及到几个关键参数#xff0c;包括CAN控制器的时钟频率、分频因子、以及位时间的不同部分…目录
1、理论
2、实践
3、注意事项 在CAN总线系统中波特率的计算是一个关键步骤它确保网络上的所有设备能够以相同的速率进行通信。
1、理论
波特率的计算涉及到几个关键参数包括CAN控制器的时钟频率、分频因子、以及位时间的不同部分。
时钟频率Fclk
CAN控制器的时钟频率。这是CAN模块的输入时钟通常来自于微控制器的主时钟。
分频因子Prescaler
用于从主时钟频率中分频得到位时间计数器的时钟频率。分频因子可以增大位时间使得CAN总线能够在较低的波特率下工作。
位时间Bit Time
位时间由几个部分组成总共需要满足规定的时间量子Time QuantaTQ数 同步段Sync Seg用于同步不同节点上的数据边缘固定为1 TQ。传播时间段Prop Seg用于补偿网络中的物理延迟长度可以调整。相位缓冲段1Phase Seg1和相位缓冲段2Phase Seg2用于对抗信号抖动和网络延迟长度可调。
基于上述参数CAN波特率的计算公式如下
波特率 Fclk / (Prescaler * Bit Time)
其中Bit Time Sync Seg Prop Seg Phase Seg1 Phase Seg2。
假设一个CAN控制器有如下参数
Fclk 16 MHzPrescaler 8Sync Seg 1 TQProp Seg 2 TQPhase Seg1 3 TQPhase Seg2 2 TQ
Bit Time 1 2 3 2 8 TQ
则波特率为
波特率 16 MHz / (8 * 8 TQ) 16,000,000 / 64 250,000 bps (或250 kbps)
2、实践
以AT32F413这款MCU为例CAN波特率计算公式如下所示 CAN 总线的额定位时间由 3 部分组成
1、同步段SYNC_SEG该段占用 1 时间单元即公式中的1 x t。
2、位段 1BIT SEGMENT 1包括 CAN 标准里的 PROP_SEG 和 PHASE_SEG1记为 BSEG1 该段占用 1 至 16 时间单元时间单元个数由 BTS1[3 0]位定义即公式中的t1 (1 BTS1[3 0]) x t。
3、位段 2BIT SEGMENT 2包括 CAN 标准里的 PHASE_SEG2记为 BSEG2该段占用 1 至 8 时间单元时间单元个数由 BTS2[2 0]位定义即公式中的t2 (1 BTS2[2 0]) x t。
时间单元的长度由 CAN 位时序寄存器CAN_BTMG 的 BRDIV[11 0]位及 PCLK 定义即公式中的t。 按照公式继续推导如下 其中 BRDIV[11 0]、 BTS1[3 0]和 BTS2[2 0]为 CAN 位时序寄存器 CAN_BTMG中参数在 AT32F413的 BSP 程序中对应结构体对照表如下 举个例子设定f192MHz f1 f24MHz 时 1M 波特率的软件设置如下 3、注意事项
确保总的Bit Time在CAN控制器的可配置范围内。不同的CAN控制器可能有不同的最大和最小TQ限制。适当设置波特率可以减少误差提高网络的稳定性和可靠性。高波特率适用于短距离通信而长距离通信则需要降低波特率以减少误差。