微型计算机原理与接口技术(第三 教学课件 ppt 作者 杨立 邓振杰 荆淑霞等 第8章 可编程DMA控制器8237A

上传人:E**** 文档编号:89486767 上传时间:2019-05-25 格式:PPT 页数:31 大小:532.50KB
返回 下载 相关 举报
微型计算机原理与接口技术(第三 教学课件 ppt 作者 杨立 邓振杰 荆淑霞等 第8章 可编程DMA控制器8237A_第1页
第1页 / 共31页
微型计算机原理与接口技术(第三 教学课件 ppt 作者 杨立 邓振杰 荆淑霞等 第8章 可编程DMA控制器8237A_第2页
第2页 / 共31页
微型计算机原理与接口技术(第三 教学课件 ppt 作者 杨立 邓振杰 荆淑霞等 第8章 可编程DMA控制器8237A_第3页
第3页 / 共31页
微型计算机原理与接口技术(第三 教学课件 ppt 作者 杨立 邓振杰 荆淑霞等 第8章 可编程DMA控制器8237A_第4页
第4页 / 共31页
微型计算机原理与接口技术(第三 教学课件 ppt 作者 杨立 邓振杰 荆淑霞等 第8章 可编程DMA控制器8237A_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《微型计算机原理与接口技术(第三 教学课件 ppt 作者 杨立 邓振杰 荆淑霞等 第8章 可编程DMA控制器8237A》由会员分享,可在线阅读,更多相关《微型计算机原理与接口技术(第三 教学课件 ppt 作者 杨立 邓振杰 荆淑霞等 第8章 可编程DMA控制器8237A(31页珍藏版)》请在金锄头文库上搜索。

1、第8章 可编程DMA控制器8237A,8.1 概述 8.2 8237A的内部结构与引脚 8.3 8237A的工作方式 8.4 8237A内部寄存器功能及格式 8.5 8237A的编程及应用,8.1 概述,8.1.1 8237A的主要功能 8237A是40引脚双列直插式高性能可编程DMA控制器。 主要功能如下: (1)有4个独立DMA通道,每个通道均可独立传送数据。 (2)每个通道DMA请求都可分别允许和禁止。 (3)每个通道均有64 KB寻址和计数能力。 (4)有4种DMA传送方式,分别为单字节传送、数据块传送、请求传送和级联传送方式。 (5)需要更多数据传送通道可把8237A级联。,8.1

2、概述,8.1.2 8237A的工作状态 8237A有主态方式和从态方式两种不同工作状态. DMA控制器未取得总线控制权时须由CPU对其进行编程,这时,CPU处于主控状态,DMA控制器和一般I/O芯片一样,是系统总线从设备,这种工作方式称为从态方式。 当DMA控制器取得总线控制权后,系统就完全在它的控制下,使I/O设备和存储器之间或存储器与存储器之间进行直接的数据传送,这种工作方式称为主态方式。,8.2 8237A内部结构及引脚,8-2-1 8237A内部结构 8237A内部结构由时序与控制逻辑、优先级编码电路、数据和地址缓冲器组、命令控 制逻辑和内部寄存器等组成。,8.2 8237A内部结构及

3、引脚,8-2-2 8237A的引脚 8237A是40引脚的双列直插式器件,由于它既可做主模块又可做从模块,故其外部引脚设置也具有一定的特点。如它的I/O读写线和数据线是双向的,另外,还设置了存储器读/写线和16位地址输出线。这些都是其他I/O接口芯片所没有的。,8.3 8237A的工作方式,8.3.1 单字节传送方式 这种工作方式下,每进行一次DMA操作,只传送1 B数据。 8237A每完成1 B传送计数器便自动减1,地址寄存器值加1或减1。 当内部字节计数器由0减为FFFFH时,产生传输过程结束信号EOP,表示DMA传送过程结束。 这种方式的特点是一次DMA传送只传送1 B的数据,占用一个总

4、线周期,然后释放系统总线。,8.3.2 数据块传送方式 该方式传送会一个字节一个字节进行下去,直到把整个数据块全部传送完毕才交出系统总线控制权。 外设准备好后,向8237A发DREQ信号,8237A收到该信号后向CPU发HRQ信号请求占用总线,CPU同意HRQ请求,向8237A发HLDA信号,然后8237A向外设发DACK信号开始DMA传送,直到整个数据块传送完毕。 每次DREQ有效后,若CPU响应其请求让出总线控制权给8237A,8237A进行DMA服务时,就会连续传送数据,只有当字节计数器计数由0减为FFFFH或外部送有效EOP信号时,才将总线控制权交给CPU,结束DMA服务。 该方式的特

5、点是数据传输效率高。,8.3.3 请求传送方式 这种工作方式与数据块传送方式类似,不同点在于每传送1 B后,8237A都对DREQ端进行测试,询问其是否有效。 如检测到DREQ端变为无效电平,则停止DMA传送,但不释放系统总线,测试过程仍进行。 当检测到DREQ端变为有效电平时,就在原来的基础上继续进行传送。 这种方式的特点是DREQ信号一直有效时,连续传送数据,只有当字节计数器由1减为FFFFH,或外部送来有效的EOP信号,或DREQ变为无效时才结束DMA传送过程。,8.3.4 级联传送方式 在这种方式下可把一片8237A(主片)和 几片8237A(从片)进 行级联,以便扩充DMA通道。 图

6、8-3所示为二级8237A级联时的情况,图8-3 二级8237A级联,8.4 8237A内部寄存器功能及格式,8237A的内部可编程寄存器主要有10个,如下表所示。,8.4.1 当前地址寄存器,每个通道都有一个16位的当前地址寄存器,用于存放DMA传送的存储器当前地址值。每传送一个数据,地址值自动增1或减1,以指向下一个存储单元。在编程状态下,CPU可用输出指令对该寄存器写入初值,也可由输入指令读出该寄存器中的值,但每次只能读/写8位数据,故对该寄存器的读/写操作要分两次进行。若工作方式寄存器编程为自动预置操作,则当DMA传送结束,产生EOP信号后,8237A自动将基地址的值装入该寄存器中。,

7、8.4.2 当前字节寄存器,每个通道都有一个16位长的当前字节计数寄存器,用来保存DMA传送的当前字节数。实际传送的字节数比编程写入的字节数大1。例如,编程的初始值为10,将传送11 B。每次传送以后,字节计数器减1。当其内容从0减1而到达FFFFH时,将产生终止计数TC脉冲输出终止计数。CPU访问它是以连续2 B对其读出或写入。在自动预置方式时,当EOP有效后,被重新预置成初始值;如果在非自动预置方式,这个计数器在终止计数之后将为FFFFH。,8.4.3 基地址寄存器,每个通道都有一个16位的基地址寄存器,用来存放对应通道当前地址寄存器的初值,CPU对DMA控制器编程设置地址初值时,同时写入

8、基地址寄存器和当前地址寄存器,即两个寄存器有相同的写入端口地址,编程时写入相同的内容。但基地址寄存器的内容不能被CPU读出,也不能被修改。设置该寄存器的主要目的在于,当执行自动预置操作时,当前地址寄存器能恢复到初始值。,8.4.4 基字节寄存器,每个通道都有一个16位的基字节寄存器,用于存放对应通道当前字节计数器的初值,该值也是在CPU对8237A进行初始化编程时与当前字节计数器一起被写入的,且两者具有相同的写入端口,写入相同的内容。该寄存器的内容不会自动修改,也不能被CPU读出,它主要用于自动预置操作时使当前字节计数器恢复初值。,8.4.5 命令寄存器,8.4.6 工作方式寄存器,8.4.7

9、 请求寄存器,8.4.8 屏蔽寄存器,(1)通道屏蔽字。,8.4.8 屏蔽寄存器,(2)主屏蔽字。,8.4.9 状态寄存器,8.4.10 暂存寄存器,暂存寄存器是一个8位的寄存器,在存储器至存储器传送期间,用来暂存从源地址单元读出的数据。当数据传送完成时,所传送的最后1 B数据可以由CPU读出。用RESET信号可以清除此暂存器。,8.4.11 软件命令,(1)主清除命令。 (2)清除字节指示器命令。 (3)清除屏蔽寄存器命令。,8.5 8237A的编程及应用,8.5.1 8237A主要寄存器端口地址分配 DMA传送前CPU要对8237A进行初始化编程。 每片8237A有4个地址选择线A3A0,

10、占用16个连续端口地址,地址高4位为0。,8.5.2 8237A编程一般步骤 (1)发送主清除命令,使8237A复位。 (2)写工作方式寄存器。 (3)写命令寄存器。 (4)输入相应通道当前地址寄存器和基地址寄存器初值。 (5)输入当前字节计数器和基字节寄存器的初始值。 (6)写屏蔽寄存器。 (7)写请求寄存器。,【例8.1】利用通道1从外设输入54 KB的一个数据块,传送至5678H开始的存储区域(增量传送),采用块传送方式,传送完不自动初始化,外设的DREQ和DACK都为高电平有效。 已知8237A的端口地址为50H5FH。,初始化程序如下: OUT 5DH,AL ;主清除命令 MOV A

11、L,78H ;基地址和当前地址的低8位 OUT 50H,AL MOV AL,56H ;基地址和当前地址的高8位 OUT 50H,AL MOV AL,00H ;基字节数和当前字节数低8位 OUT 51H,AL MOV AL,0D8H ;基字节数和当前字节数高8位 OUT 51H,AL MOV AL,85H ;模式控制字 OUT 5BH,AL MOV AL,01H ;屏蔽控制字,使通道1屏蔽位复位 MOV AL,0A0H ;命令字 OUT 58H,AL,8.5.3 8237A应用举例,8237A既能提供外设和存储器之间的DMA传输,也能进行存储器和存储器之间的DMA传输,但在PC/XT机的BIOS初始化系统时,将8237A的存储器和存储器间传送方式禁止了,因此只用它实现外设和内存间的高速数据交换。,本章小结 DMA控制器8237A有总线主模块和总线从模块两种不同的工作状态。 总线主模块下DMA控制器可直接控制系统总线。 8237A DMA控制器含有4个独立的DMA通道,可用来实现内存到接口、接口到内存及内存到内存之间的高速数据传送。,本章内容到此结束 谢谢各位 !,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号