DMA技术与DMA控制器_第1页
DMA技术与DMA控制器_第2页
DMA技术与DMA控制器_第3页
DMA技术与DMA控制器_第4页
DMA技术与DMA控制器_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、第第11章章 DMA技术与技术与DMA控制器控制器 11.1 DMA技术概述技术概述 11.2 可编程可编程DMA控制器控制器8237A 11.3 DMA技术在微机系统中的应用技术在微机系统中的应用 直接存储器存取直接存储器存取 11.1 DMA技术概述技术概述 1 DMA 1 DMA 传送方式的实现方法:传送方式的实现方法: 由专用接口芯片由专用接口芯片DMADMA控制器控制器 ( (简称简称DMAC) DMAC) 控制传送过程;控制传送过程; 当外设需传送数据时:当外设需传送数据时: n由外设接口向由外设接口向DMACDMAC发发DMADMA请求;请求; n DMAC DMAC向向CPUC

2、PU发出总线请求;发出总线请求; nCPUCPU发出总线响应信号,释放总线;发出总线响应信号,释放总线; nDMACDMAC接管总线,并向外设接口发出接管总线,并向外设接口发出DMADMA响应信号;响应信号; nDMACDMAC控制外设、内存之间进行直接数据传送;控制外设、内存之间进行直接数据传送; nDMACDMAC撤消总线请求;撤消总线请求; nCPUCPU撤消总线响应,并重新接管总线。撤消总线响应,并重新接管总线。 DMA技术概述技术概述 2 DMA2 DMA传送方式的特点传送方式的特点 外设和内存之间,直接进行数据传送, 不通过CPU, 传送效率高。适用于在内存 与高速外设、内存两个区

3、域之间,或两 个高速外设之间进行大批量数据传送。 电路结构复杂,硬件开销较大 DMA 传送过程示意图传送过程示意图 总线总线 响应响应 总线总线 请求请求 CPU DMAC 内内 存存 外外 设设 DMA请求请求 DREQ DMA响应响应 DACK 总线总线 接 口 接收接口往接收接口往DMADMA控制器发出控制器发出DMADMA请求信号后,请求信号后,DMADMA控制器能向控制器能向 CPUCPU发出总线请求信号发出总线请求信号HOLD(HOLD(高电平高电平) )。 当当CPUCPU向向DMADMA发出响应信号发出响应信号HLDA(HLDA(高电平高电平) )以后,以后,DMADMA能接管

4、对能接管对 总线的控制,总线的控制,进入进入DMADMA方式。方式。 能向地址总线发出内存地址信息,对其进行寻址及修改地址能向地址总线发出内存地址信息,对其进行寻址及修改地址 指针。指针。 能向存储器或能向存储器或I/OI/O接口发相应的读写控制信号。接口发相应的读写控制信号。 能决定传送字节数,并判断能决定传送字节数,并判断DMADMA传送是否结束。传送是否结束。 DMADMA过程结束,能向过程结束,能向CPUCPU发出发出DMADMA结束信号,结束信号,HOLDHOLD变低变低, ,将总线将总线 控制权还给控制权还给CPUCPU,CPUCPU恢复正常工作。恢复正常工作。 11.1.1 DM

5、AC的基本功能的基本功能 11.1.2 DMAC的一般结构的一般结构 图图9.1 9.1 单通道 单通道DMAC DMAC的一般结构及其与 的一般结构及其与I/O I/O接口的连接 接口的连接 地址总线 地址 译码器 DMADMA控制器控制器 计数结束信号 (可作为中断请求信号) 字节计数寄存器 地址寄存器 状态寄存器 控制寄存器 总线回答 总线请求 控制总线 数据总线 外设 DMA请求 DMA响应 中断请求 数据输出寄存器 数据输入寄存器 状态寄存器 控制寄存器 I/O接口 控制总线 数据总线 地址总线 11.1.3 DMAC的工作方式的工作方式 1、单字节传输方式单字节传输方式 :单字节传

