资源描述
2023/5/9计算机接口技术1第第6章章 DMA技术技术本本 章章 内内 容容 DMA传输方式及操作传输方式及操作 DMA控制器的控制权控制器的控制权 DMA传输的解决方案传输的解决方案 DMA应用应用12023/5/9计算机接口技术26.1 DMA传输方式传输方式6.1.1 DMA传输的特点传输的特点DMA传送方式下,数数据据的的传传送送不不由由CPU,而而由由DMA控控制制器器实现内存和外设,外设和外设之间的直接快速传送内存和外设,外设和外设之间的直接快速传送。DMA传送用用于于需需要要高高速速大大批批量量数数据据传传送送的系统中,以提高数据的吞吐率。21.申请阶段申请阶段6.1.2 DMA传输过程传输过程外设外设向DMAC发出发出DMA请求信号DREQ;DMAC向CPU发出发出总线请求信号HRQ。2023/5/9计算机接口技术3 DMA传输过程一般分为传输过程一般分为4个阶段个阶段,其中申请申请与与响应响应阶段有4个步骤,如图6.1所示3I/ODMAC请求DREQ请求HRQ 回答DMACKCPU 回答HLDA图6.1 DMA传输申请过程图 2.响应阶段响应阶段CPU向DMAC发回发回总线保持回答信号HLDA。此时,CPU让出总线,DMAC为主控者。2023/5/9计算机接口技术4 4 DMAC向外设外设发回发回DMA请求回答信号DMACK,同意外同意外设的设的DMA传输申请传输申请。3.数据传送阶段数据传送阶段 DMAC获得总线控制权获得总线控制权后,成为主控者,负责进行负责进行外外设与存储器设与存储器,或外设与外设之间外设与外设之间的直接数据传输直接数据传输。4.传送结束阶段传送结束阶段 数据传送完毕数据传送完毕,DMAC发出发出“过程结束过程结束”信号。此时,DMAC脱离总线脱离总线,CPU重新控制总线重新控制总线。2023/5/9计算机接口技术5 56.2 DMA操作操作数据传送数据传送 将源地址的数据传输数据传输到目的地址去,这是DMA的主要操作。数据校验数据校验 不进行数据传输不进行数据传输,只对数据块内部的每个字节进进行某种校验行某种校验数据检索数据检索 不进行数据传输不进行数据传输,只在指定的内存区域内查找某个关键字节或某几个关键数据位是否存在,即进行检进行检索索。如果存在,就停止检索。6.2.1 DMA操作类型操作类型2023/5/9计算机接口技术66.2.2 DMA操作方式操作方式q单字节方式单字节方式:通道启动一次通道启动一次,只传送一个数据只传送一个数据,就释放系统总就释放系统总线线,交还给CPU,并且:当前地址寄存器+1(-1),当前字节计数器+1(-1)q 连续方式连续方式:启动一次可把整个数据块传送完启动一次可把整个数据块传送完,并且,当前字节当前字节计数器减到计数器减到0,产生EOP信号,释放总线释放总线。q请求方式请求方式:每传送一个字节之后每传送一个字节之后,要检测(询问)要检测(询问)DREQ是否有效,若无效若无效,则释放总线则释放总线,若有效若有效,则继续传送继续传送直至字节计数器为字节计数器为0。2023/5/9计算机接口技术76.3 DMA控制器与控制器与CPU对总控制权转移对总控制权转移q 被动态(受控器):未取得总线控制权,受CPU的控制。q 主动态主动态(主控器):接管并取得总线控制权,取代CPU而成为系统的主控者。6.3.1 DMA控制器的两种工作状态控制器的两种工作状态2023/5/9计算机接口技术86.3.2 DMA控制器与控制器与CPU对总线控制权转移对总线控制权转移 DMAC和CPU对总线的连接与脱开过程如图6.2所示。图中斜线部分表示脱开。具体过程的描述见教材P100.图6.2 82C37和CPU对总线的连接与脱开示意图96.4.1 DMA控制器控制器82C37A的外部特性的外部特性6.4 DMA传输的解决方案传输的解决方案1.82C37-DMAC的特点:的特点:(1)四个独立通道(可对4个I/O设备进行DMA服务)(2)64KB寻址与计数能力 (3)数据传输率1.5Mb/s (4)有级联方式进行扩展和多种操作模式2023/5/9计算机接口技术102.82C37的外部引脚的外部引脚2023/5/9计算机接口技术11DMA控制82C37外部引脚如图6.4所示。图6.4 DMA控制器82C37引脚图(1)I/O设备的请求信号DREQ0-3(2)DMAC回答I/O的信号DACK0-3(3)总线请求和应答信号:HRQ和HLDA(4)读写控制信号:IOR、IOW、MEMR、MEMW(5)地址线A0-7(6)双向数据线DB0-7:既是数据线,又是16位地址线的高8位。2023/5/9计算机接口技术1282C37引脚定义:引脚定义:1.82C37内部寄存器内部寄存器6.4.2 DMA控制器控制器82C37的编程模型的编程模型2023/5/9计算机接口技术16由于82C37要承担总线主控器的任务要承担总线主控器的任务,其结其结构复杂构复杂,内部集成的寄存器多达内部集成的寄存器多达16个个,各寄存器的名称及端口地址分配如表6.1所示。2023/5/9计算机接口技术17142.寄存器功能寄存器功能(1)起始起始地址寄存器和当前当前地址寄存器 起始地址寄存器和当前地址寄存器,均为16位。起始地址寄存器起始地址寄存器存放存放DMA传输的起始地址传输的起始地址,只能写,不能读;当前地址寄存器当前地址寄存器保存将被访问的下一个保存将被访问的下一个存储单元的地址地址,可读可写。两者的两者的I/O端口地址端口地址相同相同。82C37内部4个通道,每个通道都有各自的起始和当前地址寄存器。152023/5/9计算机接口技术19(2)初始初始字节计数寄存器和当前当前字节计数寄存器 初始字节计数寄存器和当前字节计数寄存器,均为16位。初始字节计数寄存器初始字节计数寄存器存放存放DMA传输传输的总字节数的总字节数,只能写,不能读;当前字节计数当前字节计数寄存器寄存器存放存放DMA传输过程中没有传输完的字节传输过程中没有传输完的字节数数,可读可写。两者的两者的I/O端口地址相同端口地址相同。82C37内部4个通道,每个通道都有各自的初始和当前字节寄存器。16(3)初始化命令初始化命令寄存器和状态状态寄存器 命令寄存器命令寄存器为只写寄存器只写寄存器,状态寄存器状态寄存器为只读寄只读寄存器存器。两者的两者的I/O端口地址相同端口地址相同,端口地址为08H。下面分别介绍。初始化命令寄存器初始化命令寄存器 用来初始化用来初始化8237A,由CPU写入,由RESET清除,只写不读。命令寄存器的格式如图命令寄存器的格式如图6.5所所示示。17图6.5 82C37初始化 命令寄存器格式18 状态寄存器状态寄存器 提供哪些通道已到终止计数提供哪些通道已到终止计数、哪些通道有哪些通道有DMA请求等状态请求等状态信息供CPU使用。状态寄存器格式如图6.6所示。图6.6 82C37状态寄存器格式19(4)工作方式寄存器工作方式寄存器 用于选定通道,设置用于选定通道,设置DMADMA传输方式传输方式、传输类型、传输类型、地址增量方式地址增量方式等操作,其格式如图6.7所示。2023/5/9计算机接口技术23图6.7 82C37工作方式寄存器格式(5)请求寄存器请求寄存器 用于由软件启动的用于由软件启动的DMA请求请求,如:RAMRAM,这种软件请求DMA传输必须是连续传输方式。其格式如图6.8所示。图6.8 82C37请求寄存器格式21(6)屏蔽寄存器屏蔽寄存器 用来禁止或允许通道的用来禁止或允许通道的DMA请求请求,有单通道单通道与4通道通道屏蔽二种格式二种格式。下面分别介绍。单个通道屏蔽寄存器单个通道屏蔽寄存器 每次只能屏蔽一个通道每次只能屏蔽一个通道,其格式如图6.9所示。2023/5/9计算机接口技术25图6.9 82C37单通道屏蔽寄存器格式4个通道屏蔽寄存器个通道屏蔽寄存器 可同时屏蔽可同时屏蔽1个以上通道个以上通道,但对由软件设定的但对由软件设定的DMA请求请求位不能屏蔽位不能屏蔽,其格式如图6.10所示。2023/5/9计算机接口技术26图6.10 82C37四通道屏蔽寄存器格式 例:要求要求开放通道开放通道2,而屏蔽其他通道。使用单一通道屏蔽寄存器使用单一通道屏蔽寄存器 MOV AL,0 0 0 0 0 0 1 0 B OUT 0AH,AL 使用使用4通道屏蔽寄存器通道屏蔽寄存器 MOV AL,0 0 0 0 1 0 1 1 B OUT 0FH,AL2023/5/9计算机接口技术27(7)暂存寄存器暂存寄存器 用于存贮器对存贮器传送用于存贮器对存贮器传送时,暂时保存从源地址暂时保存从源地址读出的数据读出的数据。(8)软命令软命令 软命令软命令就是只要对特定地址只要对特定地址进行一次写操作写操作,命令就生效,而与写入的具体数据无关而与写入的具体数据无关。软命令共有3条,具体见教材P106。清先清先/后触发器命令后触发器命令 总清除命令总清除命令 清屏蔽寄存器命令清屏蔽寄存器命令2023/5/9计算机接口技术286.5 DMA体系结构及初始化体系结构及初始化2023/5/9计算机接口技术266.5.1 DMA体系结构的组成体系结构的组成 单独利用单独利用DMA控制器还不能进行控制器还不能进行DMA传输传输,需要其他芯片进行配合。PC微机采用两片采用两片DMA控制器控制器、DMA页页面地址寄存器面地址寄存器以及总线裁决逻辑组成一个完整的组成一个完整的DMA体系结构体系结构。1.DMA控制器控制器DMA系统由两片由两片DMA控制器进行级联控制器进行级联,提供提供8通道通道DMA传输,如图6.11所示。26图图6.11 DMA级联示意图级联示意图27 2.2.页面地址寄存器页面地址寄存器 由于由于82C37只能提供只能提供16为地址为地址,对超过对超过16为地为地址的存储器访问就显得不够用址的存储器访问就显得不够用。为此,需要在DMA体系中,为每个通道为每个通道设置一个页面地址寄存设置一个页面地址寄存器,提供高于器,提供高于16位的地址位的地址。页面地址寄存器的端口地址如表 6.2所示。表6.2 DMA页面地址寄存器端口地址283.DMA 有效地址的生成有效地址的生成 利用页面地址寄存器页面地址寄存器提供的高于高于16位地址位地址,加DMAC自身的低自身的低16位地址位地址一起构成DMA的寻址系统,如图如图6.12所示所示。82C37有效地址的生成如图有效地址的生成如图6.12所示所示:64K0#1#2#3#A078237ADMAC74LS 244 74LS373页面74LS670A815A161984D07DMAAENG82023/5/9计算机接口技术33图图6.12 8237A有效地址生成示意图有效地址生成示意图292023/5/9计算机接口技术3330 4.I/O设备寻址方式设备寻址方式 由于由于DMAC提供的提供的16位地址线已全部用于内存寻址位地址线已全部用于内存寻址,所以也就无法同时给无法同时给I/O设备提供地址设备提供地址。那么,DMAC是如是如何对何对I/O设备进行寻址设备进行寻址?原来,对请求以DMA方式传输的I/O设备,在进行读/写数据时,只要只要DACK信号信号和和 或或 信号信号同时有效同时有效,就,就能完成对能完成对I/O设备端口的读设备端口的读/写操作写操作,而与而与I/O设备的端口地设备的端口地址无关址无关。或者说,DACK代替了接口芯片选择的功能代替了接口芯片选择的功能。6.5.2 DMA传输的初始化设置传输的初始化设置2023/5/9计算机接口技术34系统初始化系统初始化设置作如下规定规定:指定82C37A为非存储非存储器到存储器方式器到存储器方式,允许允许82C37A工作工作,采用正常时序正常时序,固定优先级固定优先级,滞后写入滞后写入,DREQ高电平有效高电平有效,DACK低电平有效低电平有效。上述初始化内容由初始化内容由82C37A的初始化命令字给出初始化命令字给出,其命令代码命令代码为00000000B,系统上电时由BIOS将它写入命令寄存器的端口即完成了DMA的初始化。初始化程序段如下。MOV AL,00000000B ;DMA初始化命令初始化命令OUT 08H,AL ;DMA命令寄存器 316.6 系统系统DMA资源的应用资源的应用6.6.1 DMA传输参数设置的内容及步骤传输参数设置的内容及步骤2023/5/9计算机接口技术32 DMA传输参数是在DMA控制器已经初始化的基础上,由用户根据设计要求进行设置,设置的内容和步骤如下。1向工作方式寄存器写入工作方式字向工作方式寄存器写入工作方式字 确定所选用的通道号、DMA传输类型、传输方式、地址改变方式、是否自动预置。2屏蔽所选用的通道屏蔽所选用的通道 正在进行初始值设置期间,为了防止另外DMA请求打断尚未完成的初始值设置而出错,先屏蔽该通道,初始值设置后再开放该通道。3置先置先/后触发器为后触发器为0态态 执行清先/后触发器,使其处于0态,保证先低8位、后高8位的读/写顺序,为设置地址寄存器和字节计数寄存器做准备322023/5/9计算机接口技术334写起始地址寄存器写起始地址寄存器 把DMA传输的存储器首地址写入所选用通道号的起始地址寄存器。5写页面地址寄存器写页面地址寄存器 把页面地址写入所选用通道号的页面地址寄存器。如果所访问的存储器不超 过16位,就不写。6写起始字节计数寄存器写起始字节计数寄存器 把要传输的字节数减1,写入所选用通道号的起始字节计数寄存器。7解除所选通道的屏蔽解除所选通道的屏蔽 初始值设置后,解除所选用通道号的屏蔽,开放该通道等待I/O设备的DMA请求。336.6.2 DMA传输参数设置的程序举例传输参数设置的程序举例2023/5/9计算机接口技术34 某数据采集系统所采集的400H个字节的数据,要求要求采用DMA系统中82C37A的通道通道1,传输到起始地址起始地址为F0000H的内存,内存地址内存地址+1,要求编写传输参数设置程序段。1.要求要求 按照DMA控制器的端口地址,将DMA传输参数写入DMAC内部相关的寄存器。2.分析分析343.DMA传输参数设置的汇编语言程序段:传输参数设置的汇编语言程序段:2023/5/9计算机接口技术35CLI ;关中断;设置工作方式设置工作方式MOV AL,01000101B;工作方式命令工作方式命令OUT 0BH,AL ;写入工作方式寄存器MOV AL,00000100B;单一屏蔽命令单一屏蔽命令OUT 0AH,AL ;写入单个屏蔽寄存器OUT 0CH,AL ;清除先清除先/后触发器软命令后触发器软命令352023/5/9计算机接口技术36;设置内存地址寄存器和页面寄存器设置内存地址寄存器和页面寄存器MOV AX,00H;16位内存地址 OUT 02,AL ;写入低8位地址MOV AL,AHOUT 02,AL ;写入高8位地址MOV AL,0FH ;页面地址为页面地址为0FHOUT 83H,AL ;写入页面地址362023/5/9计算机接口技术37;设置传送字节计数器设置传送字节计数器MOV AX,400H ;传输字节数DEC AX ;字节数-1OUT 03,AL ;写入低8位字节数MOV AL,AHOUT 03,AL ;写入高8位字节数STI ;开中断;开放通道开放通道1MOV AL,00000001B ;开放通道开放通道1OUT 0AH,AL ;写入单个屏蔽寄存器372023/5/9计算机接口技术38本本 章章 小小 结结 DMA传输方式及操作传输方式及操作 DMA控制器的控制权控制器的控制权 DMA传输的解决方案传输的解决方案 DMA应用举例应用举例38
展开阅读全文