ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:130.84KB ,
资源ID:4067574      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-4067574.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DMA实验.docx)为本站会员(j35w19)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

DMA实验.docx

1、DMA 实验-MDMA 部分一、 实验目的1. 掌握 DSP MDMA 的工作原理。2. 熟悉 DMA 各个寄存器的作用。二、 实验内容编写程序,使用 MDMA 完成数据的复制。三、 预备知识1. ADSP-BF533 集成开发环境的使用,程序的编写和调试;2. DMA 的工作原理;3. 中断控制器的使用;四、 实验设备及工具硬件:EBF-LAB533 实验平台、 Blackfin 仿真器、PC 机。软件:操作系统 Win2000 或 Win XP、VisualDSP+集成开发环境。五、 实验原理1. 实验框图B F 5 3 3M e m o r y AM e m o r y B数据搬移图 D

2、MA 实验示意图2. DMA 概述 Blackfin 使用直接存储器访问(DMA)进行存储器空间内部或者存储器空间与外设之间的数据传送操作。ADSP-BF533 有多个独立的 DMA 控制器,能够以最小的 DSP 内核开销完成数据自动传输。DMA 传输可以发生在 ADSP- BF533 的内部存储器和任一有DMA 能力的外设之间。此外,DMA 传输也可以在任一有 DMA 能力的外设和已连接到外部存储器接口的外部设备之间完成(包括 SDRAM 控制器、异步存储器控制器) 。有DMA 传输能力的外设包括 SPORT、SPI 端口、UART 和 PPI 端口。每个独立的有 DMA 能力的外设至少有一

3、个专用 DMA 通道。ADSP- BF533 DMA 控制器能够支持一维(1D )或二维( 2D)DMA 传输。DMA 传输的初始化可以由寄存器或名为描述子块的参数来实现。二维 DMA 支持任意的行列数量,最大可达 64K 乘 64K 单位,支持任意数量的行列的步进,最大可达 +/-32K 单位。而且,列步进的值可以小于行步进的值,这就允许实现隔行扫描的数据流。这个特性对于视频应用非常有用,可以在空闲时进行数据的隔行存储。ADSP-BF533 DMA 控制器支持的典型 DMA 操作包括: 单一的、传输完成时停止的线性缓冲区; 自动刷新循环缓冲区,当全部或部分缓冲区满时中断; 一维或二维 DMA

4、,使用描述子链表; 二维 DMA,使用一个描述子阵列,仅指定公共页内的基 DMA 地址;除专用外设的 DMA 通道以外,在 ADSP-BF533 的不同存储器之间有 2 个存储器DMA 通道。这使得任意的存储器(包括外部 SDRAM、 ROM、SRAM 和 FLASH)之间的数据块传输成为可能,并使处理器干预降到最小。存储器 DMA 传输可以通过一套非常灵活的基于描述子的方法或标准的基于寄存器的自动缓冲机制来控制。3. DMA 的传输模式 DMA 传送可以使基于描述符的,也可以是基于自动缓冲的,基于描述符的 DMA 传送在发送 DMA 传送序列时,需要一组存储在存储器中的参数。这类传送允许将多

5、个 DMA序列链接在一起。在基于描述符的 DMA 传送中,一个 DMA 通道可以被编程建立,并且在当前序列完成之后自动启动另外一个 DMA 传送。基于自动缓冲的 DMA 传送允许处理器直接编程 DMA 控制寄存器,以发起一个 DMA 传送。完成传送时,控制寄存器被它们的原始设定值自动更新。(1) 基于描述符的 DMA 传送基于描述符的 DMA 传送是 Blackfin 控制 DMA 传送的最普通方法。使用该方法时,DMA 通道需要一组称之为 DMA 描述符的参数,该参数存储在存储器中。每个描述符包含特定 DMA 传送序列所需的所有信息,其结构主要由要传送的数据块的 32 位起始地址、要传送的数

6、据量、其他各种控制信息、指向下一个描述符的指针组成。 DMA 描述符的结构DMA 描述符中各元素的定义如下表:地址 地址内容名称 描述ASE DMA 配置字 描述符所有者,DMA 配置完成状态BASE+2DMA 传送计数 需要传送的数据元的数目BASE+4DMA 起始地址 传送起始地址的低 16 位BASE+6DMA 起始地址 传送起始地址的高 16 位BASE+8下一个描述符的指针 下一个描述符块的头地址的低 16 位表 DMA 描述符定义其中 BASE 是描述符的真实地址。处理器可以将表示多个传送的多组描述符放入存储器中,并构成一个链表。当链表被生成时,DMA 通道就有了完成多个传送序列所

