微机原理与接口技术-

上传人:正** 文档编号:51731732 上传时间:2018-08-16 格式:PPT 页数:50 大小:549.50KB
返回 下载 相关 举报
微机原理与接口技术-_第1页
第1页 / 共50页
微机原理与接口技术-_第2页
第2页 / 共50页
微机原理与接口技术-_第3页
第3页 / 共50页
微机原理与接口技术-_第4页
第4页 / 共50页
微机原理与接口技术-_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《微机原理与接口技术-》由会员分享,可在线阅读,更多相关《微机原理与接口技术-(50页珍藏版)》请在金锄头文库上搜索。

1、可可编编程程 DMADMA 控控制制器器 DMA(Direct Memory Access) 传送是微型计 算机中一种十分重要的工作方式, 它主要用于 需要大批量、高速度的数据传送系统中, 如软 硬盘、光盘的存取, 高速数据采集系统, 图象 处理以及高速通信系统等。 而采用DMA传送方式时, 存储器与外设直接 传送数据, 不需要CPU的干预。减少了中间环 节, 并且修改地址指针和控制数据块传送长度 等工作,均由硬件完成,因此大大提高了传 送速度。 在DMA传送方式时,CPU将系统的控制权交 给DMA控制器(DMAC), 由DMAC负责完成 数据传送的全过程。 8237 工作过程 DMA方式传送

2、的一般过程: 分四个阶段: 1). 请求: I/O DMAC CPU 2). 响应: CPU DMAC I/OHRQDREQHLDADACK(CPU交出AB、DB、CB) 3). 传送: 4). 结束:DMAC存储器I/O(发AB、MEMW、MEMR)(发IOR、IOW)DMACI/OCPUDMAC发EOP,并撤DACK撤HRQ撤HLDADB并收回AB、DB、CB DMAC在系统中具有两种工作状态: 主动态和被动态。也就是在系统中处于主控 器和被控器两种不同地位。 在主动态时,DMAC控制系统总线(AB、DB 、CB)向存储器和外设发送地址信息和读写 信息,控制数据传送。DMA写操作时,它发

3、出IOR和MEMW信号,数据由外设传到存储 器;DMA读操作时,它发出MEMR和IOW 信号,数据从存储器传到外设。 在被动态时,DMAC与系统中其他部件一样 ,接受CPU的访问和初始化编程。可编程DMA控制器 8237A-5 1. 8237A5 DMA控制器的特点: (1) 有四个独立的通道,可控制四个I/O设备 进行DMA传送; (2) 每个通道均有64KB寻址与计数能力(即 地址线16根,计数器为16位) ; (3) 可以用级联方式扩充更多的通道; (4) 能进行I/O设备与系统存储器以及系统存 储器与存储器之间直接传送数据; (5) 数据传送率可达16MB/s(时钟频率为 5MHZ时)

4、 ; (6) 具有三种传送模式:单一;成组和查询, 四种传送类型:DMA读;DMA写;存储器传 存储器;校验 (7) 40脚双列直插式,+5V供电。8237A5的外部特性 8237引脚 8237A内部寄存器及编程命令 表10-5 PCXT的8237A寄存器口地址 1. 工作方式寄存器(DMA11)D7D6D5D4D3D2 D1D0模式选择选择00=询问询问 01=单单一 10=成组组 11=级联级联地址1=-1 0=+1自动动予 置 1=自动动 0=非自 动动类类型选择选择00=校验验 01=DMA写 10=DMA 读读 11=无效通道选选 择择00=0通道 01=1通道 10=2通道 11=

5、3通道 l)D7 D6决定DMA操作模式。在主动 态,即 DMA有效周期时,DMA控制器共有四种 操作模式: 单一传送模式:在这种模式下,通道启动 一次只传送一个数据,传送之后就释放系统 总线并交还给 CPU。 这种方式又称为总线周期窃取方式,每次总 是窃取一个总线周期完成一个字节的传送之 后立即归还总线。 成组传送模式:在这种方式下,通道启动 一次可把整个数据块传送完。当外设准备好时 ,向DMAC发DREQ,DMAC则向CPU发出 HRQ请求占用总线,CPU同意HRQ请求,则 向 DMAC发回 HLDA信号,这时,DMAC向 外设发 DACK,开始传送数据,直到整个数 据块传送完为止。这种模

