CH9DMA控制器的编程结构及编程课件_第1页
CH9DMA控制器的编程结构及编程课件_第2页
CH9DMA控制器的编程结构及编程课件_第3页
CH9DMA控制器的编程结构及编程课件_第4页
CH9DMA控制器的编程结构及编程课件_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微型机原理与技术

CH9DMA控制器的编程结构及编程微型机原理与技术

CH9DMA控制器的编程结构及编程主要内容DMA

控制器概要DMA控制器8237的原理8237A的工作方式和寄存器9.19.29.328237A各寄存器对应的端口地址9.48237A的编程和应用9.5DMA传输的特点9.0主要内容DMA控制器概要DMA控制器8237的原理823DMADMA(DirectMemoryAccess):让存储器与高速外设直接进行数据交换而无需CPU的干预。特点DMA传送期间,DMA控制器(DMAC)接管了CPU对总线的控制权。DMA方式中,内存地址的修改、传送结束的判断都由硬件电路实现。即:用硬件控制代替了软件控制。DMA控制器是实现DMA传送的核心器件。39.0DMA传送的特点DMA39.0DMA传送的特点应用场合DMA方式主要用于高速大批量传输数据的场合。如:硬盘和软盘外设;快速通信通道;多处理机和多程序数据块传送;图像处理中向CRC屏幕传送数据;快速数据采集;DRAM的刷新操作。49.0DMA传送的特点应用场合49.0DMA传送的特点59.1DMA控制器概要59.1DMA控制器概要DMA的传送过程分5个阶段:1.初始化阶段6

要传送的数据字节数数据在存储器中的起始地址传送方向DMAC的通道号

……

DMAC9.1DMA控制器概要DMA的传送过程分5个阶段:6要传送的数据字节数DMA2.申请阶段当外设有DMA需求,并且已准备就绪,则向DMA控制器发出DMA请求信号DREQ。DMA控制器接收到DMA请求信号后,向CPU发出总线请求信号HRQ。该信号连接到CPU的HOLD信号。7

CPUDMAC外部设备DREQHRQ9.1DMA控制器概要2.申请阶段7CPUDMAC外部设备DREQHRQ93.响应阶段CPU收到DMA的HRQ请求后,若允许DMA传输,则在当前总线周期结束后,释放总线控制权,并向DMAC发HLDA信号,通知其CPU已交出总线。8CPU检测HRQHRQ有效且LOCK无效CPU交出总线CPU向DMAC发HLDAYNDMAC成为总线主控者9.1DMA控制器概要3.响应阶段8CPU检测HRQHRQ有效且LOCK无效CP4.数据传送阶段DMA控制器获得总线的控制权,向外设发送应答信号DACK,通知外设可以进行DMA传输了。DMA控制器送出地址信号和控制信号,实现外设与内存的数据传输。9

外部设备DMAC

存储器DACK地址信号读写信号9.1DMA控制器概要4.数据传送阶段9外部设备DMAC存储器DACK地5.传送结束阶段DMAC向外设发送EOP信号,外设撤销DREQ请求,同时HRQ和HLDA信号变为无效,DMAC释放总线,CPU重获总线控制权。10CPU重获总线控制权DMAC向外设发EOP信号外设撤消DREQ信号HRQ和HLDA变为无效DMAC交出总线控制权9.1DMA控制器概要5.传送结束阶段10CPU重获总线控制权DMAC向外设发EDMA控制器8237A-5的基本特点8237A-5是一个高性能通用可编程DMAC。具有4个独立的通道,通过级联方式进行扩充。最多可扩展4个从片,即16个DMA通道。每个通道可传输的最大数据块均为64KB。可实现内存到外设、外设到内存以及内存到内存之间的高速数据传输,最高数据传输速率可达1.6MB/s。具有多种控制方式和操作类型。119.2DMA控制器8237A的原理DMA控制器8237A-5的基本特点119.2DMA控制129.2DMA控制器8237A的原理DMA控制器的2种状态主动工作态:主模块

在主动工作状态下,DMAC取代处理器CPU,获得了对系统总线的控制权,成为系统总线的主控者,向存储器和外设发号施令。被动工作态:从模块

在被动工作状态下,DMAC接受CPU对它的控制和指挥。例如:对DMAC进行初始化编程以及从DMAC读取状态等。1.8237A的编程结构129.2DMA控制器8237A的原理DMA控制器的2种状8237A-5外部特性概况40引脚双列直插封装。引脚说明139.2DMA控制器8237A的原理8237A-5外部特性139.2DMA控制器8237A的原8237A内部结构4个DMA通道和一个公共控制部分。每个DMA通道包括:基本地址寄存器、当前地址寄存器基字节寄存器、当前字节计数器公共控制部分:工作方式寄存器、命令寄存器、状态寄存器请求寄存器、屏蔽寄存器、暂存寄存器149.2DMA控制器8237A的原理8237A内部结构149.2DMA控制器8237A的原理159.2DMA控制器8237A的原理图9.18237A的编程结构和外部连接159.2DMA控制器8237A的原理图9.18237A(1)

