微处理器 - 8257 DMA 控制器



DMA 代表直接内存访问 (Direct Memory Access)。它由英特尔设计,用于以最快的速度传输数据。它允许设备直接向内存传输数据/从内存接收数据,而无需 CPU 干预。

使用 DMA 控制器,设备请求 CPU 保持其数据、地址和控制总线,以便设备可以自由地直接向内存传输数据/从内存接收数据。只有在从 CPU 接收到 HLDA 信号后,才会启动 DMA 数据传输。

DMA 操作是如何执行的?

以下是 DMA 执行的操作序列:

  • 最初,当任何设备必须在设备和内存之间发送数据时,设备必须向 DMA 控制器发送 DMA 请求 (DRQ)。

  • DMA 控制器向 CPU 发送保持请求 (HRQ) 并等待 CPU 声明 HLDA。

  • 然后,微处理器将所有数据总线、地址总线和控制总线置为三态。CPU 放弃对总线的控制,并通过 HLDA 信号确认 HOLD 请求。

  • 现在 CPU 处于 HOLD 状态,DMA 控制器必须管理 CPU、内存和 I/O 设备之间总线上的操作。

8257 的特点

以下是 8257 一些突出的特点:

  • 它有四个通道,可用于四个 I/O 设备。

  • 每个通道都有 16 位地址和 14 位计数器。

  • 每个通道最多可以传输 64kb 的数据。

  • 每个通道可以独立编程。

  • 每个通道可以执行读取传输、写入传输和验证传输操作。

  • 它向外围设备生成 MARK 信号,表示已传输 128 字节。

  • 它需要单相时钟。

  • 其频率范围为 250Hz 至 3MHz。

  • 它有两种工作模式:**主模式**和**从模式**。

8257 架构

下图显示了 8257 的架构:

8257 Architecture

8257 引脚描述

下图显示了 8257 DMA 控制器的引脚图:

8257 Pin Diagram

DRQ0−DRQ3

这些是四个独立的通道 DMA 请求输入,外围设备使用它们来使用 DMA 服务。当选择固定优先级模式时,DRQ0 具有最高优先级,DRQ3 具有最低优先级。

DACK0 − DACK3

这些是低电平有效的 DMA 确认线,它们通过 CPU 更新请求外围设备的请求状态。这些线也可以充当请求设备的选通线。

D0 − D7

这些是双向数据线,用于将系统总线与 DMA 控制器的内部数据总线接口。在从模式下,它将命令字传输到 8257,并将状态字从 8257 传输出来。在主模式下,这些线用于将生成的地址的高位字节发送到锁存器。该地址进一步使用 ADSTB 信号锁存。

IOR

这是一个低电平有效的双向三态输入线,CPU 在从模式下使用它来读取 8257 的内部寄存器。在主模式下,它用于在内存写周期期间从外围设备读取数据。

IOW

这是一个低电平有效的双向三态线,用于将数据总线的內容加载到 8 位模式寄存器或 16 位 DMA 地址寄存器或终端计数寄存器的高/低字节。在主模式下,它用于在 DMA 内存读取周期期间将数据加载到外围设备。

CLK

这是一个时钟频率信号,8257 的内部操作需要它。

RESET

此信号用于通过禁用所有 DMA 通道来重置 DMA 控制器。

A0 - A3

这些是四个最低有效地址线。在从模式下,它们充当输入,选择要读取或写入的寄存器之一。在主模式下,它们是 8257 生成的四个最低有效内存地址输出线。

CS

这是一个低电平有效的片选线。在从模式下,它使能对 8257 的读/写操作。在主模式下,它禁用对 8257 的读/写操作。

A4 - A7

这些是 DMA 在主模式下生成的低字节地址的高四位。

READY

这是一个高电平有效的异步输入信号,它通过插入等待状态使 DMA 准备好。

HRQ

此信号用于接收来自输出设备的保持请求信号。在从模式下,它与 8257 的 DRQ 输入线连接。在主模式下,它与 CPU 的 HOLD 输入连接。

HLDA

这是保持确认信号,当它设置为 1 时,它表示 DMA 控制器 CPU 已将总线授予请求外围设备。

MEMR

这是低电平有效的内存读取信号,用于在 DMA 读取周期期间读取寻址内存位置的数据。

MEMW

这是一个低电平有效的三态信号,用于在 DMA 写入操作期间将数据写入寻址内存位置。

ADST

此信号用于将 DMA 控制器生成的内存地址的高位字节转换为锁存器。

AEN

此信号用于禁用地址总线/数据总线。

TC

它代表“终端计数”,它向当前外围设备指示当前 DMA 周期。

MARK

从开始起每 128 个周期或其整数倍数后,标记将被激活。它表示当前 DMA 周期是自上次向所选外围设备输出 MARK 信号以来的第 128 个周期。

Vcc

这是电路操作所需的电源信号。

广告