STM32F103C8T6 CAN 采样率怎么计算?

在这里插入图片描述


STM32F103C8T6的CAN总线采样率(位速率)计算步骤如下:

1. 确定APB1时钟频率

• STM32F103C8T6的APB1时钟默认为36MHz(系统时钟72MHz时,APB1分频系数为2)。

2. 设置CAN预分频器(Prescaler)

• 预分频器值决定每个Time Quantum(tq)的时间长度:
t q = P C L K 1 Prescaler t_q = \frac{PCLK1}{\text{Prescaler}} tq=PrescalerPCLK1
• 例如,Prescaler=5时, t q = 36   MHz 5 = 7.2   MHz t_q = \frac{36\,\text{MHz}}{5} = 7.2\,\text{MHz} tq=536MHz=7.2

### 波特率计算方法 STM32F103C8T6CAN 通信波特率计算需要结合其内部时钟配置以及 CAN 控制器的寄存器设置。具体步骤如下: 1. **确定 CAN 时钟源** STM32F103C8T6CAN 控制器时钟来源于 APB1 总线,APB1 的时钟频率通常为 36 MHz。这一时钟频率是计算 CAN 波特率的基础[^2]。 2. **设置 CAN 预分频器 (Prescaler)** CAN 预分频器用于将 APB1 时钟频率分频,以得到 CAN 控制器的基本时间单位 (tq)。 例如,若 CAN_Prescaler 设置为 60,则 tq 的时间长度为: $$ tq = \frac{1}{APB1Clock / Prescaler} = \frac{1}{36 \, \text{MHz} / 60} = 1.67 \, \mu\text{s} $$ 3. **配置 CAN 时间段** CAN 控制器的时间段分为同步段 (Sync_Seg)、传播时间段 (Prop_Seg)、相位缓冲段 1 (Phase_Seg1) 和相位缓冲段 2 (Phase_Seg2)。 - Sync_Seg 固定为 1 tq - Prop_Seg 和 Phase_Seg1 由 CAN_BS1 设置,Phase_Seg2 由 CAN_BS2 设置 - 例如,CAN_BS1 设置为 3 tq,CAN_BS2 设置为 2 tq,则总位时间 (TBit) 为: $$ TBit = 1 + 3 + 2 = 6 \, \text{tq} $$ 4. **计算 CAN 波特率** CAN 的波特率(Baud Rate)由以下公式计算: $$ Baud Rate = \frac{1}{TBit \times tq} $$ 以示例参数计算: $$ Baud Rate = \frac{1}{6 \times 1.67 \, \mu\text{s}} \approx 100 \, \text{kbps} $$ 5. **采样点位置** 采样点通常位于 Phase_Seg1 结束时,用于判断总线电平。例如,若 Phase_Seg1 为 3 tq,则采样点位于位时间的 4 tq 处。 ### 示例代码 以下是一个典型的 CAN 波特率配置代码片段: ```c CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; CAN_InitStructure.CAN_BS1 = CAN_BS1_3tq; CAN_InitStructure.CAN_BS2 = CAN_BS2_2tq; CAN_InitStructure.CAN_Prescaler = 60; ``` ### 总结 通过合理配置 CAN_Prescaler、CAN_BS1 和 CAN_BS2,可以实现所需的 CAN 波特率。关键在于理解 CAN 控制器的时钟机制和时间单位 (tq) 的计算方式。 ### 注意事项 - 确保 APB1 时钟频率设置正确,否则会影响波特率计算精度。 - 采样点位置应尽量设置在位时间的 70%-90% 之间,以提高通信稳定性。 - 不同 CAN 控制器的寄存器配置方式可能略有不同,需参考具体数据手册。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智驾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值