DMA与DMA控制器 DMA(Direct Memory Access)的概念 DMA方式不用处理器干预完成M与I/O间数据传送。

Slides:



Advertisements
Similar presentations
《微型计算机技术 及应用》 ( 第 4 版) —— 戴梅萼 史嘉权. 目标 深刻理解 牢固掌握 灵活应用.
Advertisements

NAT与ICMP交互.
第五章 输入输出系统 5.1 概述 5.3 接口 5.3 系统总线 5.4 直接程序传送方式接口 5.5 中断方式与接口
微型计算机原理及应用.
2017年3月5日 单片机原理与应用 背景知识调查.
实验四 利用中规模芯片设计时序电路(二).
5.4 顺序脉冲发生器、 三态逻辑和微机总线接口 顺序脉冲发生器 顺序脉冲 计数型 分类 移位型.
第十二章 DMA控制器 12.1 概述 A DMA控制器 A的应用.
第六章 直接存储器存取DMA 6.1 DMA的工作原理及工作过程
计算机基础知识 丁家营镇九年制学校 徐中先.
第5章 输入输出与接口技术.
第五章 总线 及其形成 本节课之前,大家学习了:
第 2 章 8086 系 统 结 构 中国科学技术大学 何克东.
第五章 微处理器总线操作与时序 三、总线时序 一、 8086/8088引脚 二、最小模式和最大模式.
汇编语言与接口技术 教师:范新民.
输入/输出及接口 输入/输出的传送方式 中断技术 80x86/Pentium中断系统 8259A可编程中断控制器 中断程序设计
第 6 章 I/O 接口和总线 中国科学技术大学 何克东.
第三节 CPU与外设间的数据传送方式 CPU与外设的工作速度不一致, 如何使两者高效、可靠地进行数据传送, 是本节讨论的问题。
第6章 DMA传输 6.1 DMA传输原理 6.2 DMA控制器8237A A的编程使用 欢迎辞.
输入输出与中断 主要内容 CPU与外设之间数据传送方式 中断技术 8086中断系统和中断处理.
第六章 输入输出和中断技术 本章内容 基本概念 I/O端口的编址 中断 DMA* 输入输出的基本方法:无条件、查询、中断、DMA
第5章 输入输出与接口技术.
第三章 微机基本系统的设计 第一章 8086程序设计 第二章 MCS-51程序设计 第四章 存贮器与接口 第五章 并行接口
第 2 章 微处理器 的结构特点 CPU 寄存器组 外部引脚及功能
Roy Wan PCI MS/s 14-bit 高速数字化仪 Roy Wan
ARDUINO+BLUETOOTH Arduino实现蓝牙数据传输.
第8章 PCH中的常规接口.
第七章 输入和输出 第一节 I/O接口 第三节 可编程DMA控制器8237A 第二节 CPU与外设数据传送的方式.
第2章 8086微处理器及其系统 微处理器简介 系统的存储器组织及I/O组织 系统的工作模式
1.3 微型计算机的结构和工作原理.
逆向工程-汇编语言
CPU结构和功能.
第 12 章 8237A DMA控制器及其应用 中国科学技术大学 何克东.
数 控 技 术 华中科技大学机械科学与工程学院.
第6章作业 3、 需要128块芯片 片内译码地址线:10条 片选择地址线:至少4条
第二章 80x86计算机组织 x86微处理器 2.2 基于微处理器的计算机系统构成 2.3 中央处理机 2.4 存储器
第7章 I/O接口和总线 7.1 I/O接口 7.2 总线.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月19日.
第五章:输入输出基本技术 主讲教师:范新民.
7.1.1 设备管理的功能(P95) 分配设备:按设备的不同类型和操作系统选用的算法分配。包括分配相应的通道、设备控制器以及对未分配到的任务或怍业进行排队等; 控制和实现真正的输入输出操作。包括通道程序控制、启动设备、及时响应及处理中断讯号等; 对输入输出缓冲区进行管理。例如逻辑名的管理,多个缓冲区的分时以及串并行操作,同类多个外部设备的均衡工作,避免“忙的忙”和“闲的闲”;
认识计算机系统.
第二章 8086微处理器. 第二章 8086微处理器 微处理器的基本结构 8086微处理器的主要特性和内部结构 8086CPU的工作模式和引脚信号 8086的存储器管理 8086的总线操作和时序.
《微型计算机原理与接口技术》 第4版 王良 宁德师范学院 吴宁 乔亚男 编著 清华大学出版社 出版
第九章 微处理器外部结构和总线操作时序.
《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:
得技通电子 问题 1.0 、选择题:本大题共15个小题,每小题1分,共15分,在每小题给出的四个选项中,只有一项符合题目要求,把所选项前的字母填在括号内。
微机系统的组成.
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
可编程定时计数器.
计算机组成原理 课程设计.
(Random Access Memory)
微机原理与接口技术 第6章 并行输入输出接口(8255A)
微机原理及应用 主讲:郑海春.
微机原理与接口技术 西安邮电大学计算机学院 杨锐.
第三章 MCS 51的硬件结构.
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
微型计算机技术 教 学 指 导(五) 太原广播电视大学 郭建勇.
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
本节内容 内存复制指令 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
微机原理与接口技术 ——8086微处理器 西安邮电大学 计算机学院 范琳.
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
第十章 直接存储器存取(DMA)控制.
得技通电子 问题 三 判断题:.
第2章 16位和32位微处理器 16位微处理器8086/ 位微处理器
第六章 I/O接口 一、I/O接口的功能 第一节 概 述 一、I/O 接口的功能 二、I/O接口的一般结构 第二节 输入输出寻址方式和指令
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
上节复习(11.7) 1、定时/计数器的基本原理? 2、定时/计数器的结构组成? 3、定时/计数器的控制关系?
第九章 存储器和可编程逻辑器件 本章主要内容 半导体存储器 只读存储器 随机存取存储器 存储器容量的扩展 可编程逻辑器件
工业机器人入门使用教程 ESTUN机器人 主讲人:李老师
DSP技术与应用 电子与信息技术系.
Presentation transcript:

