8257 DMA控制器的工作

最初,处理器程序8257。在这里,处理器充当主机,而8257在从属模式下工作。通过从用于传输数据的存储器的起始地址写入地址寄存器,并通过使用直接存储器访问方案写入要传输的字节数的计数器寄存器来获得程序的通道。信息的字节数,由最低14位指定。而最高有效2位指示将发生哪种类型的数据传输。之后,处理器写入控制端口,intel将调用该控制端口作为特殊模式寄存器。它指定启用的DMA通道,区分它们是固定的还是旋转的。当I / O端口需要DMA服务时,将激活通道的DRQ输入,然后8257依次激活HRQ。HRQ的输出再次连接到8085的HOLD输入,在此通过DMA请求激活8085的HOLD输入。然后8085完成当前的机器循环,该循环再次进入保持状态。此处地址引脚处于保持状态,地址引脚RD *,WR *和IO / M *引脚为三态。此处8085与系统的其余部分断开了连接。它声明HLDA输出被HOLD状态激活。

8057以前是8085的从属设备,通过接收来自8085的命令,它成为计算机的主机。

DMA数据传输分类如下-

  • 单字节传输

  • 突发模式

  • 长脉冲模式

  • 单字节传输-某些I / O端口(如Intel 8272)用于生成的DMA数据传输的每个字节的DMA请求。对数据传输的每个字节执行以下步骤。

    • Intel 8272激活8257的DRQ输入。

    • 英特尔8257通过激活HRQ输出来激活8085的HOLD输入。

    • Intel 8085进入HOLD状态,暂停程序执行,并激活HLDA输出。

    • Intel 8257激活DACK *输出。

    • Intel 8257生成所需的控制信号以执行一个字节的数据传输。AR递增,CR递减。

    • Intel 8272停用了DRQ请求。

    • 英特尔8257通过禁用HRQ输出来禁用8085的HOLD输入。

    • 英特尔8085退出“保持”状态并停用HLDA输出。

    • 英特尔8085将暂停的程序恢复一段时间。

    • Intel 8272重新激活DRQ,并重复序列直到达到TC。

  • 短突发模式-传输几个字节之前,某些I / O端口(例如Intel 8275)会生成DRQ并将其保持活动状态。根据8275的编程方式,8257的DRQ输入将保持活动状态,最多可激活八次DACK *。这将导致8个字节的DMA数据传输。在相当长的一段时间内,DRQ输出保持不活动状态。在此期间,8257的HRQ输出变为非活动状态,导致8085脱离保持状态并进入活动状态。然后根据上述顺序重复进行,直到传输完所有字节并激活TC输出为止。这种数据传输称为短脉冲模式传输,因为DRQ输入将保持活动状态,直到传输一小块数据为止。此方案与中等速度的外围设备一起使用。

  • 长脉冲模式-仅在传输完所有字节之后,在此模式下,DRQ请求才由I / O端口撤消,并且TC输出被激活。但是对于数据传输的每个字节,DACK *输出都会产生脉冲。此方案与硬盘控制器等快速外围设备一起使用。