10.3DMA8237汇编语言
可编程DMA控制8237A

0禁止存储器到存储器传输 1允许存储器到存储器传输
0禁止通道0地址保持不变 1允许存储器到存储器传输 XD0=0时不起作用
0允许8237A操作 1禁止8237A操作
0正常时序 1压缩序 XD0=1不起作用
图12-4 命令寄存器
7.请求寄存器(RR)
8237A的4个通道都有一个于其相对应的请求触发器, 它是用来设置DMA请求标志的。在8237A控制器内,是4 个请求触发器对应1个DMA请求寄存器。我们知道,DMA 请求可以由硬件发出,也可由软件发出,对于硬件是通 过DREQ引脚引入DMA请求的,对于软件,则是通过对DMA 请求标志的设置来发出请求的,在存储器与存储器进行 数据传输时,因没有外部DREQ请求信号,因此,由软件 产生一个DMA请求信号来启动,DMA传输请求寄存器的格 式如图12-5所示。
2.当前字数寄存器(CWCR)
它用于存放当前的字节数,最大可达64KB。每一个通道都有一个16位 的当前字计数寄存器。在DMA传送操作时,每传送一个字节,该寄存器的内 容减1,当计数值变为零时,便自动产生终止计数信号。在编程状态下, CPU以字节为单位进行操作。在自动预置方式下,当计数减为0或出现有效 低电平时,基字计数寄存器(BWC)可自动地将初始值重新装入CWCR。
7 65 4 3 2 1 0
00选择请求方式 01选择单字节方式 10选择块方式 11选择级联方式
0选择地址增量 1选择地址减量
0禁止自动预置 1允许自动预置
00选择通道0 01选择通道1 10选择通道2 11选择通道3
00效验传输 01写传输 10读传输 11非法 XX若D7D6=11,则无效
图12-2 工作方式寄存器
(2)综合屏蔽命令格式(或称为主屏蔽寄存器)。其格 式如图12-6(b)所示。8237A允许使用综合屏蔽命令一 次完成对4个通道的屏蔽设置。
第九章 可编程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
DMA 控制器8237A 的初始化编程_微型计算机原理及应用教程(第2版)_[共2页]
![DMA 控制器8237A 的初始化编程_微型计算机原理及应用教程(第2版)_[共2页]](https://img.taocdn.com/s3/m/72ca756e1a37f111f0855b78.png)
195其中,片0的4个通道仅通道2仍为软盘DMA 传送服务。
原来在PC/XT 中为动态RAM 刷新和硬盘DMA 传送服务的通道0与通道3也都空下来未使用,因为在PC/AT 的动态RAM 中有专门的刷新电路支持刷新,硬盘驱动器采用高速PIO 传送数据,故无需DMA 通道支持。
另外,片1的通道4用作片0和片1的级联。
当片1的通道4响应DMA 请求时,它本身并不发出地址和控制信号,而由片0当中请求DMA 传送的通道占有总线并发送地址和控制信号,行使主控制者的功能。
在PC/AT 中的0、1、3、5、6、7共6个通道均保留使用。
第0片的1~3通道仍按8位数据进行DMA 传送,最大传送128KB 。
第0片的0通道和第1片的5、6、7通道按16位数据进行DMA 传送,每次DMA 传送最大为64KB 。
两片8237A 都支持16MB 空间的寻址能力。
CPU 对第0片8237A 访问端口仍使用00~0FH ,即DMA+0~DMA-15(DMA EQU0)。
页面地址寄存器端口地址为81H (软盘)。
CPU 对第1片8237A 访问端口使用字边界(偶字节地址,A 0固定为0)。
其起始端口定为C0H ,每个端口地址间隔为2,端口地址为0C0~0DEH ,即DMA1+0~DMA1+30(DMA1 EQU C0H )。
页面地址寄存器端口地址为89H ~8BH 。
PC/XT 和PC/AT 的DMA 芯片端口地址如表7-9所示。
表7-9PC/XT 和PC/AT 的DMA 芯片端口地址端 口 名 称 XT 与AT8237(0) AT8237(1)通道0 基/当前地址寄存器 基/当前字节计数器 0 (00H ) 1 (01H ) 192 (C0H ) 194 (C2H ) 通道1 基/当前地址寄存器 基/当前字节计数器 2 (02H ) 3 (03H ) 196 (C5H ) 198 (C6H ) 通道2 基/当前地址寄存器 基/当前字节计数器 4 (040H ) 5 (05H ) 200 (C8H ) 202 (CAH ) 通道3基/当前地址寄存器 基/当前字节计数器6 (06H )7 (07H ) 204 (CCH ) 206 (CEH ) 读状态寄存器/写命令寄存器写请求寄存器 写单个通道屏蔽寄存器 写方式字寄存器 写清除先/后触发器 读暂存寄存器/写总清除 写清除屏蔽寄存器 写4个通道屏蔽寄存器8 (08H ) 9 (09H ) 10 (0AH ) 11 (0BH ) 12 (0CH ) 13 (0DH ) 14 (0EH ) 15 (0FH )208 (D0H ) 210 (D2H ) 212 (D4H ) 214 (D6H ) 216 (D8H ) 218 (DAH ) 220 (DCH ) 222 (DEH )7.5.4 DMA 控制器8237A 的初始化编程1.初始化编程应注意的事项CPU 对8237A 的编程方法与一般的I/O 接口芯片基本相同,但有以下几点需要注意。
使用8237A可编程DMA控制器实验目的

使用8237A可编程DMA控制器实验目的1、掌握8237A可编程DMA控制器和微机的接口方法。
2、学习使用8237A可编程控制器,实现数据直接快速传送的编程方法1、实验内容实验原理图如图5-26(见下页)所示,本实验学习使用8237A可编程DMA控制器进行RAM到RAM的数据传送方法。
实验中规定通道0为源地址,通道1为目的地址,通过设置0通道的请求寄存器产生软件请求,8237A响应这个软件请求后发出总线请求信号HRQ,图中8237HRQ直接连到8237A的HLDA上,相当于HRQ作为8237A的总线响应信号,进入DMA操作周期。
在8237A进行DMA传送时,当字节计数器减为0时,8237A的/EOP 引脚输出一个负脉冲,表示传送结束。
/EOP可以作为系统的外部中断信号,通过8259A控制器使CPU 判断DMA传递是否结束。
本实验中未用/EOP信号。
图中RAM 6264的地址为8000~9FFF,实验要求将RAM 6264中地址为8000~ 83FFH 的1KB数据传送到地址为9000H~93FFH的区域中去。
为了验证传送的正确性,你可在源地址(8000H~83FFH)区首末几个单元填充标志字节,传送完再检查目的地址区的相应单元的标志字节是否与填入的一样。
2、实验步骤(1)、将DMA扩展实验板按信号线的对应关系插入DVCC-8086H的Z5插座。
(2)、将DMA扩展实验板上的8237CS信号插孔和DVCC?8086H 的译码输出插孔00H-01FH相连。
(3)、打开DVCC-8086H电源,DVCC-8086H系统显示"DVCC -86H"。
(4)、运行实验程序在系统显示"DVCC-86H"状态下,按任意键,系统显示命令提示符"-" 。
按GO键,显示器显示"1000 XX"。
输入F000 :B8C0 。
按EXEC键,显示器显示"8237-1"。
第十三讲:可编程DMA控制器8237 主讲老师:王克义

(3) D2位是用于允许(Enable)或禁止(Disable)8237 工作的控制位。
4)D3、D5位是与时序有关的控制位,详见后面的 时序说明。 5) D4位用来设定通道优先权结构。
• 当D4=0时,为固定优先权,通道0的优先权最高,其他 通道的优先权随通道号的增大而递减,通道3的优先权最 低; • 当D4=1时,为循环优先权,即在每次DMA服务之后,各 个通道的优先权都发生变化,刚刚服务过的通道其优先权 变为最低,它后面通道的优先权变为最高。如表13-2所示。
2) D1位用来设定在存储器到存储器传送的整个过 程中,通道0中的源地址是否保持不变。
• 若D1=1,则通道0中的源地址保持不变,DMA传送的结 果是将源区的同一个数据字节写入到整个目的区中;若 D1=0,则表示通道0中的源地址可以修改。 • 若D0=0,则不允许存储器到存储器的传送,此时D1位无 意义。
• 在级联方式下,将多个8237级联起来,以扩展 DMA通道数。后一级的HRQ和HLDA信号连到前 一级的DREQ和DACK上,如图13.3所示。
第二级 第一级 8237 HRQ HLDA
微处理器 HOLD HLDA HRQ HLDA 8237
DREQ0 DACK0 . . . DREQ3 DACK3
13.2 8237的结构
• DMA控制器8237的结构框图及在系统中的有关逻 辑如图13.1所示。 • 图中只画了一个通道的具体情况,其他通道与此 相同。
图13.1 8237的结构及有关逻辑
HOLD HLDA Clock 使CPU的总线信号无效 AEN ADSTB HRQ HLDA CLK 状态寄存器 通道0 模式寄存器 ___ OE STB 数据 总线 8位锁存器 _ IO/M A15~A8 A7~A0 地址 译码器 A3~A0 A7~A4 DB7~DB0 暂存寄存器 (8位) 当前地址寄存器 当前字节数寄存器 (6位) Vcc (8位) 命令寄存器 (8位)
第八章 DMA控制器8237

