微机原理讲义(第8章DMA控制器的编程结构及编程)_第1页
微机原理讲义(第8章DMA控制器的编程结构及编程)_第2页
微机原理讲义(第8章DMA控制器的编程结构及编程)_第3页
微机原理讲义(第8章DMA控制器的编程结构及编程)_第4页
微机原理讲义(第8章DMA控制器的编程结构及编程)_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

1、微型机原理与技术微型机原理与技术CH9 DMADMA控制器的编控制器的编程结构及编程程结构及编程湖南中医药大学 王志辉主要内容DMA 控制器概要控制器概要DMA 控制器控制器8237的原理的原理8237A的工作方式和寄存器的工作方式和寄存器9.19.29.328237A各寄存器对应的端口地址各寄存器对应的端口地址9.48237A的编程和应用的编程和应用9.5DMA 传输的特点传输的特点9.0n本章重点本章重点:uDMA控制器的编程结构控制器的编程结构uDMA控制器的作为主模块和从模块时的差别控制器的作为主模块和从模块时的差别u8237A的工作方式的工作方式u结合例子了解结合例子了解8237A的

2、编程方法的编程方法执行指令的数据传送路径;执行指令的数据传送路径; DMA方式的数据传送路径方式的数据传送路径回忆一下,回忆一下,DMA的提出背景?的提出背景?不需要不需要CPUCPU干预干预( (执行指令执行指令) ),而在,而在专门硬件电路控制之下,在外设专门硬件电路控制之下,在外设与存储器间建立直接通道,直接与存储器间建立直接通道,直接传送传送指令控制时指令控制时, ,要经过取指、要经过取指、识别、取操作数、执行识别、取操作数、执行4 4个个过程,传输率不很高过程,传输率不很高DMA传送的工作过程? CPUCPU对对DMADMA控制器进行控制器进行初始化初始化设置设置 外设、外设、DMA

3、CDMAC和和CPUCPU三者通过应答信号三者通过应答信号建立联系:建立联系:CPUCPU将将总线交给总线交给DMACDMAC控制控制 DMADMA传送数据传送数据DMADMA读存储器:存储器读存储器:存储器 外设外设DMADMA写存储器:存储器写存储器:存储器 外设外设 自动增减自动增减地址和计数地址和计数,判断传送完,判断传送完成否成否 nDMA控制器的6大功能: 向CPU发总线请求信号 实行对三大总线的控制 修改所用的存储器或接口的地址指针 发RW控制信号 字节计数器(存放数据长度直至为0) 交还总线控制权DMA控制器的功能有哪些?lDMAnDMA (Direct Memory Acce

4、ss):让存储器与高速外设直接进行数据交换而无需CPU的干预。l特点nDMA传送期间,DMA控制器(DMAC)接管了CPU对总线的控制权。nDMA方式中,内存地址的修改、传送结束的判断都由硬件电路实现。即:用硬件控制硬件控制代替了软件控制。nDMA控制器控制器是实现DMA传送的核心器件。79.0 DMA传送的特点传送的特点l应用场合nDMA方式主要用于高速大批量传输数据的场合。如:硬盘和软盘外设;快速通信通道快速通信通道;多处理机和多程序数据块传送;图像处理中向CRC屏幕传送数据;快速数据采集快速数据采集;DRAM的刷新操作的刷新操作。89.0 DMA传送的特点传送的特点99.1 DMA控制器

5、概要控制器概要uDMA控制器中与接口有联系的部分称为通道,一个DMA控制器可包含几个通道uDMA控制器中控制寄存器和状态寄存器为多个通道公用,但地址寄存器和计数器为每个通道独立配备uDMA控制器初始化包括两个方面:u数据传输缓冲区的起始地址或结束地址送往地址寄存器u传输的字节数、字数或双字数送往字节计数器n1 DMA控制器概要控制器概要lDMA的传送过程分5个阶段:1. 1. 初始化阶段初始化阶段11 要传送的数据字节数 数据在存储器中的起始地址 传送方向 DMAC的通道号 DMAC 2. 2. 申请阶段申请阶段当外设有DMA需求,并且已准备就绪,则向DMA控制器发出DMA请求信号DREQ。D

