第十二章 DMA控制器 12.1 概述 12.2 8237A DMA控制器 12.3 8237A的应用.

Slides:



Advertisements
Similar presentations
A A A.
Advertisements

《微型计算机技术 及应用》 ( 第 4 版) —— 戴梅萼 史嘉权. 目标 深刻理解 牢固掌握 灵活应用.
第1章第1章 PC/AT 系統 1 Chapter 1 Chapter 1 PC/AT 系統 001.
第五章 输入输出系统 5.1 概述 5.3 接口 5.3 系统总线 5.4 直接程序传送方式接口 5.5 中断方式与接口
微型计算机原理及应用.
8 企业信息管理的定量分析 第八讲 企业信息管理的定量分析 8.1 企业信息化水平的测评 8.2 企业信息管理绩效的测评.
成才之路 · 语文 人教版 • 中国古代诗歌散文欣赏 路漫漫其修远兮 吾将上下而求索.
输入输出程序设计 输入输出的基本概念 无条件方式输入输出 查询方式输入输出 中断方式输入输出.
第十九章 缓控迟释制剂习题.
第10章 DOS功能调用与BIOS中断调用.
半导体存储器 第四章 半导体存储器.
第5章 中断系统 5.1 中断的概念 5.2 MCS-51单片机的中断流程 5.3 MCS-51的中断响应条件和中断处理
第七章 控制器 7.1 控制器的组成及指令的执行 7.2 控制方式和时序的产生 7.3 微程序控制器 7.4 微程序控制器及其微程序设计举例
寫 作 教 學 6 電腦與我 時代改變,科技進步,電腦成為日常生活不可或缺的設備。我是二十一世紀的E世代少年,一隻滑鼠在手,樂趣無窮。
第一章 计算机基础知识 第一节 计算机概述 一、计算机的基本组成和工作原理 二、有关术语 三、计算机发展简史 四、微型计算机概述
第5章 输入输出与接口技术.
第五章 总线 及其形成 本节课之前,大家学习了:
第七章 单片机存储器的扩展.
汇编语言与接口技术 教师:范新民.
输入/输出及接口 输入/输出的传送方式 中断技术 80x86/Pentium中断系统 8259A可编程中断控制器 中断程序设计
第 6 章 I/O 接口和总线 中国科学技术大学 何克东.
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
9.1 可编程并行输入/输出接口芯片8255A 9.2 可编程计数器/定时器 可编程串行输入/输出接口芯片8251A
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月26日.
第7章 中断与异常.
第6章 DMA传输 6.1 DMA传输原理 6.2 DMA控制器8237A A的编程使用 欢迎辞.
微机原理与接口技术 第2章 8086系统结构 朱华贵 2015年09月17日.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月10日.
输入输出与中断 主要内容 CPU与外设之间数据传送方式 中断技术 8086中断系统和中断处理.
第5章 输入输出与接口技术.
第八章 输入输出程序设计 总线 CPU MEM I/O接口 I/O设备.
Ch 9: Input/Output System 输入/输出系统
… 第一节 外设的定时方式与信息交换 一、外围设备的定时方式 CPU 1、速度极慢或简单的外围设备 2、慢速或中速的外围设备
第一章 8086程序设计 第二章 MCS-51程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
第8章 PCH中的常规接口.
汇编语言程序设计课程设计 第二次实验 DEBUG基本命令与算术运算指令
单片机原理及应用 ——基于Proteus与Keil C 哈工大出版社
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
微型机系统与接口技术自学部分 只作扩展知识用 本电子课件包含2011版第3, 6, 7, 8章自学部分 东南大学计算机科学与工程学院.
第二章 8086/8088系统结构 主要内容 8086/8088微处理器的内部结构 8086/8088 CPU 的引脚与功能
第3章 微型计算机输入输出接口 3.1 输入/输出接口 3.2 输入输出数据传输的控制方式 3.3 开关量输入输出接口 欢迎辞.
1.3 微型计算机的结构和工作原理.
第 12 章 8237A DMA控制器及其应用 中国科学技术大学 何克东.
第6章作业 3、 需要128块芯片 片内译码地址线:10条 片选择地址线:至少4条
第7章 I/O接口和总线 7.1 I/O接口 7.2 总线.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月19日.
第五章:输入输出基本技术 主讲教师:范新民.
7.1.1 设备管理的功能(P95) 分配设备:按设备的不同类型和操作系统选用的算法分配。包括分配相应的通道、设备控制器以及对未分配到的任务或怍业进行排队等; 控制和实现真正的输入输出操作。包括通道程序控制、启动设备、及时响应及处理中断讯号等; 对输入输出缓冲区进行管理。例如逻辑名的管理,多个缓冲区的分时以及串并行操作,同类多个外部设备的均衡工作,避免“忙的忙”和“闲的闲”;
第二章 8086微处理器. 第二章 8086微处理器 微处理器的基本结构 8086微处理器的主要特性和内部结构 8086CPU的工作模式和引脚信号 8086的存储器管理 8086的总线操作和时序.
微机原理及接口技术 主讲人 钱晓捷.
第九章 微处理器外部结构和总线操作时序.
第10章 可编程外围接口芯片8255A及其应用 10.1 概述 A的工作原理 A的应用举例.
作業系統 第三章 作業系統結構.
微机原理与接口技术 西安邮电大学计算机学院 王忠民.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
可编程定时计数器.
第5章 存储器 5.1 存储器概述 5.2 半导体存储芯片结构及使用 位系统的存储器接口.
第九章 BIOS和DOS中断 在存储器系统中,从地址0FE000H开始的8K ROM(只读存储器)中装有BIOS(Basic Iuput /output System)例行程序。驻留在ROM中的BIOS给PC系列的不同微处理器提供了兼容的系统加电自检,引导装入,主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。使用BIOS功能调用,给程序员编程带来很大方便,程序员不必了解硬件操作的具体细节,直接用指令设置参数,然后中断调用BIOS中的子功能,所以利用BIOS功能编写的程序简洁,可读性好,
第2章 80x86计算机组织  计算机系统  存储器  中央处理机  外部设备.
基础篇 微型计算机系统 硬件系统 软件系统 操作系统基础 作业 计算机编码和数制 系统综述.
CPU中的专用寄存器(SFR) 一、累加器Acc 二、通用寄存器B 三、程序计数器PC 四、堆栈指针SP 五、数据指针DPTR
微型计算机技术 教 学 指 导(五) 太原广播电视大学 郭建勇.
第五讲:AT89C51单片机存储器结构 一、半导体存储器 二、存储器空间划分方法 三、数据存储器(RAM) 四、程序存储器(ROM)
第五章 输入/输出系统 本章讨论: 接口的基本概念 总线的基本概念 中断方式及其接口组成 中断方式及其接口组成 DMA方式及其接口组成
温度传感器DS18B20 MCU起航 QQ:
第十章 直接存储器存取(DMA)控制.
第三章 半导体存储器及其接口 第一节 概述 第二节 半导体存储器 第三节 半导体存储器与CPU接口 一、存储器的分类
微机原理与接口技术 西安邮电大学计算机学院 宁晓菊.
第4章 MCS-51汇编语言程序设计 教学基本要求: (1)、了解MCS-51汇编语言程序设计的特点;
单片机原理及接口技术 前修课程:数模电、微机原理.
Presentation transcript:

第十二章 DMA控制器 12.1 概述 12.2 8237A DMA控制器 12.3 8237A的应用

12.1 概述 DMA=Direct Memory Access,直接存储器存取 数据通道 数据通道 CPU DMAC 数据通道 内存 外设 12.1 概述 DMA=Direct Memory Access,直接存储器存取 数据通道 数据通道 CPU DMAC 数据通道 内存 外设 内存 外设 非DMA方式 (包括程序控制方式和中断方式) DMA方式

概述 DMAC具有独立的控制三大总线来访问存储器和I/O端口的能力,它能像CPU一样提供数据传送所需的地址信息和读写控制信息 DMAC和CPU都挂在系统总线上,当进入DMA方式时,DMAC成为总线主控。 在总线上,可以控制其他部件的部件称为总线主控或主控(bus master),被控部件称为从控(slave)。任意时刻,总线上只有一个主控。

概述 DMA初始化 DMA操作之前,应先对DMAC编程,把要传送的数据块长度、数据块在存储器中的起始地址,数据传送方向等信息发送给DMAC 传送结束

概述 DMA请求阶段 当外设要求以DMA方式为它服务时,发DMA请求信号DREQ到DMAC DMAC检查该信号是否被屏蔽及其优先权,如确认该信号有效则向CPU发送总线请求信号HRQ(连到CPU的HOLD) 地址总线 CPU 存储器 数据总线 HRQ DREQ DMAC 外设

