微型计算机原理与应用 教学课件 ppt 作者 王法能 杨永生 主编 潘晓中 周晓娟 副主编 第十二章

上传人:E**** 文档编号:89245193 上传时间:2019-05-22 格式:PPT 页数:23 大小:410.51KB
返回 下载 相关 举报
微型计算机原理与应用 教学课件 ppt 作者 王法能 杨永生 主编 潘晓中 周晓娟 副主编 第十二章_第1页
第1页 / 共23页
微型计算机原理与应用 教学课件 ppt 作者 王法能 杨永生 主编 潘晓中 周晓娟 副主编 第十二章_第2页
第2页 / 共23页
微型计算机原理与应用 教学课件 ppt 作者 王法能 杨永生 主编 潘晓中 周晓娟 副主编 第十二章_第3页
第3页 / 共23页
微型计算机原理与应用 教学课件 ppt 作者 王法能 杨永生 主编 潘晓中 周晓娟 副主编 第十二章_第4页
第4页 / 共23页
微型计算机原理与应用 教学课件 ppt 作者 王法能 杨永生 主编 潘晓中 周晓娟 副主编 第十二章_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《微型计算机原理与应用 教学课件 ppt 作者 王法能 杨永生 主编 潘晓中 周晓娟 副主编 第十二章》由会员分享,可在线阅读,更多相关《微型计算机原理与应用 教学课件 ppt 作者 王法能 杨永生 主编 潘晓中 周晓娟 副主编 第十二章(23页珍藏版)》请在金锄头文库上搜索。

1、第十二章 可编程DMA控制8237A,【本章重点】 本章以可编程控制器8237A为例重点简述了DMA的工作原理和工作方式、8237A的连接应用。 【本章难点】 本章难点是理解DMA的工作原理、 8237A的内部工作寄存器的使用,会写8237A的初始化编程。,12.1 DMA的工作过程 1. DMA的工作过程大致如下: 1)外设向DMAC发出DMA传送请求。 2)DMAC通过连接到CPU的HOLD信号向CPU提出DMA请求。 3)CPU在完成当前总线周期后会立即对DMA请求做出响应。 4)待CPU将总线置高阻放弃总线控制权。 5)DMAC送出地址信号和控制信号,实现外设与内存或内 存与内存的数据

2、传送。 6)DMAC将规定的数据字节传送完之后,通过向CPU发 HOLD信号,撤消对CPU的DMA请求。,12.2 DMA8237A控制器的编程 12.2.1 8237的引脚功能,图12-1 8237A可编程DMA控制器引脚,12.2.2 8237A的内部寄存器及工作方式 1当前地址寄存器(CAR) 用于存放DMA传送时的16位存储器地址,每一个通道有一个当前地址寄存器。DMA每传送一个字节数据后,CAR地址值自动加1或减1;在编程状态下,CPU以字节为单位对CAR进行读出或写入操作。当工作方式寄存器(MR)设置为自动预置方式时,当每次字计数为0或出现有效低电平时,基地寄存器(BR)可自动地将

3、初始值重新装入CAR。 2当前字数寄存器(CWCR) 它用于存放当前的字节数,最大可达64KB。每一个通道都有一个16位的当前字计数寄存器。在DMA传送操作时,每传送一个字节,该寄存器的内容减1,当计数值变为零时,便自动产生终止计数信号。在编程状态下,CPU以字节为单位进行操作。在自动预置方式下,当计数减为0或出现有效低电平时,基字计数寄存器(BWC)可自动地将初始值重新装入CWCR。,3基址寄存器(BR) 用于存放对应通道的当前地址寄存器的初始值,为16位寄存器。与当前地址寄存器共用一个I/O端口地址,在编程时,它与当前地址寄存器被同时写入某一起始地址。在通道选择自动预置方式时,在DMA操作

4、结束后,由基址寄存器对当前地址寄存器自动重装初始值。 4基字计数寄存器(BWC) 用于存入该通道数据传送的个数,它与当前字计数寄(CWCR)一一对应,并使用相同的端口地址。在编程时,它与当前字数寄存器同时写入要传送的数据个数。如果在自动预置方式时,在DMA操作结束后,由基字计数寄存器自动重装当前字计数寄存器的初始值。 5方式寄存器(MR) 它用于控制某个通道的DMA传送方式和传送方向,每一个通过都有一个方式寄存器,其格式如图12-2所示。,图12-2 工作方式寄存器,7 6 5 4 3 2 1 0,00选择请求方式 01选择单字节方式 10选择块方式 11选择级联方式,0选择地址增量 1选择地

5、址减量,0禁止自动预置 1允许自动预置,00选择通道0 01选择通道1 10选择通道2 11选择通道3,00效验传输 01写传输 10读传输 11非法 XX若D7D6=11,则无效,6命令寄存器(CR) 其格式和各位定义如图12 4所示,它确定了整个8237A的总体特性,CPU可通过其编程对8237A进行控制操作,并在复位时,将其清除。,0DACK低电平有效 1DACK高电平有效,0DREQ高电平有效 1DREQ低电平有效,0不扩展写选择 1扩展写选择 XD3=1时不起作用,0固定优先权 1循环优先权,7 6 5 4 3 2 1 0,0禁止存储器到存储器传输 1允许存储器到存储器传输,0禁止通