7、需的所有信息,这些传送序列不需要处理器干预。当一个传送序列结束时,下一个描述符指针必须指向包含一个 16 位数据的存储单元,该 16 位数据的第 15 位为 0。如果该数据的第 0 位为 1,DMA 通道仍被使能,但被延迟,并且剩余的 FIFO 值不被丢弃。(2) 基于寄存器的 DMA 传送 下图为 DMA 配置寄存器中各个位的配置情况:DMA 配置寄存器每个 DMA 通道都有独立外设的一些功能。通过 DMA 配置字可以控制和监视独立外设的下列行为: 数据传送的方向独立外设的方向位是可读写的。对于某些外设和 MemDMA,该位是不能被修改的。 数据尺寸独立外设数据长度可以是 8 位 16 位

8、32 位。某些外设仅仅支持 16 位和 32 位。对于每次传送,DMA 地址的变化与数据的尺寸有关。传送 8 位数据时,DMA 地址增 1,传送 16位数据时,DMA 地址增 2,传送 32 位数据时,DMA 地址增 4。下表说明在 DMA 配置字如何配置有效的数据尺寸第 12 位 第 3 位 数据长度0 0 16 位半字0 1 32 位字1 0 保留1 1 8 位字节表 DMA 数据尺寸定义 外设控制位独立外设控制位提供了通过描述符对外设的控制。 外设状态独立外设状态位包含与当前描述符 DMA 传送有关的,包括缓冲器状态在内的外设 说明信息。在 DMA 传送完成时,该信息被写回当前描述符的

9、DMA 配置字中。4. Memory DMA(MDMA)Memory DMA 控制器提供在 Blackfin 存储空间的存储器与存储器的 DMA 传送,这些存储器空间包括外设组件互连地址空间,L1,L2 以及外部的同步和异步存储器。MDMA控制器控制器由两个通道组成。一个源通道,用于读存储器;一个目的通道,用于写存储器。两个通道共享一个可存放 16 条记录的 32 位 FIFO,源 DMA 通道写 FIFO,目的 DMA通道读 FIFO。 FIFO 支持 8 位 16 位 32 位传送。注意:MDMA 控制器不支持基于自动缓冲的 DMA。操作流程: MDMA_S0_START_ADDR 装入源

10、内存首地址(32 位) ; MDMA_D0_START_ADDR 装入目的内存首地址(32 位) ; 配置 Peripheral Map Register,使之 DMA 通道类型为 MDMA.; 写描述字,配置 DMA 控制寄存器。六、 实验设计1. 设计思路本实验采用 MDMA 方式实现了内存之间数据块搬移的功能。实验设计思路如下:(1) 初始化一块大小为 2000 字节的源缓冲区 Src_Buf,全局变量;(2) 初始化一块大小为 2000 字节的目标缓冲区 Dest_Buf,全局变量;(3) 将 Src_Buf 的内容用 MDMA 复制到 Dest_Buf 中。2. 设计实现MDMA 共

11、有 2 路分别是: MDMA_D0/S0 MDMA_D1/S1他们之间的差异仅在于优先级高低的不同。这里我们选择 MDMA_D0/S0 来实现数据的拷贝。我们设计一下 MDMA 的数据搬移方案:我们需要将 2000 字节的数据进行数据搬移。我们这里采用 16bit 位的 DMA 的方式 2000 字节按 16bit 划分,一共有 1000 个单元。在此,我们可以确定: MDMA 的 MODIFY 应该为 2,即为 16bit。 COUNT 应该为 1000, (1000 Project .,导入 MDMA 目录下的“MDMA.dpj”工程3. 编译(F7)并加载工程;打开 Project 菜单

12、,选择 Build Project。4. 加断点,运行程序(F5);(1) 在 MDMA 工程的中断服务程序“MDMA_Exp.c“中加断点,如下图:图 MDMA 实验断点位置(2) 打开菜单栏的 Register 项,选择 Peripherals-MEMDMAFlex-Source Channel-0,Peripherals-MEMDMAFlex- Destination Channel-0,观察寄存器里的值;图 MDMA 寄存期初始值运行程序,当 MDMA 搬移完成后,程序会运行至断点处,观察 MDMA 通道 0 的寄存器里的值图 MDMA 进入中断后,即完成一次 DMA 后状态(3) 运行程序,观察实验平台上 LED 的状态。八、 实验结果程序运行后,如果 MDMA 搬运完毕并且全部正确的话,实验平台上的 LED 会全亮。九、 思考如何使用描述子方式实现本实验中的数据

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报