请求与应答信号DREQ3~DREQ0:DMA通道请求输入信号(由外设提供)。有效电平可高可低,由程序选定。

优先级:DREQ0最高,DREQ3最低。DACK3~DACK0:DMA响应输出信号(外接外设)。有效电平可高可低,由程序选定。8237A在同一个时间,只能有一个DACK应答信号有效。HRQ:8237A-5向CPU发出的总线请求信号,高电平有效。HLDA:CPU发给8237A-5的总线请求响应信号。高电平有效。有效时表示CPU已让出总线。16

外部设备DMACDREQCPUHRQHLDADACK9.2DMA控制器8237A的原理2.8237A的外部信号(1)请求与应答信号16外部设备DMACDREQ

(2)地址信号线A3~A0:地址线,双向三态。被动状态下,为输入,作为CPU对8237A内部的16个寄存器与计数器寻址之用。主动状态下,为输出,作为20位存储器地址的最低4位。A7~A4:地址线,单向。主动状态下,为输出。作为访问20位存储器地址低8位中的高4位。179.2DMA控制器8237A的原理2.8237A的外部信号(2)地址信号线179.2DMA控制器8237A的原理(3)数据信号DB7~DB0:地址数据复用线,双向三态。被动状态下,为双向数据线。用于CPU对8237A进行初始化,或DMA传输结束后传送状态。主动状态下,分时复用作为访问存储器的高8位地址线和数据线。在存储器到存储器传送方式中,作为数据的输入输出端。189.2DMA控制器8237A的原理2.8237A的外部信号(3)数据信号189.2DMA控制器8237A的原理2

(4)控制信号CS:片选信号,低有效。被动状态下用于CPU对8237的寻址。CLK:控制芯片内部操作和数据传输。RESET:输入信号,复位8237A。IOR/IOW:读写控制信号。被动状态下,为输入。用于CPU向DMAC写命令或初始化参数,或CPU读取8237A内部寄存器状态。主动状态下,为输出。对外设进行读写。MEMR/MEMW:存储器读/写信号,单向输出。当8237A为主动工作状态时,对存储器进行读写。199.2DMA控制器8237A的原理2.8237A的外部信号(4)控制信号199.2DMA控制器8237A的原理2ADSTB:地址选通信号。此信号有效时,DMA控制器的当前地址寄存器中的高8位地址通过DB0~DB7送到外部锁存器。AEN:地址允许。使地址锁存器中的高8位地址送地址总线。READY:准备就绪信号。低电平时,8237A处于等待状态,高电平表示外设或存储器准备就绪。EOP:DMA传输过程结束信号。DMA传送过程结束,则从EOP输出一个低有效脉冲。若从EOP输入低脉冲信号,则表明外部强制结束DMA传送。209.2DMA控制器8237A的原理(4)控制信号ADSTB:地址选通信号。此信号有效时,DMA控制器的当前地DMA的传送类型数据传送:把源地址的数据传送到目的地址去。DMA读:把数据由存储器传送到外设。DMA写:把外设输入的数据写入存储器。存储器与存储器之间的传递。读/写操作均是针对存储器而言。数据校验:对数据块内的每个字节进行校验。数据检索:在指定的内存区域内查找某个关键字节或某几个关键数据位是否存在,如果查到了,就停止检索。9.38237A的工作方式和方式寄存器DMA的传送类型9.38237A的工作方式和方式寄存器单字节传送方式每次传送一个字节,然后释放总线控制权。传送下一个字节时,重新申请使用总线。特点CPU在每个DMA周期结束后立即控制总线。对系统影响不大。CPU和DMAC轮流控制系统总线,传输效率低。229.38237A的工作方式和方式寄存器允许DMADMAC发总线请求CPU响应DMA放弃总线DMAC控制传一个字节放弃总线中断请求NDMA放弃总线NYYDMA请求?块结束否?1.8237A的工作方式和方式寄存器8237A的四种工作方式单字节传送方式229.38237A的工作方式和方式寄存器允数据块传送方式只要DMA一启动,DMAC始终占用总线,直到数据传送结束,或外部强制停止,才交出总线控制权。特点效率高。DMA传输期间CPU长时间不能控制总线。若一次传输的数据较多,对系统会有一定响应。23YNDMAC控制传一个字节放弃总线中断请求CPU响应DMA放弃总线DMAC发总线请求允许DMADMA请求?块结束?8237A的四种工作方式9.38237A的工作方式和方式寄存器1.8237A的工作方式和方式寄存器数据块传送方式23YNDMAC控制传一个字节放弃总线中断请求请求传送方式当8237A检测到DREQ请求时就传输一字节,当DREQ无效,或操作结束,或由外部送来结束信号EOP,DMAC都会释放总线,把总线控制权交还CPU。具体实现:每传完一个字节,DMAC都会检测外设的DREQ请求。若DREQ无效,则马上停止DMA传输,将总线控制权交给CPU。特点实现灵活,DMA操作可由外设用DREQ信号控制发送过程。248237A的四种工作方式9.38237A的工作方式和方式寄存器1.8237A的工作方式和方式寄存器请求传送方式248237A的四种工作方式9.38237A的25允许DMADMAC发出总线请求CPU响应DMA放弃总线DMAC控制传一个字节放弃总线中断请求YY放弃总线NNYDMA请求?块结束?DMA请求?N25允许DMADMAC发出总线请求CPU响应DMA放弃总线D级联传送方式将多个DMAC连在一起,一个为主,其余为从。从片收到外设的DMA请求后,不是向CPU申请总线,而是向主片申请,再由主片向CPU申请。268237A的四种工作方式9.38237A的工作方式和方式寄存器1.8237A的工作方式和方式寄存器级联传送方式268237A的四种工作方式9.38237A的278237A的方式寄存器9.38237A的工作方式和方式寄存器1.8237A的工作方式和方式寄存器278237A的方式寄存器9.38237A的工作方式和方式例:PC系列软盘读写操作选择DMA通道2,单字节传送,地址增1,不用自动预置,其写、读、校验操作的方式字分别如下:写操作:01000110=46H。读操作:01001010=4AH。校验操作:01000010=42H。9.38237A的工作方式和方式寄存器1.8237A的工作方式和方式寄存器例:PC系列软盘读写操作选择DMA通道2,单字节传送,地址增9.38237A的工作方式和方式寄存器2.8237A的控制寄存器和有关问题

