DMA控制接口
1 DMA控制接口
7.4DMA控制接口 教学重点 8237A的工作方式 8237A寄存器组的作用 8237A寄存器组的编程
7.4 DMA控制接口 教学重点 ◼ 8237A的工作方式 ◼ 8237A寄存器组的作用 ◼ 8237A寄存器组的编程
1DMA控制器8237A 每个8237A芯片有4个DMA通道,就是 有4个DMA控制器 每个DMA通道具有不同的优先权 每个DMA通道可以分别允许和禁止 每个DMA通道有4种工作方式 次传送的最大长度可达64KB ■多个8237A芯片可以级连,扩展通道数
3 1 DMA控制器8237A ◼ 每个8237A芯片有4个DMA通道,就是 有4个DMA控制器 ◼ 每个DMA通道具有不同的优先权 ◼ 每个DMA通道可以分别允许和禁止 ◼ 每个DMA通道有4种工作方式 ◼ 一次传送的最大长度可达64KB ◼ 多个8237A芯片可以级连,扩展通道数
1.18237A的内部结构和引脚 内部结构和外部引脚都相对比较复杂 应用观点,内部主要由两类寄存器组成 ■通道寄存器 控制和状态寄存器
4 1.1 8237A的内部结构和引脚 ◼ 内部结构和外部引脚都相对比较复杂 ◼ 应用观点,内部主要由两类寄存器组成 ◼ 通道寄存器 ◼ 控制和状态寄存器 首先分类展开外部引脚
1.请求与响应信号 DREQ0~DREQ3:DMA通道请求。当外设需 要请求DMA服务时,将DREQ信号置成有效电 平,并要保持到产生响应信号。 ■HRQ:总线请求。8237A输出有效的HRQ高 电平,向cPU申请使用系统总线。 HLDA:总线响应。8237A接受来自CPU的响 应信号HLDA,取得了总线的控制权。 DACK0~DACK3:DMA通道响应。8237A使 请求服务的通道产生相应的DMA响应信号 5
5 1. 请求与响应信号 ◼ DREQ0~DREQ3:DMA通道请求。当外设需 要请求DMA服务时,将DREQ信号置成有效电 平,并要保持到产生响应信号。 ◼ HRQ:总线请求。8237A输出有效的HRQ高 电平,向CPU申请使用系统总线。 ◼ HLDA:总线响应。8237A接受来自CPU的响 应信号HLDA,取得了总线的控制权。 ◼ DACK0~DACK3:DMA通道响应。8237A使 请求服务的通道产生相应的DMA响应信号
2.DMA传送控制信号 A0~A7:地址线。输出低8位存储器地址。 DB0~DB7:数据线。输出高8位存储器地址; 存贮器与存贮器的传送期间,用于数据传送。 ADSTB:地址选通。DMA传送开始时,输出高 有效,把在DB0~DB7上输出的高8位地址锁存 在外部锁存器中。 AEN:地址允许。输出高有效,将锁存的高8位 地址送入系统总线,与芯片此时输出的低8位地 址组成16位存储器地址 6
6 2. DMA传送控制信号 ◼ A0~A7:地址线。输出低8位存储器地址。 ◼ DB0~DB7:数据线。输出高8位存储器地址; 存贮器与存贮器的传送期间,用于数据传送。 ◼ ADSTB:地址选通。DMA传送开始时,输出高 有效,把在DB0~DB7上输出的高8位地址锁存 在外部锁存器中。 ◼ AEN:地址允许。输出高有效,将锁存的高8位 地址送入系统总线,与芯片此时输出的低8位地 址组成16位存储器地址
2.DMA传送控制信号(续) MEMR*:存储器读。有效将数据从存储器读出 MEMW*:存储器写。有效将数据写入存储器 IOR*:I/O读。有效将数据从外设读出 IoW*:I/0。有效将数据写入外设 READY:准备好。DMA传送的S3下降沿检测 到为低时,插入等待状态SW,直到 READY为 高才进入第4个时钟周期S4 EoP*:过程结束。DMA传送过程结束,输出 个低有效脉冲。外部输入低脉冲信号,则终 结DMA传送
7 2. DMA传送控制信号(续) ◼ MEMR*:存储器读。有效将数据从存储器读出 ◼ MEMW*:存储器写。有效将数据写入存储器 ◼ IOR*:I/O读。有效将数据从外设读出 ◼ IOW*:I/O。有效将数据写入外设 ◼ READY:准备好。DMA传送的S3下降沿检测 到为低时,插入等待状态Sw,直到READY为 高才进入第4个时钟周期S4。 ◼ EOP*:过程结束。DMA传送过程结束,输出 一个低有效脉冲。外部输入低脉冲信号,则终 结DMA传送
3.处理器接口信号 ■DB0~DB7:数据线。用于8237A与微处理 器进行数据交换 Ao~A3:地址线。用以选择芯片内部寄存器。 ■CS*:片选。低有效时,微处理器与8237A通 过数据线通信,主要完成对8237A的编程。 ■IOR*:I/0读。读取8237A内部寄存器。 IoW*:I/o写。写入8237A内部寄存器。 ■CLK:时钟。控制芯片内部操作和数据传输。 ■ RESET:复位。使8237A处于初始状态
8 3. 处理器接口信号 ◼ DB0~DB7:数据线。用于8237A与微处理 器进行数据交换。 ◼ A0~A3:地址线。用以选择芯片内部寄存器。 ◼ CS*:片选。低有效时,微处理器与8237A通 过数据线通信,主要完成对8237A的编程。 ◼ IOR*:I/O读。读取8237A内部寄存器。 ◼ IOW*:I/O写。写入8237A内部寄存器。 ◼ CLK:时钟。控制芯片内部操作和数据传输。 ◼ RESET:复位。使8237A处于初始状态
8237A的两种工作状态 8237A具有两种工作状态 ■空闲周期: 作为接口电路,受cPU控制的工作状态 有效周期: 作为DMAC控制DMA传送的工作状态
9 8237A的两种工作状态 ◼ 8237A具有两种工作状态 ◼ 空闲周期: 作为接口电路,受CPU控制的工作状态 ◼ 有效周期: 作为DMAC控制DMA传送的工作状态 于是,引脚分成两种作用
8237A引脚的两种作用 与CPU连接 与外设连接 (空闲周期)的引脚 (有效周期)的引脚 CT、 RESET AEN、 ADSTB、 READY、EoP★ A0~A3、CS*、DB0~DB7A0~A7、DB0~DB7 工oR★、工oW★ 工OR★、工OW*、MMR★、MM★ HRQ、HLDA DREQODREQ3, DACKODACK3 10
10 8237A引脚的两种作用 与CPU连接 (空闲周期)的引脚 与外设连接 (有效周期)的引脚 CLK、RESET A0~A3、CS*、DB0~DB7 IOR*、IOW* HRQ、HLDA AEN、ADSTB、READY、EOP* A0~A7、DB0~DB7 IOR*、IOW*、MEMR*、MEMW* DREQ0~DREQ3、DACK0~DACK3