微型计算机原理与接口技术(第二版) 教学课件 ppt 作者 杨立 第8章 可编程DMA控制器8237A

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

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

1、第八章 可编程DMA控制器8237A,8.1 概述 8.2 8237A的内部结构与引脚 8.3 8237A的工作方式 8.4 8237A内部寄存器功能及格式 8.5 8237A的编程及应用,8.1 概述,Inte18237A是一种有40个引脚的高性能可编程DMA控制 器,采用主频5MHz的8237A传送速度可达到1.6MB/秒。 8237A的主要功能为: (1)在一个8237A芯片中有4个独立的DMA通道,每个通道均可独立地传送数据,可控制4个I/O外设进行DMA传送。 (2)每个通道的DMA请求都可以分别允许和禁止。每个通道的DMA请求有不同的优先权,优先权可以是固定的,也可以是循环的。 (

2、3)每个通道均有64KB的寻址和计数能力,即一次DMA传送的数据最大长度可达64KB。,8.1 概述,(4)可以在存储器与外设间进行数据传送,也可以在存储器的两个区域之间进行传送。 (5)8237A有四种DMA传送方式,分别为单字节传送、数据块传送、请求传送方式和级连方式。 (6)8237A芯片有一条结束处理的输入信号,允许外界用此输入端结束DMA传送或重新初始化。 (7)8237A可以级连,扩展更多的通道。 (8)40脚双列直插式,+5V工作电源。,8.1 概述,8237A有两种不同的工作状态,分别为从态方式和主态方式。 (1)在DMA控制器未取得总线控制权时必须由CPU对DMA 控制器进行

3、编程,以确定通道的选择、数据传送的方式和类 型、内存单元起始地址、地址是递增还是递减及要传送的总 字节数等,CPU也可以读取DMA控制总线的状态。这时,CPU 处于主控状态,而DMA控制器就和一般的I/O芯片一样,是系 统总线的从设备,这种工作方式称为从态方式。 (2)当DMA控制器取得总线控制权后,系统就完全在它的 控制下,使I/O设备和存储之间或存储器与存储器之间进行直 接的数据传送,这种工作方式称为主态方式。,8.2 8237A的内部结构及引脚,8-2-1 8237A的内部结构 8237A的内部结构如图8-1所示,主要由时序与控制 逻辑、优先级编码电路、数据和地址缓冲器组、命令控 制逻辑

4、和内部寄存器等组成。,8.2 8237A的内部结构及引脚,图8-1 8237A的内部结构图,8.2 8237A的内部结构及引脚,8-2-2 8237A的引脚 8237A采用双列直 插式,有40个引脚,其 引脚排列如图8-2所示。,8.3 8237A工作方式,8.3.1 单字节传送方式 在这种工作方式下,每进行一次DMA操作,只传送一个字节的数据。8237A每完成一个字节的传送,计数器便自动减1,地址寄存器的值加1或减1。接着,8237A释放系统总线,把控制权交还给CPU。但是8237A在释放总线后,会立即对DREQ端进行测试,一旦DREQ有效,则8237A会立即发送总线请求,在获得总线控制权后

5、,又成为总线主模块而进行DMA传送。 特点:一次DMA传送至传送1个字节的数据,占用1个总线周期,然后释放系统总线。因此,这种方式又被称为总线周期窃取方式。,8.3.2 块传送方式 在这种工作方式下,一旦开始传送,就会一个字节一 个字节的进行下去,直到把整个数据块全部传送完毕,才 交出系统总线控制权。 特点:数据传输效率高,DREQ有效电平只要保持到 DACK有效,就能传送完整批数据,但整个数据块传送期 间,CPU失去总线控制权,因而别的DMA请求也被禁止。,8.3.3 请求传送方式 这种工作方式每传送一个字节后,8237A都对DREQ端进行测试,询问其是否有效。如果检测到DREQ端变为无效电

6、平,则立刻“挂起”,停止DMA传送,但并不释放系统总线,测试过程仍然进行。当检测到DREQ端变为有效电平时,就在原来的基础上继续进行传送。由于请求传送方式在传送完一个字节的数据之后就询问DREQ信号是否有效,故又称询问传送方式。 特点:DREQ信号一直有效时,则连续传送数据,只有当字节计数器由1减为FFFFH,或外部送来有效的信号,或DREQ变为无效时才结束DMA传送过程。,8.3.4 级联传送方式 在这种方式下,可以把 一片8237A(称为主片)和 几片8237A(称为从片)进 行级联,以便扩充DMA通道。 图8-3所示为二级8237A 级联时的情况,图8-3 二级8237A级联,8.4 8

7、237A内部寄存器功能及格式,8237A的内部可编程寄存器主要有10个,如下表所示。,8.5 8237A的编程及应用,8237A进行初始化编程的步骤如下: (1)输出主清除命令,使8237A处于复位状态,以接收新的命令; (2)写入工作方式寄存器,以确定8237A工作方式和传送类型; (3)写入命令寄存器,以控制8237A的工作; (4)根据所选通道,输入相应通道当前地址寄存器和基地址寄存器的初始值; (5)输入当前字节计数器和基字节寄存器的初始值; (6)写入屏蔽寄存器; (7)写入请求寄存器,便可由软件DMA传送。否则,经过(1)(6)步编程后,由通道DREQ启动DMA传送过程。,【例8.

8、1】在某一个系统中,用一片8237A设计了DMA传输电路,8237A的基地址为00H。要求利用它的通道0,从外设(如磁盘)输入一个1KB的数据块,传送到内存中6000H开始的区域中,每传送一个字节,地址增1,采用数据块连续传送方式,禁止自动预置,外设的DMA请求信号DREQ和响应信号DACK均为高电平有效。初始化8237A的程序如下:,DMA EQU 00H ;8237A的基地址为00H ;输出主清除命令 OUT DMA+0DH,AL ;发总清除命令 ;将基地址6000H写入通道0基地址和当前地址寄存器,分两次进行 MOV AX,6000H ;基地址和当前地址寄存器 OUT DMA+00H,A