6、MA控制器接收到DMA请求信号后,向CPU发出总线请求信号HRQ。该信号连接到CPU的HOLD信号。12 CPU DMAC 外部设备外部设备DREQHRQDMA的传送过程分5个阶段:3. 3. 响应阶段响应阶段CPU收到DMA的HRQ请求后,若允许DMA传输,则在当前总线周期结束后,释放总线控制权,并向DMAC发HLDA信号,通知其CPU已交出总线。13CPU检测HRQHRQ有效且LOCK无效CPU交出总线CPU向DMAC发HLDAYNDMAC成为总线主控者成为总线主控者 DMA的传送过程分5个阶段:4. 4. 数据传送阶段数据传送阶段DMA控制器获得总线的控制权,向外设发送应答信号DACK,

7、通知外设可以进行DMA传输了。DMA控制器送出地址信号和控制信号,实现外设与内存的数据传输。14 外部设备 DMAC 存储器 DACK地址信号读写信号DMA的传送过程分5个阶段:5. 5. 传送结束阶段传送结束阶段DMAC向外设发送EOP信号,外设撤销DREQ请求,同时HRQ和HLDA信号 变 为 无 效 ,DMAC释放总线,CPU重获总线控制权。15CPU重获总线控制权重获总线控制权DMAC向外设发EOP信号外设撤消DREQ信号HRQ和HLDA变为无效DMAC交出总线控制权DMA的传送过程分5个阶段:169.2 DMA控制器控制器8237A的原理的原理lDMA控制器的2种状态n主动工作态:总

8、线主模块 在主动工作状态下,DMAC取代处理器CPU,获得了对系统总线的控制权总线的控制权,成为系统总线的主控者,向存储器和外设发号施令发号施令。n被动工作态:总线从模块 在被动工作状态下,DMAC接受CPU对它的控制和指挥。例如:对DMAC进行初始化编程以及从DMAC读取状态等。1. 8237A的编程结构l2、DMA控制器8237A的基本特点n8237A是一个高性能通用可编程可编程DMAC。n具有4个独立的通道,每个通道有16为的地址寄存器和字节计数器,还有8为的方式寄存器。4个通道公用控制寄存器和状态寄存器。n8237A通过级联方式进行扩充。最多可扩展4个从片,即16个DMA通道。每个通道

9、可传输的最大数据块均为64KB。n可实现内存到外设、外设到内存以及内存到内存之间的高速数据传输,最高数据传输速率可达1.6MB/s。n具有多种控制方式和操作类型。179.2 DMA控制器控制器8237A的原理的原理8237A的编程结构和外部连接l控制寄存器l状态寄存器l地址寄存器l字节计数器:字节数初值同时写入基本字节计数器和当前字节计数器,当有0减为FFFF时,产生EOP信号8237A的内部有的内部有10种不同类型的寄存器种不同类型的寄存器 名称名称位数位数数量数量功能功能当前地址寄存器当前地址寄存器16164 4保存保存在在DMA传传送期间的地址值,可读写送期间的地址值,可读写当前字节计数

10、寄存器当前字节计数寄存器16164 4保存当前字节数,初始值比实际值少保存当前字节数,初始值比实际值少1 1,可读写,可读写基地址寄存器基地址寄存器16164 4保存当前地址寄存器的初始值,只能写保存当前地址寄存器的初始值,只能写基字节计数寄存器基字节计数寄存器16164 4保存相应通道当前字节计数器的初值保存相应通道当前字节计数器的初值工作方式控制寄存器工作方式控制寄存器8 84 4保存相应通道的方式控制字,由编程写入保存相应通道的方式控制字,由编程写入命令寄存器命令寄存器8 81 1保存保存CPU发送的控制命令发送的控制命令状态寄存器状态寄存器8 81 1保存保存8237A各通道的现行状态

11、各通道的现行状态请求寄存器请求寄存器4 41 1保存各通道保存各通道的的DMA请求信号请求信号屏蔽寄存器屏蔽寄存器4 41 1用于选择允许或禁止各通道用于选择允许或禁止各通道的的DMA请求信号请求信号暂存寄存器暂存寄存器8 81 1暂存传输数据,仅用于存储器到存储器的传输暂存传输数据,仅用于存储器到存储器的传输l8237A-5外部特性n概况 40引脚双列直插封装。n引脚说明209.2 DMA控制器控制器8237A的原理的原理lCLKlCSlRESET lREADYlADSTBlAENlMEMR lMEMW lIOR lIOW8237A作为主模块和从模块时,IOR和IOW的作用不同lEOPlDR