概述 DMA响应和数据传送阶段 每个总线周期结束时CPU检测HOLD,如为高电平,则响应HOLD请求进入保持态,使三态总线CPU侧呈高阻状态,并以总线保持响应信号HLDA通知DMAC DMAC接管总线,并以DACK信号通知外设,使之成为DMA传送时被选中的设备,同时DMAC给出内存地址以及I/O读写和存储器读写控制信号,在外设和存储器之间完成数据传送 地址总线 CPU 存储器 数据总线 HLDA MEMR/MEMW DACK 外设 DMAC IOR/IOW

概述 传送结束阶段 传送完成后,DMAC放弃总线,撤消总线请求(HRQ为低),CPU检测到HRQ(HOLD)为低后,撤消HLDA,CPU重新获得总线控制权 地址总线 CPU 存储器 数据总线 HRQ EOP DMAC 外设

12.2 8237A DMA控制器 一、内部结构 PC系列微机使用可编程DMA控制器 8237A(简称8237)实现DMA功能 8237有四个通道,每个通道都有独立的与相应外设接口相联系的信号,四个通道共享与CPU相连的控制信号、地址信号、数据信号 PC/AT以上的微机使用两片8237,Pentium微机系统中没有独立的8237芯片,其功能集成在芯片组中

8237的编程结构

12.2 8237A DMA控制器 二、引脚功能

8237的引脚功能 请求/应答信号 外设接口电路向8237的请求信号:DREQ3~DREQ0 8237对外设接口电路的应答信号:DACK3~DACK0 8237向CPU申请总线的信号:HRQ(连至CPU的HOLD) CPU向8237传送的允许使用总线信号:HLDA

8237的引脚功能 地址信号 :CPU初始化8237或读8237状态时所需的片选信号 A7~A0(输出):8237访问存储器的地址信号的低8位。 A3~A0(输入):CPU初始化8237或读8237状态时,用于寻址8237内部寄存器

8237的引脚功能 数据信号(双向): DB7~DB0 CPU为主控时,可以通过I/O读命令查询8237的状态寄存器的内容,或通过I/O写命令对8237的内部寄存器进行编程,数据传送通过DB7~DB0 8237为主控时, DB7~DB0输出要访问的内存地址的高8位,并通过ADSTB锁存到外部地址锁存器中,和A7~A0输出的低8位地址一起构成16位地址

8237的引脚功能 地址允许信号:AEN 8237作为主控时(8237控制总线),输出AEN=1。 8237作为从控时(CPU控制总线),输出AEN=0。 DMA传输结束信号: (双向) 当DMAC内部任一通道传输结束,8237发出 若由外部给DMAC送入有效的 ,则强制DMAC内部 所有通道结束传输。

8237的引脚功能 MEMR/MEMW: 8237发出的存储器读/写信号 IOR/IOW: 8237作为主控时,输出的I/O读/写信号。 8237作为从控时,CPU发出的I/O读/写信号,用于读/写8237

8237的引脚功能 ADSTB:地址选通信号 用于启动地址锁存器 READY:存储器或I/O的就绪信号

三、8237的编程结构

8237的编程结构 控制寄存器 8位,4个通道共用,用于设定8237的信号形式、工作时序、传输方向。 端口地址08H 信号形式:DREQ/DACK信号的有效形式。 工作时序:普通时序(3个时钟周期完成一次传输) 压缩时序(2个时钟周期完成一次传输) 传输方向:内存 I/O(常用) I/O内存(常用) 内存内存(PC系列机未用)

8237的编程结构 D7: 0= DACK低电平有效; 1=DACK高电平有效 D6: 0= DREQ高电平有效; 1=DREQ低电平有效 D5: 1=扩展写信号,IOW/MEMW比正常时序提前一个周期; 0=不扩展写信号 D4: 0=固定优先级,通道0优先级最高,通道3优先级最低; 1=循环优先级 D3: 0=正常时序 1=压缩时序 D2: 0=启动(指允许)8237工作 ;1=停止(指禁止) 8237工作 D1:内存到内存传输时,D1=1使源地址保持不变 D0:0=内存 I/O间的传输; 1=内存内存间的传输