(1)8237A命令寄存器(只写)9.38237A的工作方式和方式寄存器2.8237A的控D7、D6:决定DREQ和DACK的有效电平。D5:扩展写和不扩展写D5=1:扩展写信号,表示写脉冲加宽。D5=0:不扩展写信号,表示正常时序。D4:控制通道的优先权D4=0:采用固定优先级,DREQ0最高,DREQ3最低。D4=1:采用循环优先级。已服务过的通道优先权变为最低,其下一个通道优先权变为最高。309.38237A的工作方式和方式寄存器2.8237A的控制寄存器和有关问题

(1)8237A命令寄存器(只写)D7、D6:决定DREQ和DACK的有效电平。309.38319.38237A的工作方式和方式寄存器2.8237A的控制寄存器和有关问题

(1)8237A命令寄存器(只写)D3:时序类型D3=0:普通时序,每传输一个字节需要3个时钟周期。D3=1:压缩时序,每传输一个字节需要2个时钟周期。D2:启动和停止8237A的工作。D2=0:启动;D2=1:停止。该位影响所有的通道D1:通道0地址保持。用于内存到内存的传输。D1=0:不保持。D1=1:保持。配合D0位使用。319.38237A的工作方式和方式寄存器2.8237AD0:允许和禁止内存到内存传输。D0=1:允许。D0=0:禁止。在实现内存到内存的传输时,需把源数据先送到8237的暂存器中,然后再送到目的区。这时,用通道0的地址寄存器存放源地址,用通道1的地址寄存器和字节计数器存放目的地址和计数值。传输时,目的地址寄存器的值正常加1或减1,但源地址寄存器的值可通过设置D1=1而保持不变,这样可使同一数据传输到整个选定的内存区域。329.38237A的工作方式和方式寄存器2.8237A的控制寄存器和有关问题

(1)8237A命令寄存器(只写)D0:允许和禁止内存到内存传输。329.38237A的工作【例】PC微机中的8237A-5,按如下要求工作:禁止存储器到存储器传送,正常时序,滞后写入,固定优先级,允许8237A-5工作,DREQ信号高电平有效,DACK信号低电平有效。已知写命令寄存器对应的地址为08H,请给出写命令的程序段。命令字为00000000H写命令字代码段:MOVAL,00HOUT08H,AL339.38237A的工作方式和方式寄存器2.8237A的控制寄存器和有关问题【例】PC微机中的8237A-5,按如下要求工作:禁止存储器低4位表示哪些DMA通道传送结束。高4位表示哪些通道有DMA请求还未处理。状态位在复位或被读出后,均被清零。349.38237A的工作方式和方式寄存器3.8237A的状态寄存器的格式低4位表示哪些DMA通道传送结束。349.38237A的工(1)请求标志和请求寄存器(只写)一般DMA请求由硬件发出,通过DREQ引脚引入DMA请求。但也可通过软件来发出DMA请求。若是内存到内存传输,则必须由软件请求启动通道0。仅适用于块传输方式,传送结束信号EOP自动清除请求位。359.38237A的工作方式和方式寄存器4.8237A的请求标志、屏蔽标志和复位命令(1)请求标志和请求寄存器(只写)359.38237A的工(2)屏蔽寄存器(只写)用来禁止或允许通道的DMA请求。各通道相互独立。复位使4个通道全被屏蔽。有以下两种形式:单通道屏蔽寄存器:每次只能屏蔽一个通道。369.38237A的工作方式和方式寄存器4.8237A的请求标志、屏蔽标志和复位命令(2)屏蔽寄存器(只写)369.38237A的工作方式和方四通道屏蔽寄存器:可同时屏蔽4个通道。低4位全部置1,则屏蔽所有的DMA请求。低4位全部置0,则允许所有的DMA请求。379.38237A的工作方式和方式寄存器4.8237A的请求标志、屏蔽标志和复位命令(2)屏蔽标志和屏蔽寄存器四通道屏蔽寄存器:可同时屏蔽4个通道。379.38237A【例】为了在每次软盘读/写操作时,进行DMA初始化都必须开放通道2,以便响应软盘的DMA请求,可采用下述两种方法之一来实现。(已知屏蔽单通道屏蔽寄存器和4通道屏蔽寄存器对应的地址分别为0AH和0FH)使用单通道屏蔽寄存器MOVAL,00000010

;最低3位=010,开放通道2OUT0AH,AL;写单个通道屏蔽寄存器使用4通道屏蔽寄存器MOVAL,00001011B;最低4位为1011,开放通道2OUT0FH,AL;写四通道屏蔽寄存器389.38237A的工作方式和方式寄存器4.8237A的请求标志、屏蔽标志和复位命令【例】为了在每次软盘读/写操作时,进行DMA初始化都必须开放399.38237A的工作方式和方式寄存器4.8237A的请求标志、屏蔽标志和复位命令(3)总清命令与硬件的Reset信号功能相同。使得DMA控制器内部的命令寄存器、状态寄存器、请求寄存器、暂存寄存器、字节指针都清0。使得屏蔽寄存器全置1,禁止所有的DMA请求。MOVAL,00H;AL为任意值OUT0DH,AL;写入对应的端口399.38237A的工作方式和方式寄存器4.8237A409.48237A各寄存器对应的端口地址8237ADMA控制器进行读、写操作共有16个端口,使用地址线A3~A0

进行寻址,分别记作DMA+n。占用的I/O地址为00H~0FH。其地址分配情况如下。端口通道I/O端口地址寄存器读(IOR)写(IOW)DMA+0000H当前地址寄存器基地址与当前地址寄存器DMA+1001H当前字节计数寄存器基字节计数与当前字节计数寄存器DMA+2102H当前地址寄存器基地址与当前地址寄存器DMA+3103H当前字节计数寄存器基字节计数与当前字节计数寄存器DMA+4204H当前地址寄存器基地址与当前地址寄存器DMA+5205H当前字节计数寄存器基字节计数与当前字节计数寄存器DMA+6306H当前地址寄存器基地址与当前地址寄存器DMA+7307H当前字节计数寄存器基字节计数与当前字节计数寄存器409.48237A各寄存器对应的端口地址8237ADM41端口通道I/O口地址寄存器读(IOR)写(IOW)DMA+8公用08H状态寄存器写命令寄存器DMA+909H——写请求寄存器DMA+100AH——写单个通道屏蔽寄存器DMA+110BH——写工作方式寄存器DMA+120CH——清除字节指针*DMA+130DH暂存寄存器写总清命令*DMA+140EH——写清四个通道屏蔽寄存器*DMA+150FH——写四个通道屏蔽寄存器*为软命令。9.48237A各寄存器对应的端口地址41端口通道I/O口地址寄存器读(IOR)写(IOW)DMADMA系统的初始化

HLDA无效时可以对8237A进行初始化编程。初始化需做的工作有:写命令字,禁止8237A工作,或对相应通道进行屏蔽。执行总清命令进行复位。写方式寄存器。设置基地址、基字节和页面地址寄存器的内容。清除屏蔽允许DMA请求,准备传输数据。429.58237A的编程和应用DMA系统的初始化429.58237A的编程和应用439.58237A的编程和应用【例】在系统中,8237A的通道0做对动态RAM的刷新,通道1提供网络通信功能,采用固定优先级,为防止数据丢失,动态RAM刷新操作对应的优先级最高。已知:8237A端口地址为0000~000FH,DMA代表首地址0000H,8237A的地址寄存器只有16位,为使用CPU的寻址范围,外加页面寄存器。实模式下有20位地址,最高4位地址A19~A16放在页面寄存器,其端口地址为0083H。通道0初始化程序如下:

