📄 dma控制器.txt
字号:
可编程DMA控制器8237A
DMA(Direct memory access)称为直接存储器存取。是一种完全硬件控制
的I/O交换方式。DMA控制器从CPU临时借用总线控制权后,在存储器和I/O设备
之间建立一个数据传送通道,而不通过CPU,实现批量数据的高速传输。
DMA控制其在微机系统中常用作为:显卡、软盘、硬盘、光盘和存储器之间
的接口。
DMA在数据交换过程中的基本操作过程:
1) 外部设备发出DMA请求。
2) CPU响应DMA请求,将总线控制权交给DMA控制器,由DMA控制总线。
3) DMA控制器对存储器寻址,确定数据传送的内存单元地址和交换数据的长度,
开始交换数据。
4) 数据交换结束,DMA控制器向CPU交还总线控制权。
一、8237A的内部结构
8237A由数据总线缓冲器、读写逻辑部件、工作方式寄存器、状态寄存器、优先
选择逻辑和4个DMA通道组成。
1、DMA通道0--通道3(4个通道完全相同)每个通道有一个16位地址寄存器(存放存
储器区域首地址的偏移地址);一个16位终点计数寄存器(低14位用来存放传送数据块的长度)
其中终点计数器的高两位用来定义所选通道的操作方式。
D15 D14 DMA操作方式
0 0 DMA校验
0 1 DMA写操作
1 0 DMA读操作
每个通道有一条DMA请求线合应答线
请求线:DRQ0-DRQ3由外部请求DMA传输的外部设备输入,高电平有效。
应答线:DACK0-DACK3有8237输出给提出DMA请求的外设,低电平有效。
2、数据总线缓冲器
是一个双向三态缓冲存储器
当8237处于从属状态时(获得总线控制权以前的状态),CPU像访问一般接口一样
通过这个缓冲器对8237进行读写操作。
3、读写控制逻辑部件
I/OR--读信号,双向三态,低电平有效。
I/OW--写信号,双向三态,低电平有效
A3-A0---输入输出地址线,从属状态是CPU通过它寻址8237内部的某个单口
主控状态时向存储器输出低4位地址。
CS--片选
CLK--时钟输入,确定8237的工作速度。
4、控制逻辑部件
用来向CPU发出总线请求,进入主控状态后,有它发出各种控制信号。
1)HRQ(HOLD REQUEST)--保持请求信号。高电平有效。
当任一通道收到DMA请求时,8237立即向CPU发出请求使用总线的信号HRQ。
2)HLDA--保持响应信号,CPU输入,高电平有效。
CPU收到HRQ信号,待当前总线周期执行完,向8237送出HLDA信号,表示总线控制权
交给8237,此后,8237进入主控状态。
3)READY--准备就绪,输入,高电平有效。
在DMA操作过程中,若存储器或外设来不及读写操作,要求延长读写操作周期时。可使
READY线无效,以便在DMA周期中增加等待周期,直到READY有效为止。
4)MEMR和MEMW--读写存储器信号,低电平有效。
是82337处于主控状态向存储器输出的读写控制信号
MEMR有效————I/OW有效
MEMW有效————I/OR有效
5)A7-A4__地址输出线
高4位地址线,DMA期间有效。
6)TC(TERMINAI COUNT)__终点计数信号,高电平有效。
终点计数器件一为0时,TC输出有效,表示当前正在传输的是最后的一个字节。可用来
通知外设结束数据传送,使DRQi信号无效。
5、工作方式寄存器机状态寄存器
工作方式寄存器用于定义各通道的工作方式(由CPU初始化使写入)
状态寄存器用于描述当前各通道的状态(只读)
工作方式寄存低键257页
状态寄存器的定义键258页
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -