ZHCAD88 October   2023 TMS320F280039

 

  1.   1
  2.   摘要
  3.   商标
  4. 1 引言
  5. 2 DCAN 和 MCAN 之间的主要差异
  6. 3 模块初始化
    1. 3.1 DCAN 初始化
    2. 3.2 MCAN 初始化
    3. 3.3 初始化序列
    4. 3.4 模块初始化代码片段
  7. 4 位时序配置
  8. 5 消息 RAM 配置
  9. 6 中断处理
    1. 6.1 MCAN 中断源
    2. 6.2 DCAN 中断处理
    3. 6.3 MCAN 中断处理
  10. 7 发送数据
    1. 7.1 基本发送过程
      1. 7.1.1 使用 DCAN 发送
      2. 7.1.2 使用 MCAN 发送
    2. 7.2 MCAN 与 DCAN 发送过程差异
    3. 7.3 MCAN 发送概念
      1. 7.3.1 Tx 事件 FIFO
  11. 8 接收数据
    1. 8.1 接收简介
    2. 8.2 基本接收流程
      1. 8.2.1 DCAN 接收
      2. 8.2.2 MCAN 接收
    3. 8.3 过滤器元素
      1. 8.3.1 过滤器元素结构
    4. 8.4 Rx 缓冲器
      1. 8.4.1 在 Rx 缓冲器中接收
    5. 8.5 Rx FIFO
      1. 8.5.1 在 Rx FIFO 中接收
    6. 8.6 接收高优先级消息
  12. 9 避免网络错误
  13. 10参考资料

位时序配置

传统 CAN 和 CAN FD 之间的位时序配置不同。在传统 CAN 中,该过程相对 更简单,因为整个帧的比特率是相同的。然而,在 CAN FD 中,可以使用两种不同的比特率:较慢的“标称”比特率和较快的“数据”比特率。在 MCAN 模块中,可通过在模块初始化期间分别写入 MCAN_NBTP 和 MCAN_DBTP 寄存器来配置这两种比特率。请注意,应用可以选择仅利用可在 CAN FD 中发送的每帧更多的数据字节数,并对整个帧使用相同的比特率。数据段更快的比特率还可保证发送器延迟补偿 (TDC),如果没有该补偿,可能发生位错误。下面是一个计算位时序参数的示例:

示例 1

假设 200MHz 的 CAN 模块时钟需要以下参数:

标称比特率 = 500kbps,数据比特率 = 2Mbps。

计算比特率的公式如下:

方程式 1. Bit-rate=CA)N module clockBit-rate prescaler ×Bit-time

对于 500kbps 的标称比特率,比特率预分频器 x 位时间 的乘积必须等于 400。只要不违反 CAN 协议规定的规则,这就可以通过预分频器和位时间的多种组合来实现。例如,可以选择预分频器 20 和位时间 20TQ。预分频器为 20 (NBRPreg = 19) 可产生 10MHz 的位时钟,得到的时间量子 (TQ) 为 100ns。通过 TSEG1 和 TSEG2 的多种组合,可以实现 20TQ 的位时间,从而产生不同的采样点 (SP)。

位时间 = (NTSEG1reg + 1) + (NTSEG2reg + 1) + 1,其中 NTSEG1reg 和 NTSEG2reg 分别表示写入 MCAN_NBTP.NTSEG1 和 MCAN_NBTP.NTSEG2 位字段的实际值。如果 TSEG1 选择为 16 (NTSEG1reg = 15) 并且 TSEG2 选择为 4 (NTSEG2reg =3),这些值会产生采样点 80%。通过调整 TSEG1 和 TSEG2 值,可以根据网络参数在位时间内移动采样点。

类似的计算用于 2Mbps 的数据比特率。对于 2Mbps 的数据比特率,比特率预分频器 x 位时间 的乘积必须等于 100。只要不违反 CAN 协议规定的规则,这就可以通过预分频器和位时间的多种组合来实现。例如,可以选择预分频器 5 和位时间 20TQ。预分频器为 5 (DBRPreg = 4) 可产生 40MHz 的位时钟,得到的时间量子 (TQ) 为 25ns。通过 TSEG1 和 TSEG2 的多种组合,可以实现 20TQ 的位时间,从而产生不同的采样点 (SP)。

位时间 = (DTSEG1reg + 1) + (DTSEG2reg + 1) + 1,其中 DTSEG1reg 和 DTSEG1reg 分别表示写入 MCAN_DBTP.DTSEG1 和 MCAN_DBTP.DTSEG2 位字段的实际值。如果 TSEG1 选择为 16 (DTSEG1reg = 15) 并且 TSEG2 选择为 4 (NTSEG2reg =3),这些值会产生采样点 80%。通过调整 TSEG1 和 TSEG2 值,可以根据网络参数在位时间内移动采样点。

GUID-20231010-SS0I-JDWM-P0MF-NXTTHQ6NP2XH-low.png图 4-1 MCAN 位时序配置