资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,*,JXARM9-2410,实验系统教案5.3,DMA,实验,武汉创维特信息技术有限公司,4/13/2026,提纲,1,3,2,4,5,基础知识,实验目的,实验内容,预备知识,实验设备,6,实验过程,7,实验报告要求,2,一 实验目的,实验目的,了解,DMA,传送原理,掌握,S3C2410 DMA,控制器的使用,掌握,DMA,软件编程方法,3,二 实验内容,实验内容,编写单字节方式、双字节方式和四字节方式常规内存拷贝及时间检测程序,编写,DMA,方式内存拷贝及时间检测程序,比较,DMA,方式内存拷贝及常规内存拷贝的效率,4,三 预备知识,预备知识,了解,ADT,集成开发环境的基本功能,了解,DMA,的原理以及处理步骤,5,四 实验设备,实验设备,JXARM9-2410,教学实验箱,ADT1000,仿真器和,ADT IDE,集成开发环境,串口连接线,6,五 基础知识,直接数据存储-,DMA,DMA,方式,当高速外设要与系统内存或者要在系统内存的不同区域之间,进行大量数据的快速传送时,查询方式和中断方式可能不能满足要求,直接存储器存取(,DMA),就是为解决这个问题提出的,采用,DMA,方式,在一定时间段内,由,DMA,控制器取代,CPU,,获得总线控制权,来实现内存与外设或者内存的不同区域之间大量数据的快速传送,7,五 基础知识,典型的,DMA,控制器(以下简称,DMAC),的工作电路,8,五 基础知识,DMA,数据传送的工作过程,1),DMAC,发出,DMA,传送请求,2),DMAC,通过连接到,CPU,的,HOLD,信号向,CPU,提出,DMA,请求,3),CPU,在完成当前总线操作后会立即对,DMA,请求做出响应,,CPU,的响应包括两个方面:,CPU,将控制总线、数据总线和地址总线浮空,即放弃对这些总线的控制权,CPU,将有效的,HLDA,信号加到,DMAC,上,以通知,DMAC CPU,已经放弃了总线的控制权,9,五 基础知识,DMA,数据传送的工作过程,4),CPU,将总线浮空,即放弃了总线控制权后,由,DMAC,接管系统总线的控制权,并向外设送出,DMA,的应答信号,5),DMAC,送出地址信号和控制信号,实现外设与内存或内存之间大量数据的快速传送,6),DMAC,将规定的数据字节传送完之后,通过向,CPU,发,HOLD,信号,撤消对,CPU,的,DMA,请求。,CPU,收到此信号,一方面使,HLDA,无效,另一方面又重新开始控制总线,实现正常取指令、分析指令、执行指令的操作。,10,五 基础知识,DMA,传送方式,I/O,接口到存储器,存储器到,I/O,接口,存储器到存储器,11,五 基础知识,I/O,接口到存储器的传送,当进行由,I/O,接口到存储器的数据传送时,来自,I/O,接口的数据利用,DMAC,送出的控制信号,将数据输送到系统数据总线,D0D7,上,同时,,DMAC,送出存储器单元地址及控制信号,将存在于,D0D7,上的数据写入所选中的存储单元中。这样就完成了由,I/O,接口到存储器一个字节的传送。同时,DMAC,修改内部地址及字节数寄存器的内容。,12,五 基础知识,存储器到,I/O,接口,与前一种情况类似,在进行这种传送时,,DMAC,送出存储器地址及控制信号,将选中的存储单元的内容读出放在数据总线,D0D7,上,接着,,DMAC,送出控制信号,将数据写到规定的(预选中)端口中去,而后,MDAC,自动修改内部的地址及字节数寄存器的内容,13,五 基础知识,存储器到存储器,存储器到存储器的,DMA,数据传送采用数据块传送方式,首先送出内存源区域的地址和控制信号,将选中内存单元的的数据暂存,接着修改地址及字节数寄存器的值,然后输出内存目的区域的地址及控制信号,将暂存的数据,通过系统数据总线,写入到内存的目的区域中去,最后修改地址和字节数寄存器的内容,当字节计数器减到零或外部输入时可结束一次,DMA,传输过程,14,五 基础知识,S3C2410,的,DMA,控制器,S3C2410,集成了4个通道的,DMA,控制器:,源和目的都在系统总线上;,源在系统总线而目的在外设总线上;,源在外设总线而目的在系统总线上;,源和目的都在外设总线上。,15,五 基础知识,实验说明,本实验通过,DMA,方式实现存储器到存储器间的数据传送,并将其与常规的内存拷贝操作进行比较,16,五 基础知识,拷贝动作的计时处理,采用定时器进行计时处理,采用函数,Timer_Start,启动计时处理,参数,divider,表示定时时间间隔,,,0:16,us,1:32 us,2:64 us,3:128 us,操作完成时调用,Timer_Stop,停止定时器计数,其返回值为计数值,该值乘以时间间隔(128,us),即为计时时间,Timer_Start(3);/*128 us*/,time=Timer_Stop();/*,停止定时器*/,17,五 基础知识,常规的内存拷贝操作,字节拷贝,*(,unsigned char*)(,dstAddr,)=*(unsigned char*)(,srcAddr,);,双字节拷贝,*(unsigned short*)(,dstAddr,)=*(unsigned short*)(,srcAddr,);,四字节拷贝,*(unsigned,int,*)(,dstAddr,)=*(unsigned,int,*)(,srcAddr,);,18,六 实验报告要求,实验报告要求,什么叫,DMA,传送方式?试说明,DMA,方式传送数据的主要步骤。,试比较,DMA,传输、查询式传输及中断方式传输之间的优缺点和适用场合?,19,
展开阅读全文