接口技术第9章DMA控制接口_第1页
接口技术第9章DMA控制接口_第2页
接口技术第9章DMA控制接口_第3页
接口技术第9章DMA控制接口_第4页
接口技术第9章DMA控制接口_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

1、1第第 9 章章 DMA控制接口控制接口2DMADMA控制接口控制接口n教学重点n 8237A的工作方式的工作方式n 8237A寄存器组的作用寄存器组的作用n 8237A寄存器组的编程寄存器组的编程注意复习第注意复习第8.1.2.38.1.2.3节节 直接存储器存取(直接存储器存取(DMADMA)方式)方式34DMA控制器控制器8237An每个每个8237A芯片有芯片有4个个DMA通道,就是通道,就是有有4个个DMA控制器控制器n每个每个DMA通道具有不同的优先权通道具有不同的优先权n每个每个DMA通道可以分别允许和禁止通道可以分别允许和禁止n每个每个DMA通道有通道有4种工作方式种工作方式n

2、一次传送的最大长度可达一次传送的最大长度可达64KBn多个多个8237A芯片可以级连,扩展通道数芯片可以级连,扩展通道数58237A的外部引脚分类展开外部引脚分类展开外部引脚68237A的两种工作状态的两种工作状态8237A具有两种工作状态(工作周期)具有两种工作状态(工作周期)n空闲周期空闲周期:作为接口电路作为接口电路(slave角色角色),受,受CPU控制的控制的工作状态工作状态n有效周期有效周期:作为作为DMAC(bus master角色角色)控制控制DMA传送的工作状态传送的工作状态于是,引脚分成两种作用于是,引脚分成两种作用78237A引脚的两种作用引脚的两种作用81. 请求与响应

3、信号请求与响应信号nDREQ0DREQ3(Dma REQuest):DMA通道请求。通道请求。当外设需要请求当外设需要请求DMA服务时,将服务时,将DREQ信号置成有效信号置成有效电平,并要保持到产生响应信号。电平,并要保持到产生响应信号。nHRQ(Hold ReQuest):总线请求。总线请求。8237A输出有输出有效的效的HRQ高电平,向高电平,向CPU申请使用系统总线。申请使用系统总线。nHLDA(HoLD Acknowledge):总线响应。总线响应。8237A接受来自接受来自CPU的响应信号的响应信号HLDA,取得了总线,取得了总线的控制权。的控制权。nDACK0DACK3(Dma

4、Acknowledge):DMA通道通道响应。响应。8237A使请求服务的通道产生相应的使请求服务的通道产生相应的DMA响应响应信号。信号。92. DMA传送控制信号传送控制信号nA0A7:地址线。输出低:地址线。输出低8位存储器地址。位存储器地址。nDB0DB7:数据线。输出高:数据线。输出高8位存储器地址;位存储器地址;存贮器与存贮器的传送期间,用于数据传送。存贮器与存贮器的传送期间,用于数据传送。nADSTB(ADress STroBe):地址选通。地址选通。DMA传送开始时,输出高有效,把在传送开始时,输出高有效,把在DB0DB7上输出的高上输出的高8位地址锁存在外部锁存器中。位地址锁

5、存在外部锁存器中。nAEN(Adress ENable):地址允许。输出高地址允许。输出高有效,将锁存的高有效,将锁存的高8位地址送入系统总线,与芯位地址送入系统总线,与芯片此时输出的低片此时输出的低8位地址组成位地址组成16位存储器地址。位存储器地址。102. DMA传送控制信号传送控制信号(续)(续)nMEMR*:存储器读。有效将数据从存储器读出:存储器读。有效将数据从存储器读出nMEMW*:存储器写。有效将数据写入存储器存储器写。有效将数据写入存储器nIOR*:I/O读。有效将数据从外设读出读。有效将数据从外设读出nIOW*:I/O写写。有效将数据写入外设有效将数据写入外设nREADY:

6、准备好。准备好。DMA传送的传送的S3下降沿检测下降沿检测到为低时,插入等待状态到为低时,插入等待状态Sw,直到,直到READY为为高才进入第高才进入第4个时钟周期个时钟周期S4。nEOP*(End Of Process):过程结束。:过程结束。DMA传送过程结束,输出一个低有效脉冲。外部输传送过程结束,输出一个低有效脉冲。外部输入低脉冲信号,则终结入低脉冲信号,则终结DMA传送。传送。 113. 处理器接口信号处理器接口信号nDB0DB7:数据线。用于:数据线。用于8237A与微处理与微处理器进行数据交换。器进行数据交换。nA0A3:地址线。用以选择芯片内部寄存器。:地址线。用以选择芯片内部

