http://qsyang.yeah.net
现代微机原理与接口技术
1
为什么 DMA传送方式能实现高速传送?
DMA传送的过程是什么样的?画出流程。
DMA有哪些操作方式?各有什么特点。
简述 DMA控制器的两个工作状态的特点。
试设计一种在 8088大模式下与 8237连接的基本电路图。并说明你的设计中 8237各个端口的实际地址。
DMA控制器的时序包括哪几个状态周期?试画出正常读传输的时序。
DMAC的内部地址寄存器是 16位的,如何扩展地址来访问 16MB的地址空间?
自学思考题
http://qsyang.yeah.net
现代微机原理与接口技术
2
4.1.1 数据传送的控制
◆ 数据传送涉及的 3个问题
1)数据的来源;
2)数据的去处;
3)数据本身以及如何控制数据的传送。
第 4章 DMA技术
4.1 概述
http://qsyang.yeah.net
现代微机原理与接口技术
3
◆ DMA方式控制的数据传送
http://qsyang.yeah.net
现代微机原理与接口技术
4
◆ DMA传送方式通常用来高速传送大批量的数据块。如:
硬盘和软盘 I/O;
快速通信通道 I/O;
多处理机和多程序数据块传送;
在图像处理中,对 CRT屏幕送数据;
快速数据采集;
DRAM的刷新操作。
http://qsyang.yeah.net
现代微机原理与接口技术
5
◆ DMA传送包括:
( 1)存储单元传送:存储器 → 存储器。
( 2) DMA读传送:存储器 → I/O设备。
( 3) DMA写传送,I/O设备 → 存储器。
http://qsyang.yeah.net
现代微机原理与接口技术
6
4.1.2 DMA传送的工作过程
1) I/O设备向 DMAC发出 DMA请求;
2) DMAC向 CPU发出总线请求;
3) CPU在执行完当前指令的当前的总线周期后,
向 DMAC发出总线响应信号;
4) CPU脱离对系统总线的控制,由 DMAC接管对系统总线的控制;
http://qsyang.yeah.net
现代微机原理与接口技术
7
5) DMAC向 I/O设备发出的 DMA应答信号;
6) DMAC进行一个字节的传送;
7)完成设定的字节数据传送,CPU恢复对系统总线的控制。
http://qsyang.yeah.net
现代微机原理与接口技术
8
4.1.3 DMA传送的方式
1,DMA操作类型
数据传送 。数据传送是把源地址的数据传送到目的地址中去。
数据检验 。当数据传送完毕之后,可以进行校验操作。
校验操作并不进行数据传送,只进行数据校验。但操作过程仍然要通过 DMAC向 CPU提出申请,进入
DMA周期。
数据检索 。数据检索操作并不进行数据传送,只是对在指定的内存区内查找某个关键字节或某几个关键数据位是否存在,如果查找到了,就停止检索操作。
http://qsyang.yeah.net
现代微机原理与接口技术
9
2,DMA操作方式
1) 单字节操作方式 。 每次进行 DMA操作只操作一个字节 。
2) 连续操作方式。 只要 DMA操作开始,DMAC始终占用总线,直到 DMA操作完成,才把总线控制权交还
CPU。
3) 请求操作方式。 如果有 DMA请求,则 DMAC就占用总线;当 DMA请求无效,或 DMA操作完成,或由外部传来过程结束信号( EOP)时,DMAC都会释放总线。
4) 级联传送方式。
http://qsyang.yeah.net
现代微机原理与接口技术
10
4.2 DMA控制器
4.2.1 DMA控制器在系统中的两种工作状态
1) 主动态在 DMAC获得总线控制权 之后,DMAC取代 CPU而成为系统的主控者,接管和控制系统总线(数据总线、
地址总线和控制总线)。通过总线向存储器或 I/O设备发出地址、读 /写信号,以控制在两个实体之间的传送
。
2) 被动态在 DMAC获得总线控制权 之前,DMAC受 CPU控制(
。此时,CPU可对 DMAC进行初始化编程,也可从
DMAC中读出状态。当 DMAC上电或复位时,DMAC
自动处于被动态。
http://qsyang.yeah.net
现代微机原理与接口技术
11
4.2.2 82C37A 的内部结构和引脚功能说明
1,82C37A的特点
① 具有 4个独立的 DMA通道,每个通道都可独立地进行初始化 。
② 每个通道的 DMA请求都可以被允许或禁止 。
③ 每个通道的 DMA有不同的优先级,既可以是固定优先级,也可以是循环优先级 。
④ 每个通道进行一次传送的最大字节数为 64K。
⑤ 提供 4种传送方式:单字节传送方式,数据块传送方式,请求传送方式和级联传送方式 。
⑥ 时钟频率从 DC到 5MHz的全静态设计 。
⑦ 在 5MHz的时钟频率下传送速率高达 1.6MB/s。
http://qsyang.yeah.net
现代微机原理与接口技术
12
2,82C37A 的内部结构
① DMA通道
② 读 /写控制
③ 控制逻辑
http://qsyang.yeah.net
现代微机原理与接口技术
13
82C37A内部逻辑框图
http://qsyang.yeah.net
现代微机原理与接口技术
14
2,82C37A 的引脚功能
http://qsyang.yeah.net
现代微机原理与接口技术
15
4.2.3 82C37A 的内部寄存器
http://qsyang.yeah.net
现代微机原理与接口技术
16
1.控制寄存器
http://qsyang.yeah.net
现代微机原理与接口技术
17
2.工作方式寄存器
http://qsyang.yeah.net
现代微机原理与接口技术
18
3.状态寄存器
http://qsyang.yeah.net
现代微机原理与接口技术
19
4.请求寄存器
http://qsyang.yeah.net
现代微机原理与接口技术
20
5.屏蔽寄存器
http://qsyang.yeah.net
现代微机原理与接口技术
21
4.2.4 82C37A DMA控制器端口地址
http://qsyang.yeah.net
现代微机原理与接口技术
22
4.2.5 软命令
1)清先 /后触发器软命令
MOV AL,0XXH ;0XXH为 AL中任意值
OUT 0CH,AL ; 先 /后触发器被清,0”
2)总清除软命令
MOV AL,0XXH ;0XXH为 AL中任意值
OUT 0DH,AL ;写入总清端口,执行总清除命令
3)清屏蔽寄存器软命令。
MOV AL,0XXH ;0XXH为 AL中任意值
OUT 0EH,AL ;写入清屏蔽寄存器端口
http://qsyang.yeah.net
现代微机原理与接口技术
23
4.2.6 DMA控制器的工作时序
DMA空闲周期 SI
过渡状态 S0 DMA
有效周期( S1,S2,S3,S4)
82C37A内部状态变化流程
http://qsyang.yeah.net
现代微机原理与接口技术
24
http://qsyang.yeah.net
现代微机原理与接口技术
25
4.3 DMA编程和应用举例
4.3.1 82C37A的初始化编程
◆ 初始化编程的步骤:
①命令字写入控制寄存器
②屏蔽字写入屏蔽寄存器
③ 方式字写入方式寄存器
④清,0” 先 /后触发器
⑤ 写入地址寄存器字节寄存器
⑥解除屏蔽
⑦写入请求寄存器
http://qsyang.yeah.net
现代微机原理与接口技术
26
4.3.2 82C37A 的应用举例
1,82C37A DMAC的级联
http://qsyang.yeah.net
现代微机原理与接口技术
27
2.如何扩展 82C37A DMAC的寻址空间
http://qsyang.yeah.net
现代微机原理与接口技术
28
http://qsyang.yeah.net
现代微机原理与接口技术
29
3.应用举例现假设在级联的 82C37的主片通道 1,将内存其始地址为 80000H的 280H字节的内容直接输出到外部设备。
MOV AL,4 ;命令字,禁止 82C37工作
OUT 08,AL ;写命令寄存器
MOV AL,0
OUT 0CH,AL ;清除先 /后触发器
OUT 02,AL ;写低位地址
OUT 02,AL ;写高位地址
http://qsyang.yeah.net
现代微机原理与接口技术
30
MOV AL,8 ;页面地址为 8
OUT 83H,AL ;写页面寄存器
MOV AX,280H ;传输字节数
DEC AX
OUT 03,AL ;写字节数低位
MOV AL,AH
OUT 03,AL ;写字节数高位
MOV AL,49H ;模式字,单字节读,地址加 1
OUT 0BH,AL
http://qsyang.yeah.net
现代微机原理与接口技术
31
MOV AL,40H ;命令字,DACK和 DREQ低有效
OUT 08H,AL ;正常时序,固定优先权
MOV AL,01 ;清除通道 1屏蔽
OUT 0AH,AL
WAITF,IN AL,08 ;读通道 1状态
AND AL,02 ;传输完成否
JZ WAITF ;没完成则等待
MOV AL,05 ;完成后屏蔽通道 1
OUT 0A,AL
……
现代微机原理与接口技术
1
为什么 DMA传送方式能实现高速传送?
DMA传送的过程是什么样的?画出流程。
DMA有哪些操作方式?各有什么特点。
简述 DMA控制器的两个工作状态的特点。
试设计一种在 8088大模式下与 8237连接的基本电路图。并说明你的设计中 8237各个端口的实际地址。
DMA控制器的时序包括哪几个状态周期?试画出正常读传输的时序。
DMAC的内部地址寄存器是 16位的,如何扩展地址来访问 16MB的地址空间?
自学思考题
http://qsyang.yeah.net
现代微机原理与接口技术
2
4.1.1 数据传送的控制
◆ 数据传送涉及的 3个问题
1)数据的来源;
2)数据的去处;
3)数据本身以及如何控制数据的传送。
第 4章 DMA技术
4.1 概述
http://qsyang.yeah.net
现代微机原理与接口技术
3
◆ DMA方式控制的数据传送
http://qsyang.yeah.net
现代微机原理与接口技术
4
◆ DMA传送方式通常用来高速传送大批量的数据块。如:
硬盘和软盘 I/O;
快速通信通道 I/O;
多处理机和多程序数据块传送;
在图像处理中,对 CRT屏幕送数据;
快速数据采集;
DRAM的刷新操作。
http://qsyang.yeah.net
现代微机原理与接口技术
5
◆ DMA传送包括:
( 1)存储单元传送:存储器 → 存储器。
( 2) DMA读传送:存储器 → I/O设备。
( 3) DMA写传送,I/O设备 → 存储器。
http://qsyang.yeah.net
现代微机原理与接口技术
6
4.1.2 DMA传送的工作过程
1) I/O设备向 DMAC发出 DMA请求;
2) DMAC向 CPU发出总线请求;
3) CPU在执行完当前指令的当前的总线周期后,
向 DMAC发出总线响应信号;
4) CPU脱离对系统总线的控制,由 DMAC接管对系统总线的控制;
http://qsyang.yeah.net
现代微机原理与接口技术
7
5) DMAC向 I/O设备发出的 DMA应答信号;
6) DMAC进行一个字节的传送;
7)完成设定的字节数据传送,CPU恢复对系统总线的控制。
http://qsyang.yeah.net
现代微机原理与接口技术
8
4.1.3 DMA传送的方式
1,DMA操作类型
数据传送 。数据传送是把源地址的数据传送到目的地址中去。
数据检验 。当数据传送完毕之后,可以进行校验操作。
校验操作并不进行数据传送,只进行数据校验。但操作过程仍然要通过 DMAC向 CPU提出申请,进入
DMA周期。
数据检索 。数据检索操作并不进行数据传送,只是对在指定的内存区内查找某个关键字节或某几个关键数据位是否存在,如果查找到了,就停止检索操作。
http://qsyang.yeah.net
现代微机原理与接口技术
9
2,DMA操作方式
1) 单字节操作方式 。 每次进行 DMA操作只操作一个字节 。
2) 连续操作方式。 只要 DMA操作开始,DMAC始终占用总线,直到 DMA操作完成,才把总线控制权交还
CPU。
3) 请求操作方式。 如果有 DMA请求,则 DMAC就占用总线;当 DMA请求无效,或 DMA操作完成,或由外部传来过程结束信号( EOP)时,DMAC都会释放总线。
4) 级联传送方式。
http://qsyang.yeah.net
现代微机原理与接口技术
10
4.2 DMA控制器
4.2.1 DMA控制器在系统中的两种工作状态
1) 主动态在 DMAC获得总线控制权 之后,DMAC取代 CPU而成为系统的主控者,接管和控制系统总线(数据总线、
地址总线和控制总线)。通过总线向存储器或 I/O设备发出地址、读 /写信号,以控制在两个实体之间的传送
。
2) 被动态在 DMAC获得总线控制权 之前,DMAC受 CPU控制(
。此时,CPU可对 DMAC进行初始化编程,也可从
DMAC中读出状态。当 DMAC上电或复位时,DMAC
自动处于被动态。
http://qsyang.yeah.net
现代微机原理与接口技术
11
4.2.2 82C37A 的内部结构和引脚功能说明
1,82C37A的特点
① 具有 4个独立的 DMA通道,每个通道都可独立地进行初始化 。
② 每个通道的 DMA请求都可以被允许或禁止 。
③ 每个通道的 DMA有不同的优先级,既可以是固定优先级,也可以是循环优先级 。
④ 每个通道进行一次传送的最大字节数为 64K。
⑤ 提供 4种传送方式:单字节传送方式,数据块传送方式,请求传送方式和级联传送方式 。
⑥ 时钟频率从 DC到 5MHz的全静态设计 。
⑦ 在 5MHz的时钟频率下传送速率高达 1.6MB/s。
http://qsyang.yeah.net
现代微机原理与接口技术
12
2,82C37A 的内部结构
① DMA通道
② 读 /写控制
③ 控制逻辑
http://qsyang.yeah.net
现代微机原理与接口技术
13
82C37A内部逻辑框图
http://qsyang.yeah.net
现代微机原理与接口技术
14
2,82C37A 的引脚功能
http://qsyang.yeah.net
现代微机原理与接口技术
15
4.2.3 82C37A 的内部寄存器
http://qsyang.yeah.net
现代微机原理与接口技术
16
1.控制寄存器
http://qsyang.yeah.net
现代微机原理与接口技术
17
2.工作方式寄存器
http://qsyang.yeah.net
现代微机原理与接口技术
18
3.状态寄存器
http://qsyang.yeah.net
现代微机原理与接口技术
19
4.请求寄存器
http://qsyang.yeah.net
现代微机原理与接口技术
20
5.屏蔽寄存器
http://qsyang.yeah.net
现代微机原理与接口技术
21
4.2.4 82C37A DMA控制器端口地址
http://qsyang.yeah.net
现代微机原理与接口技术
22
4.2.5 软命令
1)清先 /后触发器软命令
MOV AL,0XXH ;0XXH为 AL中任意值
OUT 0CH,AL ; 先 /后触发器被清,0”
2)总清除软命令
MOV AL,0XXH ;0XXH为 AL中任意值
OUT 0DH,AL ;写入总清端口,执行总清除命令
3)清屏蔽寄存器软命令。
MOV AL,0XXH ;0XXH为 AL中任意值
OUT 0EH,AL ;写入清屏蔽寄存器端口
http://qsyang.yeah.net
现代微机原理与接口技术
23
4.2.6 DMA控制器的工作时序
DMA空闲周期 SI
过渡状态 S0 DMA
有效周期( S1,S2,S3,S4)
82C37A内部状态变化流程
http://qsyang.yeah.net
现代微机原理与接口技术
24
http://qsyang.yeah.net
现代微机原理与接口技术
25
4.3 DMA编程和应用举例
4.3.1 82C37A的初始化编程
◆ 初始化编程的步骤:
①命令字写入控制寄存器
②屏蔽字写入屏蔽寄存器
③ 方式字写入方式寄存器
④清,0” 先 /后触发器
⑤ 写入地址寄存器字节寄存器
⑥解除屏蔽
⑦写入请求寄存器
http://qsyang.yeah.net
现代微机原理与接口技术
26
4.3.2 82C37A 的应用举例
1,82C37A DMAC的级联
http://qsyang.yeah.net
现代微机原理与接口技术
27
2.如何扩展 82C37A DMAC的寻址空间
http://qsyang.yeah.net
现代微机原理与接口技术
28
http://qsyang.yeah.net
现代微机原理与接口技术
29
3.应用举例现假设在级联的 82C37的主片通道 1,将内存其始地址为 80000H的 280H字节的内容直接输出到外部设备。
MOV AL,4 ;命令字,禁止 82C37工作
OUT 08,AL ;写命令寄存器
MOV AL,0
OUT 0CH,AL ;清除先 /后触发器
OUT 02,AL ;写低位地址
OUT 02,AL ;写高位地址
http://qsyang.yeah.net
现代微机原理与接口技术
30
MOV AL,8 ;页面地址为 8
OUT 83H,AL ;写页面寄存器
MOV AX,280H ;传输字节数
DEC AX
OUT 03,AL ;写字节数低位
MOV AL,AH
OUT 03,AL ;写字节数高位
MOV AL,49H ;模式字,单字节读,地址加 1
OUT 0BH,AL
http://qsyang.yeah.net
现代微机原理与接口技术
31
MOV AL,40H ;命令字,DACK和 DREQ低有效
OUT 08H,AL ;正常时序,固定优先权
MOV AL,01 ;清除通道 1屏蔽
OUT 0AH,AL
WAITF,IN AL,08 ;读通道 1状态
AND AL,02 ;传输完成否
JZ WAITF ;没完成则等待
MOV AL,05 ;完成后屏蔽通道 1
OUT 0A,AL
……