439.58237A的编程和应用【例】在系统中,8237A449.58237A的编程和应用通道0初始化程序如下: MOV AL,04 MOV DX,DMA+8 OUT DX,AL ;停止8237A工作 MOV AL,00 MOV DX,DMA+0DH OUT DX,AL ;8237A复位 MOV DX,DMA+1 MOV CX,0004WRITE:MOV AL,0FFH OUT DX,AL OUT DX,AL ;16位计数值FFFFH写入0通道计数器 INC DX INC DX LOOP WRITE ;FFFFH写入4个通道计数器449.58237A的编程和应用通道0初始化程序如下:459.58237A的编程和应用通道0初始化程序如下: MOV DX,DMA+0BH MOV AL,58H ;单字节、地址加1、自动初始化、读 OUT DX,AL ;通道0方式选择 MOV AL,00 MOV DX,DMA+08H OUT DX,AL ;设置8237A控制字 MOV DX,DMA+0AH OUT DX,AL ;写单屏蔽寄存器459.58237A的编程和应用通道0初始化程序如下:46NETTRA: MOV DX,DMA+0CH MOV AL,00 OUT DX,AL MOV DX,DMA+09H OUT DX,AL MOV AX,01 OR AX,SI MOV DX,DMA+0BH OUT DX,AL MOV AX,ES MOV CL,04 ROL AX,CL MOV CH,AL AND AL,0F0H ADD AX,BX JNC ABC INC CH利用通道1进行网络通信的传输程序ABC:MOV DX,DMA+2 OUT DX,AL MOV AL,AHOUT DX,AL MOV AL,CHAND AL,0FH MOV DX,DMA+0083HOUT DX,AL MOV AX,DI DEC AX MOV DX,DMA+3 OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,DMA+0AH 46NETTRA:利用通道1进行网络通信的传输程序ABC:47 MOV AL,01 OUT DX,AL MOV DX,DMA+8 MOV AL,60H OUT DX,AL MOV DX,DMA+8 WAIT:

IN AL,DX AND AL,02H JZ WAIT 利用通道1进行网络通信的传输程序47 MOV AL,01利用通道1进行网络通信的传输程序更换老师说明再见!谢谢!48更换老师说明再见!谢谢!48微型机原理与技术

CH9DMA控制器的编程结构及编程微型机原理与技术

CH9DMA控制器的编程结构及编程主要内容DMA

控制器概要DMA控制器8237的原理8237A的工作方式和寄存器9.19.29.3508237A各寄存器对应的端口地址9.48237A的编程和应用9.5DMA传输的特点9.0主要内容DMA控制器概要DMA控制器8237的原理823DMADMA(DirectMemoryAccess):让存储器与高速外设直接进行数据交换而无需CPU的干预。特点DMA传送期间,DMA控制器(DMAC)接管了CPU对总线的控制权。DMA方式中,内存地址的修改、传送结束的判断都由硬件电路实现。即:用硬件控制代替了软件控制。DMA控制器是实现DMA传送的核心器件。519.0DMA传送的特点DMA39.0DMA传送的特点应用场合DMA方式主要用于高速大批量传输数据的场合。如:硬盘和软盘外设;快速通信通道;多处理机和多程序数据块传送;图像处理中向CRC屏幕传送数据;快速数据采集;DRAM的刷新操作。529.0DMA传送的特点应用场合49.0DMA传送的特点539.1DMA控制器概要59.1DMA控制器概要DMA的传送过程分5个阶段:1.初始化阶段54

要传送的数据字节数数据在存储器中的起始地址传送方向DMAC的通道号

……

DMAC9.1DMA控制器概要DMA的传送过程分5个阶段:6要传送的数据字节数DMA2.申请阶段当外设有DMA需求,并且已准备就绪,则向DMA控制器发出DMA请求信号DREQ。DMA控制器接收到DMA请求信号后,向CPU发出总线请求信号HRQ。该信号连接到CPU的HOLD信号。55

CPUDMAC外部设备DREQHRQ9.1DMA控制器概要2.申请阶段7CPUDMAC外部设备DREQHRQ93.响应阶段CPU收到DMA的HRQ请求后,若允许DMA传输,则在当前总线周期结束后,释放总线控制权,并向DMAC发HLDA信号,通知其CPU已交出总线。56CPU检测HRQHRQ有效且LOCK无效CPU交出总线CPU向DMAC发HLDAYNDMAC成为总线主控者9.1DMA控制器概要3.响应阶段8CPU检测HRQHRQ有效且LOCK无效CP4.数据传送阶段DMA控制器获得总线的控制权,向外设发送应答信号DACK,通知外设可以进行DMA传输了。DMA控制器送出地址信号和控制信号,实现外设与内存的数据传输。57

外部设备DMAC