DMA与DMA控制器 DMA(Direct Memory Access)的概念 DMA方式不用处理器干预完成M与I/O间数据传送。 控制总线的主模块要提供系统的地址及控制信号。 DMA控制器与处理器配合可实现系统的DMA功能。

DMA与DMA控制器(续) 2. DMA系统组成及工作过程․ DMA系统组成 地址总线 HOLD HLDA 总线 请求 DMA 请求 I / O 设备 HRQ DREQ DMAC HLDA DACK 总线 响应 DMA 响应 CPU 控制总线 数据总线

DMA与DMA控制器(续) 2. DMA系统组成及工作过程 ․ DMA工作过程 I/O向DMAC DMAC向 CPU响应 DMAC向 发请求 CPU发请求 DMAC请求 I/O发响应 DMA传 送结束 DMA传 送进行 DMAC发出 控制信号 DMAC发出 内存地址

․DMA传送方式 允许 DMA 请求? DMAC发BUS请求 CPU响应DMA 放弃BUS DMAC控制 传一个字节 DMA 放 总 线 N DMA 请求? Y DMAC发BUS请求 CPU响应DMA 放弃BUS DMAC控制 传一个字节 DMA 放 总 线 N 块结束否? Y 放弃总线中断请求 字节传送

․DMA传送方式 允许 DMA DMA请求? DMAC发BUS请求 CPU 响应 DMA 放弃 BUS DMAC控制 传一个字节 Y N 块结束否? DMA请求? N Y 块传送 放总线中断请求

․DMA传送方式 允许 DMA N DMA请求? Y DMAC发出BUS请求 CPU响应DMA放弃总线 DMAC 控制传一个字节 Y 块结束否? N Y 放总线 放总线中断请求 随机请求 DEMAND REQUEST

3.Intel 8237A可编程DMA控制器框图 HOLD HRQ 控制 REG. 8 Addr.Temp.16 Count Temp. 16 IOR# HLDA HLDA 状态 REG. 8 暂存器 8 MEMR# IOW# CLOCK REN REQ MASK MODE REG.6 1 1 MEMW# AEN FLAG FLAG 通道0 关闭CPU地址锁存器 READY 当前ADDR..REG. 16 基地址 REG. 16 RESET ADSTB 可读 非读 EN# DB7 : DB0 当前字节计数器.16 基字节数REG.16 DREQ0 STB DATA SUB DACK0 锁存器 IO / M# DREQ1 通道1 CS# DACK1 地 址 总 线 ADDR. 译 码 A15~A8 DREQ2 A7~A0 通道2 DACK2 A3~A0 DREQ3 通道3 DACK3 A7~A4 EOP# 3.Intel 8237A可编程DMA控制器框图

