1、DMA 传送的工作过程
● 首先由外部设备发出DMA传送请求信号,或通过程序将DMA通道请求触发器置1;
● 如果有2个以上DMA通道请求信号有效,8237A的优先权编码器和裁决器裁决出优先级最高的DMA通道;
● DMA通过HOLD信号向CPU发出总线请求;
● CPU完成当前总线周期以后,回送HLDA信号,同时让出总线权;
●
DMA获取总线,驱动DACK信号有效,该信号通常用做I/O通道的片选择信号,DMA的控制信号MEMR#和I/OW#,或IOR#和MEMW#成对有
效,控制存储器和I/O通道之间的数据传送。如果是存储器到存储器之间的传送,一般需要占用2个DMA通道。
● DMA传送完毕以后,送出EOP信号,使DACK信号无效,HRQ信号无效,DMA释放总线。
2、DMA传送的条件
●l 外设DREQ信号有效,在字节传送方式和请求传送方式下,每个字节传送之前,DREQ必须有效,或DMA通道请求触发器为1状态;
● 8237A的DMA允许位置位;
● CPU应答信号HLDA为有效状态;
● 外部EOP无效
● 请求通道优先级最,请求通道无屏蔽
3、DMA 编程
● 使用清除F/L命令使F/L触发器为0;
● 禁止DMA的通道请求;
● 编程地址寄存器的低8位,然后是高8位;
● 编程计数寄存器的低8位,然后是高8位;
● 编程控制整个8237A的命令寄存器;
● 设置每个通道的模式寄存器;
● 送DMA允许命令,准备开始DAM传送;
● 若软件请求,写请求触发器。
阅读(3646) | 评论(0) | 转发(0) |