8237的编程结构 控制寄存器 PC系列微型机中,BIOS初始化时将控制寄存器设为 00H—— 禁止内存内存的传送, 允许读/写操作, 使用正常时序 固定优先级 不扩展写信号 DREQ高电平有效 DACK高电平有效

8237的编程结构 状态寄存器 8位,4个通道共用,与控制寄存器共用一个端口地址 端口地址08H 记录每个通道是否有请求、传输是否结束 D3~D0:分别对应通道3~0,指出4个通道的DMA传 送是否结束,结束为1 D7~D4:分别对应通道3~0,表示4个通道是否有 DMA请求,有DMA请求为1

8237的编程结构 暂存寄存器 8位 , 端口地址0DH 在内存内存传输时,暂存数据。 注意:内存 I/O传输时,数据不进入8237内部,只存在于数据总线上

8237的编程结构 模式寄存器 8位,设定DMA的传输模式,4个通道的模式寄存器共用一个端口地址,端口地址0BH 传输模式: 单字节传输模式 数据块传输模式 请求传输模式 级联传输模式

8237的编程结构 模式寄存器 单字节传输模式:每次DMA操作只传送一字节后,接着8237释放总线 块传输模式:8237获得总线控制权后,连续传送多个字节,每传输一个字节,当前字节计数器减1,当前地址寄存器加1或减1,直到所要求的字节数传输完(当前字节计数器减至0),8237在EOP引脚上发出结束信号,然后释放总线。在块传输过程中,若向8237的EOP引脚上输入低电平,可强行结束传输。

8237的编程结构 模式寄存器 请求传输模式: 在传输过程中,8237要检测DREQ信号(询问外设),当DREQ为低时,8237暂停传输(不释放总线),当DREQ再次有效后,继续进行传输。 级联传输模式: 多片8237级联时,可以构成主从式DMA系统。级联的方式是把从片的请求线HRQ连至主片的DREQ引脚,主片的DACK联至从片的HLDA引脚 若主8237的某通道(DREQ)连接从8237的HRQ,主8237的该通道应设置为级联传输模式,但从8237不设置级联传输模式,而是设置其它三种模式之一

8237的编程结构 D7,D6:模式选择 00= 请求传输模式 01=单字节传输模式 10= 块传输模式 11=级联传输模式 自动预置:在当前字节计数器到达0时,当前字节计数器和当前地址寄存器从基本字节计数器和基地址寄存器中自动获得新的初值

8237的编程结构 D3,D2:传输类型选择 01=写传输(I/O内存),10=读传输(内存 I/O) 00=校验传输 ,11=无意义 00=通道0 01=通道1 10=通道2 11=通道3

8237的编程结构 基地址寄存器和当前地址寄存器 每个通道一个基地址寄存器,一个当前地址寄存器,16位 ,占用相同的端口地址 基地址寄存器:DMA传输的内存地址初值,在初始化时由CPU分两次写入。 当前地址寄存器:DMA传输过程中,内存地址的当前值。每传输一字节,该寄存器的值增1或减1。CPU可 分两次读出其值。

8237的编程结构 基本字节计数器和当前字节计数器 每个通道一个基本字节计数器,一个当前字节计数器,16位 ,占用相同的端口地址 基字节计数器:DMA传输的字节数初值,在初始化时由CPU分两次写入。8237规定,初值比实际传输的字节数少1 当前字节计数器:DMA传输过程中,当前的计数值。每传输一字节,该寄存器的值减1。当计数值减到FFFFH时,8237发出结束信号EOP。CPU可分两次读出其值。

8237的编程结构 先/后触发器 端口地址0CH CPU写入基地址寄存器、基本字节计数器时,均分两次写入,先/后触发器用于控制写入的值是低8位还是高8位 写入过程: ①使先/后触发器=0。 ②写入低8位,先/后触发器自动置1。 ③写入高8位,先/后触发器自动置0。

8237的编程结构 请求寄存器 端口地址09H 四个通道的请求触发器构成一个请求寄存器(8位) 一般情况下,DMA请求由硬件信号DREQ发出,也可由软件设置请求触发器来发出DMA请求。 端口地址09H D2=1设置DMA请求 D1~D0:指定软件DMA请求的通道