6、式下,进行传送期间 ,CPU失去总线控制权,因而别的DMA请求 也就被禁止。 注意! DMA无嵌套 询问传送模式: 这种方式与成组传送模式 类似,其不同点在于每传送一个字节之后要 检测(询问)DREQ引脚是否有效,若无效 ,则立即“挂起”,但并不释放总线,若变成 有效, 则继续传送。 级联模式:这种方式不是数据传送模式, 而是表示8237A用于多片连接方式,第一级为 主片,第二级为从片。 2)D3 D2位决定DMA传送类型。在上述三 种数据传送模式中,如何表示数据的传送方 向呢? 8237A对每种模式提供了四种类型, 表示数据传送的方向。 DMA读:数据从内存读出,写到 IO设备 DMA写:

7、数据从I0设备读入,写到内存 校验:是一种伪传送,仅对芯片内部读写功能 进行校验,而对存储器与IO接口的控制信号 均被禁止,即处于无效。但是在每一DMA周期 后,地址增1或减1,字节计数器减1,直至产 生EOP,作为进行某种校验过程。 M I/OM I/O 存储器一存储器:为数据块传送而设置 (PC系列未用)。这种传送占用通道0与通道 1。通道0作为源,通道1作为目的。从以通道 0的当前地址寄存器的内容指定的内存单元中 读出数据,先存入 8237A的暂存寄存器中,然 后,从暂存寄存器取出数据,写到以通道 1的 当前地址寄存器的内容指定的内存单元中去 。每传送一个字节,双方内存地址加1或减1 ,

8、通道1的当前字节计数器减1,直到为0时, 产生EOP信号而终止传送。这种方式是采用软 件请求的方法来启动DMA服务的。 3)D4位决定所谓“自动预置”,是当出现EOP 负脉冲时,把基值(地址、字节计数)寄存器的 内容装入当前(地址、字节计数)寄存器中去, 又从头开始同一操作。 4)D5位决定每传送一个字节后存储器地址是 +1还是 l 。D5=0,地址 +1,D5=1,地址 -1 。 5) D1 D0 通道选择:选择对哪个通道写入 DMA+11 示例 PC系列软盘读写操作选择DMA通道 2,单字节传送,地址增1,不用自动预置,其 读写操作的方式字如下: 读盘(DMA写)= 01000110B =

9、 46H 写盘(DMA读)= 01001010B = 4AH 校验盘(DMA校验)= 01000010B = 42H 因此,若采用上述方式从软盘上读一个 扇区的数据存放到内存区,则方式字为: (01000110)B = 46H。如果采用同样的方 式从内存写一个扇区的数据到软盘上,则 方式字为(01001010)B = 4AH。 2. 基值地址寄存器(DMA0,2,4,6) 它们是16位地址寄存器,存放DMA传送的内存首 址,在初始化时,由CPU以先低字节后高字节顺序 写入。传送过程中基值地址寄存器的内容不变。只 能写,不能读。 3. 当前地址寄存器(DMA0,2,4,6) 它们是16位地址寄存

10、器,存放 DMA传送过程中的 内存地址,在每次传送后地址自动增1(或减 1),它 的初值与基值地址寄存器的内容相同,并且是两者 由 CPU同时写入的。在自动预置条件下,EOP信号 使其内容重新置为入基地址值。可读可写。4. 基值字节计数器(DMA1,3,5,7) 它们是16位寄存器,存放DMA传送的总字节 数,在初始化时,由CPU以先低字节后高字节顺 序写入。传送过程中基值字节计数器内容不变。 只能写不能读。 5. 当前字节计数器(DMAl,3,5,7) 它是16位寄存器,存放DMA传送过程中没有 传送完的字节数,在每次传送之后,字节计数器减1 ,当它的值减为零时,便产生EOP,表示字节数 传

