如何从Tq和时钟频率计算出CAN总线波特率?
how to calculate the CAN bus baud rate from the Tq and clock frequency ?
首先,我想我知道如何从图片中的参数计算 CAN 总线波特率,这是一个 CAN FD 配置。
clock frequency :80000 k
pre-scaler :1
so we can get the Tq = 1/80000 K
BTL cycles : 40
time for a bit = 40 * (1/80000K) = 1/2000k
So we can get the baud rate = 1/ (1/2000k) = **2000k .**
this Baud rate which we calculated is equal to the value which the CANoe Generated.
但令我困惑的是:当我使用这种方法计算CAN(不是CAN FD)的波特率时,结果与CANoe生成的值不同,为什么??? CAN 和 CAN FD 之间有什么不同吗??
你能帮我吗?非常感谢!
clock :16000K
Pre-sacler :1
tq = 1/16000k
BTL : 16
time for a bit = 16*1/16000k = 1/1000k
baud rate = 1000k
but result generate via CANoe is 500k ,seems somewhere i missing a "divide by 2 " ??
CANOE的CAN控制芯片是SJA1000,来自CANOE帮助文档。
对于这个芯片:
CAN时钟=系统时钟*pre-scaler*2
本题的key-point就是这里的“2”,对于其他芯片,比如STM32F103,CAN总线的时钟设置为36Mhz,不需要除以“2”
所以我猜时钟频率可能低于系统时钟
我按照这个规则设置了另外一个开发板的参数,实测通信成功
同时使用CANOE的用户只需关注波特率和采样点即可,无需过多关注其他参数。
希望对您有所帮助
首先,我想我知道如何从图片中的参数计算 CAN 总线波特率,这是一个 CAN FD 配置。
clock frequency :80000 k
pre-scaler :1
so we can get the Tq = 1/80000 K
BTL cycles : 40
time for a bit = 40 * (1/80000K) = 1/2000k
So we can get the baud rate = 1/ (1/2000k) = **2000k .**
this Baud rate which we calculated is equal to the value which the CANoe Generated.
但令我困惑的是:当我使用这种方法计算CAN(不是CAN FD)的波特率时,结果与CANoe生成的值不同,为什么??? CAN 和 CAN FD 之间有什么不同吗?? 你能帮我吗?非常感谢!
clock :16000K
Pre-sacler :1
tq = 1/16000k
BTL : 16
time for a bit = 16*1/16000k = 1/1000k
baud rate = 1000k
but result generate via CANoe is 500k ,seems somewhere i missing a "divide by 2 " ??
CANOE的CAN控制芯片是SJA1000,来自CANOE帮助文档。
对于这个芯片:
所以我猜时钟频率可能低于系统时钟
我按照这个规则设置了另外一个开发板的参数,实测通信成功
同时使用CANOE的用户只需关注波特率和采样点即可,无需过多关注其他参数。
希望对您有所帮助