- 1、本文档共82页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 DMA技术
第8章 DMA技术 DMA(Direct Memory Access,直接存储器存取)是指计算机系统中的外部设备与存储器之间直接进行数据交换的一种数据传送方式。在DMA方式下,外部设备利用专用的接口电路直接和存储器进行数据传送,不需要经过CPU,这样,传送时就不必进行保护现场之类的一系列额外的操作,具有较高的数据传输速率。 本章讲述DMA基本概念;DMA控制器8237A的内部编程结构、初始化方法;8237A在80X86系列微机中的应用。 8.1 DMA概述 8.1.1 DMA方式的提出 在程序控制的传送方式中,所有传送均通过CPU执行指令来完成,而CPU指令系统只支持CPU和存储器或外设之间的数据传输。 如果外设要和内存储器进行数据交换,那么即使采用效率较高的中断方式进行传送,也免不了要走外设CPU存储器这条路线或相反的路线,这将会限制数据传输的速度。假设I/O设备的数据传输率较高,那么通过CPU和这样的外设进行数据传输时,即使尽量压缩程序查询方式或中断方式的非数据传输时间,也仍然不能满足要求。为此,提出了DMA方式。 图8-1 DMA控制器基本结构 图8-2 用DMA方式传送单个数据 8.2 DMA控制器8237A 8237A是Intel系列高性能可编程DMA控制器芯片,每片8237A内部有4个独立的DMA通道,每个通道可分别进行数据传送,一次传送的最大长度可达64KB;每个通道的DMA请求都可以允许和禁止,具有不同的优先级,并且每个通道的优先级可以是固定的,也可以是循环的;每个DMA通道具有4种传送方式:单字节传送方式,数据块传送方式,请求传送方式和级联方式。 图8-3 DMA控制器8237A及辅助逻辑框图 表8-1 8237A的内部寄存器 图8-4 8237A引脚图 图8-5 8237A的DMA传输时序 表8-2 8237A寄存器和软件命令的寻址 图8-6 8237A模式寄存器的格式 图8-7 8237A控制寄存器的格式 图 8-8 8237A请求寄存器格式 图8-9 8237 A屏蔽字格式 8-10 8237A状态字格式 图 8-11 IBM PC/XT微型机的DMAC电路示意图 习题8 8.1、比较中断与DMA两种传输方式的特点。 8.2、DMA控制器应具有那些功能? 8.3、8237A只有8位数据线,为什么能完成16位数据的DMA传送? 8.4、8237A的地址线为什么是双向的? 8.5、说明8237A单字节DMA传送数据的全过程。 8.6、8237A单字节DMA传送与数据块DMA传送有什么不同? 8.7、8237A什么时候作为主模块工作,什么时候作为从模块工作?在这两种工作模式下,各控制信号处于什么状态,试作说明。 ① 总清除命令(软件复位命令) 其功能与硬件RESET信号相同,执行软件复位命令使8237A的控制寄存器、状态寄存器、DMA请求寄存器、暂存器及先/后触发器清0,使屏蔽寄存器置1。写入此命令时要求地址信号A3A2A1A0=1101。 ② 清除先/后触发器(字节指示器)命令 8237A的先/后触发器用以控制写入或读出内部16位寄存器的高字节还是低字节,采用这种控制是因为8237A只有8条数据线,对16位寄存器的操作必须分两次进行。若先/后触发器为零,则读写低字节;为1则读/写高字节。复位后,该触发器被清0,进行一次读写低字节的操作后,触发器变为1,再对高位进行操作。使用此命令可以改变将要进行的16位数据读/写的顺序。此时要求地址信号A3A2A1A0=1100。 ③ 清屏蔽寄存器命令 这个命令使屏蔽寄存器的4位都清为0,使4个通道都被允许DMA通道请求。对8237A的编程,就是将数据和控制字分别写入地址寄存器、字节数寄存器和模式寄存器、屏蔽寄存器、命令寄存器。若不是软件请求,则在完成编程后,由通道的引脚输入有效DREQ信号启动DMA传送过程。若用软件请求,则再写入指定通道的请求字,就可开始DMA传送。 8.3 8237A在80X86系列微机上的应用 8.3.1 8237A在IBM PC/XT上的应用 IBM PC/XT机使用一片Intel 8237A和DMA页面寄存器74LS670、DMA地址锁存器74LS373、DMA地址驱动器74LS244等组成DMA控制电路,如图8-11所示。 8237A有4个DMA通道,在IBM PC/XT机系统板上通道0作为动态存储器DRAM刷新使用,其DMA请求信号D
文档评论(0)