8237的编程结构 屏蔽寄存器 端口地址0AH 四个通道的屏蔽触发器构成一个屏蔽寄存器(8位) 当屏蔽寄存器的屏蔽标志置1时,将禁止该通道的硬件DMA请求和软件DMA请求。 端口地址0AH D2=1,设置屏蔽; D2 =0,清除屏蔽; D1~D0:选通道

8237的编程结构 综合屏蔽寄存器 端口地址0FH 8237可以一次完成四个通道的屏蔽设置 D3~D0:分别对通道3~0设置屏蔽 1,设置屏蔽; 0,清除屏蔽;

8237的编程结构 清除屏蔽寄存器 端口地址0EH 对端口0EH写入0,可以一次清除四个通道的屏蔽触发器 MOV DX, DMA+0EH MOV AL, 0 OUT DX, AL

8237的编程结构 复位命令寄存器 端口地址0DH 对端口0DH写入0,使8237复位,其功能等同于硬件复位 8237复位后的状态为: 控制寄存器 状态寄存器 请求寄存器 暂存器 先/后触发器 清0 屏蔽寄存器 置1

8237的编程结构 一片8237占用连续16个端口地址,用DMA+00H~DMA+0FH表示。其中,DMA表示该片8237的基地址。 在AT以上的微机中,使用2片8237,其地址为: 第一片8237,基地址DMA=0000H,使用0000H~000F I/O地址。 第二片8237,基地址DMA=00C0H,使用00C0H~00CF I/O地址。

8237的编程结构

8237对内存和I/O的寻址 存储器寻址 在主控模式下,8237可以产生16位存储器地址信号,地址引脚A7~A0输出地址低8位,高8位地址由数据引脚DB7~DB0输 出,经地址锁存器后形成存储器地址的A15~A8。用ADSTB启动地址锁存器。 当系统的存储器地址多于16位时,多余位地址由一个称为DMA页面寄存器的接口电路提供

8237对内存和I/O的寻址 存储器寻址

8237对内存和I/O的寻址 存储器寻址 在PC/AT系统中,需要24位地址,高8位地址A23~A16由DMA页面寄存器电路74LS612提供。在DMA传输之前,用指令将高8位地址送入页面寄存器,在DMA传输过程中,由AEN信号使页面寄存器输出该8位地址。 在Pentium微机中,DMAC和相关页面寄存器的功能由多功能芯片组实现

8237对内存和I/O的寻址 I/O寻址 8237的四个通道,每一个只接一个外设接口电路,不使用I/O地址来区分I/O设备 I/O设备的端口地址只用于CPU对I/O设备的寻址

8237对内存和I/O的寻址 I/O寻址

12.2 8237A 的应用 初始化编程 写入控制寄存器 写入屏蔽寄存器——屏蔽要初始化的通道 写入模式寄存器 先后触发器置0 写入基地址和基本字节寄存器 解除屏蔽 写入请求寄存器

8237的应用 例:ROM-BIOS对通道2初始化编程的代码片段 DMA EQU 0 ;DMA通道起始端口 1) 系统在启动时,对控制寄存器进行初始化 MOV AL, 0 OUT DMA+8, AL 2) 清除先/后寄存器 OUT DMA+12, AL 3) 设置模式寄存器 MOV AL, 46H …… OUT DMA+11, AL

8237的应用 4) 送内存地址 计算内存的物理地址,将20位地址的高4位送页面寄存器,低16位先送低8位,再送高8位 …... OUT DMA+4, AL ;低8位 …… OUT DMA+4, AL ;高8位 OUT 81H, AL ;20位地址的高4位 5) 送传送字节数 6) 送屏蔽位 MOV AL, 2 OUT DMA+10, AL

8237的应用 例:利用主板上的8237通道1,将内存起始地址为80000H的300H字节直接输出给外设 MOV AL, 0 ;写模式寄存器 ;清除先/后触发器 OUT 0DH, AL ;写地址 OUT 02, AL MOV AL, 8 OUT 83H, AL ;传送的字节数 MOV AX, 300H DEC AX MOV 03, AL MOV AL, AH OUT 03, AL ;写模式寄存器 MOV AL, 49H OUT 0BH, AL ;清除通道1屏蔽 MOV AL, 1 OUT 0AH, AL ;读通道1状态 WAIT: IN 08 AND AL, 02 JZ WAIT ;完成后屏蔽通道1 MOV AL, 5 OUT 0AH, AL

作业 1. 试述8237的DMA请求/响应握手过程