DMA控制器8237
- 格式:ppt
- 大小:277.50 KB
- 文档页数:14
第十章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 设备进行读/写。
使用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 。
8237工作原理
8237是一种DMA(Direct Memory Access,直接内存访问)控制器,其工作原理如下:
1. 初始化:首先,CPU将DMA控制器的寄存器进行初始化设置,包括传输模式、传输方向、数据长度等。
2. 配置DMA通道:DMA控制器可以有多个通道,每个通道可以独立地进行数据传输。
CPU需要配置DMA通道,指定它们所要使用的内存地址、外设地址以及数据传输的方向。
3. 请求方式:外设设备通过向DMA控制器发送请求信号来启动数据传输过程。
外设设备通常是在缓冲区已满或空时发出请求,要求DMA控制器将数据从内存复制到外设或从外设复制到内存。
4. 中断处理:在数据传输完成后,DMA控制器可以发送中断信号给CPU,以便CPU知道数据传输已经完成,可以进行进一步的处理。
中断信号可以触发CPU执行指定的中断服务程序。
5. 数据传输:DMA控制器会根据配置好的参数,直接从内存中读取数据,或者将数据写入内存,而无需CPU的干预。
DMA控制器和CPU可以并行工作,提高数据传输的效率。
总结:DMA控制器通过直接访问内存,实现了CPU与外设之
间的数据传输,并且减轻了CPU的负担。
它能够在数据传输过程中独立工作,大大提高了数据传输的效率。