2
2 2 2 3 3 3 3
写
读
0 0 0 0 0 0 0 0
1 1 0 0 1 1 0 0
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 0 1 1
0 0 0 0 1 1 1 1 0 0
基本 /当前字计数 写 当前字计数 基本 / 当前地址 当前地址 读 写 读
M
M传送操作时经DB7-DB0,将M数据送8237A
暂存器。
A3-A4:地址线,从模块时为输入,处理器寻址
8237A;主模块时输出低位地址。
12
A7-A4:地址线,主模块时输出A7-A4。
CS:片选,从模块时处理器用来寻址8237A。
IOR,IOW:I/O读写控制,双向。8237A在从模块时
DACK有效电平
低电平有效 高电平有效 DREQ有效电平 0 1
Channel 0 地址保持不变 0 1 0 1 X 0 1 X 0 1 Disable Enable D0=0
高电平有效
低电平有效
扩展写
不扩展写 扩展写 D3=1
8237A 工作 Enable 8237A Disable 8237A
优先级类型
内 F/F
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
DB0~DB7 A0 ~ A7 A8 ~ A15 A0 ~ A7 A8 ~ A15 W0 ~ W7 W8 ~ W15 W0 ~ W7 W8 ~ W15 A0 ~ A7 A8 ~ A15 A0 ~ A7 A8 ~ A15 W0 ~ W7 W8 ~ W15 W0 ~ W7 W8 ~ W15 15
实验一:8237 DMA传输实验

实验一 8237 DMA传输实验1、编制程序:将DS:3000H~37FFH内数据通过DMA方式传输给DS:6000H~67FFH,并对 DS:3000H~37FFH与DS:6000H~67FFH作比较。
2、编写、调试程序3、DS:3000H~37FFH与DS:6000H~67FFH二块数据是否完全相同.MODEL TINYDMAADDR EQU 0E000H ;8237»ùµØÖ·.STACK 100.CODESTAR: MOV AX,0MOV DS,AXMOV SI,3000HMOV AL,0FFHMOV CX,0800HSTAR3:MOV [SI],ALINC SIDEC ALLOOP STAR3MOV AL,04HMOV DX,DMAADDR+8OUT DX,AL ;½ûÖ¹DMA²Ù×÷MOV AL,00HMOV DX,DMAADDR+0DHOUT DX,AL ;¸´Î»MOV DX,DMAADDR+0CHOUT DX,AL ;Çå³ýÏÈ/ºó¼Ä´æÆ÷MOV DX,DMAADDR+0MOV AL,0OUT DX,ALMOV AL,30HOUT DX,ALMOV DX,DMAADDR+0CHOUT DX,AL ;Çå³ýÏÈ/ºó¼Ä´æÆ÷MOV DX,DMAADDR+2MOV AL,0OUT DX,ALMOV AL,60HOUT DX,ALMOV DX,DMAADDR+0CHOUT DX,AL ;Çå³ýÏÈ/ºó¼Ä´æÆ÷MOV DX,DMAADDR+3MOV AL,0FFHOUT DX,ALMOV AL,07HOUT DX,ALMOV DX,DMAADDR+0BHMOV AL,88HOUT DX,ALMOV AL,85HOUT DX,ALMOV DX,DMAADDR+8MOV AL,41HOUT DX,AL ;ÔÊÐí8237¹¤×÷¡¢´æÖüÆ÷·½Ê½´«ËÍSTAR1:MOV DX,DMAADDR+0FHMOV AL,0CHOUT DX,ALMOV DX,DMAADDR+09HMOV AL,04HOUT DX,AL ;ÔÊÐíDMA²Ù×÷MOV DX,DMAADDR+08HNOPNOPSTAR2: IN AL,DXTEST AL,03HJZ STAR2 ;µÈ´ýDMA½áÊøMOV DX,DMAADDR+0CHOUT DX,ALMOV DX,DMAADDR+3 ;Çå³ýÏÈ/ºó¼Ä´æÆ÷IN AL,DXMOV AH,ALIN AL,DXCMP AX,0FFFFHJNZ STAR1MOV DX,DMAADDR+09HMOV AL,00HOUT DX,AL ;Çå³ýDMAÇëÇóMOV DX,DMAADDR+08HMOV AL,04HOUT DX,AL ;½ûÖ¹DMA²Ù×÷MOV SI,3000HMOV BX,6000HMOV CX,0800HSTAR5: MOV AL,[SI]CMP AL,DS:[BX]JNE FALSEINC SIINC BXLOOP STAR5 TRUE: JMP $ FALSE: JMP $ENDSTAR。
第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
控制字编程包括设置控制字的各位值,以实现不 同的控制功能,如启动/停止数据传输、设置通道 号、设置数据块大小等。
8237可编程DMA控制器实验 访问存储器

实验十八8237可编程DMA控制器实验(一)访问存储器一、实验目的⑴掌握8237可编程DMA控制器和微机的接口方法;⑵学习使用8237可编程控制器,实现数据直接快速传送的编程方法。
二、实验内容⑴本实验学习使用8237A可编程DMA控制器实现RAM到RAM的数据高速传送。
⑵实验要求将RAM61C256中地址为8000~83FFh的1KB数据传送到地址为9000~93FFh的区域中去。
三、实验电路四、实验步骤1、实验连线⑴DMA单元的IOW、IOR分别与系统单元的IOW、IOR相连,IOCS与总线单元上方的GS相连。
⑵DMA单元的MWR、MRD分别与系统单元的MEW、MER相连,MACS与02门电路的①脚相连,02门电路的②脚、③脚分别接A15、GND。
⑶DMA单元的PCLK接微机单元控制信号PCLK。
⑷用三根8芯扁平电缆将DMA单元的数据总线D0~D7、地址总线A0~A7、地址总线A8~A15与系统的数据总线、地址总线相连。
2、LED环境⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。
⑵在“P.”状态下键入3900,按“EXEC”执行,显示器将显示“8237-1 good”,表示传送完毕。
⑶在“P.”状态下键入8000,按“EXEC”执行,显示器将循环显示“DMA 8237-1 good”,运行源程序区程序。
⑷在“P.”状态下键入9000,按“EXEC”执行,显示器亦将循环显示“DMA 8237-1 good”,验证目标程序区程序。
3、PC环境在与PC联机状态下,编译、连接、下载PH88\he18.asm,用连续方式运行程序。
4、观察运行结果显示器应循环显示“DAM 8237-1 good”,若显示正确,即说明DMA传送的结果正确。
本实验完毕。
5、终止运行按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。
;使用8237可编程DMA控制器实验;程序功能:将8000H开始的程序移动到9000H存储器单元;连续运行:当显示"8237 good"表示8237正常结束;程序验证:按实验系统RESET复位键,输入9000,按EXEC键; 若LED能循环显示 "DMA","8237-1","good"; 则表明DMA传送正确,本实验结束。
第9章_2 可编程DMA控制器8237A及习题

第6章 输入/输出
6.3 可编程DMA控制器8237DMAC •四种特殊传送操作 存贮器到存贮器: 只适用通道0为源,通道1目的之间的从存贮器的一块到另一块的快速数据 传送。要用8个有效状态,4个有效状态通道0读、4个有效状态通道1写。 自运预置传送: 基地址、基字计数寄存器的内容自动装入当前地址、当前字计数寄存器 中从而进入下一次的DMA操作。无需CPU进行预置。 循环优先: 四个通道处于平等状态,进行循环优先级管理。
2)每一个通道的DMA请求都可以分别允许 和禁止。 3)每一通道的DMA请求有优先级管理。 4)每一通道一次传送的最大长度可达64K字 节。 5)可在存储器与外设,存储器与存储器之间、 进行传送。 6)有以下四种方式 (1)单字节传送方式;
Note1
8237
A0 Vcc
DB0 DB1 DB2 DB3 DB4 DACK0 DACK1 DB5 DB6 DB7
6.3 可编程DMA控制器8237DMAC •8237的DMA接口 主控制器件:
第6章 输入/输出
READY: 准备好信号,输入,高电平有效。若存贮器或外部设备来不及完成读/写 操作,可使READY无效,8237产生一个等待周期,直到READY有效为止。
RESET: 复位信号,输入,高电平有效。清除所有寄存器的内容,控制线浮空,禁 止DMA操作,复位后,必须重新初始化。 CS: EOP: DMA过程结束8237复位。低电平有效,双向。 输入:低电平强迫8237结束DMA操作。 输出:低电平作为DMA传送结束的标志。
因而要使I/O与存储器寻址地址不重叠则: 存储器地址范围:00000H~EFFFFH I/O地址范围:F0000H~FFFFFH A19 & A16
A18 A17
实验(9)可编程DMA控制器8237

课程名称汇编语言与微机原理实验名称DMA 特性及8237 应用实验实验目的、要求1.掌握8237DMA控制器的工作原理。
2.了解DMA特性及8237的几种数据传输方式。
3.掌握8237的应用编程。
实验原理直接存储器访问(DirectMemoryAccess,简称DMA),是指外部设备不经过CPU的干涉,直接实现对存储器的访问。
DMA传送方式可用来实现存储器到存储器、存储器到I/O接口、I/O接口到存储器之间的高速数据传送。
主要设备、器材PC机一台,TD-PIT++实验装置一套。
实验原理及内容直接存储器访问(DirectMemoryAccess,简称DMA),是指外部设备不经过CPU的干涉,直接实现对存储器的访问。
DMA传送方式可用来实现存储器到存储器、存储器到I/O接口、I/O接口到存储器之间的高速数据传送。
实验步骤将存储器D800H单元开始的连续8个字节的数据复制到地址D810H开始的8个单元中,实现8237的存储器到存储器传输。
实验步骤(1)实验接线图如图,按图接线。
(2)运行Tdpit集成操作软件,参考流程图4-5-10编写程序,编译、链接。
(3)打开软件中的“扩展存储区数据显示窗口”,对存储器的前8个字节空间写数,即“00H×4、01H×4、02H×4、 (07)×4”单元写入8个数,起始地址是D800:0000H。
(4)运行程序,待程序运行停止后。
(5)在“扩展存储区数据显示窗口”中的偏移地址栏中输入D800:0020,并点击“读存储器”按钮,查看DMA传输结果,是否与首地址中写入的数据相同,可反复验证。
IOY0 EQU 3000H ;IOY0起始地址MY8237_0 EQU IOY0+00H*4 ;通道0当前地址寄存器MY8237_1 EQU IOY0+01H*4 ;通道0当前字节计数寄存器MY8237_2 EQU IOY0+02H*4 ;通道1当前地址寄存器MY8237_3 EQU IOY0+03H*4 ;通道1当前字节计数寄存器MY8237_8 EQU IOY0+08H*4 ;写命令寄存器/读状态寄存器MY8237_9 EQU IOY0+09H*4 ;请求寄存器MY8237_B EQU IOY0+0BH*4 ;工作方式寄存器MY8237_D EQU IOY0+0DH*4 ;写总清命令/读暂存寄存器MY8237_F EQU IOY0+0FH*4 ;屏蔽位寄存器STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DX,MY8237_D ;写总清命令OUT DX,ALMOV DX,MY8237_0 MOV AL,00HOUT DX,ALMOV AL,00HOUT DX,ALMOV DX,MY8237_2 MOV AL,08HOUT DX,ALMOV AL,00HOUT DX,ALMOV DX,MY8237_1 MOV AL,07HOUT DX,ALMOV AL,00HOUT DX,ALMOV DX,MY8237_3 MOV AL,07HOUT DX,ALMOV AL,00HOUT DX,ALMOV DX,MY8237_BMOV AL,88HOUT DX,ALMOV AL,85HOUT DX,ALMOV DX,MY8237_8MOV AL,81HOUT DX,ALMOV DX,MY8237_FMOV AL,00HOUT DX,ALMOV DX,MY8237_9MOV AL,04HOUT DX,ALQUIT: MOV AX,4C00HINT 21HCODE ENDSEND START实验结果运行程序之后,DMA控制器实现了将存储器D800H单元开始的连续8个字节的数据复制到地址D810H开始的8个单元中,实现存储器到存储器的数据传输。
8237 DMA控制器应用实验报告

8237 DMA控制器应用实验报告8237 DMA控制器是一种高速数据传输设备,与CPU配合使用以提高数据传输速率。
本次实验通过使用8237 DMA控制器实现内存数据块的复制和存储器到端口的数据传输,并进行实验验证。
一、实验原理8237 DMA控制器是直接存储器访问(Direct Memory Access,DMA)设备,它可以和CPU配合进行高速数据传输。
该控制器有四个可编程的数据传输通道,每个通道支持16位数据传输和多种传输模式。
通过编程控制这些传输通道,可以实现内存与内存之间的数据传输、I/O端口与内存之间的数据传输、以及内存数据扫描等。
本实验的主要实现方式是将一段数据从一个位置复制到另一个位置,需要编程设置DMA通道进行数据传输。
DMA控制器一般由可编程控制器芯片(Programmable Controller Chip,PCC)或其他控制器来控制,由此进行数据传输。
本次实验采用的控制器是Intel 8237 DMA控制器,其主要工作原理如下:1. DMA传输通道DMA控制器具有四个DMA传输通道,分别为通道0~3,每个通道可以控制一个数据传输操作,同时传输方式也可以编程进行设置。
2. 传输方式传输方式共有七种,分别为“写0”、“写1”、“读0”、“读1”、“自动初始化”、“关闭通道”和“请求(READY)”,不同的传输方式下,数据通道的行为也不同。
传输方式设置需要使用以下三种方式之一:(1)控制寄存器1(CR1):其中的每一位都对应着一个数据通道的传输方式。
(2)命令寄存器(Command Register):命令字中包含了传输方式、传输方向、操作的对象等详细信息,以指令的方式完成数据传输。
(3)模式寄存器(Mode Register):用于设置DMA传输模式。
模式寄存器用于将控制字编码为相应的传输方式和条件,包括数据传输的类型、传输方向和自动初始化方式4. 基地址寄存器和计数器寄存器基地址寄存器(Base Address Register)和计数器寄存器(Count Register)分别保存DMA数据传输的起始地址和传输的数据量。
第8章 DMA接口技术8237

AEN,地址输出允许信号。AEN使地址锁存器中 的高 8 位地址送到地址总线上,与芯片直接输 郝 尚 富 出的低 8 位地址共同构成内存单元地址的偏移 量。AEN信号也使与CPU相连的地址锁存器无效 ,这样,就保证了地址总线上的信号是来自 DMA控制器,而不是来自CPU的
8237的工作方式
微 机 接 口 原 理 · 制 作 郝 尚 富
8237引脚信号的定义
微 机 接 口 原 理 · 制 作 郝 尚 富
MEMW 存储器写信号。此信号有效时,数据 总线上的内容被写入选中的存储单元 IOW 输入输出设备写信号。在DMA控制器作 为主模块时,IOW的方向是由 DMA 控制器送出 的,此信号有效时,存储器中读出的数据被 写入 I/O 接口中;在 DMA 控制器作为从模块时 , IOW 方向是送入 DMA 控制器,此信号有效时 , CPU 往 DMA 控制器的内部寄存器中写入信息 ,即进行初始化编程。
微 机 接 口 原 理 · 制 作 郝 尚 富
DREQ3~DREQ0,DMA请求(DMA Request)输入信 号。用于为4个DMA通道中的每一个请求DMA传输。由于 这些输入的极性是可编程的,所以它们可以是高有效输入 也可以是低有效输入。当DMAC向I/O设备送来DMA响应 信号DACK以后,I/O接口才撤除DREQ有效电平
DMA系统组成及工作过程․ DMA系统组成
微 机 接 口 原 理
总线 请求 地址总线
DMA 请求 HRQ DMAC DREQ
· 制 作 郝 尚 富
HOLD
HLDA
总线 响应 CPU 控制总线
HLDA
DACK
DMA 响应
I/O 设备
数据总线
․ DMA工作过程
可编程DMA控制器8237A

用于控制数据传输的字 节数。
用于指示控制器的当前 状态。
负责解析命令和控制数 据传输过程。
工作模式
8237A控制器支持两 种工作模式:单周期 模式和多周期模式。
多周期模式:数据传 输需要多个时钟周期 才能完成。
单周期模式:数据传 输在一个时钟周期内 完成。
数据传输过程
地址比较
控制器比较源地址和目标地址 是否匹配。
WENKU DESIGN
WENKU DESIGN
2023-2026
ONE
KEEP VIEW
可编程DMA控制器 8237A
WENKU DESIGN
WENKU DESIGN
WENKU
REPORTING
https://
CATALOGUE
目 录
• 引言 • 8237A控制器的工作原理 • 8237A控制器的编程方法 • 8237A控制器的应用场景 • 8237A控制器的优势与局限性 • 结论
8237A控制器负责管理数据在内存和 外部设备之间的传输,包括数据的起 始地址、传输大小、传输方向等。
控制器能够实时监控各个通道的数据 传输状态,并在出现错误时进行相应 的处理,如中断或重试。
通道优先级管理
控制器支持设置不同的通道优先级, 根据优先级的高低来处理数据传输请 求。
对未来研究和应用的建议
8237A控制器的主要特点包括
多通道支持:最多支持8个数据传输通道,可同时进行 多个数据传输任务。
灵活的接口:可以与各种类型的外部设备接口连接,如 磁盘驱动器、网络适配器等。
PART 02
8237A控制器的工作原 理
控制器结构
地址寄存器
计数器
状态寄存器控制逻辑源自用于存储数据传输的源 地址和目标地址。
实验一__8237_DMA传送实验_(1)(DOC)

