微处理器 - 8257 DMA 控制器


DMA 代表直接内存访问。它由英特尔设计,旨在以最快的速率传输数据。它允许设备直接将数据传输到内存或从内存传输数据,而不会受到 CPU 的任何干扰。

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

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 建筑

8257 引脚说明

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

8257引脚图

DRQ 0 −DRQ 3

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

DACK o – DACK 3

这些是低电平有效 DMA 确认线,用于更新请求外设有关 CPU 请求的状态。这些线还可以充当请求设备的选通线。

D o – D 7

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

折射率

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

爱奥瓦

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

时钟脉冲

它是8257内部操作所需的时钟频率信号。

重置

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

Ao - A 3

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

CS

它是一条低电平有效的片选线。在从模式下,它允许对 8257 进行读/写操作。在主模式下,它禁止对 8257 进行读/写操作。

A 4 - A 7

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

准备好

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

HRQ

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

HLDA

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

MEMR

它是低内存读取信号,用于在 DMA 读取周期期间从寻址内存位置读取数据。

MEMW

它是低电平有效的三态信号,用于在 DMA 写入操作期间将数据写入指定的内存位置。

ADST

该信号用于将 DMA 控制器生成的内存地址的高字节转换到锁存器中。

埃恩

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

TC

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

标记

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

电压CC

它是电路工作所需的电源信号。