7、寄存器。nCS*:片选。低有效时,微处理器与:片选。低有效时,微处理器与8237A通通过数据线通信,主要完成对过数据线通信,主要完成对8237A的编程。的编程。nIOR*:I/O读。读取读。读取8237A内部寄存器。内部寄存器。nIOW*:I/O写。写入写。写入8237A内部寄存器。内部寄存器。nCLK:时钟。控制芯片内部操作和数据传输。时钟。控制芯片内部操作和数据传输。nRESET:复位。使复位。使8237A处于初始状态。处于初始状态。128237A的内部结构的内部结构n内部结构内部结构相对比较复杂相对比较复杂n应用观点,内部主要由两类寄存器组成应用观点,内部主要由两类寄存器组成n通道寄存器

8、通道寄存器n控制和状态寄存器控制和状态寄存器138237A的内部结构框图(图的内部结构框图(图9-1)148237A的工作时序的工作时序空闲周期空闲周期n8237A的任一通道都没有的任一通道都没有DMA请求时请求时n8237A由微处理器控制作为一个接口芯片由微处理器控制作为一个接口芯片nCPU可可对对8237A编程,或从编程,或从8237A读取状态读取状态n8237A采样采样CS*选片信号,该信号有效,选片信号,该信号有效,CPU就就要对要对8237A进行读进行读/写操作写操作n8237A在每一个时钟周期都在每一个时钟周期都采样通道的请求采样通道的请求输入信号输入信号DREQ,该信号有效,就进

9、入有效,该信号有效,就进入有效周期周期158237A的工作时序的工作时序有效周期有效周期n8237A采样到外设有采样到外设有DMA请求,就脱请求,就脱离空闲周期进入有效周期离空闲周期进入有效周期n8237A作为系统的主控芯片,控制作为系统的主控芯片,控制DMA传送操作传送操作nDMA传送借用系统总线完成,其控制传送借用系统总线完成,其控制信号以及工作时序类似信号以及工作时序类似CPU总线周期总线周期(CPU总线周期用总线周期用T状态描述,状态描述,DMA操操作时序中用作时序中用S状态描述状态描述)16外设和内存间的外设和内存间的DMA数据传送时序数据传送时序n8237A设有设有7个独立的操作状

10、态(或周个独立的操作状态(或周期):期):SI,S0,S1-S4和和SW。178237A时序状态流程图时序状态流程图注意:单字节方式和块传送的区别注意:单字节方式和块传送的区别n每个状态包含一个时钟周期,每个状态包含一个时钟周期,7种状态中:种状态中:nSI为空闲状态,为空闲状态,8237A未收到未收到DMA请求信请求信号时进入。号时进入。SI状态,状态,CPU可对可对8237A进行进行编程。编程。nS0为从空闲状态进入为从空闲状态进入DMA过程的过渡周期;过程的过渡周期;nS1-S4为为DMA服务状态;服务状态;nSW为等待状态,慢速设备使用为等待状态,慢速设备使用8237A时,时,可在可在

11、S3和和S4间插入间插入SW周期。周期。1819nS0是个等待周期,这期间是个等待周期,这期间8237A等待等待CPU让出总线,让出总线,得到得到HLDA的响应。的响应。nS1状态状态输出输出16位存储器地址位存储器地址nAEN输出高电平,表示输出高电平,表示DMA传送传送n高高8位地址位地址A15A8送到送到DB7DB0引脚上,并发出引脚上,并发出ADSTB地址选通信号。地址选通信号。n地址的低地址的低8位由地址线位由地址线A7A0输出。输出。nS2状态状态输出输出DMA响应信号和控制信号响应信号和控制信号n向外设送出向外设送出DACK信号。信号。nDMA读:读:MEMR*和和IOW*有效有

12、效nDMA写:写:IOR*和和MEMW*有效有效nS3和和Sw状态状态检测数据传送是否能够完成,决检测数据传送是否能够完成,决定是否插入等待状态定是否插入等待状态SwnS4状态状态完成数据传送完成数据传送20DMA传送时序传送时序DB0DB7DACKADSTBHRQDREQCLKS1S0S0SiSiS3S2S4S3S2SiSiS4HLDAAENA0A7 MEMR(IOR)IOW(MEMW)218237A的工作方式的工作方式nDMA传送方式(传送方式(4种)种) 单字节传送方式单字节传送方式 数据块传送方式数据块传送方式 请求传送方式请求传送方式 级连方式级连方式nDMA传送类型(传送类型(3种

13、)种) DMA读读 DMA写写 DMA检验检验n存储器到存储器的传送存储器到存储器的传送221. DMA传送单字节方式传送单字节方式n每次每次DMA传送时仅传送一个字节传送时仅传送一个字节n传送一个字节之后,字节数寄存器减传送一个字节之后,字节数寄存器减1,地址,地址寄存器加寄存器加1或减或减1,HRQ变为无效变为无效n8237A释放系统总线,将控制权还给释放系统总线,将控制权还给CPUn若传送后使字节数从若传送后使字节数从0减到减到FFFFH,则终结,则终结DMA传送或重新初始化传送或重新初始化n特点:特点:n一次传送一个字节,效率略低一次传送一个字节,效率略低nDMA传送之间传送之间CPU

14、有机会重新获取总线控制权有机会重新获取总线控制权232. DMA传送数据块方式传送数据块方式n由由DREQ启动就连续地传送数据,直到字节数启动就连续地传送数据,直到字节数寄存器从寄存器从0减到减到FFFFH终止计数终止计数(注意终止计(注意终止计数数TC的含义)的含义),或由外部输入有效信号终结,或由外部输入有效信号终结DMA传送传送nDREQ只需维持有效到只需维持有效到DACK有效有效n特点:特点:n一次请求传送一个数据块,效率高一次请求传送一个数据块,效率高n整个整个DMA传送期间传送期间CPU长时间无法控制总线(无长时间无法控制总线(无法响应其他法响应其他DMA请求、无法处理中断等)请求

15、、无法处理中断等)243. DMA传送请求传送方式传送请求传送方式nDREQ信号有效就连续传送数据信号有效就连续传送数据nDREQ信号无效,信号无效,DMA传送被暂时中止,传送被暂时中止,8237A释放总线,释放总线,CPU可继续操作可继续操作nDMA通道的地址和字节数的中间值仍被保持通道的地址和字节数的中间值仍被保持nDREQ信号再次有效,信号再次有效,DMA传送就继续进行传送就继续进行n如果字节数寄存器从如果字节数寄存器从0减到减到FFFFH,或者由外,或者由外部送来一个有效的信号,将终止计数部送来一个有效的信号,将终止计数n特点:特点:nDMA操作可由外设利用操作可由外设利用DREQ信号

16、控制传送的过程信号控制传送的过程(速率)(速率)254. DMA传送级连方式传送级连方式n用于通过多个用于通过多个8237A级连以扩展通道级连以扩展通道n第二级的第二级的HRQ(输出)(输出)和和HLDA(输入)(输入)信号信号连到第一级某个通道的连到第一级某个通道的DREQ(输入)(输入)和和DACK(输出)(输出)上上n第二级芯片的优先权等级与所连通道的优先权第二级芯片的优先权等级与所连通道的优先权相对应相对应n第一级只起优先权网络的作用,实际的操作由第一级只起优先权网络的作用,实际的操作由第二级芯片完成第二级芯片完成n还可由第二级扩展到第三级等还可由第二级扩展到第三级等268237A级联

17、图示级联图示27DMA传送类型(传送类型(读写均对存储器而言读写均对存储器而言)nDMA读读把数据由存储器传送到外设把数据由存储器传送到外设n由由MEMR*有效从存储器读出数据,由有效从存储器读出数据,由IOW*有效有效把这一数据写入外设把这一数据写入外设nDMA写写把外设输入的数据写入存储器把外设输入的数据写入存储器n由由IOR*有效从外设输入数据,由有效从外设输入数据,由MEMW*有效把有效把这一数据写入存储器。这一数据写入存储器。nDMA检验检验空操作空操作n本意是进行某种校验,一般在本意是进行某种校验,一般在DMA读之后读之后n实际实际8237A不进行任何检验,只是产生不进行任何检验,

18、只是产生DMA时序时序和地址信号,和地址信号, 存储器和存储器和I/O控制线保持无效,不进控制线保持无效,不进行传送(空操作),外设可以利用此时序进行行传送(空操作),外设可以利用此时序进行DMA校验校验28 存储器到存储器的传送存储器到存储器的传送n固定使用通道固定使用通道0和通道和通道1n通道通道0的地址寄存器存放源区(的地址寄存器存放源区(Source)地址)地址n通道通道1的地址寄存器存放目的区(的地址寄存器存放目的区(Destination)地址,通道地址,通道1的字节数寄存器存传送的字节数的字节数寄存器存传送的字节数n传送由设置通道传送由设置通道0的软件请求启动的软件请求启动n每传

19、送一字节需用每传送一字节需用8个时钟周期个时钟周期n前前4个时钟周期用通道个时钟周期用通道0地址寄存器的地址从源区读地址寄存器的地址从源区读数据送入数据送入8237A的临时寄存器的临时寄存器n后后4个时钟周期用通道个时钟周期用通道1地址寄存器的地址把临时寄地址寄存器的地址把临时寄存器中的数据写入目的区存器中的数据写入目的区n传送至通道传送至通道1终止计数或收到外部终止计数或收到外部EOP*为止为止29 DMA通道的优先权方式通道的优先权方式n固定优先权方式固定优先权方式优先权固定优先权固定n通道通道0优先权最高,通道优先权最高,通道1其次,通道其次,通道2再次,再次,通道通道3最低最低n循环优

20、先权方式循环优先权方式优先权循环变化优先权循环变化n最近一次服务的通道在下次循环中变成最低最近一次服务的通道在下次循环中变成最低优先权,其他通道依次轮流相应的优先权优先权,其他通道依次轮流相应的优先权DMADMA传送不存在嵌套传送不存在嵌套308237A的寄存器的寄存器n8237A共有共有10种内部寄存器,对它们的种内部寄存器,对它们的操作有时需要配合操作有时需要配合3个软件命令个软件命令n8237A的的“软件命令软件命令”n不需要通过数据总线写入控制字不需要通过数据总线写入控制字n直接由地址和控制信号译码实现直接由地址和控制信号译码实现全部都用地址全部都用地址A A0 0A A3 3区分区分

21、318237A寄存器和软件命令的寻址(表寄存器和软件命令的寻址(表9-1勘误)勘误)32基地址寄存器基地址寄存器(地址初值寄存器地址初值寄存器)和和现行地址寄存器(地址计数器)现行地址寄存器(地址计数器)n基地址寄存器存放基地址寄存器存放DMA传送的传送的地址初始地址初始值值,现行地址寄存器,现行地址寄存器保持保持DMA传送的传送的当当前地址值前地址值nCPU同时写入基地址寄存器和现行地址同时写入基地址寄存器和现行地址寄存器寄存器n基地址寄存器基地址寄存器只写不读只写不读,其内容,其内容不会自不会自动修改动修改;现行地址寄存器;现行地址寄存器可读可写可读可写,其,其内容内容随随DMA传送的进行

22、每次传送的进行每次自动加自动加1或或减减133基字节数寄存器(字节数初值寄存器)基字节数寄存器(字节数初值寄存器)和和现行字节数寄存器(字节数计数器)现行字节数寄存器(字节数计数器)n基字节数寄存器存放基字节数寄存器存放DMA操作操作需要传送的字需要传送的字节数节数,现行字节数寄存器,现行字节数寄存器保持保持DMA传送的传送的剩剩余字节数余字节数nCPU同时写入基字节数寄存器和现行字节数寄同时写入基字节数寄存器和现行字节数寄存器存器n基字节数寄存器基字节数寄存器只写不读只写不读,其内容,其内容不会自动修不会自动修改改;现行字节数寄存器;现行字节数寄存器可读可写可读可写,其内容随,其内容随DMA

23、传送的进行传送的进行每次自动减每次自动减1n终止计数终止计数TC(Terminal Count):指现行字节):指现行字节数寄存器的值减至数寄存器的值减至0之后,再减之后,再减1至至FFFFH。因。因此,此,传送传送N个字节,初始值为个字节,初始值为N1。34高高/低触发器(或先低触发器(或先/后触发器)后触发器)nCPU与与8237A之间通过之间通过8位数据总线交换信位数据总线交换信息,息,8237A的通道寄存器均为的通道寄存器均为16位,需要位,需要两次读写操作才能实现两次读写操作才能实现CPU与与8237A之间的之间的一个完整数据的交换一个完整数据的交换n8237A内含一个内含一个高高/

24、低触发器低触发器,用来控制读,用来控制读写通道寄存器的高、低字节写通道寄存器的高、低字节n该触发器为该触发器为0,控制读写低字节,控制读写低字节n该触发器为该触发器为1,控制读写高字节,控制读写高字节n软、硬件复位后,触发器为软、硬件复位后,触发器为0n每次读写通道寄存器,自动改变触发器状态。如每次读写通道寄存器,自动改变触发器状态。如果果对对16位寄存器的操作用两次连续读写进行,就位寄存器的操作用两次连续读写进行,就不必清除这个触发器不必清除这个触发器n清除高清除高/低触发器低触发器软件命令软件命令(A3A2A1A01100)将使高将使高/低触发器清零低触发器清零353个个软件命令软件命令n

25、清除高清除高/低触发器软件命令低触发器软件命令nA3A2A1A01100,使高,使高/低触发器清零低触发器清零n如:如:outp(0 x0c,0)n主清除命令主清除命令nA3A2A1A01101,使高使高/低触发器清零低触发器清零n使命令、状态、请求、临时寄存器清零使命令、状态、请求、临时寄存器清零n使屏蔽寄存器置为全使屏蔽寄存器置为全1(禁止(禁止DMA请求)请求)n主清除命令与硬件的主清除命令与硬件的RESET信号具有相同的功能(软件复位信号具有相同的功能(软件复位命令)命令)n如:如:outp(0 x0d,0)n清屏蔽寄存器命令清屏蔽寄存器命令nA3A2A1A01110,使使4个屏蔽位都

26、清零(允许个屏蔽位都清零(允许DMA请求)请求)n如:如:outp(0 x0e,0)36模式寄存器模式寄存器(A3A2A1A0=1011)n存放相应通道的方式控制字,选择某存放相应通道的方式控制字,选择某个个DMA通道的工作方式通道的工作方式n方式字格式见下页方式字格式见下页37方式字格式方式字格式00 请求模式请求模式01 单字节模式单字节模式10 数据块模式数据块模式11 级联模式级联模式0 地址增量(加地址增量(加1)1 地址减量(减地址减量(减1)0 禁止自动初始化禁止自动初始化1 允许自动初始化允许自动初始化00DMA校验校验01DMA写写10DMA读读11非法非法 若若D7D611

27、00 通道通道001 通道通道110 通道通道211 通道通道338命令寄存器命令寄存器(A3A2A1A0=1000)n存放存放8237A的命令字的命令字n设置设置8237A芯片的操作方式芯片的操作方式n影响每个影响每个DMA通道通道n复位时使命令寄存器清零复位时使命令寄存器清零n设置设置D20才使才使8237A可以作为可以作为DMA控控制器制器请看请看命令字命令字的格式的格式39命令字格式命令字格式0 DACK低有效低有效1 DACK高有效高有效0 DREQ高有效高有效1 DREQ低有效低有效0 滞后写滞后写1 扩展写扩展写 若若D310 固定优先权固定优先权1 循环优先权循环优先权0 正常

28、时序正常时序1 压缩时序压缩时序 若若D010 允许允许DMAC工作工作1 禁止禁止DMAC工作工作0 允许通道允许通道0地址改变地址改变1 禁止通道禁止通道0地址改变地址改变 若若D000 禁止存储器之间传送禁止存储器之间传送1 允许存储器之间传送允许存储器之间传送40n压缩时序:去掉压缩时序:去掉S3,读与写同为,读与写同为1个时钟个时钟n扩展写(提前写):写提前到与读同时开始扩展写(提前写):写提前到与读同时开始(S3),与读一样扩展到),与读一样扩展到2个时钟周期。个时钟周期。41请求寄存器请求寄存器(A3A2A1A0=1001)n存放软件存放软件DMA请求状态请求状态n除硬件除硬件D

29、MA请求外,当工作在数据块传送请求外,当工作在数据块传送方式时也可以通过软件发出方式时也可以通过软件发出DMA请求请求n若是存贮器到存贮器传送,则必须由软件若是存贮器到存贮器传送,则必须由软件请求启动通道请求启动通道0请看请看请求字请求字的格式的格式42请求字格式请求字格式任意任意0 复位复位1 置位置位( 有有DMA请求)请求)00 通道通道001 通道通道110 通道通道211 通道通道343屏蔽寄存器屏蔽寄存器n控制外设硬件控制外设硬件DMA请求是否被响应(为请求是否被响应(为0允许)允许)(与(与IMR类似),各个通道互相独立。类似),各个通道互相独立。3种方种方法:法:n单通道屏蔽字

30、单通道屏蔽字(A3A2A1A0=1010)只对一个只对一个DMA通道通道屏蔽位进行设置屏蔽位进行设置n主屏蔽字主屏蔽字(A3A2A1A0=1111)对对4个个DMA通道屏蔽位通道屏蔽位同时进行设置同时进行设置n清屏蔽寄存器命令清屏蔽寄存器命令(A3A2A1A0=1110)使使4个屏蔽位个屏蔽位都清零(允许)都清零(允许)n复位使复位使4个通道全置于屏蔽状态个通道全置于屏蔽状态n当一个通道的当一个通道的DMA过程结束,如果不是工作在过程结束,如果不是工作在自动初始化方式,则这一通道的屏蔽位置位,自动初始化方式,则这一通道的屏蔽位置位,必须再次编程为允许,才能进行下次必须再次编程为允许,才能进行下

31、次DMA传送传送请看请看屏蔽字屏蔽字的格式的格式44单通道屏蔽字单通道屏蔽字(A3A2A1A0=1010)格式格式任意任意0 清屏蔽位清屏蔽位1 置屏蔽位置屏蔽位00 通道通道001 通道通道110 通道通道211 通道通道345主屏蔽字主屏蔽字(A3A2A1A0=1111)格式格式任意任意Di0 清通道清通道I屏蔽位屏蔽位Di1 置通道置通道I屏蔽位屏蔽位46 自动初始化方式自动初始化方式n某个某个DMA通道设置为自动初始化方通道设置为自动初始化方式,是指每当式,是指每当DMA过程结束信号过程结束信号EOP*产生产生时(不论是内部终止计数时(不论是内部终止计数还是外部输入该信号),都用还是外

32、部输入该信号),都用基地基地址寄存器和基字节数寄存器址寄存器和基字节数寄存器的内容,的内容,使相应的现行寄存器恢复为初始值,使相应的现行寄存器恢复为初始值,包括恢复屏蔽位、允许包括恢复屏蔽位、允许DMA请求。请求。这样就这样就作好了下一次作好了下一次DMA传送的准传送的准备备。47状态寄存器状态寄存器(A3A2A1A0=1000)n可由可由CPU读取读取n低低4位反映读命令这个瞬间每个通道是位反映读命令这个瞬间每个通道是否产生终止计数否产生终止计数TC(为(为1,表示该通,表示该通道传送结束)道传送结束)n高高4位反映每个通道的位反映每个通道的DMA请求情况请求情况(为(为1,表示该通道有请求

33、),表示该通道有请求)n状态位在复位或被读出后,均被清零状态位在复位或被读出后,均被清零(读后自动清(读后自动清0)48状态字格式状态字格式49临时寄存器临时寄存器(A3A2A1A0=1101)n在存储器到存储器的传送方式下在存储器到存储器的传送方式下源存储单元源存储单元临时寄存器临时寄存器目的存储单元目的存储单元n传送完成,临时寄存器只会保留最后一传送完成,临时寄存器只会保留最后一个字节,可由个字节,可由CPU读出读出n复位使临时寄存器内容为零复位使临时寄存器内容为零508237A的编程的编程n8327A芯片的芯片的初始化编程初始化编程n命令寄存器是必须要写的命令寄存器是必须要写的n必要时可

34、先输出主清除命令,进行软件复位,然后写入命令必要时可先输出主清除命令,进行软件复位,然后写入命令字字n命令字影响所有命令字影响所有4个通道的操作个通道的操作nDMA通道的通道的DMA传送编程传送编程n将存储器起始地址写入地址寄存器(如果采用地址减量工作,将存储器起始地址写入地址寄存器(如果采用地址减量工作,则是结尾地址)则是结尾地址) 哪两个?哪两个?n将本次将本次DMA传送的数据个数写入字节数寄存器(个数要减传送的数据个数写入字节数寄存器(个数要减1) 哪两个?哪两个?n确定通道的工作方式,写入方式寄存器确定通道的工作方式,写入方式寄存器n写入屏蔽寄存器复位通道屏蔽位,允许写入屏蔽寄存器复位

35、通道屏蔽位,允许DMA请求请求注意:每个通道都要进行注意:每个通道都要进行DMA传送编程,如果不是采用自动初传送编程,如果不是采用自动初始化方式,每次传送前要重新编程。始化方式,每次传送前要重新编程。518237A的编程的编程(续(续2)n两种方法反映两种方法反映DMA过程结束(即终过程结束(即终止计数、发生止计数、发生TC):):n状态寄存器的低状态寄存器的低4位位nEOP*信号(需配合信号(需配合DACK响应信号确响应信号确定通道)定通道)n应用程序处理应用程序处理DMA传送过程结束:传送过程结束:n采用软件查询状态字采用软件查询状态字n采用硬件中断在中断服务程序处理采用硬件中断在中断服务

36、程序处理528237A的应用的应用n8237A在在PC系列机的使用情况系列机的使用情况nDMA写传送写传送nDMA设定子程序设定子程序538237A在在IBM PC系列机上的应用系列机上的应用nIBM PC/XT机使用一片机使用一片8237An通道通道0:动态存贮器动态存贮器DRAM刷新刷新n通道通道1:用户使用或用户使用或串行同步通信适配卡串行同步通信适配卡SDLC卡卡n通道通道2:内存与软盘的高速数据交换内存与软盘的高速数据交换n通道通道3:内存与硬盘的高速数据交换内存与硬盘的高速数据交换nIBM PC/AT机机采用两片采用两片8237AnDMAC1包含通道包含通道03,支持支持8位数据传

37、送位数据传送nDMAC2组成组成通道通道47,通道通道57支持支持16位数据传位数据传送,通道送,通道4用于级连用于级连54实例1:通道通道0用于用于动态存贮器动态存贮器DRAM刷新刷新A0A1 A0 A1D0D7D0D7OUT1OUT2OUT0GATE0GATE1GATE2CLK0CLK1CLK2D QCLK+5V接至接至DMA控制器控制器接至扬声器驱动器接至扬声器驱动器PB0PB1IRQ0DRQ0 8253+5V1.19318MHzDACK0 BRDIORIOWRDWRCST/CCS实例:IBM PC/XT DMA通道0的DRAM刷新编程out 0dh,al;DMAC主清除命令主清除命令m

38、ov al,0out 08,al;DMAC命令字:固定优先权,命令字:固定优先权, ;DERQ高有效,高有效,DACK低有效低有效mov al,0;从从0地址开始地址开始out 00,al;通道通道0的地址寄存器低字节的地址寄存器低字节out 00,al;通道通道0的地址寄存器高字节的地址寄存器高字节mov al,0ffh;传送;传送0FFFFH个字节个字节out 01,al;通道通道0的字节数寄存器低字节的字节数寄存器低字节out 01,al;通道通道0的字节数寄存器高字节的字节数寄存器高字节mov al,58h ;单字节传送、单字节传送、DMA读、地址增量、自动初始化读、地址增量、自动初始

39、化 out 0bh,al;通道通道0模式字模式字mov al,0;允许允许DREQ0提出申请提出申请out 0ah,al;通道通道0屏蔽字屏蔽字568253+8237A配合完成配合完成DRAM的定时刷新控制的定时刷新控制:n8253/8254的计数器的计数器1被初始化为方式被初始化为方式2(分(分频器),计数初值为频器),计数初值为18,每个,每个18*0.838us=15.084us产生一次产生一次OUT1输出输出(刷新请求)(刷新请求)nOut1输出接到输出接到8237A的的DREQ0,8237A的的通道通道0输出刷新地址(输出刷新地址(0-0ffffH),由于采用),由于采用自动初始化方

40、式,使刷新操作循环不止。自动初始化方式,使刷新操作循环不止。只能刷新只能刷新64K地址范围,超过地址范围,超过64K怎么办?怎么办?借助页面寄存器(图借助页面寄存器(图9-8)571. 8237A的初始化的初始化n8237A初始化写入命令字为初始化写入命令字为0,确定了:,确定了:nDREQ高电平有效、高电平有效、DACK低电平有效,固定优先低电平有效,固定优先权(依次为通道权(依次为通道0、17)n不进行存储器到存储器的数据传输不进行存储器到存储器的数据传输nPC机用机用DMA控制电路进行刷新,所以控制电路进行刷新,所以DMA传送不传送不能长时间占用总线(不应超过能长时间占用总线(不应超过1

41、5 s),一般只能),一般只能使用单字节传送方式使用单字节传送方式n在在PC系列机上,用户如果使用系列机上,用户如果使用DMA通道,要通道,要注意遵从上述系统要求。除了要禁止注意遵从上述系统要求。除了要禁止8237A工工作,用户通常不必操作命令寄存器作,用户通常不必操作命令寄存器582. 高位地址的形成高位地址的形成n8237A只提供只提供16位地址,位地址,DMA传送时的高位地址传送时的高位地址由由“页面寄存器页面寄存器”芯片提供,以形成所有存储器地芯片提供,以形成所有存储器地址。址。n页面寄存器由页面寄存器由CPU的输出指令实现写入(口地址的输出指令实现写入(口地址参见表参见表9-1),)

42、,页面寄存器不会自动增减量高位地址页面寄存器不会自动增减量高位地址n在在DMA传送过程中不改变传送过程中不改变DMAC1的通道的通道0通道通道3:8237A提供系统提供系统A0A15低低16位地址,页面寄存位地址,页面寄存器输出系统器输出系统A16A23高高8位地址。每个通道最多位地址。每个通道最多实现实现64KB的的DMA传送。传送。nDMAC2的通道的通道5通道通道7:8237A提供系统提供系统A1A16的的16位地址,而系统位地址,而系统A0被强迫为逻辑被强迫为逻辑0,页面,页面寄存器仅输出高寄存器仅输出高7位地址位地址A17A23,每个通道最,每个通道最多实现多实现64K字(字(128

43、KB)的)的DMA传送。传送。59实例实例2:DMA写传送(外设写传送(外设存储器存储器)CLKDCLK D0D7Q +5V外设数据外设数据外设外设DMA请求请求74LS37474LS74RESETDRQ1 DACK1IOROERS通道1工作方式例:采用例:采用DMA通道通道1,传送,传送2KB外设数据,内存起外设数据,内存起始地址为始地址为045000H。采用查询方式检测传送是否。采用查询方式检测传送是否完成。完成。mov al,45h;通道通道1方式字:方式字:01000101B;单字节单字节写传送写传送,地址增量地址增量,非自动初始化非自动初始化out 0bh,al;方式寄存器地址;方式

44、寄存器地址0bhnop;延时延时nopout 0ch,al;清高清高/低触发器命令低触发器命令DMA写传送通道1起始地址mov al,0;低;低16位地址位地址5000hout 02h,al;写入低写入低8位地址到地址寄存器位地址到地址寄存器mov al,50hout 02h,al;写入中写入中8位地址到地址寄存器位地址到地址寄存器mov al,04hout 83h,al;写入高写入高8位地址到页面寄存器位地址到页面寄存器(通道(通道1的页面寄存器地址为的页面寄存器地址为83h)DMA写传送通道1传送字节数mov ax,2048-1;AX传送字节数减传送字节数减1out 03h,al;送字节数

45、低送字节数低8位到字节数寄存器位到字节数寄存器mov al,ahout 03h,al;送字节数高送字节数高8位到字节数寄存器位到字节数寄存器mov al,01;单通道屏蔽字;单通道屏蔽字00000001out 0ah,al;单通道屏蔽字:允许单通道屏蔽字:允许通道通道1的的DMA请求请求;其他工作其他工作DMA写传送通道1传送结束判断dmalp:in al,08h;读状态寄存器读状态寄存器and al,02h;判断通道判断通道1是否传送结束是否传送结束jz dmalp;没有结束,则循环等待没有结束,则循环等待;传送结束,处理转换数据传送结束,处理转换数据DMA写传送DMADMA传送过程结束的判断:传送过程结束的判断:软件查询方式软件查询方式64实例实例3:DMA设定子程序设定子程序n系统系统ROM-BIOS的的DMA设定子程序:设定子程序:DMA通道通道2传送编程传送编程n软盘的读写利用软盘的读写利用DMA通道通道2传送数据传送数据n被读软盘、写软盘和软盘检验等软盘被读软盘

温馨提示

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

评论

0/150

提交评论