第九章 可编程DMA控制器8237A

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可编程DMA控制器 控制器8237A 第九章 可编程 控制器
控制器8237 一、 DMA控制器 控制器
1. 概述 2. 8237的引脚功能 的引脚功能 3. 8237的编程结构 的编程结构 4. 8237对内存和 的寻址 对内存和I/O的寻址 对内存和
2
可编程DMA控制器 可编程 控制器 8237
23
可编存器
单字节传输模式:每次 操作只传送一字节后, 单字节传输模式:每次DMA操作只传送一字节后,接 操作只传送一字节后 着8237释放总线 释放总线 块传输模式:8237获得总线控制权后,连续传送多个 获得总线控制权后, 块传输模式: 获得总线控制权后 字节,每传输一个字节,当前字节计数器减1,当前 字节,每传输一个字节,当前字节计数器减 , 地址寄存器加1或减 或减1, 地址寄存器加 或减 ,直到所要求的字节数传输完 当前字节计数器减至0), ),8237在EOP引脚上发出 (当前字节计数器减至 ), 在 引脚上发出 结束信号,然后释放总线。在块传输过程中, 结束信号,然后释放总线。在块传输过程中,若向 8237的EOP引脚上输入低电平,可强行结束传输。 引脚上输入低电平, 的 引脚上输入低电平 可强行结束传输。
8237的编程结构 的编程结构
控制寄存器 8位,4个通道共用,用于设定 位 个通道共用, 的信号形式、 个通道共用 用于设定8237的信号形式、工作 的信号形式 时序、传输方向。 端口地址08H 时序、传输方向。 端口地址 信号形式: 信号的有效形式。 信号形式:DREQ/DACK信号的有效形式。 信号的有效形式 工作时序:普通时序( 个时钟周期完成一次传输 个时钟周期完成一次传输) 工作时序:普通时序(3个时钟周期完成一次传输) 压缩时序( 个时钟周期完成一次传输 个时钟周期完成一次传输) 压缩时序(2个时钟周期完成一次传输) 传输方向:内存→ 传输方向:内存→ I/O(常用) (常用) I/O→内存(常用) →内存(常用) 内存←→内存( 系列机未用 ←→内存 系列机未用) 内存←→内存(PC系列机未用) 19
5
可编程DMA控制器 可编程 控制器 8237
概述
DMA请求阶段 请求阶段 当外设要求以DMA方式为它服务时,发DMA请求信 方式为它服务时, 当外设要求以 方式为它服务时 请求信 号DREQ到DMAC 到 DMAC检查该信号是否被屏蔽及其优先权,如确认该 检查该信号是否被屏蔽及其优先权, 检查该信号是否被屏蔽及其优先权 信号有效则向CPU发送总线请求信号 发送总线请求信号HRQ(连到 连到CPU 信号有效则向 发送总线请求信号 连到 的HOLD) 地址总线 CPU HRQ DREQ DMAC 6
内部任一通道传输结束, 当DMAC内部任一通道传输结束,8237发出 内部任一通道传输结束 发出 若由外部给DMAC送入有效的 送入有效的 若由外部给 所有通道结束传输。 所有通道结束传输。 15
可编程DMA控制器 可编程 控制器 8237
,则强制DMAC内部 则强制 内部
8237的引脚功能 的引脚功能
14
可编程DMA控制器 可编程 控制器 8237
8237的引脚功能 的引脚功能
•地址允许信号:AEN 地址允许信号: 地址允许信号 8237作为主控时(8237控制总线),输出 作为主控时( 控制总线),输出AEN=1。 作为主控时 控制总线),输出 。 8237作为从控时(CPU控制总线),输出 作为从控时( 控制总线),输出AEN=0。 。 作为从控时 控制总线),输出 •DMA传输结束信号: 传输结束信号: 传输结束信号 (双向) 双向)
可编程DMA控制器 可编程 控制器 8237
数据总线
存储器
外设
概述
DMA响应和数据传送阶段 响应和数据传送阶段
每个总线周期结束时CPU检测 检测HOLD,如为高电平,则响应 每个总线周期结束时 检测 ,如为高电平, HOLD请求进入保持态,使三态总线 请求进入保持态, 侧呈高阻状态, 请求进入保持态 使三态总线CPU侧呈高阻状态,并以总 侧呈高阻状态 线保持响应信号HLDA通知 通知DMAC 线保持响应信号 通知 DMAC接管总线,并以 接管总线, 信号通知外设 接管总线 并以DACK信号通知外设,使之成为 信号通知外设,使之成为DMA传 传 送时被选中的设备,同时DMAC给出内存地址以及 读写和存 给出内存地址以及I/O读写和存 送时被选中的设备,同时 给出内存地址以及 储器读写控制信号, 储器读写控制信号,在外设和存储器之间完成数据传送 地址总线 CPU HLDA DACK
4
可编程DMA控制器 可编程 控制器 8237
概述
DMA操作之前,应先对DMAC编程,把要传送的数据 操作之前,应先对 编程, 操作之前 编程 块长度、数据块在存储器中的起始地址, 块长度、数据块在存储器中的起始地址,数据传送方向 等信息发送给DMAC 等信息发送给 DMA操作过程包括三个阶段: 操作过程包括三个阶段: 操作过程包括三个阶段 •DMA请求 请求 •DMA响应和数据传送 响应和数据传送 •传送结束 传送结束
12
可编程DMA控制器 可编程 控制器 8237
8237的引脚功能 的引脚功能
•地址信号 地址信号 初始化8237或读 或读8237状态时所需的片选信号 :CPU初始化 初始化 或读 状态时所需的片选信号 A7~A0(输出): (输出):8237访问存储器的地址信号的低 位。 访问存储器的地址信号的低8位 ): 访问存储器的地址信号的低 A3~A0(输入): (输入):CPU初始化 初始化8237或读 或读8237状态时, 状态时, ): 初始化 或读 状态时 用于寻址8237内部寄存器 用于寻址 内部寄存器
概述
DMA=Direct Memory Access,直接存储器存取 , 数据通道 CPU 数据通道 DMAC
数据通道 内存 外设 内存 DMA方式 方式 外设 非DMA方式 方式 (包括程序控制方式和中断方式 包括程序控制方式和中断方式) 包括程序控制方式和中断方式 3
可编程DMA控制器 可编程 控制器 8237
可编程DMA控制器 可编程 控制器 8237
数据总线
存储器
MEMR/MEMW 外设 IOR/IOW
DMAC
7
概述
传送结束阶段 传送完成后, 放弃总线, 传送完成后,DMAC放弃总线,撤消总线请求 放弃总线 撤消总线请求(HRQ 为低),CPU检测到 为低 , 检测到HRQ(HOLD)为低后,撤消HLDA, 为低后,撤消 , 检测到 为低后 CPU重新获得总线控制权 重新获得总线控制权 地址总线 CPU HRQ EOP DMAC 8
可编程DMA控制器 可编程 控制器 8237
数据总线
存储器
外设
概述
PC系列微机使用可编程DMA控制器 8237A(简称 系列微机使用可编程 简称8237) 系列微机使用可编程 控制器 简称 实现DMA功能 实现 功能 8237有四个通道,每个通道都有独立的与相应外设接 有四个通道, 有四个通道 口相联系的信号,四个通道共享与CPU相连的控制信 口相联系的信号,四个通道共享与 相连的控制信 地址信号、 号、地址信号、数据信号
状态寄存器
8位,4个通道共用,与控制寄存器共用一个端口地址 位 个通道共用, 个通道共用 端口地址08H 端口地址 记录每个通道是否有请求、 记录每个通道是否有请求、传输是否结束
21
可编程DMA控制器 可编程 控制器 8237
暂存寄存器
8位 , 端口地址 位 端口地址0DH 在内存←→内存传输时,暂存数据。 在内存←→内存传输时,暂存数据。 ←→内存传输时 注意:内存←→ 传输时, 内部, 注意:内存←→ I/O传输时,数据不进入 传输时 数据不进入8237内部, 内部 只存在于数据总线上
22
可编程DMA控制器 可编程 控制器 8237
模式寄存器
8位,设定DMA的传输模式,4个通道的模式寄存器 位 设定 的传输模式, 个通道的模式寄存器 的传输模式 共用一个端口地址,端口地址0BH 共用一个端口地址,端口地址 传输模式: 传输模式: •单字节传输模式 单字节传输模式 •数据块传输模式 数据块传输模式 •请求传输模式 请求传输模式 •级联传输模式 级联传输模式
可编程DMA控制器 可编程 控制器 8237
控制寄存器格式
例如,PC系列机的8237,按如下要求工作:禁止存储器到存储器传送,按正常时序,滞后写入, 通道按固定优先权排序,允许 8237进行DMA操作,DREQ高电平有效,DACK低电平有效。 则命令字为00000000B=00H MOV AL,00H OUT DMA+8,AL ;命令字 ;写入命令寄存器
概述
DMAC具有独立的控制三大总线来访问存储器和 端 具有独立的控制三大总线来访问存储器和I/O端 具有独立的控制三大总线来访问存储器和 口的能力,它能像CPU一样提供数据传送所需的地址 口的能力,它能像 一样提供数据传送所需的地址 信息和读写控制信息 DMAC和CPU都挂在系统总线上,当进入 和 都挂在系统总线上, 方式时, 都挂在系统总线上 当进入DMA方式时, 方式时 DMAC成为总线主控。 成为总线主控。 成为总线主控 在总线上, 在总线上,可以控制其他部件的部件称为总线主控或 主控(bus master),被控部件称为从控 从控(slave)。任意时 主控 ,被控部件称为从控 。 总线上只有一个主控。 刻,总线上只有一个主控。
9
可编程DMA控制器 可编程 控制器 8237
8237的引脚功能 的引脚功能
10
可编程DMA控制器 可编程 控制器 8237
11
8237A芯片内部结构 芯片内部结构
8237的引脚功能 的引脚功能
•请求 应答信号 请求/应答信号 请求 外设接口电路向8237的请求信号:DREQ3~DREQ0 的请求信号: 外设接口电路向 的请求信号 8237对外设接口电路的应答信号:DACK3~DACK0 对外设接口电路的应答信号: 对外设接口电路的应答信号 8237向CPU申请总线的信号:HRQ(连至 向 申请总线的信号: 申请总线的信号 (连至CPU的HOLD) 的 ) CPU向8237传送的允许使用总线信号:HLDA 向 传送的允许使用总线信号: 传送的允许使用总线信号
MEMR/MEMW: : 8237发出的存储器读 写信号 发出的存储器读/写信号 发出的存储器读 IOR/IOW: : 8237作为主控时,输出的I/O读/写信号。 作为主控时,输出的 读 写信号。 作为主控时 写信号 8237作为从控时,CPU发出的 读/写信号,用于 作为从控时, 发出的I/O读 写信号 写信号, 作为从控时 发出的 读/写8237 写
24
可编程DMA控制器 可编程 控制器 8237
16
可编程DMA控制器 可编程 控制器 8237
8237的引脚功能 的引脚功能
ADSTB:地址选通信号 : 用于启动地址锁存器 READY:存储器或I/O的就绪信号 :存储器或 的就绪信号
17
可编程DMA控制器 可编程 控制器 8237
8237的编程结构 的编程结构
18
可编程DMA控制器 可编程 控制器 8237
13
可编程DMA控制器 可编程 控制器 8237
8237的引脚功能 的引脚功能
•数据信号 双向 : DB7~DB0 数据信号(双向 数据信号 双向): CPU为主控时,可以通过I/O读命令查询 为主控时,可以通过 读命令查询 读命令查询8237的状 为主控时 的状 态寄存器的内容,或通过I/O写命令对 写命令对8237的内部 态寄存器的内容,或通过 写命令对 的内部 寄存器进行编程,数据传送通过DB7~DB0 寄存器进行编程,数据传送通过 8237为主控时, DB7~DB0输出要访问的内存地址 为主控时, 为主控时 输出要访问的内存地址 的高8位 并通过ADSTB锁存到外部地址锁存器中, 锁存到外部地址锁存器中, 的高 位,并通过 锁存到外部地址锁存器中 输出的低8位地址一起构成 和A7~A0输出的低 位地址一起构成 位地址 输出的低 位地址一起构成16位地址
相关文档
最新文档