




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 北京工业大学计算机学院1第十二章 DMA控制器 8237A 北京工业大学计算机学院2本章主要内容8237A的组成和工作原理8237A的内部结构8237A的引脚功能8237A的内部寄存器8237A的时序 外设和内存间的DMA数据传送时序空闲周期、有效周期和扩展写周期8237A的编程和应用举例PC/XT机中的DMA控制逻辑8237A的一般编程方法PC/XT机中的DMA控制器的使用 北京工业大学计算机学院3DMA的基本概念 DMA(Driect Memory Access)技术是一种代替微处理器完成存储器与外部设备或存储器之间大量数据传送的方法,也称直接存储器存取方法。 DMA的主要优点是当需要把
2、一个外设的大量数据送到指定内存时,它可以自动完成传送任务,也就是说外设发出一个DMA请求,则DMA电路暂停CPU的操作,并控制外设与内存之间进行一次传输,然后再让CPU继续执行程序,这样就使CPU节省了大量对外设的查询时间,从而提高了系统的整体性能。 利用DMA方式传送数据,传送过程完全由硬件控制,这种硬件电路称为DMA控制器。 北京工业大学计算机学院4DMA的基本概念 DMA控制器的基本功能: 向CPU提出DMA请求,加到CPU的HOLD引脚上。CPU在允许状态下响应DMA请求,让出总线,DMA控制器获得对总线的控制权。在DMA期间,DMA控制器提供读/写存储器或I/O设备的各种控制信号。
3、确定数据传输的起始地址和数据的长度,每传送一字节,自动修改地址,是地址增1或减1,数据长度减1数据传送完毕,能发出结束DMA传送的信号,将总线控制权交还给CPU。 北京工业大学计算机学院5 实现DMA操作主要靠DMA控制器,其结构相当复杂。在DMA操作期间,CPU停止了工作,而由DMAC代替CPU进行工作,因此它必须具备CPU的寻址及数据传送能力,这主要包括如下几点: (1) DMA控制器必须提供地址码以指明I/O设备变换数据的存储器起始地址; (2) DMA控制器必须提供读/写脉冲,以规定数据在存储器与I/O设备之间的传输方向; (3) DMA控制器必须修改内存地址指针并计算传送的字节数,以
4、判断什么时候传送结束。DMA的基本概念 北京工业大学计算机学院612.1 8237A的组成和工作原理 8237A的特点 8237A内部有4个独立的通道每个通道具有64K地址和字节计数能力具有4种传送方式:但字节传送、数据块传送、请求传送和级联传送方式(可扩大通道数)对每个通道的DMA请求可以允许和禁止。4个通道有不同的优先级,可以固定,可以循环。DMA完成后会产生过程结束信号EOP,同时结束DMA传送,还可以从外界输入EOP信号,中止DMA传送。 北京工业大学计算机学院712.1 8237A的组成和工作原理 8237A DMA控制器的两种工作状态:主态和从态 DMA控制器未取得总线控制权,CP
5、U对DMA控制器进行编程,以确定通道的选择、数据传送的方式和类型、内存单元起始地址,地址递增或递减、传送的总字节数的设置及读取DMA控制器的状态。DMA控制器和其他I/O芯片一样称为从态方式。DMA控制器取得总线控制权后,系统完全在他的控制下,使I/O设备和存储器之间或者存储器和存储器之间进行直接的数据传送。称为主态方式。 北京工业大学计算机学院8一、8237A的内部结构 8237A 内部结构如图12.1所示,主要有5部分组成: 时序与控制逻辑:8237A处于从态时,该部分电路接收系统送来的时钟、复位、片选和读/写控制等信号,A0A3有16个I/O地址。主态时则向系统发出相应的控制信号。优先级
6、编码电路:根据CPU对8237A初始化时的命令,对同时提出DMA请求的多个通道进行排队判优,以决定哪一个通道的优先级最高。优先级管理有两种方式:固定优先级和循环优先级一旦某个优先级高的设备在服务时,其他通道的请求都被禁止,直到服务结束时为止 北京工业大学计算机学院9一、8237A的内部结构数据和地址缓冲器组8237A的A7A4,A3A0为地址线;DB0DB7在从态时传输数据信息,主态时传送地址/数据信息,这些数据、地址线都与三态缓冲器相连,可接管和释放总线。命令控制逻辑在从态时接收CPU送来的寄存器选择信号,选择8237A内部相应的寄存器;主态时,对方式字的最低量为进行姨妈,以确定DMA的操作
7、类型。A3A0与IOR和IOW配合可组成各种操作命令。 北京工业大学计算机学院10一、8237A的内部结构内部寄存器组每个通道都有一个16位的基地址寄存器、基字计数器、当前地址寄存器、当前字计数器;4个通道,每个通道由一个 6位工作方式;还有一个命令寄存器、屏蔽寄存器、请求寄存器、状态寄存器和暂存寄存器上述寄存器可进行编程设置字数暂存器和地址暂存器不可编程 北京工业大学计算机学院11 北京工业大学计算机学院12二、8237A的引脚功能 40引脚双列直插,其引脚如图12-2其引脚功能为 北京工业大学计算机学院13CLK:时钟信号,输入,用来控制8237A内部操作和数据传送速率,3MHz,8237
8、A-5的时钟频率可为5MHzCS:片选信号,输入,低电平有效。READY:准备好,输入,高电平有效,当参与DMA传送的设备中有慢速I/O设备或存储器时,使用READY信号可在DMA周期中插入等待周期Tw。A3A0:DMA为从态方式,输入。对8237内部寄存器寻址;DMA为主态方式:输出。地址总线的低4位地址A3A0。A7A4:DMA为主态方式,输出,地址总线A7A4。DB7DB0:输入/输出。DMA为从态方式:数据总线;DMA为主态方式,高8位的地址信号输出DB7DB0 A15 A8,由ADSTB信号锁存到地址锁存器中,和A7A3构成16位地址。存储器到存储器传送方式时,由此引脚送入暂存寄存器
9、中暂存再写道目的存储单元中。二、8237A的引脚功能 北京工业大学计算机学院14AEN:地址允许信号,输出,高电平有效。输出16位地址,同时封锁CPU相连的地址锁存器。ADSTB:地址选通信号,输出,高电平有效。使高8位地址DB7DB0 送入外部锁存器中。IOR:I/O读信号,双向,低电平有效。DMA为从态方式:输入。CPU读DMA内部寄存器;DMA为主态方式:输出。与MEMW向配合,控制数据由外设处送到存储器IOW:I/O写信号,双向,低电平有效。DMA为从态方式:输入。CPU向DMA内部寄存器中写入信息;DMA为主态方式:输出。与MEMR向配合,控制数据从存储器到外设MEMR:存储器读,输
10、出,低电平有效。 DMA为主态方式,即可与IOW配合把 数据从存储器读出送外设,也可控制内存间数据传送,使数据从源地址中读出。从态无效MEMW:存储器写,输出,低电平有效。 DMA为主态方式,即可与IOR配合把 数据从外设写入存储器,也可控制内存间数据传送,控制把数据写入目的地址。二、8237A的引脚功能 北京工业大学计算机学院15DREQ :通道30的DMA请求信号,输入。当外设申请DMA服务时,就向此引脚送出有效的电平信号,有效电平由编程确定,固定优先级时DREQ0优先级最高, DREQ3优先级最低。优先级可通过编程改变 DACK:通道30的DMA响应信号,输出。有效电平由编程确定,当82
11、37A收到CPU的DMA相应信号HLDA,开始DMA传送后,相应通道的DACK有效,通知外部电路已进入DMA周期。HRQ:保持请求信号,输出,高电平有效。接到CPU的HOLD端,向CPU申请总线控制权的DMA请求信号HLDA:保持相应信号,输入,高电平有效。接到HLDA信号后,开始进行DMA传送。EOP:传输过程结束信号,双向,低电平有效。当DMA控制器的任意通道中的字计数器减为0,再减为FFFFH,中止计数时,在EOP引脚输出低电平;8237A也允许从外部输入一个低电平到EOP引脚,强制DMA计数结束。二、8237A的引脚功能 北京工业大学计算机学院168237A的内部可编程寄存器有10种见
12、表12-1,其内容可有CPU读出或按要求写入三、8237A的内部寄存器名称位数数 量当前地址寄存器当前字计数寄存器基地址寄存器基字计数寄存器工作方式寄存器命令寄存器状态寄存器请求寄存器屏蔽寄存器暂存寄存器161616166884484 (每通道一个)4 (每通道一个)4 (每通道一个)4 (每通道一个)4 (每通道一个)1 (4个通道公用1个)1 (4个通道公用1个)1 (每通道一个) 1 (每通道一个)1 (每通道一个) 北京工业大学计算机学院17 北京工业大学计算机学院181、当前地址寄存器:用于存放DMA传送的存储器地址值,CPU可写入初值,可读出此寄存器的值,读/写操作分两次进行,若编
13、程为自动预置操作,EOP后会自动将基地址的值重新装入。2、当前字计数寄存器:初值比实际传送的字节数少1,减为FFFFH,将产生中止计数信号。若编程为自动预置操作, EOP后会自动将基字计数寄存器的值重新装入。3、基地址寄存器:用于存放对应通道当前地址寄存器的初值,该值是在CPU对DMA控制器进行编程时与当前地址寄存器的值一起被写入,两个寄存器有相同的端口,写入时内容相同。主要目的在于,当执行自动预置操作时,使当前地址寄存器恢复到初值4、基字计数寄存器:用于当前字计数寄存器的初值,该值是在CPU对DMA控制器进行编程时与当前字计数寄存器的值一起被写入,两个寄存器有相同的端口,写入时内容相同。主要
14、目的在于,当执行自动预置操作时,使当前字计数寄存器恢复到初值。三、8237A的内部寄存器 北京工业大学计算机学院195、命令寄存器:8位寄存器,由CPU对它进行编程,设置8237A的操作方式,复位时将其清除。格式见图12-3或见后面的图6、工作方式寄存器:每个通道都有一个6位的寄存器,用于选择DMA的传送方式和类型,见图12-4 4个通道的方式寄存器使用相同的I/O端口地址,由D1D0选择读传送:将数据从存储器传送到I/O设备,8237A发出MEMR和IOW信号;写传送将数据从I/O设备传送到存储器,8237A发出IOR和MEMW信号;校验传送时一种伪传送,会产生地址信息和EOP信号,不产生读
15、写控制信号,进行测试时使用。三、8237A的内部寄存器 北京工业大学计算机学院20单字节传送方式:进行一次DMA传送,只传送一个字节的数据,传送后计数器减1或加1,HRQ无效,释放总线。若DREQ一直保持有效,可进入下一次DMA传送。数据块传输 方式:连续传输数据,直到数据传送完毕,字计数器减为0再减为ffffH,或外部产生EOP信号时,8237A才释放总线。结束DMA传输。请求传送方式:和数据块传输方式类似,但传输中检测DREQ信号,若无效则暂时停止,有效是再继续。级联传输方式,将多个8237A连在一起,以便扩大系统的DMA通道,如图12-5,编程时主片应置为级联方式,从片不用设成级联方式。
16、 三、8237A的内部寄存器 北京工业大学计算机学院218237控制器/命令寄存器的格式:如为1:则进行存储器到存储器传输D0=1时,如D1=1,则源地址保持不变0 启动8237工作1 停止8237工作0 普通时序1 压缩时序0 固定优先级1 循环优先级0 不扩展写信号1 扩展写信号0 DREQ高电平有效1 DREQ低电平有效0 DACK低电平有效1 DACK高电平有效D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 北京工业大学计算机学院228237工作方式寄存器通道选择 0 0 通道 0 1 通道 1 0 通道 1 1 通道传输类型选择 0 0 校验传输 0 1
17、写传输 1 0 读传输 1 1 无意义自动预置功能选择 0 禁止 1 允许地址增减选择 0 地址加 1 地址减方式选择 0 0 请求传输方式 0 1 单字节传输方式 1 0 块传输方式 1 1 级联传输方式D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 北京工业大学计算机学院237、请求寄存器:4位寄存器,对应每个通道的DMA请求信号DERQ。当8237A工作于数据块传送时,也可用软件方法使请求位置1或清0,请求字格式见图12-6或见后面的图8、屏蔽寄存器:4位寄存器,对应每个通道。相应位置1禁止DREQ的DMA请求,复位时允许DERQ请求。某通道禁止自动预置方式,
18、该通道产生EOP信号时,屏蔽位置位,禁止该通道DMA请求;RESET信号可使整个屏蔽寄存器置位8237A允许写入两种屏蔽字,需要写入不同端口地址中。一个是通道屏蔽字,一个是珠屏蔽字,见图12-7和12-8三、8237A的内部寄存器 北京工业大学计算机学院248237请求寄存器的格式:通道选择 0 0 通道0 0 1 通道1 1 0 通道2 1 1 通道3不用设置请求标志 0 无请求 1 有请求D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 北京工业大学计算机学院258237通道屏蔽寄存器的格式:通道选择 0 0 通道0 0 1 通道1 1 0 通道2 1 1 通道3
19、不用屏蔽设置 0 去除屏蔽位 1 设屏蔽位D7 | D6 | D5 | D4 | D3 | D2 | D1 | D01 对通道0设置屏蔽1 对通道1设置屏蔽1 对通道2设置屏蔽1 对通道3设置屏蔽不用D7 | D6 | D5 | D4 | D3 | D2 | D1 | D08237主屏蔽寄存器的格式: 北京工业大学计算机学院269、状态寄存器:8位寄存器,存放状态信息,可供CPU读出,低4位表示哪些通道已达到计数终点,高4位表示哪些通道的DMA请求还未被处理,请求字格式见图12-9或见后面的图10、暂存寄存器:在存储器到存储器传送时,暂存寄存器用来保存所传送的数据,当传送完成时始终保存最后一个
20、传送的数据字节,此字节可由CPU读出11、软件命令:在编程状态,可执行3个附加的命令,这3个命令不关心数据的内容,只要对特定的端口地址进行一次写操作,命令就生效。清除先/后触发器:保证CPU先读写8位低字节,后读写8位高字节主清命令:也称复位命令,其功能于RESET信号相同。清除屏蔽寄存器:该命令清除4个通道的全部屏蔽位,允许接收DMA请求三、8237A的内部寄存器 北京工业大学计算机学院278237状态寄存器的格式 :通道计数结束状态: 1 通道计数结束 1 通道计数结束 1 通道计数结束 1 通道计数结束通道请求状态: 1 通道0有请求 1 通道1有请求 1 通道2有请求 1 通道3有请求
21、D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 北京工业大学计算机学院2812、各寄存器对应的端口地址8237A具有16个I/O端口地址,见表12-2基地址和当前地址寄存器和用一个端口,故在进行写入操作时,被装入相同的初识值,但当前地址寄存器可由CPU读出,而基地址的值不能读出有些端口只能写入,不能读出三、8237A的内部寄存器 北京工业大学计算机学院2912.2 8237A的时序一、外设和内存间的DMA数据传送时序 8237A有两个主要的工作周期:空闲周期和有效周期。每个周期有若干个状态构成,有7个操作状态。 SI是非操作状态,未接到DMA请求时便进入此状态,可有CPU编程,预置操作方式SO是DMA服务的第一个状态
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 售货亭销售合同协议
- 和水果商家合作合同协议
- 德清空气治理合同协议
- 员工离店安全协议书范本
- 正规旅游合同协议版
- 咖啡生豆采购合同协议
- 商品展览展示合同协议
- 商场劳动用工合同协议
- 比亚迪解除劳务合同协议
- 商场合同员工代签协议模板
- 中小学违规征订教辅材料问题专项整治实施方案
- 《无人机测绘技能训练模块》课件-模块13:无人机航测综合生产案例
- 2024年沪教版六年级下册数学期末测试卷及答案1套
- 项目工作分解结构(EPC项目)
- 生物质燃气利用的市场前景
- 《纺织材料生产》课件-项目7:短纤工段
- 内部控制风险评估报告
- 部编版道德与法治六年级下册第二单元测试卷(两套附答案)
- 小型货物提升机的设计
- 建筑消防设施检测记录表样本
- 【甘蔗自动剥皮切断机的设计10000字(论文)】
评论
0/150
提交评论