接口22 夜大生课件 DMA控制器8237
- 格式:pdf
- 大小:254.63 KB
- 文档页数:57
《微机原理与接口技术》夜大本科生课程第22讲南京大学计算机系周嵩主讲第12章DMA控制器8237A •本章介绍以下内容–DMA方式要点–8237A的组成和工作原理–8237A的时序–8237A的编程和应用举例第23讲第2页2010年3月2日南京大学计算机系周嵩12.1 DMA 方式要点•DMA是一种输入输出方式,优于中断方式,适用于快速传送大批量数据。
•采用DMA方式,可以在存储器和外设之间开辟直接传输数据的通道,也能让两块存储器之间直接交换数据,而不需要CPU的干预。
•地址、数据、控制等信号以及对它们的操作都由DMA控制器形成和管理,使传输数据的速度能够达到硬件所允许的最快速度。
第23讲第3页2010年3月2日南京大学计算机系周嵩DMA控制器•利用DMA方式传送数据时,数据的传送过程完全由硬件控制。
这种硬件电路称为DMA控制器(英文名称是DMAC)它具有以下基本功能:能向CPU提出DMA请求,请求信号加到CPU的HOLD引脚上。
CPU响应DMA请求后,DMA控制器从CPU那儿获得对总线的控制权。
在整个DMA操作期间,由DMA控制器管理系统总线,控制数据传递,CPU则暂停工作。
能提供读/写存储器或I/O设备的各种控制命令。
确定数据传输的起始地址和数据的长度,每传送一个数据,能自动修改地址,使地址增1或减1,数据长度减1。
数据传送完毕,能发出结束DMA传送的信号。
第23讲第4页2010年3月2日南京大学计算机系周嵩DMA的过程•一个完整的DMA过程包含五个阶段–初始化–DMA请求–DMA响应–DMA传输–DMA结束•一个DMA传输过程示意图如下。
第23讲第6页2010年3月2日南京大学计算机系周嵩DMA控制器的两种工作状态•由于DMA控制器(DMAC)需要占用总线,控制外设和存储器之间的数据传输,所以DMA控制器有时取代CPU 而成为系统(总线)的主控者。
但在它取得总线控制权之前,又和其他I/O接口芯片一样,受CPU的控制。
这就是说DMA控制器在微机系统中可处于两种不同的工作状态:主动态与被动态。
•DMAC随工作状态的不同,在系统中的地位也不同。
DMAC有两种不同的地位:主控器与受控器。
•DMAC的工作状态(或系统地位)是不断转化的。
第23讲第8页2010年3月2日南京大学计算机系周嵩总线控制权的转移•在DMA方式下,总线控制权不断地在CPU和DMAC之间转移。
•I/O设备和DMAC之间有一对DMA传送的请求信号和应答信号:–DREQ / DACK•DMAC和CPU之间有一对总线控制的请求信号和应答信号:–HRQ / HLDA•当CPU收到HRQ信号后,在可能的情况下,让出总线控制权给DMAC。
•DMAC完成DMA传送后,将总线控制权还给CPU。
第23讲第9页2010年3月2日南京大学计算机系周嵩基本DMA操作•X86微处理器有两个与直接存储器存取(DMA)传输有关的引脚。
–HOLD(输入)–HLDA(输出)–一旦HOLD输入被置为逻辑1,则请求DMA操作•微处理器响应DMA后,将其地址、数据和控制总线置为高阻抗状态。
–DMA读使MRDC和IOWC信号同时被激活–DMA写使MWTC和IORC信号同时被激活–请参看下面的DMA控制引脚时序图第23讲第10页2010年3月2日南京大学计算机系周嵩12.2 8237A的组成和工作原理•Intel 8237A是一个可编程的DMA控制器芯片,它直接应用于8086/8088和80286系统。
在386和486系统中,作为集成系统外设接口芯片中的一部分仍起着DMA控制器的作用。
下图为8237A的内部结构框图。
•8237A-5芯片的工作时钟频率为5MHz。
第23讲第12页2010年3月2日南京大学计算机系周嵩8237A-5基本介绍•8237A-5是一个高性能的40引脚双列直插式可编程DMA控制器芯片,可以方便地与Intel公司的微处理机相连,实现外部设备与存储器之间的直接数据交换。
该控制器通过编程可提供多种类型的控制特性,以优化系统性能,增大数据吞吐率,使最高数据传输速率可达1.5M字节/秒(时钟频率达到5MHz),并允许在程序控制下实现动态控制。
•8237A的内部逻辑和外部连接与8237A-5相同,只是时钟频率略慢些。
–以下的8237A介绍均指8237A-5芯片,这样做不影响对8237A 的分析和认识。
第23讲第14页2010年3月2日南京大学计算机系周嵩8237A主要功能和特性-1①有4个独立的DMA通道,最多可直接连接4个I/O设备。
②对同时提出DMA请求的多个通道可进行优先级排队判优–判优策略有固定优先级编码和循环优先级编码两种–固定优先级顺序:通道0最高,通道l、2次之,通道3最低③DMA读写周期可变–通过软件与硬件结合的方法设定和改变DMA周期长度–可建立起与任何I/O速度相匹配的定时关系④可在存储器与I/O设备、存储器与存储器之间传送数据。
存储器地址指针可以增1或减l。
第23讲第16页2010年3月2日南京大学计算机系周嵩8237A主要功能和特性-2⑤操作功能比较齐全–有3种操作类型•DMA读/ DMA写/ 数据校验–有3种操作方式•单字节方式/ 字组方式/ 连续方式–有两种数据传送方式•顺序传送/ 同时传送⑥可用多个8237A芯片级联以扩充系统可用的通道数–级联方法如下图所示第23讲第17页2010年3月2日南京大学计算机系周嵩8237A主要功能和特性-3⑦有自动重新启动能力–即具有数据块链接功能⑧DMA操作启动–由外设输入DMA请求信号而开始–通过软件从内部给出DMA请求信号来启动⑨DMA操作两种结束方式–字节计数结束表示预定的数据全部传送完毕,从EOP引脚输出一个低电平指示信号–将EOP作输入用,利用一个负脉冲输入,强制本次DMA操作结束。
第23讲第19页2010年3月2日南京大学计算机系周嵩8237A的引脚功能-1•8237A共有40个引脚(见8237A的编程结构和引脚图),每个引脚的功能如下:[1]CLK:时钟,输入信号。
8237A为3MHz,8237A-5为5MHz。
[2]CS#:片选(chip select),输入,低电平有效。
[3]RESET:复位(reset),输入,高电平有效。
RESET有效时清除控制、状态、请求和暂存寄存器,同时也清除内部的先/后触发器和屏蔽寄存器。
复位以后,8237A处于空闲周期。
[4]READY:准备好,输入,高电平有效。
用来扩展8237A的读/写脉冲,以适应慢速存储器或外设。
第23讲第21页2010年3月2日南京大学计算机系周嵩8237A的引脚功能-2[5]A0~A3:低4位地址,双向,三态。
当8237A作为从模块使用时(即CPU对其编程时),它们是输入信号,作为片内口地址的选择。
当8237A作为主模块使用时(即进行DMA传输时),它们是输出信号,作为DMA传输地址的低4位。
[6]A4~A7:高4位地址,输出,三态。
在DMA传送期间,与A0~A3共同形成地址的低字节。
[7]DB0~DB7:数据线(data bus),双向,三态。
当8237A作为从模块工作时,它们用来在CPU与8237A之间传送控制信息、状态信息和地址信息;当8237A作为主模块工作时,它们用来传送DMA传输地址的高字节。
2010年3月2日南京大学计算机系周嵩第23讲第22页8237A的引脚功能-3[8]ADSTB:地址选通(address strobe),输出,高电平有效。
用来把DB0~DB7输出的高8位地址打入外部的地址锁存器,见8237A的编程结构和引脚图。
[9]AEN:地址允许(address enable)输出,输出信号,高电平有效。
使外部地址锁存器中的内容送到系统地址总线,与经A0~A7输出的低8位地址共同形成16位传输地址。
同时,AEN还使与CPU相连的地址锁存器失效,禁止来自CPU的地址码送上地址总线,以保证地址总线上的信号来自DMA控制器。
2010年3月2日南京大学计算机系周嵩第23讲第23页8237A的引脚功能-4[10]MEMR#/MEMW#:存储器读/写信号,输出,低电平有效。
主态时,与IOW#和IOR#信号配合,将数据写入I/O设备,或从I/O设备读出数据。
从态时这两个信号无效。
[11]IOR#:外部设备读信号(I/O read),双向,低电平有效。
当8237A作为从模块工作时,它为输入信号(来自CPU),此时,CPU用来读取8237A的内部寄存器的值。
当8237A作为主模块工作时,它为输出信号(发向I/O口)。
此时,将来自I/O口的数据送上系统数据总线。
[12]IOW#:外部设备写信号(I/O write),双向,低电平有效。
当其作为输入信号时,由CPU向8237A的内部寄存器写值(编程写入)。
而作为输出信号时,用来控制将数据总线上的数据写入I/O口。
第23讲第24页2010年3月2日南京大学计算机系周嵩2010年3月2日南京大学计算机系周嵩第23讲第25页8237A 的引脚功能-5•[13]DREQ 0~DREQ 3:通道的DMA 请求(DMA request)信号,输入。
这个信号来自I/O 口,其有效电平的极性可通过编程来设置。
在固定优先级情况下,8237A 默认的优先级别是DREQ 0最高,DREQ 3最低。
在循环优先级时,优先级可以改变。
•[14]DACK 0~DACK 3:通道的DMA 响应(DMA channel acknowledge)信号,输出。
作为对DREQ i 的回答信号,由8237A 发给I/O 口;表示该通道的DMA 请求已经被响应。
其有效电平的极性也可通过编程来设置。
8237A的引脚功能-6•[15]HRQ:总线保持请求(hold request),输出,由8237A 发给CPU,作为系统的DMA请求信号。
•[16]HLDA:总线保持响应(hold acknowledge),输入,由CPU发给8237A,作为HRQ的响应信号。
•[17]EOP#:DMA传输结束,即过程结束(end-of-process),双向。
作为输入信号时,DMA过程被强制结束。
作为输出信号时,当通道计数结束时发出,表示DMA传输结束。
不论什么情况,当EOP有效时,都会使8237A的内部寄存器复位,即外部信号可随时结束DMA。
第23讲第26页2010年3月2日南京大学计算机系周嵩高位地址的产生•从以上8237A的内部结构和引脚功能可以看出,8237A 只能提供16位的存储器地址,因此它所能控制传输的数据块最大长度为64K。
为了形成20位或多于20位的物理地址,必须有一个专门的部件来产生高位地址,这就是页面寄存器。
•在PC机中,系统使用了一片74LS612作为页面寄存器,仅使用了它的低4位,它(作为高4位)与8237A送出的16位地址共同形成20位的物理地址。