《xe第4章DMA控制器与定时计数器及SICL.ppt》由会员分享,可在线阅读,更多相关《xe第4章DMA控制器与定时计数器及SICL.ppt(84页珍藏版)》请在金锄头文库上搜索。
1、第4章 DMA控制器与定时/计数器及SICL,4.1 DMA系统概述 4.2 可编程DMA控制器8237A 4.3 8237A DMA可编程控制在微机系统中的应用 4.4 可编程计数/定时器 8253/8254 4.5 多功能I/O接口电路82380 4.6 现代微型计算机系统接口控制逻辑(SICL),本章学习目标,DMA的基本功能和在微机系统中的应用 Intel 8237A的功能及组成和工作原理 DMA在微机系统中的应用 Intel 8253/8254定时/计数器的功能及应用 SICL的基本功能,返回本章首页,4.1 DMA系统概述,4.1.1 DMA概述 4.1.2 DMA的功能,返回本章
2、首页,4.1.1 DMA概述,DMA方式就是直接存储器存取工作方式。在DMA方式下,外设通过DMA控制器向CPU提出接管总线控制权的总线要求,CPU在当前的总线周期结束后,响应DMA请求,并把总线控制权交给DMA控制器。在DMA控制器的管理下,外设和寄存器之间就可以直接进行数据交换。,返回本节,4.1.2 DMA的功能,(1)外设通过DMA控制器向CPU提出DMA申请。 (2)DMA控制器接受外设的DMA请求,取得总线控制权。 (3)总线载决逻辑对总线申请进行载决,把总线控制权交给DMA控制器。,(4)DMA控制器通知外设DMA应答,开始进入DMA传输。 (5)DMA控制器按传输数据的长度直接
3、控制外设与RAM进行数据交换。 (6)DMA操作结束,DMA控制器向外设输出计数终止信号,通过接口提出中断申请,并把总线控制权交给CPU,完成一次DMA数据传控。,返回本节,4.2 可编程DMA控制器8237A,4.2.1 8237A的内部结构 4.2.2 8237A的外部引脚及其功能特性 4.2.3 8237A内部寄存器及其作用,返回本章首页,4.2.1 8237A的内部结构,其内部结构如图4.1所示。 1地址寄存器 地址寄存器、基地址寄存器、当前地址寄存器 2字节数寄存器 字节数寄存器、基本字节寄存器、当前字节计数器,图 4.1 8237A 的内部结构图,返回本节,4.2.2 8237A的
4、外部引脚及其功能特性,8237A的外部引脚共有40个,如图4.2所示。各引脚功能特性如下:,CLK:时钟频率,为输入信号。它控制DMA数据传送的速率及8237A内部操作的定时。 CS:片选信号,为输入信号。低电平有效。 RESET:复位信号,为输入信号,高电平有效。,READY:准备就绪信号,为输入信号,高电平有效。 ADSTB:地址选通信号,为输出信号,高电平有效。 AEN:地址允许信号,为输出信号,高电平有效。 MEMR:寄存器读信号,为输出信号,低电平有效。当此信号有效时,被选中的寄存器单元的内容被读到数据总线上。,MEMW:寄存器写信号,为输出信号,低电平有效。当此信号为低电平时,数据
5、总线上的内容被写入被选中的寄存器单元。 IOR:I/O设备读信号,为双向信号,低电平有效。 IOW:I/O设备写信号,双向信号,低电平有效。 EOP:DMA传输结束信号,双向信号,低电平有效。,8 DREQ:DMA请求信号,属输入信号,高电平有效。 DACK:DMA响应信号,属于输出信号,高电平有效。 HRQ:总线请求信号,属于输出信号,高电平有效。,HLDA:总线响应信号,属于输入信号,高电平有效。 A7A4:高4位地址线,双向信号在进行DMA传输时提供高4位地址。 A3A0:低4位地址线,双向信号。 DB7DB0:8位双向数据线。,图4.2 8237A引脚功能图,返回本节,4.2.3 82
6、37A内部寄存器及其作用,1工作方式,(1)单字节传输方式 (2)块传输方式 (3)请求传输方式 (4)级连传输方式,2方式寄存器,8237A的方式寄存器格式如下:,其中各位说明如下: D7D6:工作方式选择。可以在四种工作方式中任选一种,见表4.1。,表4.1 工作方式选择逻辑,D5:地址寄存增减方式选择。 D4:DMA自动预置功能选择。 D3D2:数据传输类型选择。其含义如表4.2所示。 D1D0:通道选择。它用来选择四个通道。其选择如表4.3所示。,表4.2 DMA数据传输类型选择,3控制存储器,表4.3 通道选择,D7:DMA响应位 D6:DMA请求位 D5:扩展写信号位 D4:优先级
7、管理 D3:时序选择位 D2:允许操作位 D0:存储器间数据传输允许位,各数据位说明如下:,4状态寄存器,状态寄存器的格式如下:,5请求寄存器,其格式如下:,各位的含义如下: D7D3:未定义。 D2:DMA请求标志位。 D1D0:通道选择位。如表4.4所示。,表4.4 通道选择标志位,6屏蔽寄存器,其格式如下:,各位的含义如下: D7D3:未定义。 D2:DMA屏蔽设置位。 D1D0:通道选择位。如表4.5所示。 DMA屏蔽标志是通过往屏蔽寄存器中写入屏蔽字节来进行设置的。,表4.5 通道屏蔽选择,8237A也可以用综合屏蔽命令来设置通道的屏蔽触发器,其格式如下:,7先/后触发器,先/后触发
8、器是为控制DMA通道中地址寄存器和字节计数器的初值而设置的,先/后触发器就用来控制这两次传输数据的次序的。,88237A各寄存器的端口地址,表4.6 8237A操作端口地址与命令一览表,返回本节,4.3 8237A DMA可编程控制在微机系统中的应用,4.3.1 8237A的编程及其应用 4.3.2 编程实例 4.3.3 8237A DMA可编程控制与微机系统的接口电路,返回本章首页,4.3.1 8237A的编程及其应用,1DMA的系统结构及主要性能,图 4.3 DMA系统逻辑结构示意图,表4.7 PC/AT微机DMA系统的基本性能,28237A编程,(1)初始化通道方式寄存器。 (2)预置该
9、通道的基地址和当前地址寄存器(低16位)与页面寄存器(高4位或高8位)。 (3)求传输的字节数,将其值减1并预置该通道的基地址及当前字节(或字节计数器)。 (4)判断传输的数据量是否已经超出边界,若出界则返回错误代码。 (5)开放通道,并允许DREQ请求。,返回本节,4.3.2 编程实例,(1)初始化通道方式寄存器。 (2)预置该通道的基地址和当前地址寄存器与页面寄存器。 (3)求传输的字节数,将其值减1并预置该通道的基地址及当前字节。 (4)判断传输的数据量是否已经超出边界,若出界则返回错误代码。 (5)开放通道,并允许DREQ请求。,;初始化通道2 ;入口参数:AL=DMA方式字节 ;读盘
10、(DMA写)=046H ;写盘(DMA读)=04AH ;DH=传输的扇区数 ;ES:BX=RAM缓冲区首地址 ;定义要使用的符号 DMA EQU 0 ;第0片DMA通道端口,下面为PC/AT机的软盘驱动器与存储器RAM之间进行数据交换的实例。,DMA1 EQU 0C0H ;第1片DMA通道端口 DAM08 EUQ 08 ;第0片DMA命令寄存器地址 DMA18 EUQ 0D0H ;第1片DMA命令寄存器地址 DSET PROC NEAR ;DMA 初始化过程 PUSH CX ;保存CX寄存器 CLI ;关中断 OUT DMA+12 ,AL ;清除先/后触发器 JMP SHORT $+2 ;满足
11、DMA的I/O定时要求,;初始化方式寄存 OUT DMA+11,AL ;写方式寄存 MOV AX,ES ;取寄存器RAM段地址 MOV CL,4 ; ROL AX,CL ;循环左移4 MOV CH,AL ;高4位保存在CH AND AL,0F0H ;取低落6位地址 ADD AX,BX,JNC J1 INC CH ;有进位加到高4位地址 ;初始化地址寄存器和页面寄存器 J1:PUSH AX ;保存16位地址 OUT DMA+4,AL ;预置通道2地址寄存 JMP SHORT $+2 MOV AL ,AH OUT DMA+4,AL ;先低字节,后高字节,MOV AL,CH ;取最高4位地址 JMP
12、 SHORT $+2 AND AL,0FH OUT 08LH, AL ;预置通道2对应的页面寄存器 ;初始化字节计数器 MOV AH,DH ;取传输扇区 SUB AL,AL ;乘以256(AL=0),SHR AX,1 ;右移,即变成乘以128 PUSH AX ;保存“扇区与128的乘积” MOV BX,6 ;取软盘基数:每扇区字节数 CALL GET PARM ;调用取基数子程序 MOV CL,AH ;返回到AH基数N,保存在CL POP AX ;取出乘积值 SHL AX,CL ;右移返回值次数 DEC AX ;传输字节值减1,PUSH AX ;保存字节数 OUT DMA+5,AL ;预防、置
13、字节数计数器 JMP SHORT $+2 ; MOV AL,AH OUT DMA+5,AL ;先低字节,后高字节 ;判断DMA是否出界 STI ;开中断 POP CX ;传输字节数至CX寄存器,POP AX ;位移地址至AX ADD AX,CX ;相加,若溢出段界则CF=1 POP CX ;恢复入口寄存器 ;开通道2 MOV AX,2 ;清除通道2屏蔽位 OUT DMA+10,AL ;写屏蔽寄存器 RET ;返回 DSET ENDP ;DMA结束,返回本节,4.3.3 8237A DMA可编程控制与微机系统的接口电路,1用于将数据从存储器传送到I/O接口的DMA控制电路 2用于将数据从I/O接
14、口传送到内存的接口电路,图4.4 使用DMA通道实现内存到I/O接口的电路,图4.5 使用DMA通道实现I/O到内存接口的电路,返回本节,4.4 可编程计数/定时器 8253/8254,4.4.1 8253的组成与功能 4.4.2 8253与系统的连接应用实例,返回本章首页,4.4.1 8253的组成与功能,13个独立的16位计数器,3个计数器分别为计数器0、计数器1、计数器2,每个计数器的内部逻辑结构如图4.8所示。,如图4.6、图4.7所示为8253/8254的内部结构及引脚图。,图4.6 8253/8254的内部结构示意图,图4.7 8253引脚图,图4.8 8253/8254计数器内部
15、逻辑图,2控制命令寄存器,此寄存器用来保存来自CPU送入的控制字。每个计数器都有一个控制命令寄存器,用于保存该计数器的控制信息。控制字将决定计数器的工作方式、计数形式及输出方式,也能决定应如何装入计数器初值。8253的3个控制寄存器只占用一个地址号,而靠控制字中最高二位来指定当前的控制字是发给哪一个计数器的。控制寄存器只能写入,不能读取。,3读/写逻辑,读/写逻辑的任务是接收来自CPU的控制信号,完成对8253各计数寄存器的读/写操作。这些控制信号包括读信号RD、写信号WR、片选信号CS和片内寄存器对址信号A0、A1。,4数据总线缓冲器,这是一个双向、三态8位缓冲器。它用于8253和系统数据总线连接。CPU通过数据总线缓冲器将控制命令字和计数值写入8253计数器,或者从8253计数器读取当前计数值。 8253的8位数据线D0D7通常与系统数据总线D0D7相连。8253共占用4个I/O地址。 8253各端口的地址分配见表4.8所示。,表4.8 8253端口的地址分配,返回本节,4.4.2 8253与系统的连接应用实例,图4.9为8253用作方波发生器与8088总线的接口方法。图中仅用了A7A2作为8253片选地址线,产生片选信号Y1与8253的CS端相连。要求计数器2用作方波发生器产生