DMA与DMA控制器(续) 3.Intel 8237A可编程DMA控制器框图(续) 8237A主从两面性: 作为DMAC,8237A是可控制总线的主模块。 作为I/O芯片,8237A可被处理器读写。 运行时注意8237A主-从地址的变化。 8237A组成说明: 8237A有四个独立通道:每个通道有16位地址REG,16位字节数计数器,6位模式REG。 四个通道公用控制寄存器,状态寄存器,屏蔽寄存器,请求标志寄存器及暂存器,各寄存器均为8位。

DMA与DMA控制器(续) 3.Intel 8237A可编程DMA控制器框图(续) 8237A组成说明: 基地址寄存器:放DMA传送RAM地址初值。 当前地址寄存器: DMA传送时内容变化,可读。 基字节数寄存器: DMA传送的总字节数。 当前字节数寄存器: DMA传送时内容变化,可读。

DMA与DMA控制器(续) 3.Intel 8237A可编程DMA控制器框图(续) 8237A引线说明: DB7-DB0:双向数据总线。 8237A为主模块时DB7-DB0输出地址A15-A8,在 M M传送操作时经DB7-DB0,将M数据送8237A暂存器。 A3-A4:地址线,从模块时为输入,处理器寻址8237A;主模块时输出低压位地址。

DMA与DMA控制器(续) A7-A4:地址线,主模块时输出A7-A4。 CS#:片选,从模块时处理器用来寻址8237A。 IOR#,IOW#:I/O读写控制,双向。8237A在从模块时为输入,在主模块时为输出。 AEN,ADSTB输出:8位地址锁存允许及选通。在主模块时允许外部锁存器锁存8237A的高8位地址。 MEMR#,MEMW:输出,存储器读写控制,主模块时送存储器。 READY:输入,准备就绪,主模块时控制总线周期的长度,与慢速设备同步。

DMA与DMA控制器(续) RESET:输入,复位信号,复位时屏幕寄存器置1,其它寄存器置0。 EOP#:双向。输出时,表明内部通道传送结束;输入时,表明外部强迫DMA传送停止。 DREQ0-DREQ3:I/O设备DMA请求输入信号。 DACK0-DACK3:输出DMA请求的响应。 HRQ:8237A向处理器发出的总线请求信号。 HLDA:处理器发给8237A的总线请求响应信号。

8237A编程 地址、字计数器端口分配 8237A 字计数器与地址寄存器端口号与对应操作(1) 1 1 1 1 通道 REGISTER 操作 CS #10R# 10W# A3 A2 A1 A0 内 F/F DB0~DB7 0 1 0 0 0 0 0 1 A0 ~ A7 A8 ~ A15 写 基 / 现行地址 0 0 1 0 0 0 0 1 A0 ~ A7 A8 ~ A15 现行地址 读 0 1 0 0 0 0 1 1 W0 ~ W7 W8 ~ W15 基 / 现行字计数 写 0 0 1 0 0 0 1 1 W0 ~ W7 W8 ~ W15 现行字计数 读 0 1 0 0 0 1 0 1 A0 ~ A7 A8 ~ A15 1 基 / 现行地址 写 A0 ~ A7 A8 ~ A15 0 0 1 0 0 1 0 1 1 现行地址 读 0 1 0 0 0 1 1 1 1 W0 ~ W7 W8 ~ W15 基 / 现行字计数 写 0 0 1 0 0 1 1 1 W0 ~ W7 W8 ~ W15 1 现行字计数 读

8237A 字计数器与地址寄存器端口号与对应操作(2) 通道 REGISTER 操作 CS #10R# 10W# A3 A2 A1 A0 内 F/F DB0~DB7 0 1 0 0 1 0 0 1 A0 ~ A7 A8 ~ A15 2 写 基 / 现行地址 0 0 1 0 1 0 0 1 A0 ~ A7 A8 ~ A15 2 现行地址 读 0 1 0 0 1 0 1 1 W0 ~ W7 W8 ~ W15 2 基 / 现行字计数 写 0 0 1 0 1 0 1 1 W0 ~ W7 W8 ~ W15 2 现行字计数 读 3 0 1 0 0 1 1 0 1 A0 ~ A7 A8 ~ A15 基 / 现行地址 写 A0 ~ A7 A8 ~ A15 0 0 1 0 1 1 0 1 3 现行地址 读 0 1 0 0 1 1 1 3 1 W0 ~ W7 W8 ~ W15 基 / 现行字计数 写 0 0 1 0 1 1 1 1 W0 ~ W7 W8 ~ W15 3 现行字计数 读

