IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 带你玩转基于SkyEye的TLE987 DMA控制器实现 -> 正文阅读

[嵌入式]带你玩转基于SkyEye的TLE987 DMA控制器实现

?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请求,如下图所示

▲图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

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-12-01 17:52:21  更:2021-12-01 17:54:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:47:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码