带你玩转基于SkyEye的TLE987 DMA控制器实现

2021-12-01 17:41:56 digiproto 3

01

DMA 介绍


DMA,全称Direct Memory Access,即直接存储器访问。


DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实现和完成的。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率大大提高。


02

TLE987 DMA控制器


2.1 TLE987 DMA控制器功能介绍


DMA 控制器的主要特点是:

1) 与AHB-Lite 兼容进行DMA 传输。

2) 与APB 兼容进行寄存器编程。

3) 它有一个单独的 AHB-Lite 主设备,用于使用 32 位地址总线和 32 位数据总线传输数据。

4) 最多支持14 个DMA 通道。

5) 每个DMA 通道都有专用的握手信号。

6) 每个DMA 通道都有一个可编程的优先级。

7) 每个优先级都使用由 DMA 通道编号确定的固定优先级进行仲裁。

8) DMA 还支持多种传输类型:

- 内存到内存

- 内存到外设

- 外设到内存

9) 支持多种DMA 周期类型。

10) 支持多种DMA 传输数据宽度。

11) 每个DMA 通道都可以访问一个主通道和一个备用通道控制数据结构。

12) 所有通道控制数据都以小端格式存储在系统内存(RAM) 中。

13) 它使用单个AHB-Lite 突发类型执行所有DMA 传输。目标数据宽度等于源数据宽度。

14) 单个 DMA 周期中的传输次数可以设置为 1 到 1024。


2.2 TLE987 DMA控制器框架图


图片关键词

▲图 1  DMA控制器整体框架图


DMA控制器可以实现多达14个硬件DMA请求,如下图所示

image (1).png

▲图2  DMA控制器通道选择图


2.3 TLE987 DMA 工作模式


2.3.1 发送方式

1) 单次发送,一次dma请求(dma_req),产生一次数据传输

2) 多次发送,一次 dma 请求(dma_req), 产生多次数据传输


2.3.2  DMA控制器通道数据结构体

DMA 控制器通道控制数据结构体分为两种,基础数据结构体与备份数据结构体,需要用户来分配一块系统RAM区域给这两种数据结构体。两种通道控制数据结构体图如下所示:

图片关键词

▲图3  DMA通道控制数据结构图


寄存器CTRL_BASE_PTR 可以设置基础数据结构体的基地址,备份数据结构体的基地址由硬件计算得出,用户可以访问ALT_CTRL_BASE_PTR 寄存器获取备份数据结构体基地址。


2.3.4  DMA控制器通道数据结构体Control配置

DMA 通道配置表如下图所示:

图片关键词

图4  DMA控制器通道配置图


设置dst_inc值来设置目的地址增加值,设置dst_size值来设置目的地址的数据宽度。


设置 src_inc值来设置源地址增加值,设置src_size值来设置源地址的数据宽度,src_size 值应与 dst_size设置成一致。其他位域值可以根据官方数据手册进行配置,这里不再一一阐述。


2.3.3  DMA 周期类型

1) 无效类型

2) 基本类型

3) 自动请求类型

4) 乒乓类型

5) 内存分散-聚集类型

6) 外围分散-聚集类型


这里着重讲一下DMA周期基础类型工作模式,在此模式下可以将控制器配置为使用基础或备用数据结构体,工作流程为

① 控制器执行 2R(R_power) 传输。如果剩余的传输次数为零,则流程执行步骤 3

② 控制器仲裁:

– 如果更高优先级的通道正在请求服务,则控制器为该通道提供服务。

– 如果外围设备或软件向控制器发出请求,则继续执行步骤 1

③ 控制器向主机处理器发送信号,表明 DMA 周期已完成。


03

SkyEye TLE987 DMA控制器仿真


SkyEye,中文全称天目全数字实时仿真软件,是基于可视化建模的硬件行为级仿真平台,支持用户通过拖拽的方式对硬件进行行为级别的仿真和建模。


SkyEye目前支持主流的嵌入式硬件平台,可以运行主流的操作系统,此外还能适配国内自主研发的操作系统天脉。通过利用基于LLVM的动态二进制翻译技术,使虚拟处理器在典型的桌面计算机上运行速度可以达到2000MIPS以上。


3.1 实现TLE 987 DMA 通道控制器数据结构体仿真

如下图所示:

图片关键词

▲图5 DMA 通道控制器数据结构体仿真图


3.2 实现TLE987  DMA 相关寄存器读写操作

如下图所示:

图片关键词

▲图6 DMA 相关寄存器读操作图


3.3 实现TLE987 DMA 数据搬运操作

如下图所示:

图片关键词

▲图7  DMA 数据搬运操作操作图


3.4 SkyEye中 TLE 987 DMA实现gp模型图

如下图所示:

图片关键词

▲图 8  DMA实现gp模型图


引用:

1. 官方数据手册Infineon-TLE987x-UserManual-v01_60-EN.pdf


电话咨询
在线咨询
解决方案
QQ客服