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参考资料

在 Rx FIFO 中接收

上面介绍了将匹配帧存储到 Rx FIFO 中的过滤器配置。

注意:以下讨论可以单独应用于其中任何一个 Rx FIFO。

可以通过多种方法来读取新消息。当在 FIFO 元素中接收到任何新消息或 FIFO 已满(在消息 RAM 配置期间设置的 FIFO 大小)时,可能生成单独的中断。为避免由于 FIFO 已满而导致丢失数据,还可以设置水线(在消息 RAM 配置期间)。当 FIFO 填充级别达到设置的水线时,将生成一个中断,此中断可用于读取整个 FIFO(请参阅图 8-4)。

可以使用 Driverlib API 直接从消息 RAM 读取新消息(一条或多条),之后 Get 索引需要递增。这可以通过将最后读取的元素的索引写入寄存器 MCAN_RXFxA 来实现,这是使用 Driverlib API 完成的,如下所示。

要从 FIFO 读取多条消息,可以循环调用相同的代码。

GUID-20231010-SS0I-GVBS-4PHN-FKG1VWXX4DRM-low.png图 8-4 使用 Rx FIFO 接收