DMA控制器8237
微机原理与接口技术-07-2-8237DMA

D7
D6
D5
D4
D3
D2
D1
D0
通道 3 有DMA请求
1
1: 通道 0计数结束
通道 2有DMA请求
1
1:通道 1计数结束
通道 1 有DMA请求
1
1:通道 2计数结束
通道 0 有DMA请求
1
1: 通道 3计数结束
暂存(临时)寄存器(端口地址DMA+0DH)
• 8位 • 4个通道共用 • 在内存内存传输时,暂存数据 • 在传送完成时,它保留传送的最后一个字节 • 此字节可由CPU读出 注意: 内存 I/O传输时,数据不进入8237内部,只存在于数据总线上
读( IOR =0) 当前地址寄存器(0) 当前字节计数器(0) 当前地址寄存器(1) 当前字节计数器(1) 当前地址寄存器(2) 当前字节计数器(2) 当前地址寄存器(3) 当前字节计数器(3) 状态寄存器
写( IOW =0) 基地址寄存器(0) 基字节计数器(0) 基地址寄存器(1) 基字节计数器(1) 基地址寄存器(2) 基字节计数器(2) 基地址寄存器(3) 基字节计数器(3) 控制寄存器 请求寄存器 屏蔽寄存器 模式寄存器 清高/低触发器
三、8237的结构及编程
1、8237的编程结构
HOLD HLDA CLOCK 关闭CPU地址锁存器 当前地址.REG. 16
ADSTB EN# STB
HRQ
控制 REG. 8 Addr.Temp.16 Count Temp. 16 暂存器 8
请求
触发器
IOR# MEMR# IOW#
HLDA 状态 REG. 8 CLK AEN 模式 REG.6
模式寄存器(端口地址DMA+0BH)
可编程DMA控制器8237A

图7.5.5 DMA的读/写总线周期 ·非总 线信 号 (a) DMA读操作; (b) DMA写操作
(3) 8237几个特殊操作的说明。
S1 CLK AEN A8~A15 A 0~A7 RD WR 扩展 码 CLK A 0~A7 RD WR (b ) S2 S1 S2 (a) S1 S2 有效 有 效 S2 S3 S4 S2 S3 S4
定时 和 控制
A4~A7 输出缓冲
A8~ A15
命令 控制
写缓冲 DREQ0~ 4 DREQ3 HRQ HLDA DACK0~ 4 DACK3
读缓冲 据总线 I/O 缓冲 DB0~DB7
内部数 优先级 编号和 旋转优先 级逻辑 命令(8)
屏蔽(4)
读写 模式 (4×6) 状态(8) 临时(8)
请求(4)
设置命令寄存器
初始化必须设置命令寄存器,以确定其工作时序、 优先级方式、DREQ和DACK的有效电平及是否允许工 作等。
清除先/后触发器
先/后触发器是一个指针,当它为0时,对低字节进 行操作,当它为1时,对高字节进行操作。
设置地址和字节计数器
8237A每个通道有四个16位的寄存器。这四个寄存器 是基地址寄存器和当前地址寄存器以及基本字节计数 寄存器和当前字节计数寄存器。
7.5.2 DMA的工作方式、 操作类型及时序
1. 8237 DMA的工作方式及传输操作类型
(1) 8237的 4 种工作方式。 ① 单字节传送方式。在这种方式下, 每次仅传送一个字节数据。 传送
后,字节数寄存器减1,地址寄存器加1或减1(由初始化编程决定)。 HRQ变
为无效,8237释放系统总线,控制权返回给CPU。 当前字节数寄存器从初始 值减到0,还要再传输一个字节,又从0减到0FFFFH时,才发出有效EOP信号, 结束DMA传输过程。 通常,在DACK成为有效之前,DREQ必须保持有效。每次传送后, DMA控制器把总线让给CPU至少一个总线周期,且立即开始检测DREQ输入, 一旦DREQ为有效, 再进行下一个字节的传送。
习题四