实验一8237 DMA传送实验一、实验目的(1)掌握DMA方式的工作原理和8237DMA控制器的编程使用方法。
(2)掌握如何在实验系统环境下,使用DMA的CH0进行数据传送。
二、实验内容利用本实验系统提供的8237A-5 DMA控制的CH0,实现DMA的内存到内存的读、写传送,采用DMA软件请求,把内存中3000H~4FFFH单元内容传送到5000H~6FFFH单元中。
三、编程指南1、8237A引脚图2、8237A的内部寄存器格式⑴8237A控制寄存器格式(2)8237A模式寄存器格式(3)8237A状态寄存器格式(4)请求寄存器和屏蔽寄存器格式(5)多通道屏蔽寄存器格式(6)8237A端口地址3、8237A的初始化编程⑴命令字写入控制寄存器⑵方式字写入模式寄存器⑶屏蔽字写入屏蔽寄存器⑷写先/后触发器⑸写入基地址和当前地址寄存器以及基字节和当前字节计数器。
⑹写入请求寄存器如果采用软件DMA请求,在适当的时候令通道的请求触发器置1。
四、实验接线图五、实验步骤连CS10到FF80H,在系统内存3000H~4FFFH单元中填充10,11,12,13……,运行程序8237·ASM或在实验系统处于P态下,按SCAL键,然后在系统内存3000H~4FFFH单元中填充10,11,12,13……,输入2860,按EXEC键即可,当系统显示“8237——good”表示DMA传送结束,按RST钮,返回P态,用内存读写命令检查5000H~6FFFH单元内容是否和3000H~4FFFH单元内容相一致,验证其正确性。
六、实验程序清单;8237.ASM,MOV:RAM FROM 3000H TO 5000H;BYTE-MOVCODE SEGMENTASSUME CS:CODEPCTL EQU 0FF20H ;控制口PA EQU 0FF21H ;字位口PB EQU 0FF22H ;字形口PC EQU 0FF23H ;键入口CLEARF EQU 800CHCH0A EQU 8000hCH1A EQU 8002HCH1C EQU 8003HMODE EQU 800BHCMMD EQU 8008HMASKS EQU 800FHREQ EQU 8009HSTATUS EQU 8008Hrst equ 800dhLATCH EQU 9000HORG 2860H ;FORM EPROM FILE (.COM),SET ORG= 0100HSTART: JMP START0BUF DB ?,?,?,?,?,?data1: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1hdb 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FHSTART0: MOV SI,3000HMOV DI,5000HMOV CX,1FFFHMOV AL,00MOV DX,LATCHOUT DX,ALNOPNOPmov dx,rstout dx,alMOV DX,CLEARFOUT DX,ALMOV AL,0FH ;MASK_CH_0-3MOV DX,MASKSOUT DX,ALNOPNOPMOV DX,CH0A ;L-SADMOV AX,SIOUT DX,ALMOV AL,AHOUT DX,ALNOPNOPMOV DX,CH1A ;L-DADMOV AX,DIOUT DX,ALMOV AL,AHOUT DX,ALNOPNOPMOV AX,CX ;COUNTMOV DX,CH1COUT DX,ALMOV AL,AHOUT DX,ALMOV AL,48H ;P_MODEMOV DX,MODEOUT DX,ALMOV AL,45HOUT DX,ALMOV AL,01H ;ON-8237MOV DX,CMMDOUT DX,ALL1: MOV AL,0EH ;UNMASK_CH_0MOV DX,MASKSOUT DX,ALMOV AL,04H ;START_DMA_TRANSFERMOV DX,REQOUT DX,ALMOV DX,STATUSNOPNOPWAIT1: IN AL,DXTEST AL,03HJZ WAIT1; CALL CMP1; JNZ ERRMOV DX,CH1CMOV AH,ALIN AL,DXCMP AX,0FFFFHJNZ L1CALL BUF1MOV CX,0080HL2: PUSH CXCALL DISPPOP CXLOOP L2CALL BUF2L3: CALL DISPJMP L3;---------------------------------------------CMP1: MOV DX,CH0ACALL CMP10MOV SI,AXMOV DX,CH1ACALL CMP10MOV DI,AXMOV AX,[SI]CMP [DI],AXRETCMP10: IN AL,DXMOV BL,ALIN AL,DXMOV AH,ALMOV AL,BLDEC AXRETERR: CALL BUF3ERR0: CALL DISPJMP ERR0;---------------------------DISP: MOV AL,0FFH ;00HMOV DX,PAOUT DX,ALMOV CL,0DFH ;20H ;显示子程序,5msMOV BX,OFFSET BUFDIS1: MOV AL,[BX]MOV AH,00HPUSH BXMOV BX,OFFSET DATA1MOV AL,[BX]POP BXMOV DX,PBOUT DX,ALMOV AL,CLMOV DX,PAOUT DX,ALPUSH CXDIS2: MOV CX,00A0HDELAY: LOOP DELAYPOP CXCMP CL,0FEH ;01HJZ LX1INC BXROR CL,1 ;SHR CL,1JMP DIS1LX1: MOV AL,0FFHMOV DX,PBOUT DX,ALRETBUF1: MOV BUF,08HMOV BUF+1,02HMOV BUF+2,03HMOV BUF+3,07HMOV BUF+4,17HMOV BUF+5,17HRET;------------------------------------------------------------- BUF2: MOV BUF,09HMOV BUF+1,00HMOV BUF+2,00HMOV BUF+3,0DHMOV BUF+4,10HMOV BUF+5,10HRETBUF3: MOV BUF,08HMOV BUF+1,02HMOV BUF+2,03HMOV BUF+3,07HMOV BUF+4,18HMOV BUF+5,18HRETCODE ENDS。
8.2 可编程DMA控制器8237A-微型计算机汇编语言与接口技术-刘均-清华大学出版社

业精于勤而荒于嬉
教材第页 2
8.2.1 8237A的内部结构
8237A有4个独立的通道,分别是通道0、通道1、通道2和通道3。 每个通道包括一个16位当前地址寄存器、一个16位基本地址寄 存器、1个16位当前字节寄存器、1个16位基本字节寄存器。另 外还有一个公共控制部分,包括1个8位方式寄存器、1个8位请 求寄存器、1个8位屏蔽寄存器、1个8位控制寄存器、1个8位状 态寄存器、1个8位暂存寄存器。
8237A的内部结构如图8.2所示。
业精于勤而荒于嬉
教材第页 3
8.2.1 8237A的内部结构
业精于勤而荒于嬉
教材第页 4
8.2.1 8237A的内部结构
1. 8237A通道内部专用寄存器 (1)基本地址寄存器
◦ 16位基本地址寄存器,用来存放DMA传送数据时访问的内存 储器起始地址。该地址在8237A初始化时由CPU写入。基本 地址寄存器的内容在DMA传输过程中保持不变。其作用是在 自动预置时,将内存起始地址装入当前地址寄存器。
(2)基本字节寄存器 ◦ 16位基本字节寄存器,用来存放DMA传送的字节数。要传送 的字节数在8237A初始化时由CPU写入。基本字节寄存器的 内容在DMA传输过程中保持不变。其作用是在自动预置时, 将字节数装入当前字节寄存器。
业精于勤而荒于嬉
教材第页 5
8.2.1 8237A的内部结构
(3)当前地址寄存器
◦ 16位当前地址寄存器,用来存放DMA传送的当前内存储器地 址。当前地址寄存器的初值与基本地址寄存器的值相同。每 次DMA传送一个字节后,当前地址寄存器的值自动增1或减1, 指示内存储区下一个要访问的单元地址。在自动预置方式时, 每次计数结束后自动装入基本地址寄存器中的值。
8.3 8237A的应用举例-微型计算机汇编语言与接口技术-刘均-清华大学出版社