6、输方式下,单字节传输方式下,DMA控制器每次请控制器每次请 求总线只传送一个字节数据,传送完后即释放总线控制权。求总线只传送一个字节数据,传送完后即释放总线控制权。 2、块传输方式(也称组传输方式)、块传输方式(也称组传输方式):块传输方式是指块传输方式是指DMA控控 制器每次请求总线连续传送一个数据块,待整个数据块全部制器每次请求总线连续传送一个数据块,待整个数据块全部 传送完成后再释放总线控制权。传送完成后再释放总线控制权。 3、请求传输方式:请求传输方式:每传输完一个字节,每传输完一个字节,DMA控制器都要检测控制器都要检测 由由I/O接口发来的接口发来的DMA请求信号是否仍然有效,如果

7、该信号请求信号是否仍然有效,如果该信号 仍有效,则继续进行仍有效,则继续进行DMA传输;否则,就暂停传输,交还总传输;否则,就暂停传输,交还总 线控制权给线控制权给CPU,直至,直至DMA请求信号再次变为有效,数据块请求信号再次变为有效,数据块 传输则从刚才暂停的那一点继续进行下去。传输则从刚才暂停的那一点继续进行下去。 11.1.4 DMA操作过程操作过程 (以输入数据块为例)(以输入数据块为例) n若从外设往内存输入一个数据块(输入过程),在单字节传输方式下,若从外设往内存输入一个数据块(输入过程),在单字节传输方式下, 主要工作过程为:主要工作过程为: 从从I/OI/O接口向接口向DMA

8、DMA控制器发送控制器发送DMADMA请求信号;请求信号; DMA DMA控制器向控制器向CPUCPU发总线请求信号,当得到发总线请求信号,当得到CPUCPU送来的总线允许信号后,送来的总线允许信号后, DMADMA控制器获得总线控制权;控制器获得总线控制权; DMA DMA控制器将其地址寄存器的内容送到地址总线上;控制器将其地址寄存器的内容送到地址总线上; DMA DMA控制器往控制器往I/OI/O接口发送接口发送DMADMA响应信号,并接着发出响应信号,并接着发出I/OI/O接口的读信号,接口的读信号, 使使I/OI/O接口把数据送到数据总线上;接口把数据送到数据总线上; DMA DMA控

9、制器发出端口读信号和存储器写信号,使数据传送到由地址总线控制器发出端口读信号和存储器写信号,使数据传送到由地址总线 的地址所指向的内存单元;的地址所指向的内存单元; 地址寄存器加地址寄存器加1 1; 字节计数器减字节计数器减1 1; 如果字节计数寄存器的值不为零,则返回第如果字节计数寄存器的值不为零,则返回第步,否则进入步,否则进入步;步; DMA DMA控制器释放总线。控制器释放总线。 DMADMA控制器控制器 数据数据 端口端口 状态状态/ /控制控制 端口端口 地址寄存器地址寄存器 计数器计数器 控制控制/ /状态状态 寄存器寄存器 C C P P U U 存存 储储 器器 HOLDHO

10、LD HLDAHLDA 数据缓冲数据缓冲 寄存器寄存器 DMADMA请求请求 触发器触发器 输入设备输入设备 DMADMA请求请求 DMADMA响应响应 ReadyReady DMADMA控制器工作原理图控制器工作原理图 11.2 可编程可编程DMA控制器控制器8237A 11.2.1 8237A的主要特性的主要特性 1具有四个独立的DMA通道,每个通道都具有64K的存贮器寻址能力, 即一次传送的最大长度为64K字节。 2可实现内存与外设之间的高速大批量数据传送 ,也可实现内存两个不 同区域之间的高速数据传送。 3每个通道的DMA请求均可分别允许或禁止,且四个通道的DMA请求的 优先权可由软件

11、设置为固定的或旋转的。 4具有单字节传送、数据块传送、请求传送和级联传送四种工作方式。 5可用级联方式扩展DMA通道数目。 6DMA传送结束信号可由内部计数产生,也可由外部输入提供。 7单一的+5V电源,40个引脚双列直插式封装。 8采用5MHz时钟,传送速率可达1.6M字节/秒。 98237可以级连,任意扩展通道数。 I O / M 地 址 译 码 器 A1 5A8 A7A0 接 数 据 总 线 A3A0 A7A4 C S D B7 D B0 A D S T B 锁 存 器 S T B E N A E N 使 C P U 的 地 址 锁 存 器 无 效 时 钟 H L D A H O L D

12、 C L K H L D A H R Q 地 电 源 控 制 寄 存 器 状 态 寄 存 器 请 求 触 发 器 屏 蔽 触 发 器 模 式 寄 存 器 当 前 地 址 寄 存 器基 地 址 寄 存 器 当 前 字 节 计 数 器基 本 字 节 寄 存 器 暂 存 器 通 道 0 通 道 1 通 道 2 通 道 3 I O R M E M R I O W M E M W R E A D Y R E S E T D R E Q0 D A C K0 D R E Q1 D A C K1 D R E Q2 D A C K2 D R E Q3 D A C K3 E O P + 5 V 图图11.3 82

13、37 A的编程结构的编程结构 11.2.2 8237A的工作原理的工作原理 18237A的编程结构的编程结构 82C37A内部逻辑框图内部逻辑框图 寄存器名称 功能 位数 数量 所属 CPU 访 问方式 端口地址低 4 位 控制寄存器 存放命令字 8 1 四通道共用 只写 1000 状态寄存器 存放状态字 8 1 四通道共用 只读 1000 工作模式寄存器 存放模式字 8 4 每通道一个 只写 1011 基地址寄存器 存放存贮器起始地址 16 4 每通道一个 只写 00000111 中的偶地址 当前地址寄存器 存放存贮器当前地址 16 4 每通道一个 可读/写 00000111 中的偶地址 基

14、字节数计数器 存放传送字节总数 16 4 每通道一个 只写 00000111 中的奇地址 当前字节计数器 存放尚未传送的字节总数 16 4 每通道一个 可读/写 00000111 中的偶地址 请求触发器 设置 DMA 请求标志 1 4 每通道一个 只写 1001 屏蔽触发器 设置通道屏蔽标志 1 4 每通道一个 只写 1010 或 1111 暂存寄存器 用于两存贮区之间的传送 8 1 四通道共用 只读 1101 表表11.1 8237A内部寄存器的功能、端口地址等信息内部寄存器的功能、端口地址等信息 几点说明:几点说明: n请求触发器每通道一位,四个通道的请求触发器占用同一个端口地址, 实际上

15、构成一个4位的寄存器,屏蔽触发器也是一样。 n控制寄存器和状态寄存器共用一个端口地址,一个为只读,一个为只写。 n写屏蔽字时有两种方式:某一通道的屏蔽字,应写到1010端口;四个通 道屏蔽字,则写入1111端口。 n各通道的基地址寄存器和当前地址寄存器的端口地址低四位是: 0000对应对应0通道;通道;0010对应对应1通道;通道; 0100对应对应2通道;通道;0110对应对应3通道。通道。 n各通道的基字节数寄存器和当前字节计数器的端口地址低四位是: 0001对应对应0通道;通道; 0011对应对应1通道;通道; 0101对应对应2通道;通道; 0111对应对应3通道。通道。 n8237A

16、内有一个先先/后触发器后触发器,占1位,当其为0时对16位寄存器的低8位进行 读/写操作,当其为1时,则对高8位进行读/写操作,且每读或写一次,先/后 触发器的状态就自动翻转一次。 8237A复位后,先/后触发器为0。 n8237A除可用RESET=1信号进行硬件控制的复位外,还可以用主清除命令进 行软件控制的复位。软件复位是通过对1101端口端口进行写操作实现的。 8237A的工作原理的工作原理 28237A的总线模式的总线模式 主模式(主动态)主模式(主动态):在:在DMA操作其间,操作其间,8237A就处于就处于 主模式,这时它管理系统总线,发出地址和有关控制主模式,这时它管理系统总线,

17、发出地址和有关控制 信号使数据在内存和外设端口之间或内存两个不同区信号使数据在内存和外设端口之间或内存两个不同区 域之间传递。域之间传递。 从模式(被动态)从模式(被动态):所谓从模式是指在没有进行:所谓从模式是指在没有进行 DMA操作时,操作时,8237A象其他接口芯片一样,可被象其他接口芯片一样,可被CPU 访问。即向其有关内部寄存器写入工作方式控制字,访问。即向其有关内部寄存器写入工作方式控制字, 传送地址及字节数等,也可读取其状态信息。传送地址及字节数等,也可读取其状态信息。 D R E Q0 D R E Q1 D R E Q2 D A C K3 4 0 3 9 3 8 3 7 3 6

18、 3 5 3 4 3 3 3 2 3 1 3 0 2 9 2 8 2 7 2 6 2 5 2 4 2 3 2 2 2 12 0 1 9 1 8 1 7 1 6 1 5 1 4 1 3 1 2 1 1 1 0 9 8 7 6 5 4 3 2 1 8 2 3 7 / 8 2 3 7 - 2 ( N O T E 1 1 ) R E A D Y H L D A A D S T B A E N E O P D B4 A3 A2 A1 A0 VC C( + 5 V ) D B0 D B1 D B2 D B3 H R Q C S C L K R E S E T D A C K2 D R E Q3 D A C

19、 K0 D A C K1 D B5 D B6 D B7 ( G N D ) VC C A4 A5 A6 A7 M E M W M E M R I O W I O R 38237A的外的外 部引脚部引脚 图图11.4 8237A的引脚配置的引脚配置 11.2.3 8237A的编程的编程 1命令字与状态字命令字与状态字 n模式寄存器模式寄存器 D7D6D5D4D3D1D0D2 00请求传送方式 01单字节传送方式 10块传送方式 11联级方式 0地址增1 1地址减1 0禁止自动初始化 1允许自动初始化 00选择通道0 01选择通道1 10选择通道2 11选择通道3 00校验传送 01写传送(I/O

20、内存) 10读传送(内存I/O) 11非法 图图11.5 11.5 8237A8237A的模式字格式的模式字格式 D7D6D5D4D3D1D0D2 0 DACK低电平有效 1 DACK高电平有效 0 DREQ高电平有效 1 DREQ低电平有效 0 正常写 1 扩展写 0 固定优先级 1 循环优先级 0 禁止存储器到存储器传送 1 允许存储器到存储器传送 0 禁止通道0地址保持 1 允许通道0地址保持 若D0=0 0 控制器允许 1 控制器禁止 0 普通时序 1 压缩时序 若D0=1 若D3=1 图图11.6 8237A的命令字格式的命令字格式 n命令寄存器命令寄存器 命令寄存器是四个通道公用的

21、一个8位寄存器,用以控制整个 8237A的操作。即一片8237A只有一个命令寄存器,其内容对四个 通道都有效。 8237A的编程的编程 n请求寄存器请求寄存器 n8237A8237A的每个通道除了可以响应硬件的的每个通道除了可以响应硬件的DMADMA请求信号请求信号 DREQDREQ外,当其工作在块传送方式时也可以响应由软外,当其工作在块传送方式时也可以响应由软 件发出的件发出的DMADMA请求。请求。 n软件的软件的DMADMA请求是通过使相应通道的请求是通过使相应通道的“请求位请求位”置置 位来实现的,它等效于外部产生一个有效的位来实现的,它等效于外部产生一个有效的DREQDREQ信信 号

22、。号。 n8237A8237A每一个通道有一位每一个通道有一位“请求位请求位”,四个通道的,四个通道的 请求位构成一个请求位构成一个4 4位的请求寄存器。位的请求寄存器。 D7D6D5D4D3D1D0D2 00选择通道0 01选择通道1 10选择通道2 11选择通道3 0清除请求 1设置请求 无关 图图11.8 11.8 8237A8237A的请求寄存器的命令字格式的请求寄存器的命令字格式 8237A的编程的编程 n屏蔽寄存器屏蔽寄存器 n8237A8237A每个通道有一位每个通道有一位“屏蔽位屏蔽位”,当其通道的,当其通道的“屏屏 蔽位蔽位”置置1 1时,则外部对应的时,则外部对应的DREQ

23、DREQ信号被屏蔽,不予信号被屏蔽,不予 响应,从而禁止了该通道的响应,从而禁止了该通道的DMADMA操作。操作。 n四个通道的四个通道的“屏蔽位屏蔽位”构成一个构成一个4 4位的屏蔽寄存器。位的屏蔽寄存器。 n有两种屏蔽命令字格式,有两种屏蔽命令字格式, n单独对某一个通道的屏蔽位进行置位或复位,如图单独对某一个通道的屏蔽位进行置位或复位,如图 11.911.9(a a)所示;)所示; n另一种是可以同时设定四个通道的屏蔽位,也称综另一种是可以同时设定四个通道的屏蔽位,也称综 合屏蔽命令字,如图合屏蔽命令字,如图11.9(b)11.9(b)所示。所示。 图图11.9 8237A 11.9 8

24、237A屏蔽字的两种格式 屏蔽字的两种格式 D7D6D5D4D3D1D0D2 0 0 选 择 通 道 0 0 1 选 择 通 道 1 1 0 选 择 通 道 2 1 1 选 择 通 道 3 0 清 除 屏 蔽 位 1 置 位 屏 蔽 位 无 关 D7D6D5D4D3D1D0D2 无 关 ( a ) 0 清 除 通 道 0 屏 蔽 位 1 置 位 通 道 0 屏 蔽 位 0 清 除 通 道 1 屏 蔽 位 1 置 位 通 道 1 屏 蔽 位 0 清 除 通 道 2 屏 蔽 位 1 置 位 通 道 2 屏 蔽 位 0 清 除 通 道 3 屏 蔽 位 1 置 位 通 道 3 屏 蔽 位 ( b )

25、(a)单通道屏蔽字格式)单通道屏蔽字格式 (b)四通道屏蔽字格式)四通道屏蔽字格式 n状态寄存器 8237A有一个可由CPU读取的状态寄存器 D7D6D5D4D3D1D0D2 1 通 道 3 有 请 求 1 通 道 2 有 请 求 1 通 道 1 有 请 求 1 通 道 0 有 请 求 1 通 道 0 传 输 结 束 1 通 道 1 传 输 结 束 1 通 道 2 传 输 结 束 1 通 道 3 传 输 结 束 图图11.10 11.10 8237A8237A的状态寄存器格式的状态寄存器格式 28237A编程步骤编程步骤 n输出主清除命令,使输出主清除命令,使8237A进入初始状态;进入初始状

26、态; n将将DMA传送的存贮器起始地址写入基地址和当前地址寄传送的存贮器起始地址写入基地址和当前地址寄 存器;存器; n将要传送的字节数写入基字节寄存器和当前字节计数器;将要传送的字节数写入基字节寄存器和当前字节计数器; n写模式寄存器,规定写模式寄存器,规定8237A的工作方式等;的工作方式等; n写命令寄存器,规定各通道优先级及写命令寄存器,规定各通道优先级及DREQ、DACK的有的有 效电平等;效电平等; n写屏蔽寄存器,规定开放和屏蔽的通道;写屏蔽寄存器,规定开放和屏蔽的通道; n写请求寄存器,发写请求寄存器,发DMA请求命令。请求命令。 8237A的编程的编程 38237A的编程举例

27、的编程举例 n例:例: 设某设某8088系统使用一片系统使用一片8237A,现欲将内,现欲将内 存地址为存地址为8000H开始的开始的100个字节数据以个字节数据以 DMA方式输出到某外设,已知方式输出到某外设,已知8237A的端口的端口 地址为地址为20H2FH,并规定,并规定8237A通道通道1工作工作 在方式在方式2,硬件启动。试编写初始化程序段。,硬件启动。试编写初始化程序段。 8237A的编程的编程 n解:根据已知条件和要求,初始化程序段为:解:根据已知条件和要求,初始化程序段为: OUT 2DH,AL ;发主清除命令;发主清除命令 MOV AL,89H ;选通道;选通道1,读传送,

28、禁止自,读传送,禁止自 动预置,方式动预置,方式2,地址递,地址递 增增 OUT 2BH,AL MOV AL,80H ;写命令字:普通时序,存储器;写命令字:普通时序,存储器 到外设传送,固定优先级到外设传送,固定优先级 OUT 28H,AL ;正常写,;正常写,DREQ、DACK高电平高电平 有效有效 MOV AL,00H ;写基地址和当前地址寄存器;写基地址和当前地址寄存器 OUT 22H,AL MOV AL,80H OUT 22H,AL MOV AL,64H ;写基字节寄存器和;写基字节寄存器和 当前字节计数器当前字节计数器 OUT 23H,AL MOV AL,0 OUT 23H,AL

29、MOV AL,00H ;清除所有通道屏蔽;清除所有通道屏蔽 OUT 2FH,AL 11.2.4 8237A的工作方式的工作方式 nDMA传送方式传送方式 单字节传送方式 数据块传送方式 请求传送方式 级连方式 nDMA传送类型传送类型 DMA读 DMA写 DMA检验 n存储器到存储器的传送存储器到存储器的传送 方式方式0 请求传送方式请求传送方式 nDREQ信号有效就连续传送数据信号有效就连续传送数据 nDREQ信号无效,信号无效,DMA传送被暂时中止,传送被暂时中止,8237A释放释放 总线,总线,CPU可继续操作可继续操作 nDMA通道的地址和字节数的中间值仍被保持通道的地址和字节数的中间

30、值仍被保持 nDREQ信号再次有效,信号再次有效,DMA传送就继续进行传送就继续进行 n如果字节数寄存器减到如果字节数寄存器减到0,或者由外部送来一个有效的,或者由外部送来一个有效的 信号,将终止计数信号,将终止计数 n特点:特点: nDMA操作可由外设利用操作可由外设利用DREQ信号控制传送的过程信号控制传送的过程 方式方式1单字节传送方式单字节传送方式 n每次DMA传送时仅传送一个字节 n传送一个字节之后,字节数寄存器减1,地址寄 存器加1或减1,HRQ变为无效 n8237A释放系统总线,将控制权还给CPU n特点: n一次传送一个字节,效率略低 nDMA传送之间CPU有机会重新获取总线控

31、制权 方式方式2 块传送方式块传送方式 n由DREQ启动就连续地传送数据,直到字节数寄 存器减到0终止计数,或由外部输入有效信号终 结DMA传送 nDREQ只需维持有效到DACK有效 n特点:特点: n一次请求传送一个数据块,效率高 n整个DMA传送期间CPU长时间无法控制总线 (无法响应其他DMA请求、无法处理中断等) 方式方式3 级联方式级联方式 n用于通过多个8237A级连以扩展通道; n第二级的HRQ和HLDA信号连到第一级某个通道的DREQ和DACK上; n第二级芯片的优先权等级与所连通道的优先权相对应; n第一级只起优先权网络的作用,实际的操作由第二级芯片完成; n还可由第二级扩展到第三级等。 . . 8237 HLDA HRQ HLDA HRQ 8237 第二级 第一级 DACK3 DREQ3 DACK0 DREQ0 HLDA HRQ HLDA HOLD 微处理器 DMA传送类型传送类

温馨提示

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

评论

0/150

提交评论