欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > S32K144入门笔记(十八):DMAMUX解读

S32K144入门笔记(十八):DMAMUX解读

2025/3/22 16:04:42 来源:https://blog.csdn.net/weixin_40485788/article/details/146408508  浏览:    关键词:S32K144入门笔记(十八):DMAMUX解读

文章目录

  • 1 概述
    • 1.1 模块总览
    • 1.2 模块特性
    • 1.3 模块操作
    • 1.4 寄存器定义
  • 2 功能描述
    • 2.1 DMA通道的周期触发能力
    • 2.2 始终启用DMA源
    • 2.3 初始化/应用信息
      • 2.3.1 复位
      • 2.3.2 使能和配置源


1 概述

来自TRGMUX模块的触发可以触发前四个DMA通道上的DMA传输,例如,LPIT可以经由TRGMUX触发DMA。异步DMA操作不支持触发器选项。
在多个DMA请求被路由到DMAMUX源的情况下,软件需要确保一次只启用一个DMA请求。例如,一个以太网定时器的DMA请求可以在特定时间启用,而其他定时器可以在该时间启用中断。

1.1 模块总览

DMAMUX将DMA源(称为插槽)路由到16个DMA通道中的任何一个,示意图如下:
DMA路由示意图

1.2 模块特性

  • 多达 61 个外设插槽和多达 2 个始终开启的插槽可路由到 16 个通道
  • 16 个可独立选择的 DMA 通道路由器,前 4 个通道另外提供触发功能
  • 每个通道路由器可被分配到可能的外设 DMA 插槽之一或始终开启的插槽之一

1.3 模块操作

  • 禁止模式
    在这种模式下,DMA 通道被禁用。由于 DMA 通道的禁用和启用主要通过 DMA 配置寄存器来完成,因此此模式主要用作 DMA 通道多路复用器中 DMA 通道的复位状态。它也可能用于在系统重新配置时(例如,更改 DMA 触发的周期)临时暂停 DMA 通道。
  • 正常模式
    在这种模式下,DMA 源直接路由到指定的 DMA 通道。在这种模式下,DMAMUX 的操作对系统来说是完全透明的。
  • 周期触发模式
    在这种模式下,DMA 源可能仅会周期性地请求 DMA 传输,例如当发送缓冲区为空或接收缓冲区已满时。周期的配置由外部周期性中断定时器(例如,PIT)完成。此模式仅适用于 0 - 3 通道。

1.4 寄存器定义

16个通道的寄存器位域相同,截取手册中的说明如下:
DMA寄存器定义

2 功能描述

DMAMUX的主要目的是为系统使用可用DMA通道提供灵活性。因此,DMAMUX 的配置旨在成为在系统启动代码执行期间完成的静态过程。DMAMUX 的配置也可以在系统的正常操作期间进行更改,需要遵循一定的规则。
从功能上划分,DMA 多路复用器(DMAMUX)的通道可分为两类:

  • 实现常规路由功能并具备周期性触发能力的通道
  • 仅实现常规路由功能的通道

2.1 DMA通道的周期触发能力

除了常规路由功能外,DMAMUX 的前4个通道还提供特殊的周期性触发功能,可用于在固定时间间隔内自动传输字节、帧或数据包,而无需处理器介入。
触发信号由外部周期性中断定时器(例如 PIT)生成;因此,周期性触发间隔的配置需通过配置外部周期性定时器来完成。
由于系统的动态特性(归因于 DMA 通道优先级、总线仲裁、中断服务程序长度等),触发与实际 DMA 传输之间的时钟周期数无法保证。
触发通道示意图DMA 通道的触发能力使系统能够安排定期的 DMA 传输,通常在某些外设的发送端,无需处理器的干预。这种触发通过在外设到 DMA 的请求上设置门控来工作,直到看到触发事件为止,如下图。

触发示意图
DMA 请求得到服务后,外设将取消其请求,有效地重置门控机制,直到外设重新提出请求并看到下一个触发事件。这意味着,如果看到一个触发,但外设未请求传输,那么该触发将被忽略。这种情况在下图中有所说明。
触发示意图
这种触发能力可用于任何支持 DMA 传输的外设,并且对于两种类型的情况最为有用:

  • 定期在特定总线上轮询外部设备
    例如,将 SPI(串行外设接口)的发送端分配至一个带触发功能的 DMA 通道(如上文所述)。完成配置后,只要 SPI 的发送缓冲区为空,它就会请求 DMA 传输(通常从内存中获取数据)。通过在该通道上使用触发功能,SPI 传输可自动每 5 微秒执行一次(此为示例)。在 SPI 的接收端,可通过配置 SPI 和 DMA 将接收数据存入内存,从而有效实现一种无需处理器干预即可定期从外部设备读取数据并将结果传输至内存的方法。
  • 使用 GPIO 端口来驱动或采样波形
    通过配置 DMA 将数据传输至一个或多个 GPIO 端口,可利用存储在片内存储器中的表格数据生成复杂波形。反之,通过 DMA 定期从一个或多个 GPIO 端口传输数据,则可对复杂波形进行采样,并将结果以表格形式存储于片内存储器中。