12、EQ lDACK lHRQlHLDA lA3A0 lA7A4 lDB7DB0传输结束信号,双向分8237A作为主模块和从模块两种情况(1) 请求与应答信号请求与应答信号DREQ3 DREQ0:DMA通道请求输入信号(由外设提供)。有效电平可高可低,由程序选定。 优先级:DREQ0最高, DREQ3最低。DACK3 DACK0:DMA响应输出信号(外接外设)。有效电平可高可低,由程序选定。 8237A在同一个时间,只能有一个DACK应答信号有效。HRQ:8237A-5向CPU发出的总线请求信号,高电平有效。HLDA:CPU发给8237A-5的总线请求响应信号。高电平有效。有效时表示CPU已让出总

13、线。23 外部设备外部设备 DMAC DREQ CPU HRQHLDADACK9.2 DMA控制器控制器8237A的原理的原理2. 8237A的外部信号的外部信号 (2)地址信号线)地址信号线A3 A0:地址线,双向三态。l 被动状态下,为输入,作为CPU对8237A内部的16个寄存器与计数器寻址之用。l 主动状态下,为输出,作为20位存储器地址的最低4位。A7 A4:地址线,单向。l 主动状态下,为输出。作为访问20位存储器地址低8位中的高4位。249.2 DMA控制器控制器8237A的原理的原理2. 8237A的外部信号的外部信号 (3)数据信号)数据信号DB7 DB0:地址数据复用线,双

14、向三态。l被动状态下,为双向数据线。用于CPU对8237A进行初始化,或DMA传输结束后传送状态。l主动状态下,分时复用分时复用作为访问存储器的高8位地址线和数据线。在存储器到存储器传送方式中,作为数据的输入输出端。259.2 DMA控制器控制器8237A的原理的原理2. 8237A的外部信号的外部信号 (4)控制信号)控制信号CS:片选信号,低有效。被动状态下用于CPU对8237的寻址。CLK:控制芯片内部操作和数据传输。RESET:输入信号,复位8237A。IOR/IOW:读写控制信号。l被动状态下,为输入被动状态下,为输入。用于CPU向DMAC写命令或初始化参数,或CPU读取8237A内

15、部寄存器状态。l主动状态下,为输出主动状态下,为输出。对外设进行读写。MEMR/MEMW:存储器读/写信号,单向输出。当8237A为主动为主动工作状态时,对存储器进行读写。269.2 DMA控制器控制器8237A的原理的原理2. 8237A的外部信号的外部信号ADSTB:地址选通信号。此信号有效时,DMA控制器的当前地址寄存器中的高8位地址通过DB0DB7送到外部锁存器。AEN:地址允许。使地址锁存器中的高8位地址送地址总线。READY:准备就绪信号。低电平时,8237A处于等待状态,高电平表示外设或存储器准备就绪。EOP:DMA传输过程结束信号。DMA传送过程结束,则从EOP输出一个低有效脉

16、冲。若从EOP输入低脉冲信号,则表明外部强制结束DMA传送。279.2 DMA控制器控制器8237A的原理的原理(4 4)控制信号)控制信号u作为作为从模块从模块工作时工作时l8237A用高12位地址产生片选信号,用低4位来选择内部寄存器l用IOR和IOW作为读/写控制端l此时信号CS、HRQ、AEN均为低电平u作为作为主模块主模块工作时工作时l要访问的内存地址的低8位放在A7A0,地址高8位放在DB7DB0l信号AEN为高电平,两个作用:将高8位地址送到A15A8,使与CPU相连的地址锁存器无效l待访问内存地址A19A16不是从8237A得到,而是存放在另外的4位I/O端口3. 8237A工

17、作时各信号的配合工作时各信号的配合lDMA的传送类型n数据传送数据传送:把源地址的数据传送到目的地址去。DMA读:把数据由存储器传送到外设。DMA写:把外设输入的数据写入存储器。存储器与存储器之间的传递。读读/写操作均是针对存储器而言。写操作均是针对存储器而言。n数据校验数据校验:对数据块内的每个字节进行校验。n数据检索数据检索:在指定的内存区域内查找某个关键字节或某几个关键数据位是否存在,如果查到了,就停止检索。8.3 8237A的工作方式和寄存器的工作方式和寄存器n单字节传输方式单字节传输方式每传送一个字节,字节计数器减1,地址寄存器加1或减1,8237A释放系统总线;传送下一个字节时,若

18、DREQ回到有效电平,则可继续发送总线请求特点CPU在每个DMA周期结束后立即控制总线。对系统影响不大。CPU和DMAC轮流控制系统总线,传输效率低。308.3 8237A的工作方式和方式寄存器的工作方式和方式寄存器1. 8237A的工作方式和方式寄存器的工作方式和方式寄存器8237A的四种工作方式的四种工作方式允许 DMADMAC发总线请求CPU响应DMA放弃总线DMAC控制传一个字节放弃总线中断请求DREQ有效电平NYYDMA请求?传送结束否?n块传输方式块传输方式只要DMA一启动,DMAC始终占用总始终占用总线线,直到数据传送结束,或外部强制停止,才交出总线控制权。两种结束方式:1、当字

19、节计数器减为0时,使EOP#信号有效;2、接口往EOP#端送入有效电平,8237A释放总线。特点效率高。DMA传输期间CPU长时间不能控制总线。若一次传输的数据较多,对系统会有一定响应。31YNDMAC控制传一个字节放弃总线中断请求CPU 响应 DMA放弃总线DMAC发总线请求允许 DMADMA请求?块结束?8237A的四种工作方式的四种工作方式8237A的工作方式和方式寄存器的工作方式和方式寄存器1. 8237A的工作方式和方式寄存器的工作方式和方式寄存器n请求传输方式请求传输方式当8237A检测到DREQ请求时就传输一字节,当DREQ 无效,或操作结束,或由外部送来结束信号EOP,DMAC

20、都会释放总线,把总线控制权交还CPU。具体实现:每传完一个字节,DMAC都会检测外设的DREQ请求。若若DREQ无效,则马上停止无效,则马上停止DMA传输传输,将总线控制权交给CPU。特点实现灵活,DMA操作可由外设用DREQ信号控制发送过程。328237A的四种工作方式的四种工作方式8.3 8237A的工作方式和方式寄存器的工作方式和方式寄存器1. 8237A的工作方式和方式寄存器的工作方式和方式寄存器33允许DMADMAC发出总线请求CPU响应DMA放弃总线DMAC控制传一个字节放弃总线中断请求YY放弃总线NNYDMA请求?块结束?DMA请求?Nn请求传输方式流程图请求传输方式流程图343

21、 8237A 的工作方式和寄存器 工作方式和方式寄存器1. 单字节传输方式每传送一个字节,便释放系统总线;若DREQ回到有效电平,则可继续发送总线请求2. 块传输方式可连续传送多个字节。两种结束方式:当字节计数器减为0时,使EOP信号有效;接口往EOP端送入有效电平,8237A释放总线3. 请求传输方式每传送1个字节,则对DREQ端进行测试。若DREQ端为无效电平,则暂停传送,但仍继续测试n级联传输方式级联传输方式将多个DMAC连在一起,一个为主,其余为从。从片收到外设的DMA请求后,不是向CPU申请总线,而是从片向主片申请,再由主片向CPU申请。358237A的四种工作方式的四种工作方式9.

22、3 8237A的工作方式和方式寄存器的工作方式和方式寄存器1. 8237A的工作方式和方式寄存器的工作方式和方式寄存器368237A的方式寄存器的方式寄存器8.3 8237A的工作方式和方式寄存器的工作方式和方式寄存器1. 8237A的工作方式和方式寄存器的工作方式和方式寄存器当计数值到达0时,当前地址寄存器和当前字节计数器会从基址寄存器和基本字节计数器中重新取得初值,进入下一个数据传输过程从内存的角度来看待内存与外设之间的传输请思考请思考:PC系列软盘读写操作选择系列软盘读写操作选择DMA通道通道2,单字节,单字节传送,地址增传送,地址增1,不用自动预置,其写、读、校验操作,不用自动预置,其