11、送完毕。它的初值与基值字节计数器的内容相 同,并且两者由CPU同时写入的。可读可写。 6. 屏蔽寄存器(DMA10,15) 用来禁止或允许通道的DMA请求。当屏蔽 位置位时,禁止本通道的DREQ进入。若通 道编程为不自动预置,则当该通道遇到EOP 信号时,它所对应的屏蔽位置位。屏蔽字有 两种格式。即写一个屏蔽位的屏蔽字和写四 个屏蔽位的屏蔽字。 1)单一屏蔽寄存器(DMA10) 单一屏蔽寄存器,每次只能屏蔽一个通道 ,通道号由D1 D0位决定。通道号选定后,若 D2置1,则禁止该通道请求DREQ。若D2置0 ,则允许请求DREQ。该寄存器只能写,不 能读,其格式单一屏蔽寄存器(DMA10)D7

12、D6 D5 D4D3D2D1D0未用屏蔽位1=屏蔽 0=不屏蔽通道选择选择00=0通道 01=1通道 10=2通道 11=3通道2) 四位屏蔽位寄存器(DMA15)D7D6 D5D4D3D2D1D0未用3通道2通道 1通道0通道1=屏蔽; 0=不屏蔽 示例 为了在每次软盘读写操作时,进行 DMA初始化,都必须开放通道2,以便响应软盘的 DMA请求,可采用下述两种方法之一来实现。 使用单一屏蔽寄存器(DMA10) MOV AL,00000010B ;最低3位=010,开放通道2 OUT DMA10, AL ;写单一屏蔽寄存器 使用四位屏蔽寄存器(DMA15) MOV AL,00001011B ;

13、最低4位=1011,仅开放通道2 OUT DMA15, AL ;写四位屏蔽寄存器 另外,8237A还设有一个开放四个通道的命令,其端 口地址是 DMA14,属于软命令,在后面介绍。 7. 请求寄存器(DMA9)D7D 6D 5D 4D3D2D1D0未用请请求位1=有请请求 0=无请请求通道选择选择00=0通道 01=1通道 10=2通道 11=3通道8. 命令寄存器(DMA8)D7D6D5D4D3D2D1D0 DACK 极性DREQ 极性写入选选 择择优优先 级编级编 码码时时 序 选选 择择工 作 允 许许通 道 口 寻寻 址存储储 器间间 传传送D0=0 禁止存储器间传送 D4=0 固定优

14、先权 1 允许存储器间传送 1 循环优先权D1=0 通道0地址不保持 D5=0 滞后写(写周期滞后读 ) 1 通道0地址保持不变 1 扩展写(与读同时)D2=0 允许 8237A工作 D6=0 DREQ高电平有效 1 禁止 8237A工作 1 DREQ低电平有效 D3=0 正常(标准)时序 D7=0 DACK低电平有效 1 压缩时序 1 DACK高电平有效 D0位控制存储器到存储器传送。D0=0时,禁止存储器 到存储器传送。D0=1时, 首先由通道0发软件DMA清 求,并从以通道0的当前地址寄存器的内容指定的源地 址存储单元读入数据,读入的数据字节存放在暂存寄 存器中。再把暂存寄存器的数据写到以通道1的当前地 址寄存器的内容指定的目标地址存储单元,然后两通道 地址各自加 1或减1。直到通道 1的字节计数器为零时 ,产生EOP信号而结束DMA传送。 D1位控制通道0地址在存储器到存储器整个传送过 程中保持不变,这样可把同一个源地址存储单元的数 据写到一组目标存储单元中去。D1=1,保持通道0地 址不变;D1=0,不保持通道0地址不变。若D0=0,则D1 位无意义。 D2 位 DMA控制器工作允许。 D2=0,允许 8237A工作; D2=1,禁止 8237A工作。 D3位选择工作时序。 D3=0,采用标准

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

当前位置:首页 > 中学教育 > 其它中学文档

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