ZHCAD88 October   2023 TMS320F280039

 

  1.   1
  2.   摘要
  3.   商标
  4. 引言
  5. DCAN 和 MCAN 之间的主要差异
  6. 模块初始化
    1. 3.1 DCAN 初始化
    2. 3.2 MCAN 初始化
    3. 3.3 初始化序列
    4. 3.4 模块初始化代码片段
  7. 位时序配置
  8. 消息 RAM 配置
  9. 中断处理
    1. 6.1 MCAN 中断源
    2. 6.2 DCAN 中断处理
    3. 6.3 MCAN 中断处理
  10. 发送数据
    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. 接收数据
    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. 避免网络错误
  13. 10参考资料

位时序配置

传统 CAN 和 CAN FD 之间的位时序配置不同。在传统 CAN 中,该过程相对 更简单,因为整个帧的比特率是相同的。然而,在 CAN FD 中,可以使用两种不同的比特率:较慢的“标称”比特率和较快的“数据”比特率。在 MCAN 模块中,可通过在模块初始化期间分别写入 MCAN_NBTPMCAN_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.NTSEG1MCAN_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.DTSEG1MCAN_DBTP.DTSEG2 位字段的实际值。如果 TSEG1 选择为 16 (DTSEG1reg = 15) 并且 TSEG2 选择为 4 (NTSEG2reg =3),这些值会产生采样点 80%。通过调整 TSEG1 和 TSEG2 值,可以根据网络参数在位时间内移动采样点。

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