操作命令与端口号对应关系表 A3 A2 A1 A0 IOR# IOW# 操 作 十六进制 1 0 0 0 0 1 读状态 REG. 8 1 0 0 1 0 1 非法 9 1 0 0 1 1 0 写DMA请求标志 REG. 1 0 1 0 0 1 非法 A 1 0 1 0 1 0 写屏蔽标志 REG. 单一位 1 0 1 1 0 1 非法 B 1 0 1 1 1 0 写模式 REG. 1 1 0 0 0 1 非法 C 1 1 0 0 1 0 清除字节指针 F/F 三个软件 命令不依 赖DB上 数据 1 1 0 1 0 1 读暂存器 D 1 1 0 1 1 0 复位 (总清) 1 1 1 0 0 1 非法 E 1 1 1 0 1 0 清除/屏蔽标志 REG. 1 1 1 1 0 1 非法 F 1 1 1 1 1 0 写所有屏蔽 REG 所有位

8237A 模式 REG. 格式(写B号):工作方式设定 D7 D6 D5 D4 D3 D2 D1 D0 模式选择 通道选择 随机请求传输模式 0 0 0 选 0# Channel 1 选 1# Channel 单字节传输模式 1 1 选 2# Channel 1 非传输模式 1 1 选 3# Channel 级联传输模式 1 1 传输类型选择 地址增量选择 0 0 校验传输 地址加1 0 1 写传输 地址减1 1 1 读传输 1 1 非 法 自动预置功能选择 X X D7 D6=11 禁止 0 允许 1

8237A 控制/命令REG. 格式(写8号):硬件设置与运行控制 D7 D6 D5 D4 D3 D2 D1 D0 DACK有效电平 MEM. MEM. 传输 低电平有效 0 禁止 高电平有效 1 1 允许 DREQ有效电平 Channel 0 地址保持不变 高电平有效 Disable 低电平有效 1 1 Enable X D0=0 扩展写 不扩展写 8237A 工作 扩展写 1 Enable 8237A D3=1 X 1 Disable 8237A 优先级类型 时序类型 固定优先级 普通时序 循环优先级 1 1 压缩时序 X D0=1

8237A 控制/命令REG. 格式(写9号):硬件设置与运行控制 8237A运行控制命令字:软件DMA请求 运行控制 8237A DMA 请求REG. 格式(写9号) D7 D6 D5 D4 D3 D2 D1 D0 不用 Channel 0 1 Channel 1 清除DMA请求位 1 Channel 2 1 建立DMA请求位 1 1 Channel 3

8237A 控制/命令REG. 格式(写A号):硬件设置与运行控制 D7 D6 D5 D4 D3 D2 D1 D0 通道选择 不用 Channel 0 1 Channel 1 清除 MASK 位 1 Channel 2 1 建立 MASK 位 1 1 Channel 3

8237A 控制/命令REG. 格式(写F号):硬件设置与运行控制 8237A 全4位 MASK REG. 格式 (写F号) D7 D6 D5 D4 D3 D2 D1 D0 不用 清 Channel 0 Mask 位 1 设 Channel 0 Mask 位 清 Channel 3 M 位 设 Channel 3 M 位 1 清 Channel 1 Mask 位 设 Channel 1 Mask 位 清 Channel 2 M 位 1 设 Channel 2 M 位 1

DMA与DMA控制器(续) 8237A编程(续) 关于3个软件命令:与端口号有关,与DB线上的内容无关。 写C号地址:清除字节指针F/F,使将装入顺序为先LSB后MSB。 写D号地址:总清除命令,屏蔽REG.为1,其它REG.为0 ,软件复位。 写E号地址,清除屏蔽标志。

编程过程 HLDA无效时8237A接受µP编程,不管HRQ是否有效。 编程前禁止8237A:发关闭8237A命令,向8号端口(硬件设置)写04H,或对通道进行屏蔽。 用软命令发出总清(Master Clear)操作:向0DH端口执行一次写操作。 向有关通道送地址值,计数值,模式字。 送硬件设置命令字,打开8237A。 去除屏蔽准备接收DMA请求。

8237A编程序(续) 8237A状态监测:可监测运行状态。 8237A 状态 REG. 格式(读8号) 状态字 D7 D6 D5 D4 通道 3 有DMA请求 1 1: 通道 0计数结束 通道 2有DMA请求 1 1:通道 1计数结束 通道 1 有DMA请求 1 1:通道 2计数结束 通道 0 有DMA请求 1 1: 通道 3计数结束