《DMA控制器》PPT课件
合集下载
DMA与DMA控制器.ppt
校验传输 写传输
1 0 读传输
11
非法
X X D7 D6=11
• 8237A 控制/命令REG. 格式(写8号):硬件设置与运行控制
➢8237A硬件设置:
DACK有效电平 低电平有效
D7 D6 D5 D4 0
高电平有效
1
DREQ有效电平
高电平有效
0
低电平有效
1
扩展写
不扩展写
0
扩展写
1
D3=1
X
优先级类型
➢ RESET:输入,复位信号,复位时屏幕寄存器 置1,其它寄存器置0。
➢ EOP#:双向。输出时,表明内部通道传送结束; 输入时,表明外部强迫DMA传送仃止。
➢ DREQ0-DREQ3:I/O设备DMA请求输入信号。 ➢ DACK0-DACK3:输出DMA请求的响应。 ➢ HRQ:8237A向处理器发出的总线请求信号。 ➢ HLDA:处理器发给8237A的总线请求响应信号。
非法
A
写屏蔽标志 REG.
单一位
非法
B
写模式 REG.
非法
C
清除字节指针 F/F
读暂存器
D
复位 (总清)
非法
E
清除/屏蔽标志 REG.
三个软件 命令不依 赖DB上 数据
非法
F
所有位
写所有屏蔽 REG
• 8237A 模式 REG. 格式(写B号):工作方式设定
模式选择
D7 D6 D5 D4
随机请求传输模式 0
M M传送操作时经DB7-DB0,将M数据送 8237A暂存器。 ➢ A3-A4:地址线,从模块时为输入,处理器寻 址8237A;主模块时输出低压位地址。
第09章DMA控制器
16
+5V HOLD HLDA CLK 使微处理器地址锁存信号无效 1 EN 锁存缓冲器 STB 连接数据总线 M/IO A8~A15 HRQ HLDA CLK AEN ADSTB 方式寄存器 DB0~7 基本地址寄存器 基本字节计数器 CS A4~A7 A0~A3 1 2 通道0 DREQ0 DACK0 DREQ1 DACK1 DREQ2 DACK2 DREQ3 DACK3 EOP 当前地址寄存器 当前字节计数器 地 控制寄存器 状态寄存器 暂存寄存器 公 共 部 份 电源 IOR IOW MEMR MEMW READY 1:请求触发器 2:屏蔽触发器
有效。 HLDA:CPU发给8237A-5的总线请求响应信号。高 电平有效。有效时表示CPU已让出总线。
HRQ
DREQ
CPU
HLDA
DMAC
DACK
外部设备
22
9.2
8237A的编程结构Fra bibliotek三. 8237A的引脚信号 (2)地址信号线
A3 ~ A0:地址线,双向三态。
被动状态下,为输入,作为CPU对8237A内部的
的场合。如:
硬盘和软盘外设;
快速通信通道;
多处理机和多程序数据块传送;
图像处理中向CRT屏幕传送数据; 快速数据采集; DRAM的刷新操作。
5
9.1
DMA概要
② ⑥
HOLD
① DREQ
CPU
MEMW MEMR IOW IOR
HLDA
③ ⑦
DMAC
MEMW MEMR IOW IOR AEN
的当前地址寄存器中的高8位地址通过DB0~DB7送到外 部锁存器。
AEN:地址允许。使地址锁存器中的高8位地址送地址
第8章 DMA控制器(微型计算机技术课件)
二、 DMA数据传送的工作过程(续)
⑤ 待 CPU 将总线浮空,即放弃了总线控制权后,由 DMAC接管系统总线的控制权,并向外设送出DMA 的应答信号。 ⑥ 由DMAC送出地址信号和控制信号,实现外设与内 存或内存不同区域之间大量数据的快速传送。 ⑦ DMAC将规定的数据字节传送完之后,通过向CPU 发HOLD信号,撤消对CPU的DMA请求。CPU收到 此信号,一方面使 HLDA 无效,另一方面又重新开 始控制总线,实现正常取指令、分析指令、执行指 令的操作。
四、8237A的两种工作状态(续)
作为主模块工作时(有效周期): 当 8237A 作为主模块工作时,它会往总线 上提供要访问的内存地址,地址的低8位放在 A7~A0,而地址的高8位放在D7~D0。 作为主模块工作时, 8237A 还必须输出必 要 的 读 写 信 号 , IOR 、 IOW 、 MEMR 、 MEMW。
8 8 8 6 4 4
5.8237的三态缓冲器
8237 的数据引线,地址引线都有三 态缓冲器,因而可以接也可以释放 总线。
三、8237的外部结构
8237 是具有 40 个引脚的双列直插式 集成电路芯片
首先分类展开外部引脚
1. 请求与响应信号
DREQ0~DREQ3:DMA通道请求。当外设需 要请求DMA服务时,将DREQ信号置成有效电 平,并要保持到产生响应信号。对应于四个独 立的通道,DREQ的有效电平可以通过编程来 加以确定,优先级可以固定,也可以旋转。 HRQ :总线请求。 8237A 输出有效的 HRQ 高 电平,向CPU申请使用系统总线。 HLDA:总线响应。8237A接受来自CPU的响 应信号HLDA,取得了总线的控制权。 DACK0~DACK3:DMA通道响应。8237A使 请求服务的通道产生相应的DMA响应信号。
微机原理课件DMA控制器
6
DMA传送的一般工作过程
7
4 I/O处理机方式
• I/O处理机
– 为了提高整个系统的工作效率,使CPU完全摆脱管理、控制输入/输出 的沉重负担。
– 如Intel 8089就是一种专门配合8086/8088使用的I/O处理器芯片。
• I/O处理机功能
– 有自己的指令系统,也能独立地执行程序,能承担原来由CPU处理的 全部输入/输出操作。
14
1.主从模态
• DMA控制器既可以作为I/O端口接受CPU的读写操作,也可以 代替CPU占有总线,控制外设与存储器之间传送数据,它充 分体现了DMA控制器的两大特性,即总线的主控性和总线的 从属性。
• 按这两大特性,它也就有两种工作模态:
– 主态方式 – 从态方式
15
(1)主态方式
• 在主态方式时,DMA控制器是总线的控制者,它如同CPU一 样,掌握总线的控制权,可对涉及的外设端口或存储器单元 进行读写操作。
– 单字节传送方式 – 数据块传送方式 – 请求传送方式 – 级联传送方式
18
(1)单字节传送方式
• 单字节传送方式时,一次只传送一个字节,然后释放总线。 若又有外设DMA请求,8237A再向CPU发下一次总线请求 HRQ,获得总线控制权后,再传送下一个字节数据。
• 在这种传送方式中应注意以下几方面:
• 为了使CPU和外设以及外设和外设之间能并行工作,提高系 统的工作效率,充分发挥CPU高速运算的能力,在微机系统 中引入了中断技术,利用中断来实现CPU与外设之间的数据 传送,这就是程序中断传送方式。
• 在程序中断传送方式中,通常是在主程序中某一时刻安排启 动某一台外设的指令,然后CPU继续执行其主程序,当外设 完成数据传送的准备后,向CPU发出“中断请求”信号,在 CPU可以响应中断的条件下,中断(即暂停)现行主程序的 执行,而转去执行“中断服务程序”,在“中断服务程序” 中完成一次CPU与外设之间的数据传送,传送完成后仍返回 被中断的断点处继续执行主程序。
DMA传送的一般工作过程
7
4 I/O处理机方式
• I/O处理机
– 为了提高整个系统的工作效率,使CPU完全摆脱管理、控制输入/输出 的沉重负担。
– 如Intel 8089就是一种专门配合8086/8088使用的I/O处理器芯片。
• I/O处理机功能
– 有自己的指令系统,也能独立地执行程序,能承担原来由CPU处理的 全部输入/输出操作。
14
1.主从模态
• DMA控制器既可以作为I/O端口接受CPU的读写操作,也可以 代替CPU占有总线,控制外设与存储器之间传送数据,它充 分体现了DMA控制器的两大特性,即总线的主控性和总线的 从属性。
• 按这两大特性,它也就有两种工作模态:
– 主态方式 – 从态方式
15
(1)主态方式
• 在主态方式时,DMA控制器是总线的控制者,它如同CPU一 样,掌握总线的控制权,可对涉及的外设端口或存储器单元 进行读写操作。
– 单字节传送方式 – 数据块传送方式 – 请求传送方式 – 级联传送方式
18
(1)单字节传送方式
• 单字节传送方式时,一次只传送一个字节,然后释放总线。 若又有外设DMA请求,8237A再向CPU发下一次总线请求 HRQ,获得总线控制权后,再传送下一个字节数据。
• 在这种传送方式中应注意以下几方面:
• 为了使CPU和外设以及外设和外设之间能并行工作,提高系 统的工作效率,充分发挥CPU高速运算的能力,在微机系统 中引入了中断技术,利用中断来实现CPU与外设之间的数据 传送,这就是程序中断传送方式。
• 在程序中断传送方式中,通常是在主程序中某一时刻安排启 动某一台外设的指令,然后CPU继续执行其主程序,当外设 完成数据传送的准备后,向CPU发出“中断请求”信号,在 CPU可以响应中断的条件下,中断(即暂停)现行主程序的 执行,而转去执行“中断服务程序”,在“中断服务程序” 中完成一次CPU与外设之间的数据传送,传送完成后仍返回 被中断的断点处继续执行主程序。
第8章 DMA控制器
微机原理 DMA控制器(4)
8.2 DMA控制器8237A的编程结构和外部信号
• 8237A的对外连接信号
•CLK •CS# 时钟 片选 •IOW# • EOP# • DREQ • DACK • HRQ • HLDA 输入输出设备写 DMA传输过程结束 通道DMA请求输入 应答信号 总线请求 总线响应
微机原理 DMA控制器(13)
8.5 8237A的控制寄存器和状态寄存器 • 8237A全屏蔽命令的格式
微机原理 DMA控制器(14)
8.6 8237A各寄存器对应的端口地址
A3 1 1 1 1 1 1 1 1 1 1 A2 0 0 0 0 0 1 1 1 1 1 A1 0 0 0 1 1 0 0 0 1 1 A0 0 0 1 0 1 0 1 1 0 1 IOR 0 1 1 1 1 1 0 1 1 1 IOW 1 0 0 0 0 0 1 0 0 0 命令 读状态寄存器 写控制寄存器 写DMA请求寄存器 写单屏蔽寄存器 写模式寄存器 清除字节指针 读暂存器 发复位命令 清除屏蔽寄存器 写全屏蔽寄存器
微机原理 DMA控制器(23)
本章内容到此结束!
8.7 8237A的编程和使用
• 对通道1~3的地址寄存器的值进行测试
MOV DX,DMA+2 MOV CX,3 READ:IN AL,DX MOV AH,AL IN AL,DX CMP AX,0FFFFH JNZ HHH INC DX INC DX LOOP READ HHH:HLT
微机原理 DMA控制器(19)
8.7 8237A的编程和使用
• 8237A的初始化
总清 地址低字节 地址高字节 计数低字节 计数高字节 方式字
命令字
屏蔽字 其他通道参数
第八章 DMA控制器
控制器8237A的编程 §8.2.3 DMA控制器 控制器 的编程
命令字
D7
DACK 极性
D6
D5
D4
D3
D2
DREQ 存储器 优先级 通道0保持 写入选择 编码 读/写时序 工作允许 通道 保持 写时序 极性 间传送
D1
D0
0:低电 低电 平有效 1:高电 高电 平有效
0:低电 低电 平有效 1:高电 高电 平有效
主讲: 主讲:焦明海 Email: Email:mhjiao@
控制器8237A的编程实例 §8.2.4 DMA控制器 控制器 的编程实例
数据块传送。 系统中, 例:8237A数据块传送。设在某 数据块传送 设在某8086/8088系统中,用8237A 系统中 通道1将内存 将内存1000H单元开始的 单元开始的24KB数据转存到硬盘中 通道 将内存 单元开始的 数据转存到硬盘中 (1000H即为基地址初值 ,采用数据块方式传送,地址增量方 即为基地址初值), 即为基地址初值 采用数据块方式传送, 只传送一便, 低电平有效, 式,只传送一便,设DREQ和DACK低电平有效,当A15~A4 和 低电平有效 时选中8237A.要求设计 要求设计8237A通道 的初始 通道1的初始 为0000 0000 0111时选中 时选中 要求设计 通道 化程序。 化程序。 分析: 分析: 1)端口地址。A3~A0由8237A芯片内部译码,编码范围为 端口地址。 芯片内部译码, 端口地址 芯片内部译码 0000~1111,再与 15~A4组合,则端口地址范围是 再与A 组合,则端口地址范围是0070H~007FH。 再与 。 2)传送字节数。24KB对应的 进制数为 传送字节数。 对应的16进制数为 传送字节数 对应的 进制数为6000H,写入通道字节数 写入通道字节数 计数器的值应为: 计数器的值应为:6000H-1=5FFFH。 。
《DMA控制器》课件
在视频采集和编码等应用中,DMA控制
网络传输
2
器可大幅提高数据传输速度和精度。
在网络数据传输中,DMA控制器可实现
数据处理和传输的高度并行化,有效提
升网络传输效率。
3
外设控制
在外设控制方面,DMA控制器可实现 CPU和外部设备的解耦,有效降低了系 统的延迟和负载。
CPU依赖问题
在没有DMA的情况下,CPU必须执行实际的数据传 输操作,这会大大耗费CPU的时间和资源。
解决方案
引入DMA控制器,它具有独立的地址总线、数据总 线和控制总线,能在不占用CPU资源的情况下控制 数据传输,大大减轻了CPU的压力。
DMA的基本操作流程
1
初始化
设定DMA控制器Biblioteka 工作参数。高速传输多个通道可以同时进行数据传输,大大提高了数据 传输速率。
中断处理
为了提高系统的实时性,DMA控制器支持中断功能,在数据传输结束时向CPU发出中断请求,通知CPU完 成下一步操作。
1
中断触发
数据传输结束后,DMA控制器向中断控
中断处理
2
制器发出中断请求。
中断控制器接收到中断请求后,向CPU 发出中断信号,CPU切换到中断处理程
传输量
可以传输任意长度的数据块。
传输方向
支持双向数据传输,在不占用CPU资源的情况 下实现数据交换。
错误处理
支持多种错误处理方式,可以保证数据传输的可 靠性。
多通道控制
为了满足大规模数据传输的需求,一些DMA控制器具有多个通道,可以同时传输多路数据。
通道独立
每个通道拥有独立的地址、数据和控制线路,可以 实现隔离数据流。
2
传输请求
外设向DMA控制器发出数据传输请求。
DMA控制器8237A课件
2. 8237A引脚与内部结构
(1)8237A引脚 8237A为40个引脚的双列直插式封装的芯片如图9-4(a)所示,引 脚功能如下。 ● BD7~BD0(21脚~23脚、26脚~30脚)):8位数据线,双向, 三态。作用有三:第一是当8237A空闲,即CPU控制总线时, BD7~BD0作为双向数据线,由CPU读/写8237A内部寄存器;第 二是当8237A控制总线时,BD7~BD0输出被访问存储器单元的 高8位地址信号A15~A8,并由ADSTB信号将这些地址信息存入 地址锁存器。第三是在进行DMA操作时,读周期经DB7~DB0 线把源存储器的数据送入数据缓冲器保存,在写周期再把数据 缓冲器保存的数据经DB7~DB0传送到目的存储器。 ● A3~A0(35脚~32脚):低8位地址线的低4位,双向,三态。 当CPU控制总线时,8237作为一般I/O接口,A3~A0为输入,作 为选中8237A内部寄存器的地址选择线。当8237A控制总线时 ,A3~A0为输出,作为选中存储器的低4位地址。
● NC(5脚):空(没有用)。
(2)内部结构 8237A的内部结构如图9-4(b)所示,图中通道部分只画出了 一个通道的情况。8237A的内部结构由控制逻辑单元、优先级 编码单元、缓冲器和内部寄存器四个基本部分组成,功能介绍 如下。 ①控制逻辑单元 控制逻辑单元的主要功能是根据CPU传送来的有关DMAC的工作 方式控制字和操作方式控制字,在定时控制下,产生DMA请求 信号、DMA传送以及发出DMA结束的信号。 ②优先级编码单元 它用来裁决各通道的优先级顺序,解决多个通道同时请求DMA服 务时可能出现的优先级竞争问题。优先级顺序是指通道0优先级 最高,其次是通道1,通道3的优先级最低。循环四个通道的优 先级不断变化,即本次循环执行DMA操作的通道,到下一次循 环为优先级最低。不论优先级别高还是低,只要某个通道正在 进行DMA操作,其他通道无论级别高低,均不能打断当前的操 作。当前操作结束后,再根据级别的高低,响应下一个通道的 DMA操作申请。 ③ 缓冲器组 包括两个I/O缓冲器1、I/O缓冲器2和一个输出缓冲器,通过这 三个缓冲器把8237A的数据线、地址线和CPU的系统总线相连 。
第9章DMA控制器
S2状态:
在 S2 状 态 , 8237A 向 外 围 设 备 发 出 DMA 响 应 信 号 DACK,通知外设,数据传送即将开始。
S3状态:
在S3状态,8237A发出读命令:如果是DMA读操作, 则发出存储器读命令MEMR;如果是DMA写操作,则发 出I/O读命令IOR。该命令将持续到S4 结束。 压缩读方式:取消S3状态,读信号和写信号同时在S4 产生,适合高速电路。
第9章 DMA控制器
9.1 DMA控制器概要
一个DMA控制器通常可连接一个或几个输入/输出接口, 每个接口通过一组连线和DMA控制器相连。
通道:将DMA控制器中和某个接口有联系的部分称为一 个通道,一个DMA控制器一般由几个通道组成。 DMA控制器内不包含控制寄存器、地址寄存器和字节计 数器。当DMA控制器包含多个通道时,控制寄存器和状态 寄存器为多个通道所公有,但地址寄存器和计数器则为每 个通道独立配备。
9.2.3 8237A的工作周期
8237A有两种工作周期:空闲周期和有效周期。 (1)空闲周期( 8237A作为从模块) 当所有的通道都没有DMA请求时,8237A处于空闲周期, 此时,8237A始终执行Si状态。在每个Si状态都采样通道请 求线DREQ,如果没有请求,则继续进入Si状态。 在Si状态8237A作为受CPU控制的一个接口芯片,CPU 可对它编程,或读取其状态。 8237A在Si状态下持续监测片选CS,只要它变为有效, 则认为CPU要对它进行读 /写操作。
(3) 请求传送方式
这种方式和块传输方式类似,只是每传输一个字节后, 8237A都对DREQ端进行检测,如果DREQ有效,则继续传 输下一字节;如果 DREQ无效,则马上暂停传输,退出 DMA。在这种传送方式停止时,8237A释放总线,CPU可 继续工作,其地址和字节数的中间值保存在相应通道的现 行地址和字节数寄存器中,只要外设的DREQ再次有效, 就可以继续传送下去。直到计数结束或外部输入EOP信号, 才停止传输。
第7章DMA控制器
缺点:延长了CPU的时钟周期必将导致CPU运行速
度的降低。
PC/XT微型机就是采用了这种方式,巧妙地在CPU
总线中插入若干等待周期Tw,进行DMA操作。
总结:上述4种方式中,CPU暂时放弃总线控制权
而DMA占用总线的方式最简单。
12
7.3 DMA控制器8237A
8237A是Intel系列高性能可编程DMA控制器, 具有如下功能: (1)每片8237A内部有4个独立的DMA通 道,每个通道可分别进行数据传送,一次传送 最大达64KB,能够实现存储器与外部设备间或 存储器两个区域间的数据传送。 (2)每个通道的DMA请求可以分别允许和禁 止,具有不同的优先级,并且每个通道的优先级 可以是固定的,也可以是循环的。 (3)8237A具有4种传送方式:单字节传送 方式,数据块传送方式,请求传送方式和级联 13 方式。
(3)优先权控制逻辑。
用来裁决各通道的优先权次序,解决多个通道同时请求 DMA服务时可能出现的优先权竞争问题。
15
2. 3个缓冲器
(1)I/O缓冲器1 。8位、双向三态的缓冲器
当CPU控制总线时: 从CPU送给8237A的编程控制字、CPU读取8237A的状态 字、当前地址和字节计数器的内容都经过这个缓冲器。 当8237A控制总线时:
3
7.2 DMA占用总线方式
1.CPU暂时放弃总线控制权方式 2.暂停CPU时钟脉冲方式 3.窃取CPU空闲时间方式 4.周期扩展方式
4
1.CPU暂时放弃总线控制权方式 此类DMA操作,CPU必须暂停任何总线操作, 并让出对总线的控制权、直至DMA传送结束 或完成一个总线操作周期之后,CPU才能继 续控制总线。 实现这种方式的方法是DMAC向CPU发出总 线请求信号,CPU在完成当前的总线周期操 作之后,释放对总线的控制(有关的引脚信 号处于高阻状态)并发出总线响应信号。
度的降低。
PC/XT微型机就是采用了这种方式,巧妙地在CPU
总线中插入若干等待周期Tw,进行DMA操作。
总结:上述4种方式中,CPU暂时放弃总线控制权
而DMA占用总线的方式最简单。
12
7.3 DMA控制器8237A
8237A是Intel系列高性能可编程DMA控制器, 具有如下功能: (1)每片8237A内部有4个独立的DMA通 道,每个通道可分别进行数据传送,一次传送 最大达64KB,能够实现存储器与外部设备间或 存储器两个区域间的数据传送。 (2)每个通道的DMA请求可以分别允许和禁 止,具有不同的优先级,并且每个通道的优先级 可以是固定的,也可以是循环的。 (3)8237A具有4种传送方式:单字节传送 方式,数据块传送方式,请求传送方式和级联 13 方式。
(3)优先权控制逻辑。
用来裁决各通道的优先权次序,解决多个通道同时请求 DMA服务时可能出现的优先权竞争问题。
15
2. 3个缓冲器
(1)I/O缓冲器1 。8位、双向三态的缓冲器
当CPU控制总线时: 从CPU送给8237A的编程控制字、CPU读取8237A的状态 字、当前地址和字节计数器的内容都经过这个缓冲器。 当8237A控制总线时:
3
7.2 DMA占用总线方式
1.CPU暂时放弃总线控制权方式 2.暂停CPU时钟脉冲方式 3.窃取CPU空闲时间方式 4.周期扩展方式
4
1.CPU暂时放弃总线控制权方式 此类DMA操作,CPU必须暂停任何总线操作, 并让出对总线的控制权、直至DMA传送结束 或完成一个总线操作周期之后,CPU才能继 续控制总线。 实现这种方式的方法是DMAC向CPU发出总 线请求信号,CPU在完成当前的总线周期操 作之后,释放对总线的控制(有关的引脚信 号处于高阻状态)并发出总线响应信号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
命令 读状态寄存器 写控制寄存器 写DMA请求寄存器 写单屏蔽寄存器 写模式寄存器 清除字节指针
读暂存器 发复位命令 清除屏蔽寄存器 写全屏蔽寄存器 8237A各寄存器对应的端口地址
DMA通 道
通道0 通道1 通道2 通道3
基址寄存器和当前地址寄存器 基本字节计数器和当前字节计数器
OUT DX,AL
MOV AL,CH
MOV AX,01
AND AL,OFH
MOR AX,SI
MOV DX,DMA+083H
MOV DX,DMA+0BH
OUT DX,AL
OUT DX,AL
MOV AX,DI
MOV AX,ES
DEC AX
MOV CL,04
MOV DX,DMA+3
ROL AX,CL
OUT DX,AL
微机原理----DMA控制器
h
1
8.1 DMA控制器概要
h DMA控制器(3)
8.2 DMA控制器8237A的编程结构和外部信号
• 8.2.1 8237A的编程结构 • 4个通道分别包含: • 16位的地址寄存器 • 16位的字节计数器 • 8位的模式寄存器 • 4个通道公用控制寄存器和状态寄存器
h DMA控制器(19)
…
8.7 8237A的编程和使用
• 对通道1~3的地址寄存器的值进行测试
MOV DX,DMA+2 MOV CX,3 READ:IN AL,DX MOV AH,AL IN AL,DX CMP AX,0FFFFH JNZ HHH INC DX INC DX LOOP READ
HHH:HLT
起始地址+0 起始地址+1 起始地址+4 起始地址+6
起始地址+1 起始地址+3 起始地址+5 起始地址+7
h DMA控制器(16)
8.7 8237A的编程和使用
• 8237A的初始化
h DMA控制器(17)
总清 地址低字节 地址高字节 计数低字节 计数高字节
方式字 命令字 屏蔽字 其他通道参数
8.7 8237A的编程和使用
8.4 8237A的典型时序
•
h DMA控制器(9)
8.5 8237A的控制寄存器和状态寄存器
• 8237A控制寄存器的格式
h DMA控制器(10)
8.5 8237A的控制寄存器和状态寄存器
• 8237A状态寄存器的格式
h DMA控制器(11)
8.5 8237A的控制寄存器和状态寄存器
• DMA请求寄存器的格式 :
OUT DX,AL
8.7 8237A的编程和使用
• 对通道1~3的地址寄存器的值进行测试
MOV DX,DMA+2 MOV CX,3 READ:IN AL,DX MOV AH,AL IN AL,DX CMP AX,0FFFFH JNZ HHH INC DX INC DX LOOP READ
HHH:HLT
h DMA控制器(4)
8.2 DMA控制器8237A的编程结构和外部信号
• 8237A的对外连接信号
•CLK
时钟
•CS#
片选
•RESET 复位
•READY 准备就绪
•ADSTB 地址选通
•AEN
地址允许
•MEMR# 存储器读
•MEMW# 存储器写
•IOR# 输入输出设备读
h DMA控制器(5)
•IOW# 输入输出设备写 • EOP# DMA传输过程结束 • DREQ 通道DMA请求输入 • DACK 应答信号 • HRQ 总线请求 • HLDA 总线响应 • A3~A0 地址 • A7~A4 地址 • DB7~DB0 双向数据
h DMA控制器(20)
…
8.7 8237A的编程和使用
•
利用通道1进行网络通信的传输程序
JNC ABC
NETTRA:MOV DX,DMA+0
INC CH
CH
ABC:MOV DX,DMA+2
MOV AL,0
OUT DX,AL
OUT DX,AL
MOV AL,AH
MOV DX,DMA+09H
OUT DX,AL
8.2.3 8237A工作时各信号的配合
① 作为从模块工作时 ② 作为主模块工作时
h DMA控制器(6)
8.3 8237A的工作模式和模式寄存器的格式
• 工作模式: ① 单字节传输模式 ② 块传输模式 ③ 请求传输模式 ④ 级联传输模式
h DMA控制器(7)
模式寄存器的格式
h DMA控制器(8)
MOV CH,AL
MOV AL,AH
h DMA控A制N器D(21A) L,0F0H
OUT DX,AL
8.7 8237A的编程和使用
•
利用通道1进行网络通信的传输程序
JNC ABC
NETTRA:MOV DX,DMA+0
INC CH
CH
ABC:MOV DX,DMA+2
MOV AL,0
OUT DX,AL
h DMA控制器(12)
8.5 8237A的控制寄存器和状态寄存器 • 屏蔽寄存器的格式
h DMA控制器(13)
8.5 8237A的控制寄存器和状态寄存器 • 8237A全屏蔽命令的格式
h DMA控制器(14)
8.6 8237A各寄存器对应的端口地址
A3 A2 A1 A0 IOR IOW 100001 100010 100110 101010 101110 110010 110101 110110 111010 111110
• 823M7AOM的VO初AVL始D,0X化4,DMA+8
OUT AL,DX MOV AL,00 MOV DX,DMA+ODH OUT DX,AL MOV DX,DMA WRITE:MOV AL,0FFH OUT DX,AL OUT DX,AL INC DX INC DX LOOP WRITE MOV DX,DMA+0BH MOV AL,58H OUT DX,AL
h DMA控制器(18)
MOV AL,41H
OUT DX,AL
MOV AL,42H
OUT DX,AL
MOV AL,43H
OUT DX,AL
MOV DX,DMA+8
MOV AL,0 OUT DX,AL MOV DX,DMA+0AH OUT DX,AL MOV AL,01 OUT DX,AL MOV AL,02 OUT DX,AL MOV AL,03
OUT DX,AL
MOV AL,AH
MOV DX,DMA+09H
OUT DX,AL
OUT DX,AL
MOV AL,CH
MOV AX,01
AND AL,OFH
MOR AX,SI
MOV DX,DMA+083H
MOV DX,DMA+0BH