发新话题
打印

8237A的工作周期

8237A的工作周期


8237A的工作周期 8 ^. k" ~$ `* x* c
    8237A有两种工作周期:空闲周期和有效周期,分别对应受CPU控制的工作状态和作为DMAC控制DMA传送的工作状态。
. l; p+ L6 `  a# Y  l+ T    1)空闲周期(Idle Cycle)
2 R! y9 W0 E6 f- d' |    当所有的通道都没有DMA请求时,8237A处于空闲周期。此时,8237A始终执行.Si状态。在每一个Si都采样通道请求线DREQ,如果没有请求,则继续进入Si状态。 . y9 X: y# B& j% @) ?
    在Si状态,8237A是作为受CPU控制的一个接口芯片,CPU可以对它编程,或读取其状态。8237A在Si状态持续检测片选信号CS,只要CS变为有效,则认为CPU要对它进行读/写操作。
) ~2 o5 D) I& I$ V0 j6 F2 L0 r% k; _    2)有效周期(Active Cycle)
2 w1 H+ X: V9 b+ X* K6 l    当8237A在Si状态采样到外设有DMA请求时就脱离空闲周期进入有效周期。首先进入的是SO状态,它是DMA服务的第一个状态。在该SO状态,8237A向CPU提出总线保持请求HRO。在CPU响应之前,8237A一直为SO状态(一个SO状态接一个SO状态)。在每一个S0状态的上升沿,8237A采样CPU响应信号HLDA。一旦HLDA变为有效,就进入DMA传送状态,即DMA传送周期。一个DMA传送周期由Sl、S2、S3、S4组成,若外设的数据传送速度较慢,不能在S4之前完成,则可通过READY机制在S3和S4之间插入等待状态Sw。如图6.32是8237A的DMA传送时序。% P" d- D- B* {! i( c8 t6 l5 A
, ?4 X- b. }- I# y# ^

6 c7 N7 E4 p; j1 G4 V* k, |, Z6 A0 V& Z  t1 Q& `5 W
; r1 u5 p3 V: W; y) \2 f
2 S4 s6 j/ b- z0 e+ J( q: c% M
  在Sl状态,8237A产生AEN信号,使CPU以及其他总线主控设备与系统的地址线断 开,而使8237A的地址线A15~A0接通。S1状态另一项任务是把本周期要访问的存储单元的高8位地址送到数据总线DB7~DBO上,并发出地址选通信号ADSTB,该信号的后沿(下降沿)把这8位地址信息锁存到外部的地址锁存器中。在利用数据线输出高8位地址的同时,8237A将低8位地址送到地址线A7~A0上,并在本DMA周期内保持住。之所以这样输出地址是因为8237A一次传送的最大长度为64 KB,而它只有8根地址线。当8237A所在的微机系统的存储器地址超过16位时,除低16位由8237A在每个DMA周期输出外,高位地址需借助于外部电路,称之为页面寄存器,这在后面介绍。 ) d+ \) ]% j( i5 l, K5 s: H2 W8 D
    在S2状态,8237A向外设发出DMA响应信号DACK,通知请求DMA服务的设备数据传送即将开始。
8 K: A8 b) N, W- Q6 O    在S3状态,8237A发出读命令:如果是DMA读操作,则发出存储器读命令MEMR(上划线);如果是DMA写操作,则发出I/O读命令IOR。读命令将维持到S4的结束。
+ c. `, f2 M  M0 |7 D    在S4状态,8237A发出写命令,把读出的数据写入指定的地方。如果是DMA读操作,则发出I/O写命令IOW(上划线);如果是DMA写操作,则发出存储器写命令MEMW(上划线)。写命令也将维持到S4的结束。到S4结束时,8237A已完成一个字节数据传送。
% k/ x( }6 e/ e2 b    如果需要插入等待状态Sw,则做法和在8086读写总线周期中插入等待时钟Tw基本相同,即在S3结束前或插入的Sw结束前都要检测READY信号。如果READY信号为高电平,则8237A进入状态S4;否则开始一个Sw状态。 3 @. Y6 m  u) {/ l
    对于单传送模式,8237A在一个DMA周期后将总线控制权交还给CPU,自身又进入到空闲周期。对于数据块传送模式(或叫成组传送模式),8237A在一个DMA周期后接着开始,一个新的DMA周期,传送下一个字节。通常情况下,地址的高8位是相同的,只是低8位需要增量或减量。所以,输出和锁存高8位的S1状态不需要了,直接进入S2状态。在新的DMA周期中重复先输出低8位地址,后发出读/写信号的过程。在每一个DMA周期中8237A都要进行字节计数,即将字节计数器减1。在未发生Tc(即内部字节减到零之后,再减1到FFFFH)之前,这一过程将一直继续。一旦发生Tc,标志一个DMA传送过程结束,8237A又进入空闲周期,等待外设提出新的DMA请求。 ; S( |% E1 r$ E' }
    在有效周期,8237A作为总线主控器,对总线进行控制。



点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹

TOP

发新话题