《第8章 DMA技术与DMA控制器.ppt》由会员分享,可在线阅读,更多相关《第8章 DMA技术与DMA控制器.ppt(93页珍藏版)》请在优知文库上搜索。
1、1第第8章章 DMA技术与技术与DMA控制器控制器 8.1 DMA技术概述技术概述 8.2 可编程可编程DMA控制器控制器8237A 8.3 DMA技术在微机系统中的应用技术在微机系统中的应用 直接存储器存取直接存储器存取21.DMA(Direct Memory Access)1.DMA(Direct Memory Access)的概念的概念nDMADMA方式不用处理器干预完成方式不用处理器干预完成M M与与I/OI/O间数据传送。间数据传送。nDMADMA期间系统总线由其它主模块控制期间系统总线由其它主模块控制(驱动驱动)n控制总线的主模块要提供系统的地址及控制信号。控制总线的主模块要提供系
2、统的地址及控制信号。nDMADMA控制器与处理器配合可实现系统的控制器与处理器配合可实现系统的DMADMA功能。功能。8.1 DMA技术概述技术概述 3地址总线地址总线HRQ DREQDMACHLDA DACK总线总线请求请求总线总线响应响应 HOLD HLDACPUDMA请求请求DMA响应响应I/O设备设备控制总线控制总线数据总线数据总线2.DMA2.DMA系统组成及工作过程系统组成及工作过程 DMA DMA系统组成系统组成4DMAC的基本功能的基本功能 接收接口往接收接口往DMADMA控制器发出控制器发出DMADMA请求信号后,请求信号后,DMADMA控制器能向控制器能向CPUCPU发出总
3、线请求信号发出总线请求信号HOLD(HOLD(高电平高电平)。当当CPUCPU向向DMADMA发出响应信号发出响应信号HLDA(HLDA(高电平高电平)以以后,后,DMADMA能接管对总线的控制,能接管对总线的控制,进入进入DMADMA方式。方式。能向地址总线发出内存地址信息,对其进能向地址总线发出内存地址信息,对其进行寻址及修改地址指针。行寻址及修改地址指针。5DMAC的基本功能的基本功能 能向存储器或能向存储器或I/OI/O接口发相应的读写控制信号。接口发相应的读写控制信号。能决定传送字节数,并判断能决定传送字节数,并判断DMADMA传送是否结束。传送是否结束。DMADMA过程结束,能向过
4、程结束,能向CPUCPU发出发出DMADMA结束信号,结束信号,HOLDHOLD变低变低,将总线控制权还给将总线控制权还给CPUCPU,CPUCPU恢复正恢复正常工作。常工作。6允许允许 DMA DMA请求?请求?DMAC发发BUS请求请求CPU响应响应DMA放弃放弃BUSDMAC控制控制传一个字节传一个字节 块结束否?块结束否?放弃总线中断请求放弃总线中断请求NDMA放放总总线线NY字节传送字节传送 Y DMADMA传送方式传送方式7允许允许 DMADMA请求?请求?DMAC发发BUS请求请求CPU 响应响应 DMA放弃放弃 BUSDMAC控制控制传一个字节传一个字节块结束否?块结束否?放总
5、线中断请求放总线中断请求 DMA请求?请求?NYYN块传送块传送 DMADMA传送方式传送方式8允许允许 DMA DMA请求?请求?DMAC发出发出BUS请求请求CPU响应响应DMA放弃总线放弃总线DMAC 控制传一个字节控制传一个字节块结束否?块结束否?放总线中断请求放总线中断请求YDMA请求?请求?Y放总线放总线NNY随机请求随机请求DEMAND REQUEST DMADMA传送方式传送方式9I/O设备向设备向DMAC发出发出DMA请求请求DMAC向向CPU发出总线请求发出总线请求CPU在执行完当前指令的当前在执行完当前指令的当前的总线周期后,向的总线周期后,向DMAC发出发出总线响应信号
6、总线响应信号CPU脱离对系统总线的控制,脱离对系统总线的控制,由由DMAC接管对系统总线的控制接管对系统总线的控制DMAC向向I/O设备发出设备发出的的DMA应答信号应答信号DMAC进行一个字节的传送进行一个字节的传送完成设定的字节数据传送,完成设定的字节数据传送,CPU恢复对系统总线的控制恢复对系统总线的控制108.2 可编程可编程DMA控制器控制器8237A n8.2.1 8237A的主要特性的主要特性 n1具有四个独立的具有四个独立的DMA通道,每个通道都具通道,每个通道都具有有64K的存贮器寻址能力,即一次传送的最大的存贮器寻址能力,即一次传送的最大长度为长度为64K字节。字节。n2可
7、实现内存与外设之间的高速大批量数据可实现内存与外设之间的高速大批量数据传送传送,也可实现内存两个不同区域之间的高,也可实现内存两个不同区域之间的高速数据传送。速数据传送。n3每个通道的每个通道的DMA请求均可分别允许或禁止,请求均可分别允许或禁止,且四个通道的且四个通道的DMA请求的优先权可由软件设请求的优先权可由软件设置为固定的或循环的。置为固定的或循环的。118237A的主要特性的主要特性n4具有单字节传送、数据块传送、请求传送具有单字节传送、数据块传送、请求传送和级联传送四种工作方式。和级联传送四种工作方式。n5可用级联方式扩展可用级联方式扩展DMA通道数目。通道数目。n6DMA传送结束
8、信号可由内部计数产生,也传送结束信号可由内部计数产生,也可由外部输入提供。可由外部输入提供。n7单一的单一的+5V电源,电源,40个引脚双列直插式封个引脚双列直插式封装。装。n8采用采用5MHz时钟,传送速率可达时钟,传送速率可达1.6M字节字节/秒。秒。12n8 8采用采用5MHz5MHz时钟,传送速率可达时钟,传送速率可达1.6M1.6M字节字节/秒。秒。n82378237进行一次进行一次DMADMA传送需要传送需要3 3个时钟周期个时钟周期(不包括插入不包括插入的等待周期的等待周期SW)SW)。时钟周期为。时钟周期为20200 ns0 ns,则一次,则一次DMADMA传传送需要送需要20
9、0 ns200 ns3 320200 ns0 ns700 ns700 ns(1.6 1.6 M M字节字节/秒秒)。多加一个。多加一个20200 ns0 ns是考虑到人为插入一个是考虑到人为插入一个SWSW的的缘故。另外,缘故。另外,82378237为了提高传输速率,可以在压缩为了提高传输速率,可以在压缩定时状态下工作。在此状态下,每一个定时状态下工作。在此状态下,每一个DMADMA总线周期总线周期仅用两个时钟周期仅用两个时钟周期(200 ns200 ns2=400ns2=400ns )就可实现,就可实现,这大大提高了传输速率。这大大提高了传输速率。138.2.2 8237A的工作原理的工作原
10、理 n18237A的编程结构的编程结构 n编程结构编程结构见下页图见下页图n内部有大量寄存器,内部有大量寄存器,内部寄存器的功能、内部寄存器的功能、端口地址等信息端口地址等信息 参见下表参见下表.14Intel 8237AIntel 8237A可编程可编程DMADMA控制器框图控制器框图151 1)8237A8237A组成说明:组成说明:8237A8237A有四个独立通道:通道有四个独立通道:通道00通道通道3 3。每个通道可独立响。每个通道可独立响应外部应外部DMADMA请求,完成请求,完成DMADMA传送。传送。u15模式REG,1个8位1个DMA请求触发器1个DMA屏蔽触发器字节数寄存器
11、2个16位基字节数寄存器:-DMA传送的总字节数。当前字节数寄存器:-DMA传送时内容变化,可读。地址寄存器2个16位基地址寄存器-放DMA传送RAM地址初值当前地址寄存器:-DMA传送时内容变化,可读。每个通道16控制寄存器,控制寄存器,8 8位位u16四个通道公用状态寄存器,状态寄存器,8 8位位屏蔽寄存器,屏蔽寄存器,8 8位。位。请求标志寄存器,请求标志寄存器,8 8位位暂存器,暂存器,8 8位位 优先级编码电路-优先级裁决定时和控制逻辑 作从模块-接收CPU的信号和命令字,产生控制,读/写内部寄存器 作主模块-控制总线,产生控制命令完成DMA传送17F8237的引脚功能的引脚功能u1
12、718F8237的引脚功能的引脚功能请求请求/应答信号应答信号外设接口电路向外设接口电路向82378237的请求信号:的请求信号:DREQ3DREQ0DREQ3DREQ082378237对外设接口电路的应答信号:对外设接口电路的应答信号:DACK3DACK0DACK3DACK082378237向向CPUCPU申请总线的信号:申请总线的信号:HRQHRQ(连至(连至CPUCPU的的HOLDHOLD)CPUCPU向向82378237传送的允许使用总线信号:传送的允许使用总线信号:HLDAHLDACPUDMA外设HRQHRQDREQDREQHLDA HLDA DACKDACKu1819F8237的引
13、脚功能的引脚功能地址信号 :CPU初始化8237或读8237状态时所需的片选信号A7A0(输出):8237访问存储器的地址信号的低8位。A3A0(输入):CPU初始化8237或读8237状态时,用于寻址8237内部寄存器u1920F8237的引脚功能的引脚功能数据信号数据信号(双向双向):DB7DB0CPUCPU为主控时,可以通过为主控时,可以通过I/OI/O读命令查询读命令查询82378237的状态的状态寄存器的内容,或通过寄存器的内容,或通过I/OI/O写命令对写命令对82378237的内部寄的内部寄存器进行编程,数据传送通过存器进行编程,数据传送通过DB7DB0DB7DB08237823
14、7为主控时,为主控时,DB7DB0DB7DB0输出要访问的内存地址的输出要访问的内存地址的高高8 8位,并通过位,并通过ADSTBADSTB锁存到外部地址锁存器中,和锁存到外部地址锁存器中,和A7A0A7A0输出的低输出的低8 8位地址一起构成位地址一起构成1616位地址位地址u2021F82378237的引脚功能的引脚功能地址允许信号地址允许信号:AENAEN82378237作为主控时(作为主控时(82378237控制总线),输出控制总线),输出AEN=1AEN=1。82378237作为从控时(作为从控时(CPUCPU控制总线),输出控制总线),输出AEN=0AEN=0。DMADMA传输结束
15、信号传输结束信号:(双向)(双向)当当DMACDMAC内部任一通道传输结束,内部任一通道传输结束,82378237发出发出若由外部给若由外部给DMACDMAC送入有效的送入有效的 ,则强制,则强制DMACDMAC内部内部所有通道结束传输。所有通道结束传输。u2122F8237的引脚功能的引脚功能MEMR/MEMW:8237发出的存储器读发出的存储器读/写信号写信号IOR/IOW:8237作为主控时,输出的作为主控时,输出的I/O读读/写信号。写信号。8237作为从控时,作为从控时,CPU发出的发出的I/O读读/写信号,用于写信号,用于读读/写写8237u2223F8237的引脚功能的引脚功能A
16、DSTB:地址选通信号:地址选通信号用于启动地址锁存器用于启动地址锁存器READY:存储器或:存储器或I/O的就绪信号的就绪信号u2324 DMA控制器8237 工作方式工作方式 1)从模块工作方式从模块工作方式:当当CPU将数据送入或取出将数据送入或取出8237时,时,DMA完全完全象一个普通的象一个普通的I/O接口,此时它工作于从模块。接口,此时它工作于从模块。u2425DMA控制器8237 D0D7 DB0DB7 IOR IOR CPU IOW IOW 8237 A0A3 A0A3 A4A15 CS 此时此时CPU对对8237进行初始化或读出进行初始化或读出8237中的状态。中的状态。u25译码译码 26 DMA控制器8237 2)主模块工作方式主模块工作方式:此时此时DMA已取代已取代CPU控制系统。它控制系统。它将提供系统正常工作的地址信息,控将提供系统正常工作的地址信息,控制信息完成制信息完成DMA方式的数据传送。方式的数据传送。u2627DMA控制器8237 AEN A0A7 A0A7 8237 EN ADSTB DB0DB7 A8A15 IOW IOR MEMW MEM