存储器DACK地址信号读写信号9.1DMA控制器概要4.数据传送阶段9外部设备DMAC存储器DACK地5.传送结束阶段DMAC向外设发送EOP信号,外设撤销DREQ请求,同时HRQ和HLDA信号变为无效,DMAC释放总线,CPU重获总线控制权。58CPU重获总线控制权DMAC向外设发EOP信号外设撤消DREQ信号HRQ和HLDA变为无效DMAC交出总线控制权9.1DMA控制器概要5.传送结束阶段10CPU重获总线控制权DMAC向外设发EDMA控制器8237A-5的基本特点8237A-5是一个高性能通用可编程DMAC。具有4个独立的通道,通过级联方式进行扩充。最多可扩展4个从片,即16个DMA通道。每个通道可传输的最大数据块均为64KB。可实现内存到外设、外设到内存以及内存到内存之间的高速数据传输,最高数据传输速率可达1.6MB/s。具有多种控制方式和操作类型。599.2DMA控制器8237A的原理DMA控制器8237A-5的基本特点119.2DMA控制609.2DMA控制器8237A的原理DMA控制器的2种状态主动工作态:主模块

在主动工作状态下,DMAC取代处理器CPU,获得了对系统总线的控制权,成为系统总线的主控者,向存储器和外设发号施令。被动工作态:从模块

在被动工作状态下,DMAC接受CPU对它的控制和指挥。例如:对DMAC进行初始化编程以及从DMAC读取状态等。1.8237A的编程结构129.2DMA控制器8237A的原理DMA控制器的2种状8237A-5外部特性概况40引脚双列直插封装。引脚说明619.2DMA控制器8237A的原理8237A-5外部特性139.2DMA控制器8237A的原8237A内部结构4个DMA通道和一个公共控制部分。每个DMA通道包括:基本地址寄存器、当前地址寄存器基字节寄存器、当前字节计数器公共控制部分:工作方式寄存器、命令寄存器、状态寄存器请求寄存器、屏蔽寄存器、暂存寄存器629.2DMA控制器8237A的原理8237A内部结构149.2DMA控制器8237A的原理639.2DMA控制器8237A的原理图9.18237A的编程结构和外部连接159.2DMA控制器8237A的原理图9.18237A(1)

请求与应答信号DREQ3~DREQ0:DMA通道请求输入信号(由外设提供)。有效电平可高可低,由程序选定。

优先级:DREQ0最高,DREQ3最低。DACK3~DACK0:DMA响应输出信号(外接外设)。有效电平可高可低,由程序选定。8237A在同一个时间,只能有一个DACK应答信号有效。HRQ:8237A-5向CPU发出的总线请求信号,高电平有效。HLDA:CPU发给8237A-5的总线请求响应信号。高电平有效。有效时表示CPU已让出总线。64

外部设备DMACDREQCPUHRQHLDADACK9.2DMA控制器8237A的原理2.8237A的外部信号(1)请求与应答信号16外部设备DMACDREQ

(2)地址信号线A3~A0:地址线,双向三态。被动状态下,为输入,作为CPU对8237A内部的16个寄存器与计数器寻址之用。主动状态下,为输出,作为20位存储器地址的最低4位。A7~A4:地址线,单向。主动状态下,为输出。作为访问20位存储器地址低8位中的高4位。659.2DMA控制器8237A的原理2.8237A的外部信号(2)地址信号线179.2DMA控制器8237A的原理(3)数据信号DB7~DB0:地址数据复用线,双向三态。被动状态下,为双向数据线。用于CPU对8237A进行初始化,或DMA传输结束后传送状态。主动状态下,分时复用作为访问存储器的高8位地址线和数据线。在存储器到存储器传送方式中,作为数据的输入输出端。669.2DMA控制器8237A的原理2.8237A的外部信号(3)数据信号189.2DMA控制器8237A的原理2

