数字量输入输出DMA控制系统.ppt_第1页
数字量输入输出DMA控制系统.ppt_第2页
数字量输入输出DMA控制系统.ppt_第3页
数字量输入输出DMA控制系统.ppt_第4页
数字量输入输出DMA控制系统.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

直接存储器存取DMA,DMA传输的概念:,外部设备直接与计算机存储器进行传送的I/O方式。 读写数据时接管总线,像CPU一样成为总线的主控器件。 CPU:接受DMA控制器的请求并交出总线控制权,(Direct Memory Access),DMA控制器的基本功能,DMA控制器的功能,I/O向DMAC DMAC向 CPU响应 DMAC向 发请求 CPU发请求 DMAC请求 I/O发响应,DMA传 送结束,DMA传 送进行,DMAC发出 控制信号,DMAC发出 内存地址,DMA工作过程,8237内部结构,8237A有4个独立的DMA通道 内部寄存器 基址寄存器(4个)和当前地址寄存器(4个) 基字节计数器(4个)和当前字节计数器(4个) 临时地址寄存器 状态寄存器 命令寄存器 临时寄存器 模式寄存器(4个) 屏蔽寄存器 请求寄存器,8237外部引脚,8237A主从两面性: 作为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: 片选,从模块时处理器用来寻址8237A。 IOR,IOW:I/O读写控制,双向。8237A在从模块时 为输入,在主模块时为输出。 AEN 输出,DMA地址允许信号,高电平有效 ADSTB 输出:8位地址选通信号;在主模块时允许外部锁存器锁存8237A的高8位地址。 MEMR,MEMW:输出,存储器读写控制,主模块时送存储器。 READY:输入,准备就绪,主模块时控制总线周期的长度,与慢速设备同步。,RESET:输入,复位信号,复位时屏蔽寄存器置 1,其它寄存器置0。 EOP:双向。输出时,表明内部通道传送结束; 输入时,表明外部强迫DMA传送停止。 DREQ0-DREQ3:I/O设备DMA请求输入信号。 DACK0-DACK3:输出DMA请求的响应。 HRQ:8237A向处理器发出的总线请求信号。 HLDA:处理器发给8237A的总线请求响应信号。,DMA 时序图(P347图5.64),可作外设片选,交出总线(AB/DB/CB),8237的工作模式,1. 单字节传输模式(single transfer mode) 2. 块传输模式(block transfer mode) 3. 请求传输模式(demand transfer mode) 4. 级联模式(cascade mode),1. 单字节传输模式(single transfer mode),在单字节传输方式下,DMA控制器每次请求总线只传送一个字节数据,传送完后即释放总线控制权。 在此方式下,总线控制权处于CPU与DMA控制器交替控制之中,其间,总线控制权经过多次交换。 以从内存输出一个字节数据到外设的DMA传送过程为例,具体说明DMA的操作过程。,(6) 内存把数据送数据总线,(7) 接口锁存数据,内存,接口,DMA 控制器,I/O 设备,8086 和总线 控制逻辑,HOLD HLDA,(1) 接口准备就绪,发DMA请求,(2) 发总线请求,(3) 总线允许,(5) DMA请求得到确认,(9) 8086收回总线控制权,(8) 撤销总线请求,(4) DMA控制器把地址送地址总线,数据总线,控制总线,地址总线,图 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,将数据传送到由地 址总线上的地址所指向的内存单元; (6) DMA控制器放弃对总线的控制权; (7) 地址寄存器加1; (8) 字节计数寄存器减1; (9) 如果字节计数寄存器的值不为零,则返回第一步,否则结 束。,8237仅在空闲状态SI(CPU控制总线)时,采样DREQ信号并进行优先级比较,一旦进入DMA过程,8237只在S1S4之间循环,不能再对DREQ信号进行采样或优先级比较,即不会发生DMA嵌套。 单字节传输模式的优点是系统总线不至于长时间陷入对某一个DMA通道的服务。 PC系列中给用户提供的DMA通道只允许使用单字节传输模式。 仍比查询、中断方式快很多,2. 块传输模式(block transfer mode),块传输模式是指DMA控制器每次请求总线即连续传送一个数据块,待整个数据块全部传送完成后再释放总线控制权。这种模式传输效率较高。 一次所传送数据块的最大长度可达64KB,由于在DMA数据传送期间,CPU须将总线控制权交给DMAC,这相当于断绝了CPU与存储器等外部器件的往来,致使CPU无法获得执行所需的指令和数据,也无法获得外部的中断请求信号,这一方面会影响CPU的工作,同时也将影响整个系统的运转。因此,一次DMA传送的时间不宜过长,以免对整个系统造成不可挽回的影响。,3. 请求传输模式(demand transfer mode),和块传输模式相比,仅多了一个功能,即可以通过撤销DREQ信号来打断传输过程。 每传输完一个字节,DMA控制器都要检测由I/O接口发来的“DMA请求”信号(DREQ信号)是否仍然有效,如果该信号仍有效,则继续进行DMA传输; 否则,就暂停传输,交还总线控制权给CPU,直至“DMA请求”信号再次变为有效,数据块传输则从刚才暂停的那一点继续进行下去。 请求传输模式允许DMA过程在单字节传输模式和块传输模式之间自动切换,增加了灵活性,降低了对I/O设备传输速度的要求:如果I/O设备速度足够快,则进行块传输;如果I/O设备速度较慢,则随时可以等一下。,4. 级联模式(cascade mode),在级联方式下,将多个8237级联起来,以扩展DMA通道数。后一级的HRQ和HLDA信号连到前一级的DREQ和DACK上。,在级联方式下,当第二级8237的请求得到响应时,第一级 8237仅输出HRQ信号而不能输出地址及控制信号,因为第二级的8237才是真正的主控制器,而第一级的8237仅应起到传递DREQ请求信号及DACK应答信号的作用。,8237的操作类型,在前三种工作方式下,DMA传送有三种类型: DMA读传送 、DMA写传送、DMA校验传送 DMA读:是指把数据由存储器传送至I/O接口,操作时先由 /MEMR有效从存储器读出数据放 在数据总线上,然 后再由/IOW有效把数据写入I/O接口。 DMA写: 是指把数据由I/O接口传送至存储器,操作时先由IOR 有效从I/O接口读出数据放在数据总线上,然后再由 /MEMW有效把数据写入存储器. DMA校验:也被称为假传送(pseudo transfers)。在校验传送 时,8237虽然也像读传送或写传送一样地产生地址以 及EOP信号等,但存储器和I/O接口的读、写控制信号 均处于无效状态,所以实际上并不进行数据传送。 这种传送类型一般是用于对DMAC器件测试时使用。,8237的存储器到存储器的传送方式(1),要使用两个通道共同完成存储器到存储器的传送方式 通道0 作DMA读 通道1 作DMA写 通道0的地址寄存器编程为源区地址; 通道1的地址寄存器编程为目的区地址, 通道1的字节计数寄存器编程为传送的字节数。 由于此传送过程没有外部设备参与,因此没有外部引入的DREQ信号来启动DMA操作。于是,需要对通道0写入一个软件DREQ请求命令,产生HRQ信号启动DMA。,每传送一个字节要用8个S状态,前4个状态为DMA读,后4个状态为DMA写。 通道0以当前地址寄存器内容为源地址到源存储器读出数据送入8237内部的暂存寄存器,然后以通道1将自己的当前地址寄存器内容放到地址总线上,发出/MEMW有效信号,把数据从暂存寄存器中写入目的区。 每传送一个字节,源地址和目的地址都要修改(增1或减1),字节数减1。直至通道1的字节计数结束,产生EOP有效信号,才停止DMA传送。也允许外部输入EOP有效信号来中止传输。,8237的存储器到存储器的传送方式(2),此时8237是作为CPU的I/O接口芯片:,CS选中芯片 地址信号A3A0选择内部寄存器 IOW和IOR决定对寄存器是读还是写,8237初始化编程,8237寄存器的寻址,进行DMA传输前,对各寄存器写不同的内容,即进行初始化编程。,初始化内容分为数值型和功能型,1.数值型,每个通道将传输中要访问的存储器的初始地址写入基地址寄存器和当前地址寄存器(同时写入),把要求传输的字节数写入基字节数计数器和当前字节计数器(同时写入).,从高/低触发器零状态起,先写入低字节,再写入高字节,高/低触发器,D7 D0,IOW,每传送一个字节,当前寄存器内容加1或减1(由模式寄存器设定)修正,当前字节数计数器从初始值减到0,还要再传输一个字节,从0变成0FFFFH后,才发出EOP信号结束DMA过程.,初始化编程时把真正传输的字节数减1后再写到字节数计数器中.,如设置了自动重置功能, 当EOP信号产生时, 将自动把基地址寄存器和基字节数寄存器的内容再次置入当前地址寄存器和当前字节数寄存器,重复DMA传输.,自动重置功能在写模式寄存器时由D5写入,2.功能型,命令寄存器 模式寄存器 请求寄存器 屏蔽寄存器 状态寄存器,0 禁止存储器到存储器传送 1 允许存储器到存储器传送,0 DACK低电平有效 1 DACK高电平有效,0 DREQ高电平有效 1 DREQ低电平有效,0 正常写 1 扩展写 X 若D3=1,0 固定优先权 1 循环优先权,0 禁止通道0地址保存 1 允许通道0地址保存 X 若D0=0,0 允许8237工作 1 禁止工作,命令寄存器,旋转优先权,D7D6规定DACK和DREQ有效极性 D5D3选择工作时序 D4规定优先权编码方式 存储器到存储器传输时,若D1=1,允许将通道1指定的目的存储器一批单元的内容全传到通道0指定的源区的某一单元内容 D2=1,禁止本片工作,一片8237仅一个命令控制字,其内容对4个通道都有效。复位后,各位都清零。,00 校验传送 01 写传送 10 读传送 11 非法 XX 若D7D6=11,模式寄存器,D0,D1,D2,D3,D4,D5,D6,D7,00 选择通道0 01 选择通道1 10 选择通道2 11 选择通道3,0 清除请求 1 设置请求,无关,请求寄存器,每个通道都有一个请求位 可用软件命令对其进行置位/复位操作,对请求位的置位等效于外部产生一个有效的DREQ(I/O设备的DMA请求信号)信号,二者的优先级排队情况也一样。软件请求不受屏蔽寄存器控制,但只能用于块传送方式。存储器到存储器的传送只能用通道0的软件请求启动。一个通道的DMA结束时,其请求位被复位。整个芯片的复位操作清除全部请求寄存器。,关于请求寄存器,00 选择通道0 01 选择通道1 10 选择通道2 11 选择通道3,0 清除屏蔽位 1 置位屏蔽位,无关,寄存器地址 A3A0=1010B,屏蔽控制字格式1控制屏蔽某一通道,屏蔽寄存器是公共的 某位置1时,外部对应的DREQ信号被屏蔽,不予响应,无关,0 不屏蔽通道0 1 屏蔽通道0,0不屏蔽通道1 1屏蔽通道1,0不屏蔽通道3 1屏蔽通道3,0不屏蔽通道2 1屏蔽通道2,寄存器地址A3A0=1111B,屏蔽控制字格式2控制屏蔽4个通道,对 8237做一次写操作(虚拟写,没有电路接收数据总线上的数据),则将清除屏蔽寄存器所有位 (4个通道全开放)。,此时数据总线上可为任意值,一般情况下,通道在一次DMA传送结束后,自动设置屏蔽位,再次传输需要用软件清除屏蔽位。自动重置在每次DMA传送结束后不设置屏蔽。,清除屏蔽寄存器 (地址A3A0=1110B),1 通道3请求,1 通道2请求,1 通道1请求,1 通道0请求,1 通道0传输结束,1 通道1传输结束,1 通道2传输结束,1 通道3传输结束,状态寄存器,没有进入DMA前,CPU通过状态字查询。 低4位反映传输完成情况,高4位反映请求情况。 正常计数结束,或外部输入EOP,响应相应位复位。 单字节传输模式下,CPU获得总线控制权,通过这种查询了解DMA进行情况。,状态寄存器,关于软件命令:,8237寄存器的寻址,关于阅读时序,应用举例(P354/P310),PC/XT机中8237连接简图,E,E,244,WA,WB,RB,RA,READ,WRITE,D,0,D,7,DACK,2,DACK,3,AEN,XA,9,XA,8,XA,7,XA,6,XA,5,G,G2A,G2B,C,B,A,74LS,138,Y,0,CS,CLK,HLDA,MEMW,IOR,IOW,MEMR,RESET,G,OE,D,0

温馨提示

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

评论

0/150

提交评论