23、写、读、校验操作的方式字用的方式字用16进制表示进制表示分别是多少分别是多少?l写操作:写操作:01000110 = 46H。l读操作:读操作:01001010 = 4AH。l校验操作:校验操作:01000010 = 42H。9.3 8237A的工作方式和方式寄存器的工作方式和方式寄存器9.3 8237A的工作方式和方式寄存器的工作方式和方式寄存器2. 8237A的控制寄存器和有关问题的控制寄存器和有关问题 (1) 8237A控制寄存器(只写)控制寄存器(只写)通道通道0的地址寄存器的地址寄存器存放存放源源地址,地址,通道通道1的的地址地址寄存器和寄存器和字字节计数器节计数器存放存放目的目的地

24、址和计数值地址和计数值将将IOW和和MEMW信号的负脉冲加宽信号的负脉冲加宽,并,并提前发出,使提前发出,使READY信号早些信号早些到来到来普通:传输普通:传输1个字节个字节3个时钟;个时钟;压缩:传输压缩:传输1个字节个字节2个时钟。个时钟。D7、D6:决定DREQ和DACK的有效电平。D5:扩展写和不扩展写lD5=1:扩展写信号,表示写脉冲加宽。lD5=0:不扩展写信号,表示正常时序。D4:控制通道的优先权lD4=0:采用固定优先级,DREQ0最高,DREQ3最低。lD4=1:采用循环优先级。已服务过的通道优先权变为最低,其下一个通道优先权变为最高。399.3 8237A的工作方式和方式

25、寄存器的工作方式和方式寄存器2. 8237A的控制寄存器和有关问题的控制寄存器和有关问题 (1) 8237A控制寄存器(只写)控制寄存器(只写)409.3.2 8237A的控制寄存器和有关问题的控制寄存器和有关问题 D3:时序类型lD3=0:普通时序普通时序,每传输一个字节需要3个时钟周期。lD3=1:压缩时序压缩时序,每传输一个字节需要2个时钟周期。 D2:启动和停止8237A的工作。lD2=0:启动;D2=1:停止。l该位影响所有的通道 D1:通道0地址保持。用于内存到内存的传输。lD1=0:不保持。D1=1:保持。l配合D0位使用。D0:允许和禁止内存到内存内存到内存传输。lD0=1:允

26、许。D0=0:禁止。l在实现内存到内存的传输时,需把源数据先送到源数据先送到8237的暂存器暂存器中,然后再送到目的区目的区。这时,用通道通道0的地址寄存器存放源地址存放源地址,用通道通道1的地址寄存器和字节计数器存放目的地址和计数值目的地址和计数值。41低4位表示哪些DMA通道传送结束传送结束。高4位表示哪些通道有DMA请求还未处理还未处理。状态位在复位或被读出后,均被清零。429.3.3 8237A的状态寄存器的格式的状态寄存器的格式(1)请求标志和请求寄存器(只写)请求标志和请求寄存器(只写)n产生DMA请求的两种方式:l硬件方法:通过DREQ引脚引入DMA请求l软件方法:通过请求寄存器

27、设置DMA请求标志n若是内存到内存内存到内存传输,则必须由软件请求启动通道0。n仅适用于块传输方式,传送结束信号EOP自动清除自动清除请求位。439.3.4 8237A的请求标志、屏蔽标的请求标志、屏蔽标志和复位命令志和复位命令(2)屏蔽寄存器(只写)屏蔽寄存器(只写)用来禁止或允许通道的DMA请求。各通道相互独立。复位使4个通道全被屏蔽屏蔽。有单屏蔽寄存器单屏蔽寄存器和和全屏蔽寄存器全屏蔽寄存器两种形式:单通道单通道屏蔽寄存器:每次只能屏蔽一个通道。449.3.4 8237A的请求标志、屏蔽标的请求标志、屏蔽标志和复位命令志和复位命令四通道四通道屏蔽寄存器(全屏蔽寄存器):可同时屏蔽4个通道。低4位全部置1,则屏蔽屏蔽所有的DMA请求。低4位全部置0,则允许允许所有的DMA请求。459.3 8237A的工作方式和方式寄存器的工作方式和方式寄存器4. 8237

温馨提示

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

评论

0/150

提交评论