| |
|
开发:
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例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |