《计算机接口技术ppt电子教案课件第四章dma接口》由会员分享,可在线阅读,更多相关《计算机接口技术ppt电子教案课件第四章dma接口(42页珍藏版)》请在金锄头文库上搜索。
1、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向外设发出D
2、MA请求的应答信号 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.能接受C
3、PU的编程 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只是个外部设备,是系统总线的从设备。 这
4、两种工作方式不需要用户去选择,8,4.1 DMA概述,五、DMA数据传输的应用场合 1.存储器与外设之间的数据传输 2.存储器与存储器之间,外设与外设之间 3.高速的数据采集卡,9,4.2 intel8237A DMA控制器,DIP40 PLCC封装,10,4.2 intel8237A DMA控制器,11,一、8237A内部结构,12,二、8237A的管脚,DREQ0DREQ3:DMA通道请求。 DACK0DACK3:DMA通道响应。 HRQ: 总线请求。8237A输出有效的HRQ高电平,向CPU申请使用系统总线。 HLDA:总线响应。8237A接受来自CPU的响应信号HLDA,取得了总线的控
5、制权。 ADSTB:地址选通。DMA传送开始时,输出,高有效,把在DB0DB7上输出的高8位地址锁存在外部锁存器中。 AEN: 地址允许。输出,高有效,将锁存的高8位地址送入系统总线,与芯片此时输出的低8位地址组成16位存储器地址。 MEMR:存储器读。 MEMW:存储器写。 IOR:I/O读。 IOW*:I/O写 EOP:过程结束。,13,二、8237A的管脚,A0A7:地址线 DB0DB7:数据线/高8位地址线,14,8237A在系统中的连接,15,4.2 intel8237A DMA控制器,三、8237A的寄存器,16,三、8237A的寄存器,00 请求模式 01 单字节模式 10 数据
6、块模式 11 级联模式,0 地址增 1 地址减,00 DMA校验 01 DMA写 10 DMA读 11 非法,00 通道0 01 通道1 10 通道2 11 通道3,0 禁止自动初始化 1 允许自动初始化,工作方式寄存器(84),17,三、8237A的寄存器,1 该通道有DMA请求 0,1 该通道计数结束 0,状态寄存器(8),18,三、8237A的寄存器,仅Mem-Mem传送时用到,暂存寄存器(8),19,三、8237A的寄存器, ,00 通道1 。 01 通道2 。,请求寄存器(4),当工作在数据块传送方式时也可以通过软件发出DMA请求 若是存贮器到存贮器传送,则必须由软件请求启动通道0。
7、 不可屏蔽!,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) 基字节数
8、寄存器(16),基地址寄存器:存放DMA传送的内存起始地址 基字节数寄存器:存放DMA传送的字节数减1 寄存器的内容在初始化时由程序写入,先写低字节,后写高字节,其内容在整个数据块的DMA传输过程中保持不变。 这二个寄存器的内容只能写入,不能读出。,24,三、8237A的寄存器,当前地址寄存器(16),保存DMA传送的当前地址值; 每次传送后该寄存器的值自动加1或减1 这个寄存器的值可由CPU读出。,25,三、8237A的寄存器,26,三、8237A的寄存器,字数暂存器、地址暂存器(16),不可操作,27,三、8237A的寄存器,先/后触发器 地址寄存器、计数寄存器均为16位 8237A只有8
9、条数据线 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长时间无法控制总线(无法
10、响应其他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级
11、联方式的连接,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到达后,823
12、7A进入DMA有效周期。,S1:传送地址允许信号,以便锁存A15-A8S1是只在有地址的低8位向高8位进位或借位时才出现的状态周期,也就是当需要对地址锁存器中的A8A15的内容进行更新时,才去执行S1状态周期,否则,省去S1.可见,每256次传送中只有一个DMA周期中有S1。,S2:输出16位RAM地址和发DACK信号寻址I/O设备 高8位地址由数据线DB0-DB7输出,发ADSTB,其下降沿将A8-A15锁存,低8位地址由地址线A0-A7输出。 另外,S2状态周期还向申请DMA传送的外设发出请求回答信号ACK,以寻址IO设备,为数据传送作好准备。随后发读写命令。,S3:读周期 DMA读:MEMR* DMA写:IOR*,S4: 发出IOW(DMA读)或MEMW(DMA写)命令。把读周期之后保持在数据线DB0DB7上的数据字节写到RAM或IO接口,到此,完成了一个字节的DMA传送。 测试8237A的传送方式,若不是块传送也不是请求传送,则立即返回至S2 若全部数据传送完毕,返回SI状态,