第8章 DMA技术
8.1 DMA技术概述 8.2 可编程DMA控制器8237A 8.3 8237A的应用举例 8.4 PC中的DMA应用
业精于勤而荒于嬉
教材第页 1
8.3 8237A的应用举例
8237A初始化编程的步骤如下。 (1)向第13个端口发送总清命令。 (2)将DMA传送的内存起始地址写入基本地址寄存器和当前
地址寄存器。 (3)将DMA传送的字节数写入基本字节寄存器和当前字节寄
存器。 (4)向第11个端口写入工作方式控制字命令字。 (5)向第10个或第15个端口写入通道屏蔽命令字。 (6)向第8个端口写入控制寄存器命令字
业精于勤而荒于嬉
教材第页 2
8.3 8237A的应用举例
例8-1 从某外设传送1000H个字节的数据块到起始地址为2000H 的内存区域中,利用8237A的通道1完成,采用数据块传送方式, 自动增量,非自动预置。外设的DREQ和DACK都设为高电平有 效。8237A端口地址为50H~5FH。
业精于勤而荒于嬉
教材第页 5
8.3 8237A的应用举例
Байду номын сангаас
业精于勤而荒于嬉
教材第页 6
业精于勤而荒于嬉
教材第页 3
8.3 8237A的应用举例
业精于勤而荒于嬉
教材第页 4
8.3 8237A的应用举例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9.1.4 8237A的寄存器 • 8237A共有10种内部寄存器,对它们 的操作有时需要配合3个软件命令 • 8237A的“软件命令” –不需要通过数据总线写入控制字 –直接由地址和控制信号译码实现
全部都用地址A0~A3区分
1. 现行地址寄存器
基地址寄存器 存放初始值
• 保持DMA传送的当前地址值 • 每次传送后该寄存器的值自动 加1或减1 • 这个寄存器的值可由CPU写入 和读出
5. 模式寄存器 • 存放相应通道的方式控制字 • 选择某个DMA通道的工作方式 • 其中用最低2位选择哪个DMA 通道
方式字格式
D7 D6 D5 D4 D3 D2 D1 D0
00 01 10 11
00 请求模式 00DMA校验 0 地址增量(加1) 0 禁止自动初始化 通道0 01 单字节模式 DMA写 1 地址减量(减1) 1 允许自动初始化 01 通道1 10 数据块模式 DMA读 10 通道2 11 级联模式 11非法 通道3 ×× 若D7D6=11
8. 屏蔽寄存器 • 控制外设硬件DMA请求是否被响应 (为0允许),各个通道互相独立。 3种方法: –单通道屏蔽字只对一个DMA通道 屏蔽位进行设置 –主屏蔽字对4个DMA通道屏蔽位 同时进行设置
3个软件命令 • 清除高/低触发器软件命令 –A3A2A1A0=1100,使高/低触发器清 零 • 主清除命令 –A3A2A1A0=1101,使高/低触发器清 零 –还使命令、状态、请求、临时寄存 器清零
• 使屏蔽寄存器置为全1(禁止DMA 请求) –主清除命令与硬件的RESET信号 具有相同的功能 • 清屏蔽寄存器命令 –A3A2A1A0=1110,使4个屏蔽位 都清零(允许DMA请求)
• 特点: –一次请求传送一个数据块,效 率高 –整个DMA传送期间CPU长时间 无法控制总线(无法响应其他 DMA请求、无法处理中断等)
(3)请求方式 • DREQ信号有效就连续传送数据 • DREQ信号无效,DMA传送被暂时中 止,8237A释放总线,CPU可继续操 作 • DMA通道的地址和字节数的中间值 仍被保持
• ADSTB:地址选通。DMA传送开 始时,输出高有效,把在DB0~ DB7上输出的高8位地址锁存在外 部锁存器中。 • AEN:地址允许。输出高有效,将 锁存的高8位地址送入系统总线, 与芯片此时输出的低8位地址组成 16位存储器地址。
2. DMA传送控制信号(续) • MEMR*:存储器读。有效将数据 从存储器读出 • MEMW*:存储器写。有效将数据 写入存储器 • IOR*:I/O读。有效将数据从外设 读出 • IOW*:I/O写。有效将数据写入 外设
• DMA检验——空操作 –8237A不进行任何检验 –外设可以进行DMA校验 –存储器和I/O控制线保持无效, 不进行传送
3. 存储器到存储器的传送 • 固定使用通道0和通道1 • 通道0的地址寄存器存源区地址 • 通道1的地址寄存器存目的区地 址,通道1的字节数寄存器存传 送的字节数
• 传送由设置通道0的软件请求启动 • 每传送一字节需用8个时钟周期 –前4个时钟周期用通道0地址寄 存器的地址从源区读数据送入 8237A的临时寄存器 –后4个时钟周期用通道1地址寄 存器的地址把临时寄存器中的数 据写入目的区
• READY:准备好。DMA传送的S3 下降沿检测到为低时,插入等待状 态Sw,直到READY为高才进入第4 个时钟周期S4。 • EOP*:过程结束。DMA传送过程 结束,输出一个低有效脉冲。外部 输入低脉冲信号,则终结DMA传 送。
3. 处理器接口信号 • DB0~DB7:数据线。用于8237A 与微处理器进行数据交换。 • A0~A3:地址线。用以选择芯片内 部寄存器。 • CS*:片选。低有效时,微处理器与 8237A通过数据线通信,主要完成 对8237A的编程。
Si
S0
S0
S1
S2
S3
S4
S2
S3
S4
Si
Si
AEN输出高电平,表示DMA传送 DREQ
S2状态——输出DMA响应信号和控制信 HLDA 号 AEN
ADSTB
DMA读:MEMR*和IOW*有效 DMA写:IOR*和MEMW*有效
DB0~DB7
A0~A7
DACK 3
S 和Sw状态——检测数据传送是否能够 MEMR(IOR) 完成,决定是否插入等待状态Sw
1.1 8237A的内部结构和引脚 • 内部结构和外部引脚都相对比较 复杂 • 应用观点,内部主要由两类寄存 器组成
– 通道寄存器 – 控制和状态寄存器
1. 请求与响应信号 • DREQ0~DREQ3:DMA通道请求。当 外设需要请求DMA服务时,将DREQ 信号置成有效电平,并要保持到产生 响应信号。 • HRQ:总线请求。8237A输出有效的 HRQ高电平,向CPU申请使用系统总 线。
8237A引脚的两种作用
与CPU连接 (空闲周期)的引 脚
CLK、RESET A0~A3、CS*、DB0~DB7 IOR*、IOW* HRQ、HLDA
与外设连接 (有效周期)的引脚
AEN、ADSTB、READY、EOP* A0~A7、DB0~DB7 IOR*、IOW*、MEMR*、 MEMW* DREQ0~DREQ3、DACK0~ DACK3
• 若传送后使字节数从0减到FFFFH, 则终结DMA传送或重新初始化 • 特点: –一次传送一个字节,效率略低 –DMA传送之间CPU有机会重新 获取总线控制权
(2)数据块方式 • 由DREQ启动就连续地传送数据,直 到字节数寄存器从0减到FFFFH终止 计数,或由外部输入有效信号终结 DMA传送 • DREQ只需维持有效到DACK有效
1.3 8237A的工作时序· 空闲周期 • 8237A的任一通道都没有DMA请求 时 • 8237A由微处理器控制作为一个接口 芯片 • CPU可对8237A编程,或从8237A读 取状态
• 8237A采样CS*选片信号,该信号 有效,CPU就要对8237A进行读/ 写操作 • 8237A还采样通道的请求输入信号 DREQ,该信号有效,就进入有效 周期
2. 现行字节数寄存器
基字节数寄存器 存放初始值
• 保持DMA传送的剩余字节数 • 每次传送后,该寄存器的值减1 • 这个寄存器的值可由CPU写入和读出 • 该寄存器的值减至0,再减1(从0减 到FFFFH)时,终止计数
传送N个字节,初始值为N-
读写通道寄存器 • CPU与8237A之间通过8位数据总线 交换信息,8237A的通道寄存器均 为16位 • 需要两次读写操作才能实现CPU与 8237A之间的一个完整数据的交换 • 8237A内含一个高/低触发器,用来 控制读写通道寄存器的高、低字节
• IOR*:I/O读。读取8237A内部寄 存器。 • IOW*:I/O写。写入8237A内部寄 存器。 • CLK:时钟。控制芯片内部操作和 数据传输。 • RESET:复位。使8237A处于初始 状态。
1.2 8237A的两种工作状态 • 8237A具有两种工作状态 • 空闲周期: 作为接口电路,受CPU控制的工作状态 • 有效周期: 作为DMAC控制DMA传送的工作状态
• 第一级只起优先权网络的作用,实 际的操作由第二级芯片完成 • 还可由第二级扩展到第三级等
1.3.3 DMA传送类型 • DMA读——把数据由存储器传送到 外设 –由MEMR*有效从存储器读出数据, 由IOW*有效把这一数据写入外设 • DMA写——把外设输入的数据写入 存储器 –由IOR*有效从外设输入数据,由 MEMW*有效把这一数据写入存储 器。
高/低触发器
• 该触发器为0,控制读写低字节 • 该触发器为1,控制读写高字节 • 软、硬件复位后,触发器为0
• 每次读写通道寄存器,自动改变触 发器状态。如果对16位寄存器的操 作用两次连续读写进行,就不必清 除这个触发器 • 清除高/低触发器软件命令 (A3A2A1A0=1100)将使高/低触 发器清零
1.3.1 8237A的工作时序· 有效周期 • 8237A采样到外设有DMA请求,就 脱离空闲周期进入有效周期 • 8237A作为系统的主控芯片,控制 DMA传送操作 • DMA传送借用系统总线完成,其控 制信号以及工作时序类似CPU总线周 期
SCLK 1状态——输出16位存储器地址
HRQ
Si
6. 命令寄存器 • 存放8237A的命令字 • 设置8237A芯片的操作方式 • 影响每个DMA通道 • 复位时使命令寄存器清零 • 设置D2=1才使8237A可以作 为DMA控制器
命令字格式
D7 D6 D5 D4 D3 D2 D1 D0
0 滞后写0 0 0 禁止存储器之间传送 0 DREQ高有效 允许通道0地址改变 0 固定优先权 0 DACK低有效 允许DMAC工作 0 正常时序 1 扩展写1 1 1 允许存储器之间传送 1 DREQ低有效 禁止通道0地址改变 1 循环优先权 1 DACK高有效 禁止DMAC工作 1 压缩时序 × 若D3=1 × 若D0=0 × 若D0=1
7. 请求寄存器 • 存放软件DMA请求状态 • 除硬件DMA请求外,当工作在 数据块传送方式时也可以通过 软件发出DMA请求 • 若是存贮器到存贮器传送,则 必须由软件请求启动通道0
请求字格式
D7 D6 D5 D4 D3 D2 D1 D0
任意
0 复位 1 置位
00 通道0 01 通道1 10 通道2 11 通道3
• HLDA:总线响应。8237A接受来 自CPU的响应信号HLDA,取得了 总线的控制权。 • DACK0~DACK3:DMA通道响应。 8237A使请求服务的通道产生相应 的DMA响应信号。
2. DMA传送控制信号 • A0~A7:地址线。输出低8位存储器 地址。 • DB0~DB7:数据线。输出高8位存 储器地址;存贮器与存贮器的传送期 间,用于数据传送。