(4)控制信号CS:片选信号,低有效。被动状态下用于CPU对8237的寻址。CLK:控制芯片内部操作和数据传输。RESET:输入信号,复位8237A。IOR/IOW:读写控制信号。被动状态下,为输入。用于CPU向DMAC写命令或初始化参数,或CPU读取8237A内部寄存器状态。主动状态下,为输出。对外设进行读写。MEMR/MEMW:存储器读/写信号,单向输出。当8237A为主动工作状态时,对存储器进行读写。679.2DMA控制器8237A的原理2.8237A的外部信号(4)控制信号199.2DMA控制器8237A的原理2ADSTB:地址选通信号。此信号有效时,DMA控制器的当前地址寄存器中的高8位地址通过DB0~DB7送到外部锁存器。AEN:地址允许。使地址锁存器中的高8位地址送地址总线。READY:准备就绪信号。低电平时,8237A处于等待状态,高电平表示外设或存储器准备就绪。EOP:DMA传输过程结束信号。DMA传送过程结束,则从EOP输出一个低有效脉冲。若从EOP输入低脉冲信号,则表明外部强制结束DMA传送。689.2DMA控制器8237A的原理(4)控制信号ADSTB:地址选通信号。此信号有效时,DMA控制器的当前地DMA的传送类型数据传送:把源地址的数据传送到目的地址去。DMA读:把数据由存储器传送到外设。DMA写:把外设输入的数据写入存储器。存储器与存储器之间的传递。读/写操作均是针对存储器而言。数据校验:对数据块内的每个字节进行校验。数据检索:在指定的内存区域内查找某个关键字节或某几个关键数据位是否存在,如果查到了,就停止检索。9.38237A的工作方式和方式寄存器DMA的传送类型9.38237A的工作方式和方式寄存器单字节传送方式每次传送一个字节,然后释放总线控制权。传送下一个字节时,重新申请使用总线。特点CPU在每个DMA周期结束后立即控制总线。对系统影响不大。CPU和DMAC轮流控制系统总线,传输效率低。709.38237A的工作方式和方式寄存器允许DMADMAC发总线请求CPU响应DMA放弃总线DMAC控制传一个字节放弃总线中断请求NDMA放弃总线NYYDMA请求?块结束否?1.8237A的工作方式和方式寄存器8237A的四种工作方式单字节传送方式229.38237A的工作方式和方式寄存器允数据块传送方式只要DMA一启动,DMAC始终占用总线,直到数据传送结束,或外部强制停止,才交出总线控制权。特点效率高。DMA传输期间CPU长时间不能控制总线。若一次传输的数据较多,对系统会有一定响应。71YNDMAC控制传一个字节放弃总线中断请求CPU响应DMA放弃总线DMAC发总线请求允许DMADMA请求?块结束?8237A的四种工作方式9.38237A的工作方式和方式寄存器1.8237A的工作方式和方式寄存器数据块传送方式23YNDMAC控制传一个字节放弃总线中断请求请求传送方式当8237A检测到DREQ请求时就传输一字节,当DREQ无效,或操作结束,或由外部送来结束信号EOP,DMAC都会释放总线,把总线控制权交还CPU。具体实现:每传完一个字节,DMAC都会检测外设的DREQ请求。若DREQ无效,则马上停止DMA传输,将总线控制权交给CPU。特点实现灵活,DMA操作可由外设用DREQ信号控制发送过程。728237A的四种工作方式9.38237A的工作方式和方式寄存器1.8237A的工作方式和方式寄存器请求传送方式248237A的四种工作方式9.38237A的73允许DMADMAC发出总线请求CPU响应DMA放弃总线DMAC控制传一个字节放弃总线中断请求YY放弃总线NNYDMA请求?块结束?DMA请求?N25允许DMADMAC发出总线请求CPU响应DMA放弃总线D级联传送方式将多个DMAC连在一起,一个为主,其余为从。从片收到外设的DMA请求后,不是向CPU申请总线,而是向主片申请,再由主片向CPU申请。748237A的四种工作方式9.38237A的工作方式和方式寄存器1.8237A的工作方式和方式寄存器级联传送方式268237A的四种工作方式9.38237A的758237A的方式寄存器9.38237A的工作方式和方式寄存器1.8237A的工作方式和方式寄存器278237A的方式寄存器9.38237A的工作方式和方式例:PC系列软盘读写操作选择DMA通道2,单字节传送,地址增1,不用自动预置,其写、读、校验操作的方式字分别如下:写操作:01000110=46H。读操作:01001010=4AH。校验操作:01000010=42H。9.38237A的工作方式和方式寄存器1.8237A的工作方式和方式寄存器例:PC系列软盘读写操作选择DMA通道2,单字节传送,地址增9.38237A的工作方式和方式寄存器2.8237A的控制寄存器和有关问题

(1)8237A命令寄存器(只写)9.38237A的工作方式和方式寄存器2.8237A的控D7、D6:决定DREQ和DACK的有效电平。D5:扩展写和不扩展写D5=1:扩展写信号,表示写脉冲加宽。D5=0:不扩展写信号,表示正常时序。D4:控制通道的优先权D4=0:采用固定优先级,DREQ0最高,DREQ3最低。D4=1:采用循环优先级。已服务过的通道优先权变为最低,其下一个通道优先权变为最高。789.38237A的工作方式和方式寄存器2.8237A的控制寄存器和有关问题

(1)8237A命令寄存器(只写)D7、D6:决定DREQ和DACK的有效电平。309.38799.38237A的工作方式和方式寄存器2.8237A的控制寄存器和有关问题

(1)8237A命令寄存器(只写)D3:时序类型D3=0:普通时序,每传输一个字节需要3个时钟周期。D3=1:压缩时序,每传输一个字节需要2个时钟周期。D2:启动和停止8237A的工作。D2=0:启动;D2=1:停止。该位影响所有的通道D1:通道0地址保持。用于内存到内存的传输。D1=0:不保持。D1=1:保持。配合D0位使用。319.38237A的工作方式和方式寄存器2.8237AD0:允许和禁止内存到内存传输。D0=1:允许。D0=0:禁止。在实现内存到内存的传输时,需把源数据先送到8237的暂存器中,然后再送到目的区。这时,用通道0的地址寄存器存放源地址,用通道1的地址寄存器和字节计数器存放目的地址和计数值。传输时,目的地址寄存器的值正常加1或减1,但源地址寄存器的值可通过设置D1=1而保持不变,这样可使同一数据传输到整个选定的内存区域。809.38237A的工作方式和方式寄存器2.8237A的控制寄存器和有关问题

