微型计算机原理与接口技术课件 第08章 DMA接口_第1页
微型计算机原理与接口技术课件 第08章 DMA接口_第2页
微型计算机原理与接口技术课件 第08章 DMA接口_第3页
微型计算机原理与接口技术课件 第08章 DMA接口_第4页
微型计算机原理与接口技术课件 第08章 DMA接口_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

第8章DMA接口第8章DMA接口DMA概述Intel8237ADMAC8237A在IBMPC系列机中的应用8237A的程序设计直接存储器存取(DMA)概述DMAC的基本功能CPUDMACMEMI/O外设A0~A15,MEMR#IOW#,DACK1能接受CPU的编程,进行功能设定。2能向CPU发出DMA请求信号(HOLD)。3在CPU响应DMA请求(HLDA)之后接管总线。4能发出地址信号和读写信号。5能控制传送数据的字节数。6能判断DMA操作是否结束,并释放总线的控制权,还给CPU。直接存储器存取(DMA)概述DMAC的工作过程CPUDMACMEMI/O外设A0~A15,MEMR#IOW#,DACK1CPU对DMAC进行初始化,设定存储器首地址和数据长度。2外部设备向DMAC发DMA请求信号(DREQ)。3DMAC向CPU发DMA请求(HOLD)。5CPU将总线控制权交给DMAC。6DMAC向外部设备发DMA应答信号(DACK)。7进行DMA传送,由DMAC发地址信号和控制信号(循环)。4CPU向DMAC发响应请求信号(HLDA)。8DMA传送结束,DMAC撤除请求(HOLD),CPU重新控制总线。INTEL8237ADMACDMAC的引脚信号DB0~7IOR#IOW#CS#A0~3HRQHLDA…DREQ0DACK0MEMR#MEMW#连CPUHOLDHLDADREQ3DACK3IOR#IOW#8237AEOP#A4~7A8~15A0~3AENADSTB连外设INTEL8237ADMACDMAC的内部结构基地址寄存器(16位)

--存放DMA传送的内存首址,在初始化时,由CPU以先低字节后高字节顺序写入。传送过程中基址寄存器的内容不变。

--只能写,不能读。当前地址寄存器(16位)

--存放DMA传送过程中的内存地址,在每次传送后地址自动增1(或减

1),它的初值与基址寄存器的内容相同,并两者由CPU同时写入。在自动预置条件下,EOP信号使其内容重新为基地址值。

--可读可写。

基址和当前地址寄存器基计数寄存器和当前计数寄存器基计数寄存器(16位)

--存放DMA传送的总字节数。在初始化时,由CPU以先低字节后高字节顺序写入。传送过程中基计数寄存器内容不变。

--预置的初值为N-1。当前计数寄存器(16位)

--存放DMA传送过程中没有传送完的字节数,在每次传送之后,字节计数器减1,当减到0时,产生EOP,表示传送完毕。

--初值与基计数寄存器的内容相同,并由CPU同时写入。

--自动预置时,EOP信号使内容重新预置为基计数值。

--可读可写。状态寄存器--只读;寄存8237A的状态(哪些通道有请求,哪些已结束)命令寄存器:只写;控制8237A的操作;由RESET和总清除软命令清除说明MM:CH0发软件请求;CH1控制数据块大小;CH0提供源M地址,CH1提供目标M地址;一次传送需两个总线周期固定优先级:CH0最高,CH3最低例:禁止存储器到存储器传送,正常时序,滞后写入,固定优先级,允许8237A工作,DREQ信号高电平有效,DACK低电平有效。命令字为:00000000B=00H

MOVAL,00HOUT08H,AL级联方式:主片不输出地址和读写信号方式寄存器例:软盘读/写操作选择DMA通道2,单字节传送,地址增1,不用自动预置,写出读/写/校验操作的方式字。写操作:01000110B=46H;读盘(DMA写)读操作:01001010B=4AH;写盘(DMA读)校验操作:01000010B=42H;校验盘(DMA校验)如:MOVAL,4AHOUT0BH,AL;MI/O暂存寄存器MM时暂存读出的数据,由RESET和总清除软命令清除屏蔽寄存器如:CH1开放

MOVAL,01HOUT0AH,AL-综合屏蔽字如:CH1、CH2开放,其余屏蔽

MOVAL,09HOUT0FH,AL如:CH2屏蔽

MOVAL,06HOUT0AH,AL-屏蔽寄存器

用来禁止或允许通道的DMA请求;当屏蔽位=1时,禁止本通道的DREQ进入请求寄存器;若通道编程为不自动预置,则当该通道遇到EOP时,它所对应的屏蔽位=1;屏蔽命令有两种:单通道屏蔽字和4通道屏蔽字。

请求寄存器DMA请求由I/O设备发出,也可由软件产生。请求寄存器就是用于由软件来启动DMA请求的。-只写;由软件启动DMA操作,存储器到存储器传送就是利用软件DREQ来启动;必须为块字节传输方式,在传送结束后,EOP清除相应的请求位;每执行一次软件请求DMA传送,都要对请求寄存器编程一次;-RESET信号清除整个请求寄存器;-软件请求位不可屏蔽。如:CH0发出请求