6、道0地址保持不变 1允许存储器到存储器传输 XD0=0时不起作用,0允许8237A操作 1禁止8237A操作,0正常时序 1压缩时序 XD0=1不起作用,图12-4 命令寄存器,7请求寄存器(RR) 8237A的4个通道都有一个于其相对应的请求触发器,它是用来设置DMA请求标志的。在8237A控制器内,是4个请求触发器对应1个DMA请求寄存器。我们知道,DMA请求可以由硬件发出,也可由软件发出,对于硬件是通过DREQ引脚引入DMA请求的,对于软件,则是通过对DMA请求标志的设置来发出请求的,在存储器与存储器进行数据传输时,因没有外部DREQ请求信号,因此,由软件产生一个DMA请求信号来启动,D

7、MA传输请求寄存器的格式如图125所示。 DMA请求寄存器中的D1D0位用来指出4个通道信号,D2表示是否对相应通道设置DMA请求,D2为1时,相应通道的DMA请求触发器置1,产生DMA请求,D2为0时,则无请求。,7 6 5 4 3 2 1 0,00选择通道0 01选择通道1 10 选择通道2 11选择通道3,0复位请求方式 1置位请求方式,无关,图12-5请求寄存器,8屏蔽寄存器 8237A中的屏蔽寄存器有两种: (1) 通道屏蔽寄存器。通过编程来设置单个通道的屏蔽控制,在8237A控制器内,每个通道都有一个屏蔽触发器,它们对应1个屏蔽寄存器。其格式如图126(a)所示。屏蔽寄存器的D1D

8、0位用来指出通道号,在D2位为1时,表示对应的通道设置DMA屏蔽。D2位为0时,表示不屏蔽。 (2)综合屏蔽命令格式(或称为主屏蔽寄存器)。其格式如图126(b)所示。8237A允许使用综合屏蔽命令一次完成对4个通道的屏蔽设置。,(a) 通道屏蔽寄存器(MRSR),(b) 主屏蔽寄存器(MSR),9状态寄存器(SR) 它给出8237A每个通道的状态,其格式如图127所示 : D0D3位指出4个通道的计数终止TC状态,如果计数终止或外部产生信号,该位置为1,同时停止DMA操作,D4D7位为正在等待处理的4个通道的DMA请求状态,1表示该位的通道有DMA请求,0表示没有DMA请求。,图12-7 状

9、态寄存器,10暂存寄存器 它在存储器和存储器之间传输时,进行数据保持。当传输完成时,暂存寄存器中始终保持最后传输的一个字节,在编程状态,该寄存器的内容可由CPU读出,使用RESET信号可清除暂存器的内容。 12.2.3.8237A寻址及连接 8237A内部共有16个I/0端口地址,它们是由地址线A0A3控制选择的,其中地址00H07H分配给4个通道的基址寄存器和当前地址寄存器。基字计数寄存器和当前字计数寄存器。由于这些寄存器都是16位的。而且,基址寄存器和当前地址寄存器共用一个端口地址,基字计数寄存器和当前字计数寄存器共用一个端口地址。这样在CPU的基址寄存器进行写操作时,当前地址寄存器也写入

10、同样的数据,与此相同CPU对基字计数寄存器进行写操作时当前字计数寄存器也写入同样数据。,0 1000 0 1 0 1000 1 0 0 1001 0 1 0 1001 1 0 0 1010 0 1 0 1010 1 0 0 1011 0 1 0 1011 1 0 0 1100 0 1 0 1100 1 0 0 1101 0 1 0 1101 1 0 0 1110 0 1 0 1110 1 0 0 1111 0 1 0 1111 1 0,读状态寄存器 写命令寄存器 非法 写请求寄存器 非法 写单通道屏蔽寄存器 非法 写方式寄存器 非法 字节指针触发清零 读暂存寄存器 总清 非法 清屏蔽寄存器 非

11、法 写四通道屏蔽寄存器,软件命令寄存器的寻址表12-1A,12.2.4.8237A的编程和应用 (1) 命令寄存器复位。 (2)将起始地址的低8位和高8位分别写入地址寄存器。 (3)将字计数值的低8位和高8位分别写入字计数寄存器。 (4)写方式寄存器。 (5)写屏蔽寄存器。 (6)写命令寄存器。,1,通道,寄存器,操作,基和当前字数,写,0 1 0 0 0 0 1,0,1,W,0,-,W,7,W,8,-,W,15,0,当前字数,读,0 0 1 0 0 0 1,0,1,W,0,-,W,7,W,8,-,W,15,基和当前地址,写,0 1 0 0 0 1 0,0,1,A,0,-,A,7,A,8,-,

12、A,15,A,3,A,2,A,1,A,0,字节,指针,触,发,器,D,0,-,D,7,基和当前地址,写,0 1 0 0 0 0 0,0,1,A,0,-,A,7,A,8,-,A,15,当前地址,读,0 0 1 0 0 0 0,0,1,A,0,-,A,7,A,8,-,A,15,当前地址,读,0 0 1 0 1 0 0,0,1,A,0,-,A,7,A,8,-,A,15,基和当前字数,写,0 1 0 0 0 1 1,0,1,W,0,-,W,7,W,8,-,W,15,1,当前字数,读,0 0 1 0 0 1 1,0,1,W,0,-,W,7,W,8,-,W,15,8237A个寄存器殉职编码表 12-1B,12.2.5 8237应用实例 如图12-8所示,它由8237DMA控制器、74LS373高位地址锁存器及其外围电路组成,8237初始化通过初始化程序完成存储器到存储器的数据传输。各信道寄存器地址分配如表 12-2所示。 表12-2 8237信道寄存器地址分配,8086,12-8 8237A与8086的连接图,图12-9程序流程图,流程图如图12-9所示,所编写的程序如下 :,本章到此结束,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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