(1)8237A命令寄存器(只写)D0:允许和禁止内存到内存传输。329.38237A的工作【例】PC微机中的8237A-5,按如下要求工作:禁止存储器到存储器传送,正常时序,滞后写入,固定优先级,允许8237A-5工作,DREQ信号高电平有效,DACK信号低电平有效。已知写命令寄存器对应的地址为08H,请给出写命令的程序段。命令字为00000000H写命令字代码段:MOVAL,00HOUT08H,AL819.38237A的工作方式和方式寄存器2.8237A的控制寄存器和有关问题【例】PC微机中的8237A-5,按如下要求工作:禁止存储器低4位表示哪些DMA通道传送结束。高4位表示哪些通道有DMA请求还未处理。状态位在复位或被读出后,均被清零。829.38237A的工作方式和方式寄存器3.8237A的状态寄存器的格式低4位表示哪些DMA通道传送结束。349.38237A的工(1)请求标志和请求寄存器(只写)一般DMA请求由硬件发出,通过DREQ引脚引入DMA请求。但也可通过软件来发出DMA请求。若是内存到内存传输,则必须由软件请求启动通道0。仅适用于块传输方式,传送结束信号EOP自动清除请求位。839.38237A的工作方式和方式寄存器4.8237A的请求标志、屏蔽标志和复位命令(1)请求标志和请求寄存器(只写)359.38237A的工(2)屏蔽寄存器(只写)用来禁止或允许通道的DMA请求。各通道相互独立。复位使4个通道全被屏蔽。有以下两种形式:单通道屏蔽寄存器:每次只能屏蔽一个通道。849.38237A的工作方式和方式寄存器4.8237A的请求标志、屏蔽标志和复位命令(2)屏蔽寄存器(只写)369.38237A的工作方式和方四通道屏蔽寄存器:可同时屏蔽4个通道。低4位全部置1,则屏蔽所有的DMA请求。低4位全部置0,则允许所有的DMA请求。859.38237A的工作方式和方式寄存器4.8237A的请求标志、屏蔽标志和复位命令(2)屏蔽标志和屏蔽寄存器四通道屏蔽寄存器:可同时屏蔽4个通道。379.38237A【例】为了在每次软盘读/写操作时,进行DMA初始化都必须开放通道2,以便响应软盘的DMA请求,可采用下述两种方法之一来实现。(已知屏蔽单通道屏蔽寄存器和4通道屏蔽寄存器对应的地址分别为0AH和0FH)使用单通道屏蔽寄存器MOVAL,00000010

;最低3位=010,开放通道2OUT0AH,AL;写单个通道屏蔽寄存器使用4通道屏蔽寄存器MOVAL,00001011B;最低4位为1011,开放通道2OUT0FH,AL;写四通道屏蔽寄存器869.38237A的工作方式和方式寄存器4.8237A的请求标志、屏蔽标志和复位命令【例】为了在每次软盘读/写操作时,进行DMA初始化都必须开放879.38237A的工作方式和方式寄存器4.8237A的请求标志、屏蔽标志和复位命令(3)总清命令与硬件的Reset信号功能相同。使得DMA控制器内部的命令寄存器、状态寄存器、请求寄存器、暂存寄存器、字节指针都清0。使得屏蔽寄存器全置1,禁止所有的DMA请求。MOVAL,00H;AL为任意值OUT0DH,AL;写入对应的端口399.38237A的工作方式和方式寄存器4.8237A889.48237A各寄存器对应的端口地址8237ADMA控制器进行读、写操作共有16个端口,使用地址线A3~A0

进行寻址,分别记作DMA+n。占用的I/O地址为00H~0FH。其地址分配情况如下。端口通道I/O端口地址寄存器读(IOR)写(IOW)DMA+0000H当前地址寄存器基地址与当前地址寄存器DMA+1001H当前字节计数寄存器基字节计数与当前字节计数寄存器DMA+2102H当前地址寄存器基地址与当前地址寄存器DMA+3103H当前字节计数寄存器基字节计数与当前字节计数寄存器DMA+4204H当前地址寄存器基地址与当前地址寄存器DMA+5205H当前字节计数寄存器基字节计数与当前字节计数寄存器DMA+6306H当前地址寄存器基地址与当前地址寄存器DMA+7307H当前字节计数寄存器基字节计数与当前字节计数寄存器409.48

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论