欢迎来到天天文库
浏览记录
ID:37790558
大小:991.10 KB
页数:60页
时间:2019-05-31
《数字量输入输出-DMA控制系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、直接存储器存取DMADMA传输的概念:外部设备直接与计算机存储器进行传送的I/O方式。读写数据时接管总线,像CPU一样成为总线的主控器件。CPU:接受DMA控制器的请求并交出总线控制权(DirectMemoryAccess)DMA控制器的基本功能CPUDMAC(i8237)内存外设总线响应总线请求DMA控制器的功能1、编程设定DMA的传输方式、访问的内存地址、字节数2、对DMA请求(DREQ)屏蔽或允许,确定优先级3、向CPU提出总线请求信号(HRQ)4、接收CPU总线响应信号(HLDA),接管总线5、向被响应的设备传达DMA允许信
2、号(DACK)6、管理传送数据,修改储存器地址和计数字节7、传输完毕,发出EOP结束信号,CPU收回总线控制权I/O向DMACDMAC向CPU响应DMAC向发请求CPU发请求DMAC请求I/O发响应DMA传送结束DMA传送进行DMAC发出控制信号DMAC发出内存地址DMA工作过程8237内部结构8237A有4个独立的DMA通道内部寄存器基址寄存器(4个)和当前地址寄存器(4个)基字节计数器(4个)和当前字节计数器(4个)临时地址寄存器状态寄存器命令寄存器临时寄存器模式寄存器(4个)屏蔽寄存器请求寄存器8237外部引脚8237A主从两
3、面性:作为DMAC,8237A是可控制总线的主模块。作为I/O芯片,8237A可被处理器读写。注意8237A主-从地址的变化。8237A引线说明:DB7-DB0:双向数据总线。8237A为从模块时被处理器编程或读状态,DB7-DB0作为数据线,传输数据或命令字。8237A为主模块时DB7-DB0输出地址A15-A8,在存储器到存储器传送操作时经DB7-DB0,将存储器数据送8237A暂存器。A3-A0:地址线,从模块时为输入,处理器寻址8237A;主模块时输出最低4位地址。A7-A4:地址线,主模块时输出A7-A4。CS:片选,从模
4、块时处理器用来寻址8237A。IOR,IOW:I/O读写控制,双向。8237A在从模块时为输入,在主模块时为输出。AEN输出,DMA地址允许信号,高电平有效ADSTB输出:8位地址选通信号;在主模块时允许外部锁存器锁存8237A的高8位地址。MEMR,MEMW:输出,存储器读写控制,主模块时送存储器。READY:输入,准备就绪,主模块时控制总线周期的长度,与慢速设备同步。RESET:输入,复位信号,复位时屏蔽寄存器置1,其它寄存器置0。EOP:双向。输出时,表明内部通道传送结束;输入时,表明外部强迫DMA传送停止。DREQ0-DRE
5、Q3:I/O设备DMA请求输入信号。DACK0-DACK3:输出DMA请求的响应。HRQ:8237A向处理器发出的总线请求信号。HLDA:处理器发给8237A的总线请求响应信号。DMA时序图(P347图5.64)可作外设片选交出总线(AB/DB/CB)8237的工作模式1.单字节传输模式(singletransfermode)2.块传输模式(blocktransfermode)3.请求传输模式(demandtransfermode)4.级联模式(cascademode)1.单字节传输模式(singletransfermode)在单字
6、节传输方式下,DMA控制器每次请求总线只传送一个字节数据,传送完后即释放总线控制权。在此方式下,总线控制权处于CPU与DMA控制器交替控制之中,其间,总线控制权经过多次交换。以从内存输出一个字节数据到外设的DMA传送过程为例,具体说明DMA的操作过程。(6)内存把数据送数据总线(7)接口锁存数据内存接口DMA控制器I/O设备8086和总线控制逻辑HOLDHLDA(1)接口准备就绪,发DMA请求(2)发总线请求(3)总线允许(5)DMA请求得到确认(9)8086收回总线控制权(8)撤销总线请求(4)DMA控制器把地址送地址总线数据总线
7、控制总线地址总线图11.10以DMA方式输出一个字节数据的工作过程若从外设往内存输入一个数据块(输入过程),在单字节传输模式下,其主要工作过程为:(1)I/O接口向DMA控制器发送DMA请求信号;(2)DMA控制器向CPU发总线请求信号,当得到CPU送来的总线允许信号后,DMA控制器获得总线控制权;(3)DMA控制器将其地址寄存器的内容送到地址总线上;(4)DMA控制器往I/O接口发送DMA响应信号,并接着发出读I/O接口信号IOR,令I/O接口把数据送到数据总线上;(5)DMA控制器发出存储器写信号MEMW,将数据传送到由地址总线
8、上的地址所指向的内存单元;(6)DMA控制器放弃对总线的控制权;(7)地址寄存器加1;(8)字节计数寄存器减1;(9)如果字节计数寄存器的值不为零,则返回第一步,否则结束。8237仅在空闲状态SI(CPU控制总线)时,采样DREQ信号
此文档下载收益归作者所有