3. 在8237控制பைடு நூலகம்进行“写传送”时,8237需先后 向I/0接口和存储器的控制信号是:(A ) A)IOR,MEMW B)IOR,MEMR C)IOW,MEMW D)IOR,IOW 4 .在DMA方式下,CPU与总线的关系是( C ) A)只能控制数据总线 B)只能控制地址总线 C) 成隔离状态 D)成短接状态
5. 在微机系统中采用 DMA 方式传输数据时,数据传 送是( C ) A .由 CPU 控制完成 B .由执行程序(软件) 完成 C .由 DMAC 发出的控制信号控制下完成的 D .由总线控制器发出的控制信号控制下完成的 6. CPU响应中断请求和响应DMA请求的本质区别是 ( B ) A.中断响应靠软件实现 B.响应中断时CPU仍然控 制总线,而响应DMA请求时,CPU要让出总线 C.速度慢 D.控制简单
选择题
1. DMA控制器8237有四种工作方式,其中,传输率 较高的一种是:( B) A)单字节传送方式 B)块传送方式 C)请求传送方式 D)级联方式 2.8086在响应外部HOLD请求后,( D )。 A)转入特殊中断服务程序 B)进入等待周期 C)只接收外部数据 D)所有三态引脚处于高阻, CPU放弃对总线控制权。
简答
简述DMAC占用总线控制权的方式(p82)。 简述DMA传送的传送类型(p92)。 简述DMA传送的四种工作方式(p93)。
7. 用于PC机管理直接存储器传输的接口芯片是( ) A 8237 B 8251 C 8255 D 8253 8.在DMA传送方式中,对数据传递过程进行控制的 硬件称为( C ) A.数据传递控制器 B.直接存储器 C.DMAC D.DMAT
判断:
1、DMA方式不能实现内存与接口之间数据的直接 交换。(× ) 2.DMAC在系统中始终是受CPU控制的. (× ) 3.DMA写是指将内存的数据写到外设. (×) 4.当DMA传送时CPU可以执行其它程序. (正确 ) 5. DMA控制器可以和CPU同时工作. ( 正确 )
8第八章 DMA 8237控制器

0 0 0 0
0 1 0 1
A0~A7 A8~A15 A0~A7 A8~A15 W0~W7 W8~W15 W0~W7
写 读
0 0 0 0
1 1 0 0
0 0 1 1
0 0 0 0
0 0 0 0
1 1 1 1
1 1 1 1
0 1 0 1
W8~W15
第八章
DMA技术
8237通道寄存器寻址
通 道
信
寄存器 操作
号
CS IOR IOW A3 A2 A1 A0
内部先/ 后触发 器
数据总线
基本地 址寄存 器
写
2
当前地 址寄存 器
基本字 节计数 器 当前字 节计数 器
读
0 0 0 0 0 0 0 0
1 1 0 0 1 1 0 0
第八章
DMA技术
4.8237A各寄存器对应的端口地址(戴P268 )
表8-1 操作命令与有关信号的对应关系
CS
0 0 0
A3 A2 A1 A0
1 1 1 0 0 0 0 0 0 0 0 1
IOR IOW
0 1 1 1 0 0
命
令
读状态寄存器 写控制寄存器 写DMA请求标志寄存器
0
0 0
1
1 1
0
0 1
8237A在传送时有四种工作模式
① 单字节传送模式(戴P262 ) ② 块传送方式(戴P262 ) ③ 请求传送模式(戴P262)④级连传输模式 (戴P262)
在这种传送模式下,8237A可以进行连续的数据传送。当出现以下三种 情况之一时停止传送: a.字节计数器减到0,产生DMA传输结束信号,在线上输出一个有效脉冲。 b.由外界送来一个有效的信号 EOP 。 c.外界的DREQ信号变为无效(外设来的数据已送完)。
第8章 可编程DMA控制器8237A解析

