DMA技术与DMA控制器_第1页
DMA技术与DMA控制器_第2页
DMA技术与DMA控制器_第3页
DMA技术与DMA控制器_第4页
DMA技术与DMA控制器_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

第11章DMA技术与DMA控制器,11.1DMA技术概述11.2可编程DMA控制器8237A11.3DMA技术在微机系统中的应用,直接存储器存取,11.1DMA技术概述,1、DMA传送方式的实现方法:由专用接口芯片DMA控制器(简称DMAC)控制传送过程;当外设需传送数据时,通过DMAC向CPU发出总线请求;CPU发出总线响应信号,释放总线;DMAC接管总线,控制外设、内存之间进行直接数据传送。DMAC撤消总线请求;CPU撤消总线响应,并重新接管总线。,DMA技术概述,2、DMA传送方式的特点外设和内存之间,直接进行数据传送,不通过CPU,传送效率高。适用于在内存与高速外设、内存两个区域之间,或两个高速外设之间进行大批量数据传送。电路结构复杂,硬件开销较大,DMA传送过程示意图,总线响应,总线请求,总线,11.1.1DMAC的基本功能,接收接口往DMA控制器发出DMA请求信号后,DMA控制器能向CPU发出总线请求信号HOLD(高电平)。当CPU向DMA发出响应信号HLDA(高电平)以后,DMA能接管对总线的控制,进入DMA方式。能向地址总线发出内存地址信息,对其进行寻址及修改地址指针。,DMAC的基本功能,能向存储器或I/O接口发相应的读写控制信号。能决定传送字节数,并判断DMA传送是否结束。DMA过程结束,能向CPU发出DMA结束信号,HOLD变低,将总线控制权还给CPU,CPU恢复正常工作。,11.1.2DMAC的一般结构,图9.1单通道DMAC的一般结构及其与I/O接口的连接,11.1.3DMAC的工作方式,1、单字节传输方式:在单字节传输方式下,DMA控制器每次请求总线只传送一个字节数据,传送完后即释放总线控制权。2、块传输方式(也称组传输方式):块传输方式是指DMA控制器每次请求总线连续传送一个数据块,待整个数据块全部传送完成后再释放总线控制权。,3、请求传输方式:此方式与块传输方式基本类似,不同的是每传输完一个字节,DMA控制器都要检测由I/O接口发来的DMA请求信号是否仍然有效,如果该信号仍有效,则继续进行DMA传输;否则,就暂停传输,交还总线控制权给CPU,直至DMA请求信号再次变为有效,数据块传输则从刚才暂停的那一点继续进行下去。,11.1.4DMA操作过程(以输入数据块为例),若从外设往内存输入一个数据块(输入过程),在单字节传输方式下,主要工作过程为:从I/O接口向DMA控制器发送DMA请求信号;DMA控制器向CPU发总线请求信号,当得到CPU送来的总线允许信号后,DMA控制器获得总线控制权;DMA控制器将其地址寄存器的内容送到地址总线上;DMA控制器往I/O接口发送DMA响应信号,并接着发出I/O接口的读信号,使I/O接口把数据送到数据总线上;,DMA操作过程,DMA控制器发出端口读信号和存储器写信号,使数据传送到由地址总线的地址所指向的内存单元;地址寄存器加1;字节计数器减1;如果字节计数寄存器的值不为零,则返回第步,否则进入第步;DMA控制器释放总线;,内存把数据送数据总线,内存,8086和,总线控,制逻辑,HOLD,HLDA,发送总线请求,控制总线,总线允许,地址总线,数据总线,接口,DMA,控制器,接口准备就绪,发送DMA请求,发端口读和内存写信号,I/O设备,DMA请求,得到确认,3,2,5,1,6,4,8,9,DMA控制器把地址送地址总线,撤消总线请求,8086收回总线控制权,图11.2以DMA方式输出一个字节数据的工作过程,11.2可编程DMA控制器8237A,11.2.18237A的主要特性1具有四个独立的DMA通道,每个通道都具有64K的存贮器寻址能力,即一次传送的最大长度为64K字节。2可实现内存与外设之间的高速大批量数据传送,也可实现内存两个不同区域之间的高速数据传送。3每个通道的DMA请求均可分别允许或禁止,且四个通道的DMA请求的优先权可由软件设置为固定的或旋转的。,8237A的主要特性,4具有单字节传送、数据块传送、请求传送和级联传送四种工作方式。5可用级联方式扩展DMA通道数目。6DMA传送结束信号可由内部计数产生,也可由外部输入提供。7单一的+5V电源,40个引脚双列直插式封装。8采用5MHz时钟,传送速率可达1.6M字节/秒。98237可以级连,任意扩展通道数。,11.2.28237A的工作原理,18237A的编程结构编程结构见下页图内部有大量寄存器,内部寄存器的功能、端口地址等信息参见表11.1.,图11.38237A的编程结构,82C37A内部逻辑框图,表11.18237A内部寄存器的功能、端口地址等信息,几点说明:,请求触发器每通道一位,四个通道的请求触发器占用同一个端口地址,实际上构成一个4位的寄存器,屏蔽触发器也是一样。控制寄存器和状态寄存器共用一个端口地址,一个为只读,一个为只写。写屏蔽字时有两种方式:某一通道的屏蔽字,应写到1010端口;四个通道屏蔽字,则写入1111端口。,几点说明:,各通道的基地址寄存器和当前地址寄存器的端口地址低四位是:00000通道00101通道01002通道01103通道各通道的基字节数寄存器和当前字节计数器的端口地址低四位是:00010通道00111通道01012通道01113通道,几点说明:,8237A内有一个先/后触发器,占1位,当其为0时对16位寄存器的低8位进行读/写操作,当其为1时,则对高8位进行读/写操作,且每读或写一次,先/后触发器的状态就自动翻转一次。8237A复位后,先/后触发器为08237A除可用RESET=1信号进行硬件控制的复位外,还可以用主清除命令进行软件控制的复位。软件复位是通过对1101端口进行写操作实现的。,8237A的工作原理,28237A的总线模式主模式(主动态):在DMA操作其间,8237A就处于主模式,这时它管理系统总线,发出地址和有关控制信号使数据在内存和外设端口之间或内存两个不同区域之间传递。从模式(被动态):所谓从模式是指在没有进行DMA操作时,8237A象其他接口芯片一样,可被CPU访问。即向其有关内部寄存器写入工作方式控制字,传送地址及字节数等,也可读取其状态信息;,38237A的外部引脚,图11.48237A的引脚配置,11.2.38237A的编程,1命令字与状态字模式寄存器每个通道有一个8位的模式寄存器,用以规定通道的工作模式。但编程写入的模式控制字仍是8位,其最低两位用来指定写入的通道号。模式字的格式如图11.5所示。,图11.58237A的模式字格式,8237A的编程,命令寄存器命令寄存器是四个通道公用的一个8位寄存器,用以控制整个8237A的操作。即一片8237A只有一个命令寄存器,其内容对四个通道都有效。命令字的格式如图11.6所示。,图11.68237A的命令字格式,8237A的编程,请求寄存器8237A的每个通道除了可以响应硬件的DMA请求信号DREQ外,当其工作在块传送方式时也可以响应由软件发出的DMA请求。软件的DMA请求是通过使相应通道的“请求位”置位来实现的,它等效于外部产生一个有效的DREQ信号。8237A每一个通道有一位“请求位”,四个通道的请求位构成一个4位的请求寄存器。请求寄存器的命令字(请求命令字)格式如图11.8所示。,图11.88237A的请求寄存器的命令字格式,8237A的编程,屏蔽寄存器8237A每个通道有一位“屏蔽位”,当其通道的“屏蔽位”置1时,则外部对应的DREQ信号被屏蔽,不予响应,从而禁止了该通道的DMA操作。四个通道的“屏蔽位”构成一个4位的屏蔽寄存器。有两种屏蔽命令字格式,单独对某一个通道的屏蔽位进行置位或复位,如图11.9(a)所示;另一种是可以同时设定四个通道的屏蔽位,也称综合屏蔽命令字,如图11.9(b)所示。,图11.98237A屏蔽字的两种格式,8237A的编程,状态寄存器8237A有一个可由CPU读取的状态寄存器,如图11.10所示。,图11.108237A的状态寄存器格式,28237A编程步骤:,8237A的编程通常可按如下步骤进行。输出主清除命令,使8237A进入初始状态;将DMA传送的存贮器起始地址写入基地址和当前地址寄存器;将要传送的字节数写入基字节寄存器和当前字节计数器;写模式寄存器,规定8237A的工作方式等;写命令寄存器,规定各通道优先级及DREQ、DACK的有效电平等;写屏蔽寄存器,规定开放和屏蔽的通道;写请求寄存器,发DMA请求命令。,8237A的编程,38237A的编程举例例:设某8088系统使用一片8237A,现欲将内存地址为8000H开始的100个字节数据以DMA方式输出到某外设,已知8237A的端口地址为20H2FH,并规定8237A通道1工作在方式2,硬件启动。试编写初始化程序段。,8237A的编程,解:根据以上已知条件和要求,初始化程序段为:OUT2DH,AL;发主清除命令MOVAL,89H;选通道1,读传送,禁止自动预置,方式2,地址递增OUT2BH,ALMOVAL,80H;写命令字:普通时序,存储器到外设传送,固定优先级OUT28H,AL;正常写,DREQ、DACK高电平有效MOVAL,00H;写基地址和当前地址寄存器,8237A的编程,OUT22H,ALMOVAL,80HOUT22H,ALMOVAL,64H;写基字节寄存器和当前字节计数器OUT23H,ALMOVAL,0OUT23H,ALMOVAL,00H;清除所有通道屏蔽OUT2FH,AL,11.2.48237A的工作方式,DMA传送方式单字节传送方式数据块传送方式请求传送方式级连方式DMA传送类型DMA读DMA写DMA检验存储器到存储器的传送,方式0请求传送方式,DREQ信号有效就连续传送数据DREQ信号无效,DMA传送被暂时中止,8237A释放总线,CPU可继续操作DMA通道的地址和字节数的中间值仍被保持DREQ信号再次有效,DMA传送就继续进行如果字节数寄存器减到0,或者由外部送来一个有效的信号,将终止计数特点:DMA操作可由外设利用DREQ信号控制传送的过程,方式1单字节传送方式,每次DMA传送时仅传送一个字节传送一个字节之后,字节数寄存器减1,地址寄存器加1或减1,HRQ变为无效8237A释放系统总线,将控制权还给CPU特点:一次传送一个字节,效率略低DMA传送之间CPU有机会重新获取总线控制权,方式2块传送方式,由DREQ启动就连续地传送数据,直到字节数寄存器减到0终止计数,或由外部输入有效信号终结DMA传送DREQ只需维持有效到DACK有效特点:一次请求传送一个数据块,效率高整个DMA传送期间CPU长时间无法控制总线(无法响应其他DMA请求、无法处理中断等),方式3级联方式,用于通过多个8237A级连以扩展通道第二级的HRQ和HLDA信号连到第一级某个通道的DREQ和DACK上第二级芯片的优先权等级与所连通道的优先权相对应第一级只起优先权网络的作用,实际的操作由第二级芯片完成还可由第二级扩展到第三级等,图11.118237A的级联,DMA传送类型,DMA读把数据由存储器传送到外设由有效从存储器读出数据,由有效把这一数据写入外设DMA写把外设输入的数据写入存储器由有效从外设输入数据,由有效把这一数据写入存储器。DMA检验空操作8237A不进行任何传送,只产生地址并响应信号,不产生读写控制信号,用以校验8237的功能是否正常。,存储器到存储器的传送,固定使用通道0和通道1通道0的地址寄存器存源区地址通道1的地址

温馨提示

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

评论

0/150

提交评论