计算机接口技术第四章答案,计算机接口技术PPT电子教案课件-第四章 DMA接口.ppt...

1,回顾——,数据传输的方式 1.无条件 2.查询 3.中断 频繁中断,每次都要保存断点保护现场,非数据传输时间过多 进入中断和返回断点时指令队列都要清空 以上传输方式都是以字节为单位传输数据的 4.DMA,第四章 DMA接口,3,什么是DMA DMA传送的过程 DMA控制器intel8237A DMA传送的应用,第四章 DMA接口,4,§4.1 DMA概述,一、DMA工作过程 CPU对DMAC进行设定 1.外设向DMAC发出DMA请求 2.DMAC向CPU发出DMA请求 3.CPU执行完当前的总线周期后,向DMAC发出响应请求的应答信号 CPU让出总线的控制权,由DMAC控制 4.DMAC向外设发出DMA请求的应答信号 5.进行DMA传送 6.传送完毕,CPU重新控制总线,,5,§4.1 DMA概述,二、DMA(Direct Memory Access)的特点 1.建立一个专用通道,让存储器与高速外设(例如硬盘)直接交换数据,不需要CPU的干预 2.DMA期间,系统总线由DMA控制器控制 3.内存地址的修改、传送完毕的结束都是由硬件电路实现的,大大提高了传输速度。 4.不必保护现场 5.CPU不能读取指令,不能检测和响应其它设备的中断请求 6.若系统采用动态存储器,且CPU负责刷新,则此时CPU不能刷新动态存储器 DMAC:DMA控制器,6,§4.1 DMA概述,三、DMAC的功能 1.能接受CPU的编程 2.能向CPU发出DMA请求信号 3.CPU响应DMA请求后,DMAC能接管总线 4.能向地址总线发出地址信号 5.能向控制总线发出读或写的控制信号 6.能控制传送数据的字节数 7.能判断DMA操作是否结束,结束时发出EOP信号,释放总线,7,§4.1 DMA概述,四、DMAC的工作方式 1.主方式:是系统总线的主控者,取代CPU控制DMA传送。 2.从方式: 在成为主控者之前,必须由CPU对它编程以确定通道的选择、数据传送的模式、存储器区域首地址、传送总字节数等。 在DMA传送之后,也有可能由CPU读取DMA控制器的状态。 这时对于CPU来说,8237A只是个外部设备,是系统总线的从设备。 这两种工作方式不需要用户去选择,8,§4.1 DMA概述,五、DMA数据传输的应用场合 1.存储器与外设之间的数据传输 2.存储器与存储器之间,外设与外设之间 3.高速的数据采集卡,9,§4.2 intel8237A DMA控制器,DIP40 PLCC封装,10,§4.2 intel8237A DMA控制器,11,一、8237A内部结构,12,二、8237A的管脚,DREQ0~DREQ3:DMA通道请求。 DACK0~DACK3:DMA通道响应。 HRQ: 总线请求。8237A输出有效的HRQ高电平,向CPU申请使用系统总线。 HLDA:总线响应。8237A接受来自CPU的响应信号HLDA,取得了总线的控制权。 ADSTB:地址选通。DMA传送开始时,输出,高有效,把在DB0~DB7上输出的高8位地址锁存在外部锁存器中。 AEN: 地址允许。输出,高有效,将锁存的高8位地址送入系统总线,与芯片此时输出的低8位地址组成16位存储器地址。 MEMR:存储器读。 MEMW:存储器写。 IOR:I/O读。 IOW*:I/O写 EOP:过程结束。,13,二、8237A的管脚,,A0~A7:地址线 DB0~DB7:数据线/高8位地址线,,,14,8237A在系统中的连接,15,§4.2 intel8237A DMA控制器,三、8237A的寄存器,16,三、8237A的寄存器,,,00 请求模式 01 单字节模式 10 数据块模式 11 级联模式,0 地址增 1 地址减,00 DMA校验 01 DMA写 10 DMA读 11 非法,00 通道0 01 通道1 10 通道2 11 通道3,0 禁止自动初始化 1 允许自动初始化,,,,,,工作方式寄存器(8×4),17,三、8237A的寄存器,,,1 该通道有DMA请求 0,1 该通道计数结束 0,,,状态寄存器(8),18,三、8237A的寄存器,,,仅Mem-Mem传送时用到,暂存寄存器(8),19,三、8237A的寄存器,,× × × × ×,00 通道1 。。 01 通道2 。。,,,请求寄存器(4),当工作在数据块传送方式时也可以通过软件发出DMA请求 若是存贮器到存贮器传送,则必须由软件请求启动通道0。 不可屏蔽!,1 设置DMA请求 0 ——,,20,三、8237A的寄存器,,× × × × ×,00 通道1 。。 01 通道2 。。,,,屏蔽寄存器(4),1 设置DMA屏蔽 0 清除,,单通道屏蔽字格式,21,三、8237A的寄存器,,× × × ×,,屏蔽寄存器(4),1 设置Di通道屏蔽 0 清除,,主屏蔽字格式,22,三、8237A的寄存器,,0 DACK低电平有效,0 DREQ高电平有效,0 启用8237 1 禁用8237,1 Mem-Mem时源地址保持不变,0 固定优先级 1 优先级循环,,,,,,命令寄存器(8),,0 不扩展写信号,0 一般时序 1 压缩时序,,,1 Mem-Mem,23,三、8237A的寄存器,,基地址寄存器(16) 基字节数寄存器(16),基地址寄存器:存放DMA传送的内存起始地址 基字节数寄存器:存放DMA传送的字节数减1 寄存器的内容在初始化时由程序写入,先写低字节,后写高字节,其内容在整个数据块的DMA传输过程中保持不变。 这二个寄存器的内容只能写入,不能读出。,24,三、8237A的寄存器,,当前地址寄存器(16),保存DMA传送的当前地址值; 每次传送后该寄存器的值自动加1或减1 这个寄存器的值可由CPU读出。,25,三、8237A的寄存器,26,三、8237A的寄存器,,字数暂存器、地址暂存器(16),不可操作,27,三、8237A的寄存器,,先/后触发器 地址寄存器、计数寄存器均为16位 8237A只有8条数据线 0:写低8位+置先后触发器=1 1:写高8位+置先后触发器0 硬件复位和Reset后此触发器均为0,28,8237A各寄存器对应的端口地址,29,§4.2 intel8237A DMA控制器,四、DMA传送方式 字节传送方式 数据块传送方式 请求传送方式 级联方式,30,§4.2 intel8237A DMA控制器,单字节传送: 每次DMA传送时仅传送一个字节,效率略低 DMA传送之间CPU有机会重新获取总线控制权,31,§4.2 intel8237A DMA控制器,数据块方式: 由DREQ启动就连续地传送数据 一次请求传送一个数据块,效率高 整个DMA传送期间CPU长时间无法控制总线(无法响应其他DMA请求、无法处理中断等),32,§4.2 intel8237A DMA控制器,请求方式: DREQ信号有效就连续传送数据; DREQ信号无效,DMA传送被暂时中止,8237A释放总线,CPU可继续操作; DREQ信号再次有效,DMA传送就继续进行。 DMA操作可由外设利用DREQ信号控制传送的过程,33,§4.2 intel8237A DMA控制器,级联方式: 用于通过多个8237A级联以扩展通道; 第一级除了负责向CPU输出HRQ和HLDA外,只起优先权网络的作用,实际的操作由第二级芯片完成 还可由第二级扩展到第三级等。,34,§4.2 intel8237A DMA控制器,8237A级联方式的连接,,35,§4.2 intel8237A DMA控制器,五、8237A的传送类型 1.读传送 2.写传送 3.校验传送 4.存储器到存储器传送,36,8237A的时序,8237A的两种操作周期: 空闲周期、有效周期 每个周期均由一定数量的时钟状态组成 七种时钟状态:空闲状态SI、起始状态S0、传送状态S1-S4、等待状态SW 空闲周期====连续的SI状态: 检测CS以便接受CPU编程 检测DREQ以便向CPU申请总线控制权,有效周期 有效周期的第一个状态是S0: 检测到DREQ后,DMAC向CPU发HRQ(HOLD)请求,进入过渡状态.等待CPU应答. 在CPU的回答信号HLDA到达后,8237A进入DMA有效周期。,S1:传送地址允许信号,以便锁存A15-A8 S1是只在有地址的低8位向高8位进位或借位时才出现的状态周期,也就是当需要对地址锁存器中的A8—A15的内容进行更新时,才去执行S1状态周期,否则,省去S1.可见,每256次传送中只有一个DMA周期中有S1。,S2:输出16位RAM地址和发DACK信号寻址I/O设备 高8位地址由数据线DB0-DB7输出,发ADSTB,其下降沿将A8-A15锁存,低8位地址由地址线A0-A7输出。 另外,S2状态周期还向申请DMA传送的外设发出请求回答信号ACK,以寻址I/O设备,为数据传送作好准备。随后发读写命令。,S3:读周期 DMA读:MEMR* DMA写:IOR*,S4: 发出IOW(DMA读)或MEMW(DMA写)命令。把读周期之后保持在数据线DB0—DB7上的数据字节写到RAM或I/O接口,到此,完成了一个字节的DMA传送。 测试8237A的传送方式,若不是块传送也不是请求传送,则立即返回至S2 若全部数据传送完毕,返回SI状态,

展开阅读全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值