2.2 始终启用DMA源

除了可用作 DMA 源的外设外,还存在 2 个始终启用的额外 DMA 源。与由外设控制 DMA 传输期间数据流的外设 DMA 源不同,这些始终启用的源不提供对数据传输的"节流"控制。这些源在以下场景中最为实用:

  • 进行直接内存访问(DMA)传输到/从GPIO——将数据从一个或多个 GPIO 引脚移动到一个或多个 GPIO 引脚,要么不受限制(即尽可能快),要么定期进行(使用 DMA 触发功能)。
  • 进行从内存到内存的直接内存访问(DMA)传输——将数据从内存移动到内存,通常尽可能快,有时通过软件激活。
  • 进行从内存到外部总线或反之的直接内存访问(DMA)传输——与从内存到内存的传输类似,这通常会尽可能快地完成。
  • 任何需要软件激活的直接内存访问(DMA)传输——任何应该由软件明确启动的直接内存访问(DMA)传输。
    在软件应启动直接内存访问(DMA)传输开始的情况下,可以使用始终启用的 DMA 源来提供最大的灵活性。当通过软件激活 DMA 通道时,后续的小循环执行需要发送一个新的启动事件。这可以是新的软件激活,也可以是来自 DMA 通道复用器(MUX)的传输请求。
  • 在一个小循环中传输所有数据
    通过将 DMA 配置为在单个小循环中传输所有数据(即主循环计数器 = 1),无需重新激活通道。此选项的缺点是在确定 DMA 传输将对系统施加的负载时粒度降低。对于此选项,必须在 DMA 通道复用器(MUX)中禁用 DMA 通道。
  • 使用明确的软件重新激活
    在这个配置中,DMA 被配置为使用小循环和大循环来传输数据,但处理器需要在每个小循环后通过向 DMA 寄存器写入来重新激活通道。对于此选项,必须在 DMA 通道复用器(MUX)中禁用 DMA 通道。
  • 使用始终启用的DMA源
    在此配置中,DMA 被配置为同时使用小循环和大循环传输数据,且由 DMA 通道复用器(MUX)负责通道的重新激活。对于此配置,需启用 DMA 通道并将其指向“始终启用”的源。需注意,通道的重新激活可以是连续的(此时禁用 DMA 触发功能),也可利用 DMA 触发能力实现。通过这种方式,无需处理器干预即可实现数据包从一个源到另一个源的周期性传输。

2.3 初始化/应用信息

2.3.1 复位

复位后,所有通道都是禁用状态,在使用之前必须启用。

2.3.2 使能和配置源

  • 要启用具有周期性触发的源:
  1. 确定源将关联到哪一个 DMA 通道。请注意,只有前 4 个 DMA 通道支持周期性触发功能
  2. 清除 DMA 通道的 CHCFG[ENBL] 和 CHCFG[TRIG] 字段。
  3. 确保 DMA 通道在 DMA 中正确配置。此时 DMA 通道可能已被启用。
  4. 配置相关的定时器。
  5. 选择要路由到 DMA 通道的源。向相应的 CHCFG 寄存器写入内容,确保 CHCFG[ENBL]和 CHCFG[TRIG]字段被设置。
  • 要启用具有非周期性触发:
  1. 确定源将与哪个DMA通道相关联。请注意,只有前4个DMA通道具有周期性触发能力。
  2. 清除 DMA 通道的 CHCFG[ENBL] 和 CHCFG[TRIG] 字段。
  3. 确保在 DMA 中正确配置 DMA 通道。此时,DMA 通道可能已被启用。
  4. 选择要路由到 DMA 通道的源。写入相应的 CHCFG 寄存器,确保设置 CHCFG[ENBL],同时清除 CHCFG[TRIG]。
  • 禁止一个源:
    特定的 DMA 源可能会因未将相应的源值写入任何 CHCFG 寄存器而被禁用。此外,可能需要一些特定模块的配置。
  1. 在 DMA 中禁用 DMA 通道,并为新源重新配置该通道。
  2. 清除 DMA 通道的 CHCFG[ENBL]和 CHCFG[TRIG]位。
  3. 选择要路由到 DMA 通道的源。写入相应的 CHCFG 寄存器,确保 CHCFG[ENBL]和 CHCFG[TRIG]字段被设置。
  • 切换DMA通道8从源5到源7:
  1. 在 DMA 配置寄存器中,禁用 DMA 通道 8 并重新配置它以处理到外围插槽 7 的传输。此示例假定通道 8 不具有触发能力。
  2. 向 CHCFG8 写入 0x00。
  3. 向 CHCFG8 写入 0x87。(在此示例中,由于假定通道 8 不支持周期性触发功能,因此设置 CHCFG[TRIG]将没有效果。)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词