MOVAL,04HOUT09H,AL8237A各寄存器对应的端口地址A3A2A1A0IOR#IOW#命令A3A2A1A0IOR#IOW#命令000010写通道0基地址寄存器100010写控制寄存器000110写通道0基计数寄存器100110写DMA请求寄存器001010写通道1基地址寄存器101010写DMA屏蔽寄存器001110写通道1基计数寄存器101110写方式寄存器010010写通道2基地址寄存器110010清先后触发器010110写通道2基计数寄存器110110读暂存寄存器011010写通道3基地址寄存器110110发复位命令011110写通道3基计数寄存器111010请除屏蔽标志100001读状态寄存器111101综合屏蔽命令8237A的工作时序两种工作状态可看成两个操作周期:空闲周期(被动态)和有效周期(主动态);还有一个从空闲周期到有效周期的过渡阶段;共有7种状态周期空闲周期SI过渡状态S0未发生DMA请求时检测CS#:CPU是否对其操作检测DREQ:外设是否有请求DMAC发出HRQ之后,收到HLDA之前有效周期DMAC收到HLDA之后,接管总线包括4个状态周期(S1、S2、S3、S4),慢速I/O或M还可通过令READY=0申请插入SW,8237A在S3中检测READY,SW中的操作同S3S1:更新高8位地址.AEN、ADSTB有效,DMAC将M的A8~15放到DB0~7上;只有当A8~15有变化时才出现S2:选中两个介质.输出16位地址选中M:低8位由A0~7直接输出;高8位由DB0~7经外部锁存器(由ADSTB下降沿锁存)输出;发出有效的DACK选中I/OS3:读周期.发出IOR#(DMA写)或MEMR#(DMA读),从源读数据到DB0~7,等待写周期S4:写周期.发出MEMW#(DMA写)或IOW#(DMA读),将DB0~7上的数据写到目标中提前写(扩展写):写提前到与读同时开始(S3),与读一样扩展到2个时钟周期压缩时序:去掉S3,读与写同为1个时钟周期SW:慢速I/O或M传送时,在S3和S4间插入SWNOTEINTEL8237ADMACDMAC的工作方式单字节传送方式:也可以传送一个数据块,但CPU至少可在两次DMA传送之间获得一个完整的总线周期,即每传送一个字节,就将总线控制权换给CPU。块传送方式:整个数据块传送期间,总线一直被DMAC控制,直到计数寄存器的值由0变成FFFFH,产生T/C信号。请求传送方式:可连续传送,直到遇到T/C或外部EOP或DREQ不再有效为止。INTEL8237ADMACDMAC的传送类型读传送:数据由主存储器传送到外部设备。写传送:数据由外部设备传送到主存储器。校验传送:假传送。也产生地址和控制信号,但都视为无效。仅为了校验内部的寻址逻辑和控制逻辑是否正确。用户不用这种方式。存储器到存储器传送:将存储器中的一个数据块传到另一个地方。INTEL8237ADMAC8237A的级联INTEL8237ADMACDMAC在PC系列机上的应用在PC/XT上的应用(一片,四个8位通道)

通道0:系统动态存储器(DRAM)的刷新。通道1:保留给用户使用。通道2:内存与软盘之间的高速数据交换。通道3:内存与硬盘之间的高速数据交换。通道2:内存与软盘之间的高速数据交换。通道0、1、3~6:均保留给用户使用。在PC/AT上的应用(两片级联,从片四个8位通道,主片三个16位通道)

INTEL8237ADMAC8位通道与16位通道8237A用在8086或80286为CPU的微型机上时,偶地址的数据总是出现在数据总线D7~0上,奇地址的数据出现在D15~8上。而8237A只有8位数据线,对连续的I/O端口进行读写时,则需要进行转换。为简化设计,就直接将主片8237A设计成16位通道,即将地址总线上的AB0空着,AB1、2与8237A的A0、1相连。内部16个寄存器的I/O端口号均为偶地址。在进行DMA传送时,DMAC发出的地址A15~0实际上是与地址总线AB16~1相连,AB0置0(BHE=1)。这样,存储器与外部设备之间是进行的16位数据交换。8237AA0A1A2A15AB0AB1AB2AB3AB16“0”MEMI/OBLE=0BHE=1INTEL8237ADMAC8237A的地址扩展页地址寄存器8237AA0A15A16A23BUSMEM页地址寄存器基地址寄存器当前地址寄存器当前计数寄存器例:页地址为0001B,基地址为0FFF0H,计数值为000FH。0001:FFF0H000EH0001:FFF1H000DH0001:FFFEH0000H0001:FFFFHFFFFH=>T/C信号………INTEL8237ADMACDMAC的地址扩展段溢出:指定的物理区域跨越了两个物理页。基地址+计数值>FFFFH例:页地址为0001B,基地址为0FFF0H,计数值为0010H。0001:FFF0H000FH0001:FFF1H000EH0001:FFFEH0001H0001:FFFFH0000H=>T/C信号………0001:0000HFFFFH=>T/C

温馨提示

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

评论

0/150

提交评论