9、L ;先写入低8位地址 MOV AL,AH OUT DMA+00H,AL ;后写入高8位地址 ;把要传送的总字节数1K=400H减1后,送到基字计数器和当前字计数器 MOV AX,0400H ;总字节数 DEC AX ;总字节数减1 OUT DMA+01H,AL ;先写入字节数的低8位 MOV AL,AH OUT DMA+01H,AL ;后写入字节数的高8位,;写入方式字:数据块传送,地址增量,禁止自动预置,写传送,选择通道 MOV AL,10000100B ;方式字 OUT DMA+0BH,AL ;写入方式字 ;写入屏蔽字:通道0屏蔽位清0 MOV AL,00H ;屏蔽字 OUT DMA+0

10、AH,AL ;写入8237A ;写入命令字:DACK和DREQ为高电平,固定优先级,非存储器间传送 MOV AL,10000000B ;命令字 OUT DMA+08H,AL ;写入8237A ;写入请求字:通道0产生请求 MOV AL,04H ;请求字 OUT DMA+09H,AL ;将请求字写入8237A,用软件启动8237A,3. 8237A的应用 在PC/XT机中,用一片8237A-5构成DMA控制电路形成4个DMA通道,提供数据宽度为8位的DMA传输。使用固定优先级,所以通道0的优先级最高,通道3最低。这4个DMA通道的功能分配如下: 通道0 用于动态RAM的刷新 通道1 为用户保留

11、通道2 用于软盘DMA传送 通道3 用于硬盘DMA传送,在PC/XT机进行软盘或硬盘DMA传输时,先要对8237A-5进行编程。下面是ROM BIOS中的一段程序,名为DMA_SETUP,位于首地址为FEEC8H的内存中。它被读软盘、写软盘和软盘校验程序等调用,用来向8237A-5输入所要读写数据的20位首地址和字计数器初始值。调用前要求的入口参数是: AL=DMA方式字(读= 46H,写= 4AH,校验= 42H)。 DH=要传送的扇区个数。每个扇区的字节数基数为128,实际由磁盘驱动器的规格而定,可能是128,256,512或1024个,也就是说可能是128的1,2,4,8倍,表示成2的N

12、次方,N分别为0、1、2、3。N存放在磁盘基值区DISK_BASE的第03号单元中,可由它和DH中的扇区数计算出实际要传送的总字节数。,ES:BX=所读写数据的内存首地址(段地址:偏移量) DMA_SETUP PROC NEAR PUSH CX ;保护CX的值 CLI ;关中断 OUT DMA+0CH,AL ;清除先/后触发器 PUSH AX ;延时,满足8237A I/O定时要求 POP AX OUT DMA+0BH,AL ;将AL中的方式字写入方式寄存器 ;计算20位物理地址,结果的最高4位放在CH中,低16位放入AX MOV AX,ES ;AX段基地址 MOV CL,4 ;循环次数 RO

13、L AX,CL ;AX循环左移4位 MOV CH,AL ;AX的低8位暂存入CH AND AL,0F0H ;AX的最低4位清零,ADD AX,BX ;加上偏移量,形成16位地址(A15A0) JNC RLL ;无进位,转移 INC CH ;有进位,最高4位加1。至此形成了20位物理地址,低16位在 ;AX中,最高4位在CH的低4位中 RLL:PUSH AX ;保存16位起始地址 ;将16位地址送到通道2基址和当前地址寄存器中 OUT DMA+4,AL ;先写低字节 MOV AL,AH OUT DMA+4,AL ;后写高字节 ;将最高4位地址预置到页面寄存器中 MOV AL,CH ;最高4位地址

14、 AND AL,0FH ;截低4位 OUT 81H,AL ;置入页面寄存器(通道2,软盘DMA传送) MOV AH,DH ;取传输的扇区数送AH SUB AL,AL ;AL清零后,使AX= 256扇区数 SHR AX,1 ;将AX内容除以2后,AX= 128扇区数 ;调用取软盘参数子程序,要求入口参数:BX= 字节索引值(03号单元)2 PUSH AX ;保存AX的值 MOV BX,6 ;BX= 字节索引值2 CALL GET_PARM ;调用取参数子程序,;调用后结果,AH= N,N可以是0,1,2或3,它表示所选软盘每扇区的字节数:0或 ;128,1为256,2为512,3为1024 MO

15、V CL,AH ;基数值N由AH送CL POP AX ;弹出“128扇区数”送AX SHL AX,CL ;左移后,AXAXN DEC AX ;传输总字节数减1 PUSH AX ;保存此值(即基字计数值) ;将减1后的字节数送通道2基字和当前字计数器 OUT DMA+5,AL ;先送高字节 MOV AL,AH OUT DMA+5,AL ;后送高字节 STI ;开中断 POP CX ;恢复计数值(基字计数值) POP AX ;恢复低16位起始地址,;将基地址和基字计数器值相加,判别是否有进位,若有,表示超出64K,出错 ;因为DMA传送过程中,页寄存器的值是不变的,8237A只允许在64K范围内变化 ADD AX,CX ;相加,根据结果建立进位位CF POP CX ;恢复进入子程序时保护的CX值 MOV AL,02H OUT DMA+0AH,AL ;清除通道2(软盘DMA传送)的屏蔽位 RET ;返回,若CF=1,则64K溢出,应减少传送的扇区数,字组 ;的传送要分块进行 DMA_SETUP ENDP,本章内容到

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

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

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