基本信息
文件名称:《微机原理与接口技术》第5章 DMA技术(直接存储器存取方式)-教学课件(非AI生成).ppt
文件大小:933 KB
总页数:73 页
更新时间:2025-05-22
总字数:约1.1万字
文档摘要

A7-A4:这4位三态地址线始终工作于输出状态或浮空状态。在主动态时,输出要访问的存储单元低8位地址中的高4位。DB7-DB0:8位三态双向数据线,与系统数据总线相连。从态时:CPU可用I/O读命令,将DMAC中读取寄存器的内容到数据总线。CPU还可以通过这些数据线用I/O写命令对DMAC内部寄存器进行编程。主态时:输出当前地址寄存器的高8位A15-A8,并通过ADSTB信号锁存到外部的高8位地址锁存器中,它们与A7-A0输出的低8位地址一起构成16位地址。需要说明的引脚功能如下:*8237A仅支持64KB寻址,为了访问超过64KB范围的其他地址空间,系统中增设了页面寄存器。在PC/XT微机系统中,每一通道的页面寄存器是4位寄存器。当一个DMA操作周期开始时,相应的页面寄存器内容就放到系统地址总线A19~A16上,和8237A送出的16位低地址一起,构成20位物理地址。需要说明的引脚功能如下:*时序图:()SI:空闲周期如果没有DMA请求,8237A处于空转状态SI,在SI态,DMAC对DREQ端进行测试,判断是否某通道有DMA请求。在SI态还不断测试端,如果=0,且4个通道均无请求信号(DREQ无效),那么8237A作为从模块工作,此时,CPU可以对8237A进行设置、发送命令或读取内部寄存器状态,由控制8237A的读写操作。参见P264图8.3*S0:总线请求态如果某通道DREQ为有效电平,就表示该通道有DMA请求,于是8237A的HRQ有效,向CPU发出总线请求信号进入S0状态,所以S0称为总线请求态,此状态一般重复多次,直到CPU发出总线允许信号HLDA为止。时序图:*S1:更新高8位地址8237A收到CPU发出总线允许信号HLDA后,便进入S1态。在S1态,8237A发地址允许信号AEN,允许把高8位地址A15~A8送数据总线DB7~DB0,并发地址锁存信号ADSTB(在S2态,用下降沿将高8位地址A15~A8锁存)。一般情况下不需更新A15~A8,跳过S1直接进入S2态,在256次数据传输过程中,可能只会用到1次S1状态。时序图:*S2:修改存储单元低16位地址在S2态要做两件事:一是,高8位地址A15~A8送数据总线DB7~DB0,并用ADSTB下降沿将其锁存,8237A的A7~A0输出低8位地址,同高8位一起构成16位地址。在没有S1态的DMA周期中,原高8位地址保持不变,仅修改低8位地址。二是,向申请DMA传送的外设发请求回应信号DACK(代替对I/O设备的寻址,因为地址线已被访问RAM占用),数据传送即将开始,随后进入S3读周期。时序图:*S3:读周期在此状态发读命令。这时,把从内存或I/O接口读取的8位数据送到数据总线上,等待写周期到来。若采用提前写(扩展写),则会同时发出写命令。8237A有2种工作时序,一种是普通时序,另一种是压缩时序。普通时序:用到S3状态,把锁存的高8位地址送地址总线A15~A8。压缩时序:则去掉S3状态,读、写同在S4状态周期。并且仅更新低8位地址,而不修改高8位地址,从而进一步提高数据传送速度。时序图:参见P264图8.3*时序图:S4:写周期。在此状态发出写命令。此时,把在读周期保持在数据总线上的数据写入I/O端口或内存,完成一个字节的DMA传送。正是由于在读周期读出的数据没有送到8237A内部保存,而是直接保持在数据总线上,所以在写周期一开始就能够快速地从数据总线上得到数据,直接写到RAM或I/O接口,这就是高速DMA传送提供直接通道的真正所在。*SW:等待周期。在S4状态周期开始前,8237A检测就绪端READY,如果READY为低电平(未就绪),则在S3和S4之间插入等待周期SW,否则不插入等待状态SW。时序图:*时序图:参见P264图8.3扩展写:若外设工作速度比较慢,应使用普通时序工作或通过硬件产生READY信号使8237A插入SW状态。因有些设备用8237A输出的信号下降沿来产生READY信号,在普通时序工作时这两个信号都