2) DMA传送控制信号引脚
IOR/IOW: 双向,被动态时接收CPU的读/写命令,主动态时向
I/O发读/写命令; MEMR/MEMW: 输出,主动态时向M发读/写命令; CS: 被动态时,由CPU选中该芯片进行读/写操作; DB0~DB7:被动态时作数据线,双向三态,主动态时双功能, 地址和数据分时复用:传送M地址的A8~15,M-M传输时作数据 输入/输出线; A0~A3:双向,被动态作端口选择线(16个可访问端口),主动 态发出M地址的A0~3; A4~A7:单向,主动态发出M地址的A4~7; ADSTB:地址选通,输出,用于将DB0~DB7发出的A8~15锁存 到外部地址锁存器;
内部寄存器组
有4个独立通道,每个通道有4个16位寄存器,一个工 作方式寄存器; 另有5个全芯片共用寄存器:命令,状态,请求,屏 蔽,暂存。
14
8.2 8237A内部结构及引脚
问题:芯片对外的联络方式如何?(引脚信号情况) 8-2-2 8237A的引脚 8237A是40引脚的双列直插式器件,由于它既可做主模块又
EOP RESET CS READY CLK AEN ADSTB
MEMR MEMW
地址暂存器 A15 ~A8 读/写缓冲器 当前地址 寄存器 (16×4) 当前字 计数器 (16×4)
I/O缓冲 A3~A 0 输出缓冲 A7~A4
16 读缓冲器 时 序 与 控 制 逻 辑 基地址 基字 寄存器 寄存器 4) (16× 4) (16×
可做从模块,故其外部引脚设置也具有一定的特点。如它的 I/O读写线和数据线是双向的,另外,还设置了存储器读/写 线和16位地址输出线。这些都是其他I/O接口芯片所没有的。
15
微机原理与应用第12章可编程DMA控制8237A

通过编程,8237A可以实现复杂的 DMA传输控制,满足各种应用需求。
8237a的优势与不足
• 易于集成:8237A具有标准的接口,可以方便地与其他微 处理器或外设集成。
8237a的优势与不足
成本较高
由于8237A是一款较为复杂的芯片,其制造成本相对 较高,增加了系统成本。
功耗较大
异步传输
错误检测与纠正
可编程DMA控制器8237A具备错误检测与 纠正功能,能够保证数据传输的可靠性和稳 定性,降低数据传输错误导致的系统故障。
可编程DMA控制器8237A支持异步传输 模式,使得不同外设之间可以实现独立的 数据传输,提高系统并行处理能力。
在实时系统中的应用
实时响应
可编程DMA控制器8237A能够快速响应外部事件,及时完成数据 传输任务,满足实时系统的要求。
数据传输编程包括设置数据传输的起始地址、 数据块大小、数据传输方向等参数,以确保数 据正确地从源地址传输到目标地址。
数据传输编程通常在数据传输任务开始时进行, 以确保控制器按照预期的参数和条件进行数据 传输。
控制字编程
1
控制字编程是8237a可编程dma控制器的重要特 性之一,用于控制数据传输的流程和行为。
02
初始化编程包括设置通道号、 数据块大小、数据传输方向、 是否循环传输等参数,以确保 数据传输的正确性和效率。
03
初始化编程通常在系统启动时 或数据传输任务开始前进行, 以确保控制器处于正确的初始 状态。
数据传输编程
数据传输编程是8237a可编程dma控制器的核 心功能之一,用于控制数据在内存和外部设备 之间的传输。
2
控制字编程包括设置控制字的各位值,以实现不 同的控制功能,如启动/停止数据传输、设置通道 号、设置数据块大小等。
DMA控制器和计数定时器

5
8237工作时各信号的配合: (2) 当作为主模块工作时 当8237A 作为主模块工作时,它会往总线上提 供要访问的内存地址,此时CS、AEN信号为高电平。
作为主模块工作时,8237A还必须输出IOR、IOW
MEMR、MEMW读/写信号。 另外最高4位地址在传输前,用指令送到一I/O 端口中,所以DMA传输时,每次传输字节限制在216 以下。
01=单字节传输 10=块传输 11=级联传输
传输类型选择: 00=校验传输 01=写传输 10=读传输 11=无意义 自动预置功能选择: 0=禁止 1=允许
通道选择: 00=选择通道0 01=选择通道1 10=选择通道2 11=选择通道3
内存 I/O
地址增减选择: 0=地址加1 1=地址减1
10
写:I/O 读:内存
6
二、8237A的工作模式
8237A有四种工作模式,每个通道可以用四 种模式之一工作。
(1) 单字节传输模式:
此方式下,8237A一次请求总线只传送一个 字节,就释放总线控制权。8237A和CPU交替管 理。 、
7
(2)块传输模式: 在此方式下,由DREQ启动后就连续的传送数 据,直至完成预定字节数的传送或由外部I/O接 口输入有效的EOP信号,8237A才释放总线控制权 而结束传输。 (3)请求传输模式: 此模式与块传输模式类似,所不同的是在每 传输 1B后,8237A都对DREQ端进行测试,若仍有 效则继续传送,若无效则立即停止传送,待 DREQ 再次有效后继续传送。
18
8. 8237A的特殊软件命令
(2)清除先/后触发器命令 是用来控制DMA通道中地址寄存器和字节计数器 的初值而设置的。 若该触发器为“0”,则读/写低8位;若为“1”, 则读/写高8位。每当对16位寄存器进行一次读/写操 作,则触发器改变一次状态。 为了保证对16位寄存器的读/写是从低字节开始, 应事先用此软件命令使先/后触发器强制清零。
微机原理 第10章 DMA控制器8237A 习题及参考

第十章DMA控制器8237A1.试说明在DMA方式下,传输单个数据的全过程。
答:内存往外设传输单个数据:(1)当一个接口准备就绪,要进行DMA传输时,该接口往DMA 控制器发一个DMA请求;(2)DMA控制器采样到DRED有效电平后,若屏蔽寄存器是开放的,便往控制总线上发一个总线保持请求;(3)若CPU允许让出总线,则发回一个总线保持允许信号;(4)DMA控制器接到此信号后,就将其内部地址寄存器的内容送到地址总线上;(5)同时,DMA控制器往接口发一个DMA回答信号,并发出一个内存读信号和一个I/O写信号;(6)接口收到DMA回答信号后,撤除DMA请求信号,且内存把数据送到数据总线上;(7)接口锁存数据总线上的数据后,一般往DMA控制器回送一个准备好信号;(8)DMA控制器的地址寄存器内容加1或减1,字节计数器的值减1;(9)DMA控制器撤除总线保持请求信号,CPU收回总线控制权。
这样,就完成了对一个数据的DMA输出过程。
外设往内存传输单个数据的过程:(1)当一个接口中有数据要输入时,就往DMA控制器发一个DMA 请求信号;(2)DMA控制器接到DMA请求后,(若屏蔽触发器是开放的)便往控制总线上发一个总线保持请求信号;(3)若CPU允许让出总线,则发回一个总线保持允许信号;(4)DMA控制器接到此信号后,就将其内部地址寄存器的内容送到地址总线上;(5)同时,DMA控制器往接口发一个DMA回答信号,并发一个I /O读信号和一个内存写信号;(6)接口收到DMA回答信号后,撤除DMA请求信号,并将数据送到数据总线上;(7)内存在收到数据后,一般往DMA控制器回送一个准备好信号;(8)DMA控制器的地址寄存器内容加1或减1,字节计数器的值减1;(9)DMA控制器撤除总线保持请求信号,CPU收回总线控制权。
这样,就完成了对一个数据的DMA输入过程。
2.为使DMA控制器正常工作,系统对DMA控制器进行初始化的过程分为哪两个主要方面?答:(1) 将数据传输缓冲区的起始地址或结束地址送到地址寄存器中;(2) 将传输的字节数或字数送到计数器中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
写入命令控制字,禁止8237工作
发主清除命令 分别写入4个通道当前操作内存地址 分别写入4个通道工作模式
写入命令控制字,启动8237工作 写入屏蔽寄存器,清除通道屏蔽
图7-34 8237设置流程
二、 PC机DMA结构
以8088为CPU的PC机的DMA结构
80286以上档次PC机的DMA结构和 DMA通道分配
7.4.4 DMA控制器的编程及应用 现代计算机系统中,广泛采用了DMA控制器 与DMA接口相分离的结构模式 以IBM-PC系列微型计算机的软盘机DMA接口 为例,讨论其编程结构及应用 一、 8237 DMA控制器的编程结构 Intel 8237DMA控制器芯片的内部结构 如下图
地址总线
数据总线 控制总线
四、 DMA接口设计中的个问题 •请求与响应时序 •计数终止信号T/C的应用 •DMA通道的复用 ,见下图
•DMA通道的公用
• 单字节传送方式 •成组传送方式(块方式) •请求方式
8237DMA的级联方式
HRQ HLDA DREQ DACK 8237 DREQ DACK
CPU
HRQ HLDA 8237
HRQ HLDA 8237
图7-33 8237级联方式
8237DMA的自动初始化工作方式 及在DRAM 刷新的应用
8237DMA的设置流程
A3~0
I/O缓冲
/O缓冲 时序和 控制逻辑
HLDA HRQ 优先级 仲裁逻辑 命令 控制逻辑
寄存器组和标志触发器
DACK0~3 DREQ0~3 至接口
图7-32 8237DMA控制器内部结构
8237占有16个端口地址,在读/写时分 别选择不同的内部寄存器,见教材表 7-3所示 8237DMA的引脚功能描述见讲义相关部 分 8237DMA的三种基本工作方式
表7-4 286机的DMA通道分配
第一片8237(DMA1)
第二片8237(DMA2)
0# 1# 2# 3#
备用 SDLC备用 软盘机用 备用
4# 5# 6# 7#
备用 备用 备用 与DMA1级联
三、 DMA接口设计举例
DMA接口的逻辑框图如下:
DMA接口的工作时序如下:
(a)主机从I/O输入数据 (b)主机向I/O输出数据