CANBUS波特率配置含义
CANBUS Baudrates Configuration Meaning
下面的canbus波特率配置的逻辑是什么,其中数字是确定的?
CAN_InitStructure.CAN_BS1 = CAN_BS1_2tq;
CAN_InitStructure.CAN_BS2 = CAN_BS2_3tq;
CAN_InitStructure.CAN_Prescaler = 16;
CAN_Init(CAN1, &CAN_InitStructure);
你忘了
CAN_InitStructure.SyncJumpWidth = CAN_SJW_1TQ;
比特率将为:
BITRATE = (CANCLOCK / CAN_InitStructure.CAN_Prescaler) / (1 + CAN_InitStructure.CAN_BS1 + CAN_InitStructure.CAN_BS2)
其中 CANCLOCK 是以赫兹为单位的 CAN 外设时钟。这取决于你的时钟树配置。
你的时间量子频率是TQF = CANCLOCK / CAN_InitStructure.CAN_Prescaler
时间量本身 TQ = 1/TQF
(以秒为单位)
位时间为BITTIME = TQ * (CAN_InitStructure.SyncJumpWidth + CAN_InitStructure.CAN_BS1 + CAN_InitStructure.CAN_BS2)
记住 xxxx_3tq 表示 3 TQs
为 CAN 配置波特率有点麻烦,但所有 CAN 控制器的工作原理都非常相似。
您希望每位采样点接近 87.5% 的理想位置(根据 Automation/CANopen 建议中的 CAN)。要到达那里,您需要知道在采样点之前和之后有多少 TQ(时间份额)。
每个TQ的长度由CAN控制器的时钟决定,由系统时钟分频而来,每个TQ的长度为1个时钟周期。 16 TQ 通常是理想的,因此您需要在此之后选择一个除数。如果你 运行 16MHz 的系统时钟,你可以选择一个 16 的除数以获得 1MHz 的 CAN 时钟。请记住,内部 RC 振荡器是 CAN 的 no-go!您必须使用外部 crystal 或振荡器以获得足够的精度。
采样点之前的段通常称为同步段(固定 1 TQ)、传播段和相位段 1 - 术语因控制器而异。这些段加在一起应占所需波特率的 87.5%,采样点之后的段(通常称为相位段 2)应占其余部分。
同步跳转宽度(SJW)与波特率计算本身无关,但有关联。 SJW 确定对于给定的波特率允许时钟偏离多少 TQ - 对于 800kbps 或 1000kbps,您将其设置为 3,否则 1 应该有效。
下面的canbus波特率配置的逻辑是什么,其中数字是确定的?
CAN_InitStructure.CAN_BS1 = CAN_BS1_2tq;
CAN_InitStructure.CAN_BS2 = CAN_BS2_3tq;
CAN_InitStructure.CAN_Prescaler = 16;
CAN_Init(CAN1, &CAN_InitStructure);
你忘了
CAN_InitStructure.SyncJumpWidth = CAN_SJW_1TQ;
比特率将为:
BITRATE = (CANCLOCK / CAN_InitStructure.CAN_Prescaler) / (1 + CAN_InitStructure.CAN_BS1 + CAN_InitStructure.CAN_BS2)
其中 CANCLOCK 是以赫兹为单位的 CAN 外设时钟。这取决于你的时钟树配置。
你的时间量子频率是TQF = CANCLOCK / CAN_InitStructure.CAN_Prescaler
时间量本身 TQ = 1/TQF
(以秒为单位)
位时间为BITTIME = TQ * (CAN_InitStructure.SyncJumpWidth + CAN_InitStructure.CAN_BS1 + CAN_InitStructure.CAN_BS2)
记住 xxxx_3tq 表示 3 TQs
为 CAN 配置波特率有点麻烦,但所有 CAN 控制器的工作原理都非常相似。
您希望每位采样点接近 87.5% 的理想位置(根据 Automation/CANopen 建议中的 CAN)。要到达那里,您需要知道在采样点之前和之后有多少 TQ(时间份额)。
每个TQ的长度由CAN控制器的时钟决定,由系统时钟分频而来,每个TQ的长度为1个时钟周期。 16 TQ 通常是理想的,因此您需要在此之后选择一个除数。如果你 运行 16MHz 的系统时钟,你可以选择一个 16 的除数以获得 1MHz 的 CAN 时钟。请记住,内部 RC 振荡器是 CAN 的 no-go!您必须使用外部 crystal 或振荡器以获得足够的精度。
采样点之前的段通常称为同步段(固定 1 TQ)、传播段和相位段 1 - 术语因控制器而异。这些段加在一起应占所需波特率的 87.5%,采样点之后的段(通常称为相位段 2)应占其余部分。
同步跳转宽度(SJW)与波特率计算本身无关,但有关联。 SJW 确定对于给定的波特率允许时钟偏离多少 TQ - 对于 800kbps 或 1000kbps,您将其设置为 3,否则 1 应该有效。