第二节 8086系统组成
8086是一种微处理器,再加上必须的支持芯片,如时钟发生器,地址锁存器,总线驱动器 ,存储器和I/O接口等,才能构成一台完整的微型计算机.根据外部设备的数量和系统复杂 程度,8086可以选用两种系统构成模式,最小模式和最大模式.最小模式是单CPU系统,在 这种系统中,8086的MN/MX引脚接高电平,系统全部的控制信号都直接由CPU提供.最大模式 是多CPU系统,此时MN/MX引脚接低电平,必须通过8288总线控制器对CPU的状态信息进行 译码才能产生系统必须的控制信号.
最小模式系统构成如图7-9所示.这时8086的MN/MX引脚接至VCC,它直接产生存储器 和I/O端口的读写命令,如IO/M,RD,WR,INTA,直接产生地址锁定信号ALE,控制数据收发器 的控制信号DT/R,DEN.
1.地址锁存
8086的AD15~~AD0是地址/数据复用线,即CPU与存储器进行信息交换时,首先在T1 状态,先由CPU送出访问存储单元的地址信息到AD15~~AD0上,随后又用在些线来传送数据 所以在数据送上总线以前,必须先将地址锁存起来.可用8282或74LS373锁存8086的单向 地址AD15~~AD0.图7-9中使用三片8282,这是因为8282只具有8位锁存功能,而8086具有 20位地址和一根BHE信号.若系统存储器容量较小,使用不到20位地址信息,也可只用2 片8282.图中OE端接地,使锁存器永远处于允许输出状态.引脚STB接8086的ALE输出.在 总线周期T1状态,ALE上出现正脉冲,它的下降沿将8282输入端的地址信息存入锁存器, 并由输出端送入地址总线.
2.双向数据总线驱动器
CPU可以直接将数据发送到数据总线上.而无需锁存.为了增加总线负载能力,CPU数据 总线一般要加上驱动器,且要求双向驱动器,一般采用8位双向驱动器8286或74LS245.由于 8086数据总线是16位的,所以要用2片8286.8286的Ai引脚接CPU的ADi,其Di引脚接到系统 数据总线D1上,并将8086的DT/R接8286的T引脚,当DT/R为高电平時,数据从CPU发送到数据 总线上.DT/R为低电平時,CPU从数据总线上接收数据.8286的OE脚接8086的DEN脚.当8086 的DEN为低电平时,才允许数据输入或输出.
3.时钟发生器/驱动器
8086所需时钟脉冲CLK由8284提供.8284输出时钟CLK的频率,取决X1,X2跨接石英晶体的 频率.除此以外,8284还向8086提供定时和宽度符合要求的RESET复位信号及符合要求的 READY信号.
4.存储器部件
8086能直接寻址1MB存储空间.这个存储空间分为两个512KB存储体.一个存储體由奇地址 单元组成,用于存储16数据的高字节,另一个存储体由偶地址单元组成,用于存储16位 数据低字节.前者称为奇地址存储器,后者称为偶地址存储体.偶地址存储体的8位数据 总线接CPU的数据总线D7~~D0,而奇地址存储体8位数据线接数据总线D15~~D8.地址线A19 ~~A1同时接到两个存储体,而A0作为偶地址选中信号即A0=0时,选中偶存储体.BHE作为 奇地址片选信号,BHE=0时选中奇存储体.所以两个存储体可以同时读出或写入,也可单独 选中一个存储体.
5.I/O端口
一个完整的微机系统必须有I/O设备.I/O设备都有端口地址号.CPU通过地址总线发出端口 地址,经过端口地址译码器输出,送到端口的片选引脚而选定指定的端口.8086根据执行 命令是访问存储器指令还是输入输出指令,来使M/IO控制信号是高电平或是低电平,以 区分地址总线上的地址是访问存储器还是访问外设.
以8086为CPU的单CPU系统,数据总线是8位的,所以只用一片8286.存储器也不分 奇偶存储体.而只有一个以字节为单位的存储体.其它与8086系统构成相同.
§2.2 最大模式系统的构成
最大模式的8286系统结构如图7-10所示.在这种系统中,是将MN/MX接地,并采用8288 总线控制器来提供下列控制号:MRDC,MWTC,IORC,IOWC,INTA,DEN,DT/R和ALE等.
§2.3 IBM PC/XT微机系统的组成
IBM PC/XT微机是以8086为CPU的最大模式系统,以此为例进一步了解各支持芯片功能.
1.IBM PC/XT子系统
IBM PC/XT CPU子系统控制电路如图7-11所示,它由下列芯片组成:8088CPU,8087 协处理器插座(是否擦入可任选),8284时钟发生器,74LS245双向总线驱动器,74LS373 地址锁存器和74LS244地址驱动器.8088的MN/MX接地,它工作于最大模式,8288的IOB接 地,它工作于系统总线模式.
(1)8284的作用及连接 8284向系统提供CLK,PCLK和OSC三种频率时钟信号及复位 信号RESET,准备好信号READY.
8284的X1与X2间接频率为14.31818MHZ的晶体振荡器,因此CLK的频率为4.77MHZ, 占空比为33%,它作为8288,8088,8087的主时钟.PCLK是CLK的二分频,它的频率为2.385MHZ ,占空比为50%,OSC是14.31818MHZ,OSC和PCLK送到I/O插槽上供外围部件使用.
8284的RES输入引脚接PWRGOOD信号,PWRGOOD是电源好信号,当系统加电时,若系统 电源正负5V,正负12V四种直流电压均正常后,由于RC网络的作用会在PWRGOOD引脚上出现 50微法的负脉冲,它经8284整形后,由CLK的下降沿打入同步触发器FF2,在FF2的Q端输出 系统复位信号RESET,该信号送到8088和8087及系统其它部件作为复位信号.
8284的RDY1引脚接至DMA控制电路的等待请求信号DMAWAIT上,AEN1脚接到系统等待控制电路RDY/WAIT信号上.当DMAWAIT为高电平和RDY/WATI为低电平時,8284的READY输出 高电平,该信号与8088和8087的READY脚相连.根据8088和8087规定,当他们在T2上升沿 采样到READY信号为低电平时,就会在T2之后插入TW状态,并在每个TW开始的上升沿继续 采样READY信号.若READY还是低电平,则继续插入TW状态,直到READY引脚为高电平为止 CPU脱离等待状态,执行后续有关操作周期.
(2)地址和数据接口部件 地址锁存器由两个74LS373(U5,U7)和一个74LS244(U6) 组成.U7锁存A19~~A12,U5锁存A7~~A0,A11~~A8在CPU总线周期不发生变化,不需锁存,仅 用U6增大驱动能力.
U5和U7的控制端G接8288的ALE信号,在ALE的下降沿将其锁住.而OE脚和U6的1G脚受AENBRED信号控制.808和8087控制系统总线时,AENBRD为低电平,U5,U7和 U6允许输出.即把20位地址信息A19~~A0送上地址总线.U2是双向总线驱动器,8288的输出 DEN反相后接到U2的允许端G,在8088或8087控制总线时,DEN为高电平,G为低电平,使CPU 数据总线与系统总线和相通.8288的DT/R信号接到U2的方向控制端DIR,由它控制数据传送方向.
(3)8288的连接作用 因为系统工作于最大模式,必须使用8288.系统控制信号是 8288对8088或8087的S2,S1,S0状态信息进行译码后产生的.所以8088和8087的S2,S1,S0 脚分别接到8288的相应引脚上.8288的IOB脚接地,工作于系统总线模式.8288的AEN脚, 接到DMA应答电路的AENBRD信号上,而将CEN引脚接到同一电路的AEN上,当8088控制总线 時,AENBRD为低电平,而AEN为高电平,8288能对8088送来的状态信息译码,产生各种命令 信号,这些信号送到系统总线的接口部件,控制相应的动作.反之,当DMA控制系统总线时, AENBRD为高电平,禁止8288工作,8288输出均为高阻状态,同时应答电路送出AEN信号为 低电平,使8288输出的控制信号DEN,DT/R和ALE等均无效,使双向驱动器和数据总线脱离, 并封锁地址锁存器,此时由DMA控制系统总线.
(4)8087的连结 8087是协处理器,是专门进行浮点运算的处理器,插上8087可大大 提高IBM PC/XT的运算速度.由图7--11可见,具有8087的系统,除增加8087芯片外,并不需 增加其他逻辑电路,它与8088功用时钟电路8288,共用一套接口部件,只需将8088的QS1,QS0与8087的QS01,QS0相连,8087的BUSY接8088的TEST脚即可.
2.I BM PX/XT的等待控制电路
在IBM PC/XT系统板上,有控制准备好信号的等待控制电路.该电路的任务是:当8088 或8237DMA控制器在总线访问周期需用插入等待状态时,能分别向他们各自的READY引脚 送出低电平信号,以达到在总线周期插入等待状态的目的.
(1)IBM PC/XT需要插入等待状态的情况 8088的基本总线周期为四个时钟周期, 一般情况下,CPU与存储器是相匹配的,读写周期为4个T,访问I/O设备为5个T.8237DMA控制 器控制总线時,通道0用于动态存储器刷新需要4个T,通道1~~3用于存储器与I/O设备之间 传送,每个DMA传送周期为5个T.当与总线相连的设备数据传送速度比总线要求的速度慢时 为了不丟失数据,可让设备选中時发出等待信号申请,启动等待控制电路,插入需要的若干 个等待信号.
(2)等待控制电路组成 图7--12是PC/XT的等待控制电路,它由两个D触发器和一些 门电路组成.正常工作时,两个触发器均处于0状态,输出信号RDY/WAIT为低电平,RDY TO DMA为高电平.此时等待电路不起作用.为了启动等待控制电路,可以加两类启动信号:
将I/OCHRDY信号变低,使触发器U70置1,而使RDY/WAIT变高,RDY TO DMA信号变低, 使8088或8237DMA的READY信号变低,在T2之后插入TW状态,一直持续到I/O CHRDY信号为 高电平为止.所以当与系统总线连结的设备速度与8088或8237不匹配时,就在系统选中 该设备时,自动启动等待电路,产生低电平的I/O CHRDY信号.
在U70的11脚产生CP触发脉冲,使U70置1,产生这个脉冲的条件是:8088处在I/O读或写周期中,IOR或IOW爲负跳变信号,非动态RAM刷新的DMA操作(DACK0BRD,AENBRD,MEMR). 这些条件任一个满足,就把U70置1,使RDY/WAIT为高电平,在下一个时钟到来时,把U88 置1,它一方面输出低电平的RDY TO DMA,另一方面使U70置0,RDY/WAIT又恢复低电平,再 下一个时钟,又只U88置0.RDY/WAIT信号输入至8284的AEN1,通过8284使8088插入一个等待 状态,RDY TO DMA信号送至8237DMA,使它在DMA传送周期中插入一个等待状态.
(3)I/O写时序分析 图7--13是I/O写周期插入等待状态时序.I/O写时序共用5个 时钟周期(T1,T2,T3,TW,T4),下面分析TW的插入过程.
系统复位后,任一总线周期开始之前,U70或U88都处于0状态,即RDY/WAIT为低电平 ,而RDY TO MDA为高电平.
在T1状态结束的下降沿,写信号IOW变为有效的低电平,经U72反相,产生U70触发器 的触发脉冲,使U70变为1状态,RDY/WAIT变为高电平.而RDY TO DMA变为低电平,RDY/WAIT信号接到8284的AEN1引脚.图7--13看出,在T2的下降沿使8284的READY输出低电平.虽然RDY TO DMA接DMA控制器8237的READY引脚,但因CPU控制着总线,此信号无效.
T2的上升沿,使U88变为1,它的Q端接到U70的R端,使U70变为0状态,使RDY/WAIT爲低电平,即8284的AEN1变为低电平,但由于8284的ASYNC接低电平,所以它的READY引脚要经过T3的上升沿和下降沿后,才会变为低电平.
T3的上升沿,CPU采样自己的READY引脚,若为低电平,就在T3结束時,插入一个TW状态,同时T3的上升沿将U88清零,使RDY TO DMA变为高电平.
在TW的上升沿,CPU又去采样自己的READY引脚,此时READY已经是高电平了,所以CPU 结束等待状态,进入T4状态,结束I/O写周期.