可编程DMA控制器8237A
- 格式:ppt
- 大小:2.05 MB
- 文档页数:76
第十章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) 将传输的字节数或字数送到计数器中。
1837.5.2 8237内部结构及引脚8237A DMA 控制器有4个独立的通道,每个通道均有64KB 寻址与计数能力,并且可以用级联方式来扩充更多的通道。
它允许在外部设备与系统存储器以及系统存储器之间直接变换信息,其数据传送率可达1.5MB/s 。
它提供了多种控制方式和操作模式,大大增强了系统的性能,8237A 是一个高性能通用可编程的DMAC 。
1.8237A 的引脚8237A DMA 控制器是一个40个引脚的双列直插式组件,如图7-13所示。
由于它既作主控者又作受控者,故其外部引脚设置也独具特色,它的I/O 读/写线(IOR 、IOW )和地址线(A 0~A 3)是双向的,另外,还设置了存储器读/写线(MEM 、MEMV )和16位地址输出线(DB 0~DB 7、A 0~A 7)。
这些都是其他I/O 接口芯片所没有的。
下面对各引脚功能加以说明。
DREQ 0~DREQ 3:外部设备对4个独立通道0~3的DMA 服务请求,由申请DMA 传送的设备发出,可以是高电平或低电平有效,由程序选定。
它们的优先级是按DREQ 0最高,DREQ 3最低的顺序排列的。
DACK 0~DACK 3:8237控制器发给I/O 设备的DMA 应答信号,有效电平可高可低,由编程选定,在PC 系列中将DACK 编程为低电平有效,系统允许多个DREQ 信号同时有效,即可以几个外部设备同时提出DMA 申请,但在同一个时间,8237A 只能有一个回答信号DACK 有效,为其服务。
这一点类似于中断请求/中断服务的情况。
HRQ :总线请求,高电平有效,是由8237A 控制器向CPU 发出的要求接管系统总线的请求。
HLDA :总线应答,高电平有效,由CPU 发给8237A 控制器。
HLDA 有效时,表示CPU 已让出总线。
IOR /IOW :I/O 读/写信号,是双向的。
8237A 为主态工作时,它们是输出。
在DMAC 控制下,对I/O 设备进行读/写。
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数据传输的起始地址和传输的数据量。
使用8237A可编程DMA控制器实验目的1、掌握8237A可编程DMA控制器和微机的接口方法。
2、学习使用8237A可编程控制器,实现数据直接快速传送的编程方法。
8237 DMA控制器实验内容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 。