《微机原理与接口技术章DMA控制器.pptx》由会员分享,可在线阅读,更多相关《微机原理与接口技术章DMA控制器.pptx(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第9章 微型计算机常用接口技术微机系统中多采用大规模集成接口芯片作为接口电路利用这种芯片构成的接口电路,在不改变硬件的情况下,可以通过编程改变其功能、工作方式,使用起来更灵活 第1页/共45页第9章 微型计算机常用接口技术主要内容并行通信接口串行通信接口定时器/计数器DMA控制器A/D和D/A转换器第2页/共45页DMA控制器主要内容概述DMA控制器8237A第3页/共45页概述计算机和外设之间数据传送的控制方式程序控制方式(查询或中断方式)外设数据要经过CPU寄存器中转检查是否传送完毕,在程序中控制,由CPU执行修改内存地址,在程序中控制,由CPU执行DMA方式内存与高速外设直接交换数据,不
2、需CPU干预,减少中间环节内存地址修改,传送结束报告,由硬件完成DMA方式用硬件控制代替软件控制,大大提高传输速度;同时增加了系统硬件的复杂性及成本第4页/共45页概述DMA数据传送过程在DMA传送开始之前,用户可以对DMA控制器编程初始化初始化之后,等待外部设备来申请DMA传送CPUDMAC内存内存系统总线系统总线(2)(3)(4)(5)外外 设设(1)(6)(4)(7)(1)DREQ(2)HRQ(3)HLDA(4)DACK及读写信及读写信号号(5)数据传送数据传送(6)EOP(7)撤消撤消HRQ第5页/共45页概述DMA数据传送过程外设向DMA控制器发出DMA传送请求(DREQ)DMAC如
3、果允许外设的请求,进一步向CPU发出总线请求信号HRQ(连接到CPU的HOLD信号)第6页/共45页概述DMA数据传送过程CPU在完成当前总线操作后会立即对DMA请求做出响应CPU将控制总线、数据总线和地址总线浮空(高阻),让出对总线的控制权CPU将有效的HLDA信号送到DMAC,来通知DMAC,CPU已经放弃了总线的控制权DMAC接管总线的控制权,成为系统的主控者第7页/共45页概述DMA数据传送过程DMAC向外设发出DMA应答信号DACK,通知该外设成为被选中的DMA传送设备同时,向存储器发出地址信号以及向发送存储器和外设读写控制信号,控制数据按照初始化设定的方向实现外设与内存之间大量数据
4、的快速传送第8页/共45页概述DMA数据传送过程DMAC将规定的数据字节传送完之后,撤销总线请求信号HRQ;CPU收到此信号,一方面使HLDA无效,使得DMAC脱开三总线,另一方面CPU又重新控制总线。第9页/共45页概述DMA数据传送过程注意:DMA传送过程中,CPU失去对总线的控制权,数据不会经过CPU在内存与外设之间进行DMA传送期间,DMAC只是输出地址及控制信号,而数据传送是直接在内存和外设端口之间进行的,并不经过DMAC第10页/共45页概述DMA传送的形式存储器与外设之间两种高速外设之间存储器的两个区域之间对于内存不同区域之间的DMA传送,则应先用一个DMA存储器读周期将数据从内
5、存的源区域读出,存入到DMAC的内部数据暂存器中,再利用一个DMA存储器写周期将该数据写到内存的目的区域中去第11页/共45页概述DMAC的功能DMAC是控制存储器和外设之间直接高速传送数据的硬件DMAC应具备的功能能接受外设的DMA请求信号,并向外设发出DMA响应信号能向CPU发出总线请求信号,当CPU发出总线保持响应信号后,能够接管对总线的控制权能发出地址信息,对存储器寻址并修改地址能向存储器和外设发出读/写控制信号能控制传输的字节数,并判断传送是否结束能发出DMA结束信号,DMA传送结束后,能释放总线,让CPU重新获得总线控制权第12页/共45页概述DMAC的两种工作状态DMAC具有接管
6、和控制系统总线的功能,取代CPU成为系统的主控者在取得总线控制权之前,又和其他I/O接口芯片一样,受CPU的控制总线控制权在DMAC与CPU之间的转移第13页/共45页概述DMAC的两种工作状态被动态(受控者)接受CPU对它的控制和指挥,如同一般I/O芯片,成为系统的受控者对DMAC进行初始化编程从DMAC读取状态等上电、复位时,自动出于被动状态第14页/共45页概述DMAC的两种工作状态主动态(主控者)取代CPU获得总线控制权,成为系统的主控者向存储器和外设发号施令存储器地址、外设的DACK信号存储器和外设的读写控制信号第15页/共45页DMA控制器8237A8237A的基本性能通用可编程的
7、DMA控制器4个独立的DMA通道,每个通道的DMA请求都可以分别禁止和允许每个通道的DMA请求有不同的优先权每个通道一次传送的最大长度可达64KB可以在存储器和外设之间,也可在存储器的两个区域之间进行数据传送有四种工作方式和四种操作类型允许用 来结束DMA传送或者重新初始化8237可以级联,扩展通道数 第16页/共45页DMA控制器8237A8237A的内部结构及引脚第17页/共45页DMA控制器8237A8237A的内部结构4个独立的DMA通道包含的寄存器16位基地址寄存器16位当前地址寄存器16位基字节数寄存器16位当前字节数寄存器自动预置:当一个通道设置成自动预置模式,一旦当前字节数计数
8、器内容减至0时,基地址寄存器内容会自动复制到当前地址寄存器中、基字节数寄存器内容会自动复制到当前字节数计数器中 8位模式寄存器接收并保存来自于CPU的方式控制字,使本通道能够工作于不同的方式下第18页/共45页DMA控制器8237A8237的内部结构4个独立的DMA通道共用的寄存器1个16位的地址暂存寄存器1个16位的字节数暂存寄存器1个8位的状态寄存器1个8位的控制(命令)寄存器1个8位的暂存寄存器1个4位的屏蔽寄存器1个4位的请求寄存器第19页/共45页DMA控制器8237A8237的引脚8237的数据引线,地址引线都为三态,因而可以接收也可以释放总线特点:即可为主控者,又可为被控者,所以
9、一些引脚设置为双向A0A3、处于主动态时,8237提供16位地址线DB0DB7:高8位;A0A7:低8位AEN当8237工作在主动态时,输出高电平当8237工作在被动态是,输出低电平第20页/共45页DMA控制器8237A8237的引脚DMA请求和应答信号DREQ03:外设向8237的DMA请求DACK03:8237向外设的DMA应答信号HRQ:8237向CPU的DMA请求信号HLDA:CPU向8237的DMA应答信号HRQ和HLDA为高电平有效DREQ和DACK的有效电平可由软件设置第21页/共45页DMA控制器8237A8237的引脚读写控制信号 、:输出信号,控制对存储器的读写 、:双向
10、信号输入信号:CPU向8237写控制字或读8237状态输出信号:8237控制对外设的读写第22页/共45页DMA控制器8237A8237的引脚数据地址信号DB0DB7:既是CPU向8237的数据通道(输入或输出);主动状态时为向存储器输出的高8位地址A815A07:分两部分A03为双向,由CPU输入时选择8237的端口输出时A03和A47一起输出存储器低8位地址ADSTB:正脉冲输出,地址选通信号,将DB07中的高8位地址信号锁存到外部锁存器中AEN:高电平输出,地址输出允许,由它把锁存在外部锁存器中的高8位地址送入系统的地址总线,同时禁止其它系统驱动器使用系统总线 :输入信号,片选信号第23
11、页/共45页DMA控制器8237A8237的引脚其他 :双向,当字节数计数器减为0时,在上输出一个有效的低电平脉冲,表明DMA传送已经结束;也可接收外部的信号,强行结束8237的DMA操作或者重新进行8237的初始化CLK:时钟信号输入,对于标准的8237,其输入时钟频率为3MHzREADY:输入,高电平表示传送准备好。可用来在DMA传送周期中插入等待状态RESET:输入,复位信号。芯片复位时,屏蔽寄存器被置1,其他寄存器均清零,8237工作于空闲周期SI第24页/共45页DMA控制器8237A8237的工作方式单字节传送方式每次DMA操作仅传送一个字节的数据,完成一个字节的数传送后,8237
12、将当前地址寄存器的内容加1(或减1),并将当前字节数寄存器的内容减1,每传送完这一个字节,DMAC就将总线控制权交回CPU数据块传送在这种传送方式下,DMAC一旦获得总线控制权,便开始连续传送数据。每传送一个字节,自动修改当前地址及当前字节数寄存器的内容,直到将所有规定的字节全部传送完,或收到外部信号 ,DMAC才结束传送,将总线控制权交给CPU在这种方式下,CPU可能会很长时间不能获得总线的控制权第25页/共45页DMA控制器8237A8237的工作方式请求传送方式和数据块连续传送方式的区别是:当DREQ无效时,释放总线。级联方式当要使用的DMA通道数超过4个时,就需要将两片或多片8237A
13、级联起来。级联模式用于8237A的级联 第26页/共45页DMA控制器8237A8237的传输类型读操作(DMA读):存储器 I/O设备写操作(DMA写):I/O设备 存储器校验产生时序,地址信号;不产生读/写控制信号,并不进行数据传送;外设可利用某些信号进行校验存储器到存储器通道0提供源地址,通道1提供目的地址及字节数传送由设置通道0的软件请求启动,完成一个字节的传送需两个总线周期,及内部暂存器采用数据块传送方式第27页/共45页DMA控制器8237A8237的优先级方式固定优先级DREQ0优先级最高DREQ3优先级最低循环优先级通道的优先级随着DMA服务的结束而发生变化已服务过的通道优先级
14、最低,它下一个通道的优先级变成最高任何通道开始DMA服务。其他通道不能打断该服务的进行第28页/共45页DMA控制器8237A8237的编程模式寄存器的格式 每个通道有一个8位的方式寄存器,但是它们占用同一个端口地址,用来存放方式字依靠方式控制字本身的特征位来区分写入不同的通道第29页/共45页DMA控制器8237A8237的编程控制寄存器的格式第30页/共45页DMA控制器8237A8237的编程请求寄存器的格式DMA请求可以由硬件发出,也可以由软件发出 用于在软件控制下产生一个DMA请求这种软件请求只用于通道工作在数据块传送方式之下第31页/共45页DMA控制器8237A8237的编程屏蔽
15、寄存器的格式用来禁止或允许通道的DMA请求,当屏蔽位置位时,禁止本通道的DREQ进入若通道没有工作在自动预置方式,则当该通道遇到EOP信号时,它所对应的屏蔽位自动置位屏蔽命令有两种形式单个通道屏蔽寄存器4个通道屏蔽寄存器第32页/共45页DMA控制器8237A8237的编程屏蔽寄存器的格式屏蔽命令有两种形式单通道屏蔽字主屏蔽字第33页/共45页DMA控制器8237A8237的编程状态寄存器的格式存放各通道的状态,CPU读出其内容后,可得知8237的工作状况状态位在复位或被读出后,均被清零 第34页/共45页DMA控制器8237A8237的编程临时寄存器 在存储器到存储器的传送方式下,临时寄存器
16、保存从源存储单元读出的数据 主清除命令 主清除命令的功能和RESET信号相同 该命令不需要通过数据总线写入控制字,而是通过8237A直接对地址和控制信号译码,来执行各自的功能 第35页/共45页DMA控制器8237A8237的编程清除先/后触发器命令先/后触发器命令是用来控制DMA通道中地址寄存器和字节计数器的初值设置的 当此触发器状态为0时,进行低字节操作。一旦低字节读/写操作完成后,该触发会自动置1,再操作一次又会清0该命令不需要通过数据总线写入控制字,而是通过8237A直接对地址和控制信号译码,来执行各自的功能第36页/共45页DMA控制器8237A8237的编程8237内部寄存器寻址及
17、操作8237的编程步骤1.输出主清除命令2.写入基地址寄存器3.写入基字节计数器4.写入模式寄存器5.写入屏蔽寄存器6.写入控制寄存器7.写入请求寄存器(根据需要)例9-11 利用通道0,由外设输入32K字节的一个数据块,传送至内存8000H开始的区域第37页/共45页DMA控制器8237A8237的编程初始化编程注意的事项在对8237初始化之前,通常必须对8237进行复位操作编程开始时,应发送禁止8237工作的命令,或将要编程的通道加以屏蔽所有通道的模式寄存器都要加载向基和现行地址寄存器装入低16位地址之外,还要向页面寄存器写入高位地址值8237只能输出A0A1516位地址信号,这对于一般8
18、位CPU构成的系统来说是比较方便的而在8086/88系统中,系统的寻址范围是1MB,地址线有20条,即A0A19为了能够在8086/88系统中使用8237来实现DMA,需要用硬件提供一组4位的页寄存器第38页/共45页DMA控制器8237A8237的时序它具有两种主要的工作状态(或工作周期),即空闲状态和有效状态,每一个状态又是由若干时钟周期所组成的第39页/共45页SIS4SIS0S0S1S2S3SWSWReadyReadyNot ReadyDREQHRQHLDA块字节单字节空闲状态请求应答状态DMA操作(数据传输)状态第40页/共45页DMA控制器8237A8237的时序SI状态(空闲状态
19、)当8237A的任一通道都无DMA请求时,则其处于空闲周期或称为SI状态 空闲周期由一系列的时钟周期组成,在空闲周期中的每一个时钟周期 8237A 采样CS片选信号,该信号有效,CPU就要对 8237A 进行读/写操作 8237A 还采样通道的请求输入信号DREQ,该信号有效,就进入有效周期 第41页/共45页DMA控制器8237A8237的时序S0状态(请求状态)如果某一通道有DREQ请求,则8237A将驱动HRQ为高电平,向CPU提出DMA请求,8237A进入S0状态,等待CPU交出总线控制权 S0状态是DMA服务的第一个状态,在这个状态下,8237已接收了外设的请求,向CPU发出了DMA
20、请求信号HRQ,但尚未收到CPU对DMA请求的应答信号HLDA经过若干个S0状态后,当8237收到来自于CPU的HLDA应答信号后,则进入工作周期,或称为有效周期,8237由S0状态进入了S1状态,开始DMA传送第42页/共45页DMA控制器8237A8237的时序在内存与外设之间的DMA传送通常由4个时钟周期组成,即S1、S2、S3、S4S1:更新高8位地址,发出AEN,ADSTB信号;S2:输出16位地址和发DACK寻址I/O设备;S3:读周期,发出读控制信号,从内存或I/O设备读取的8位数据防到数据总线上;S4:写周期,发出写控制信号,把保持在数据总线上的数据写到内存或I/O设备当外设速度较慢时,可以插入SW等待周期采用扩展写:同时发出读/写控制信号采用压缩时序:去掉S3 状态高8位地址未改变时,省去S1状态第43页/共45页DMA控制器8237A接口设计举例从存储器到外设进行数据传送第44页/共45页谢谢您的观看!第45页/共45页