您的当前位置:首页正文

8086系统设计资料

来源:九壹网


(此文档为word格式,下载后您可任意编辑修改!)

第1节 8086的支持芯片

第七章 8086系统设计

由微处理器组成的微型计算机,一般包括CPU系统,存储器,定时电路,I/O接口电路以及连接各部分的系统n总线等几大部分。而CPU系统除了核心器件微处理器之外,还应有保证CPU正常运行及与存储器和I/O接口相匹配的各种外围芯片,如时钟发生器,总线驱动和控制器,地址锁存器,数据收发器及系统等待控制电路 等,有的还需要协处理器或I/O处理器组成多处理机系统。

本章首先介绍由8086CPU组成的CPU系统,然后介绍组成微型机系统所需定时电路,接口电路及总线等。

第一节 8086的支持芯片

为了用8086处理器组成计算机系统,Intel公司设计了一系列支持芯片,本节介绍组成系统所必须的支持芯片,它们是时钟发生器/驱动器8284,8位输入/输出锁存器8282/8283(或74LS373),8位总线收发器8286/8287 (或84LS245),总线控制器8288。 §7.1.1 8284时钟发生器/驱动器

在8086CPU内部没有有时时钟发生器,当组成微型机系统时,所需的时钟信号由外部时钟发生器提供。 8284是专门为8086设计的时钟发生器/驱动器。在8284中,不仅有时钟信号发生器,还有复位信号RESET和 准备好信号READY产生电路,这些电路分别向8086系统提供时钟信号CLK,复位信号RESET和准备好信号READY ,还可向外界提供晶振信号OSC以及外围芯片所需的时钟信号PCLK。 1.8284的引脚

8284是双列直插式18脚组件,其引脚分配如图7-1所示。其功能为:

X1,X2:晶振输入端。

ASYNC:READY同步选择输入。ASYNC信号决定READY的同步方式。当ASYNC为低电平时,提供两级READY同步 ,若ASYNC为高电平时,提供一级READY同步。

EFI:外来时钟输入端。当F/C接高电平时,由EFI端输入外来时钟。 输入时钟信号的频率为系统时钟CLK的三倍。

F/C:时钟源选择输入端。若F/C 接低电平,则系统时钟CLK由晶体振荡器产生;若F/C接高电平,则CLK 由外来时钟产生。

OSC:晶振输出端。输出频率为晶振频率,TTC电平。

CLK:提供给整个计算机系统的时钟信号,所以称为系统时钟。CLK的频率是晶体震荡器频率或EFI端输入频率 1/3,占空比为33%。

PCLK:为外设提供的输出时钟信号,频率是CLK的1/2,占空比为50%。

RES:复位输入端,低电平有效。用于产生8086的RESET信号。由于8284 内部具有斯密特整形电路,因此RES可以是缓慢变化的脉冲信号,它经 8284内部电路整形而获得较陡的复位信号RESET。 RESET:提供给8086及整个系统的复位信号,高电平有效,其宽度由RES 决定。

AEN1,AEN2 :对应RDY1,RDY2的允许控制信号,低电平 有效。当AEN1为低电平时,RDY1 起作用,AEN2为低电平时,RDY2 起作用。在单CPU系统中AEN应接低电平,在多系统中,用这两个信号。

RDY1,RDY2:RDY高电平有效的输入信号。 可由系统总线的设备产生,它有效表示数据已收到或数据可以使用。

CSYNC:同步输入信号。用来使多个8284同步,以提供同步的CLK信号。CSYNC为高电平时,内部计数器复位 ;CSYNC为低电平时,才允许内部计数器计数。 2。8284的内部结构及工作原理

8284内部结构如图7-2所示。由CLK时钟信号产生电路,RESET复位信号产生电路及READY信号产生电路等组成。

(1).时钟电路 时钟发生电路由晶体振动器和分频器组成.当F/C脚接低电平时,它选择 晶体振荡器作为频率源,时钟频率由跨结接在X1,X2端晶体控制,振動器产生的脉冲 信号,经三分频后,成为占空比33%的时钟CLK.同时振荡器脉冲信号直接经反相器 产生OSC信号输出.CLK经二分频得到占空比为50%的PCLK信号.OSC和PCLK都可作为 外围电路的时钟.当F/C接高电平时,它选择外来脉冲信号源,由EFI端输入,用和上述 相同的方法产生CLK,PCLK和OSC信号.

在多CPU结构中,要求所有8086时钟信号同步,要求多个8284同时同相位的工作,此时 一般在所有8284的EFI端接同一个外部时钟,用CSYNC信号控制它们同步.在CSYNC为高 电平时,禁止CLK输出,CSYNC为低电平时,又重新输出CLK信号,如向多个8284输出同一个 CSYNC信号,则各CPU都会严格同步,多CPU不能使用晶体振荡器,不然各8284晶振稍有 差异,就不会同步.

(2).复位信号产生电路 系统的复位信号必须与时钟信号同步,否则将使系统工作不 稳定.8284内部有一个斯密特整形电路和一个同步触发器组成复位信号发生电路.当复位 输入信号加到RES端,经过整形加到触发器D端,在CLK信号下降使触发器置1,产生同步复位 信号RESET的输出.借助在一功能,可用单独的RC网络产生符合要求的加电复位信号.在 IBN PC/XT中,电源好信号PWRGOOF加到RES端.

(3).准备好信号产生电路 为了使存储器或者外设接口与CPU速度相匹配,需要给CPU 一个准备好信号.READY产生电路是由俩个同步触发器及一些门电路组成.输给CPU的READY 信号是由8284提供的,8284的准备好控制电路有两组输入信号,每一组都有允许信号AEN 和设备准备好信号RDY,8284设置两个准备好

信号输入RDY1和RDY2是为了支持多总线 结构,使一个8086可连接两组独立的系统总线.因为每组系统总线可能会有自己的RDY线 为了仲裁总线的优先级,RDY1和RDY2各带有允许信号AEN1 和AEN2,AEN1和AEN2由用户 设计的总线优先级仲裁逻辑电路产生.

ASYNC为同步级的选择信号,如设备准备好信号RDY1和RDY2与CLK同步输入,且能满足 定时要求时,只需采用一级同步.这时将ASYNC置为高电平,被选择的RDY1或RDY2只通过 同步触发器FF2与CLK进行一级同步后作为READY信号输出.若RDY1和RDY2为异步输入或 不满足定时要求,则需要进行二级同步.此时将ASYNC置为低电平,RDY1和RDY2需要通过 FF1和FF2与CLK进行二级同步后,才能作为READY信号输出。 图7-3是8284的工作波形图.

§7.1.2 8282/8283地址锁存器

由于8086CPU一部分地址线和数据线采用分时复用,但CPU与存储器或I/O端口交换信息 时,CPU首先要发送存儲器或I/O端口的地址,随后才能传送数据,而在大多数情况下,存 储器或外围芯片,要求在总线周期内保持稳定的地址信号,所以在数据占用总线之前, 必须将地址码暂存起来.一般在每个总线周期的T1状态,用地址锁存允许信号ALE的后沿 把地址信号锁存于地址锁存器.8086系列芯片8282锁存器,8283(反相)锁存器,或者74系列 74LS373,都是八D锁存器,都可作为8086的地址锁存芯片.

图7-4表示8282/8283锁存器的引脚.8282/8283锁存器都是带有三态缓冲的数据锁存器.当选通信号STB为高电平时,允许输入的8位数据DI0~DI7通过 锁存电路,即DO0~DO7跟随着DI0~DI7,当STB由高电平向低电平跳变时,就将输入的数据锁存起来,OE为三态缓冲器的允许输出控制信号,当OE为低电平时,内部锁存的数据从 DO0~DO7输出,当OE为高电平时,三态缓冲输出DO0~DO7呈高阻状态.作为8086地址锁存器时,一般STB端接ALE,OE端接地.

7.1.3 8286/8287八位并行双向总线驱动器

由于CPU数据总线的负载能力有限,当挂在数据总线上的设备较多时,为了使系统能 稳定的工作,应提高数据总线电流驱动的能力和承受电容负载的能力,为此要使用数据 功率放大器,并且要求这种功率放大器能够双向传送数据,这种放大器称为数据收发器 或驱动器.

8086系列芯片8286(不反相)和8287(反相)及74LS245都是8位双向总线驱动器,图7-6 和图7-7是8286/8287的引脚及内部电路图.

8286/8287有8路双向缓冲电路,8286中的每一路双向缓冲电路,是由两个不反相的 三态缓冲电路反并联组成,而8287具有反相的作用.OE和T是缓冲器控制信号输入端.T 为传送方向控制信号端,当T爲高电平时,数据从A向B方向传送;当T为低电平时,数据从 B向A放向传送,该引脚一般接在8086的DT/R端,OE

爲允许输出控制端信号,当OE爲高电平 时,缓冲器呈高阻状态,不允许数据通过,只有OE为低电平时,才允许数据传送,OE一般接 在8086的DEN端.

§7.1.4 8288总线控制器

8086CPU工作于最大组态时,它不能提供总线控制信号,而由总线控制器8288对CPU 提供的状态信息S2,S1,S0进行译码产生总线控制信号,所以在多CPU系统,为了将几个 CPU接到同一组系统总线上,或为了给8086提供几组系统总线,都要使用8288总线控制器.

1.8288总线控制器的基本功能

(1)能对CPU输入的状态信号S2,S1,S0进行译码后输出对应的状态命令,以确定CPU 执行何种操作.见表7-1.

S2 0 0 0 0 1 1 1 1 S1 0 0 1 1 0 0 1 1 S0 0 10 0 1 0 1 0 1 8086总线周期 中断响应 读I/O端口 写I/O端口 暂停 取指令代码 读存储器 写存储器 过渡状态 8288输出命令 IORC IORC IOWC AIOWC MRDC MRDC MWTC AMWC (2)可以选择8228是工作于系统总线方式,还是I/O总线方式,以产生总线控制信号 或仅访问I/P总线控制信号.

(3)可以使总线控制信号浮空,以允许DMA操作,或仲裁总线优先权.

(4)可以提供超前的学控制信号AIOWC和AMWC.这是专门为慢速存儲器或I/O设备而 设计.

(5)可使控制信号无效,作为多总线或多CPU结构中实行存储器保持逻辑的一种方式. (6)可以产生地址锁存信号ALE,及双向总线驱动器的控制信号DEN和DT/R. (7)产生简单或级联中断逻辑所需的控制信号。

2.8288的引脚及内部结构

8288是20根引脚双列直插式组件,其引脚及内部结构如图7-8所示.它由四大部分 组成:状态译码器,控制逻辑,命令信号发生器及控制信号器. (1)输入信号

S2,S1,S0:它们是总线周期状态输入信息,来自8086或8087的状态信息输出端. 8288对这些信息进行译码,在适当的时候产生命令和控制信号.

CLK:来自8284的时钟输入信号,用来同步命令信号和控制信号的时序.

AEN:总线命令允许控制信号.它是为子支持多总线结构的输入信号.在多总线 结构中,8288与8289的AEN端相互联络,以满足多总线的同步条件.当AEN变为低电平的 时间大于115NS后,8288总线控制器的命令输出端才开启,而在115NS以内,8288不发任何命令,所以这段时间内可以进行总线切换.若AEN为高电平,就会使输出端变为高阻状态。若8288处于I/O总线工作方式(IOB为高),则AEN不会影响I/O输出命令. CEN:命令允许输入信号.当系统使用两个以上8288芯片时,利用此信号对每个 8288的工作状态进行控制.CEN为高电平时,允许8288输出全部信号;CEN为低电平时,所有总线命令信号和DEN,PDEN被强制爲无效.所以当系统中有多片8288时,只有正在控制操作的8288上的CEN爲高电平,其他的CEN爲低电平,这个特性可用来实现存储器分区,消除系统总线设备和驻留总线设备之间的地址冲突,即用CEN输入端的电平变化对8288起命令限器的作用.

IOB:I/O总线方式控制输入信号,当IOB为高电平时,8288工作于I/O总线方式 ,只用来控制I/O端口时,才会使IORC,INTA信号有效,而在访问存储器时,不进行任 何操作。在这种方式下,MCE/PDEN输出PDEN信号,可用DT/R和PDEN信号控制I/O收发器 。在多CPU系统中,若某些外设从属于某一个CPU,则使用I/O总线方式。此时不必考虑 AEN信号的状态,但是选用I/O总线方式时,由于没有提供总线仲裁机构,所以不能用I/O命令来控制系统总线上的I/O设备。当IOB接低电平时,8288工作于系统总线方式 ,可同时控制存储器和I/O端口,MCE/PDEN输出MCE信号。 (2)输出信号

MRDC,MWTC:存储器读写控制信号,低电平有效。MRDC有效表示存储器将 数据送上数据总线;MWTC有效表示将数据总线上的数据写入存储单元。

IORC,IOWC:I/O设备读写信号,低电平有效。IORC有效表示I/O设备将数据 送上数据总线,IOWC有效表示将数据总线上的数据写入I/O设备。

AMWC,AIOWC:存储器和I/O设备超前写信号。AMWC比MWTC约提前一个时钟周期。AIOWC比IOWC提前一个时钟周期。

INTA:中断响应信号,低电平有效。用它通知申请中断的设备,并取回中断 矢量。 ALE,DT/R:两信号功能与8086单CPU系统对应信号相同。 DEN:与8086CPU的DEN功能相同,相位相反。

MCE/PDEN:这是双功能端。当IOB接低电平时,输出MCE信号。MCE在中断响应 总线周期的T1状态有效,作为把中断控制器8259A的级联地址送上地址总线时的同步信号。在较大的微型计算机系统中,如果有8259A优先级中断主控器和8259A优先级中断从控制器,则可用MCE控制主控器,而用INTA控制从控器.当IOB接高电平,该端输出PDEN 信号,作为响应I/O总线数据收发器的允许信号.

第2节 8086系统组成

第二节 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%, 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写周期.

第3节 多处理器结构

第三节 多处理器结构

在计算机系统中,具有两个或两个以上同时执行指令的部件称为多处理器结构.增加的处理器可以是专用处理器,如IBM PC/XT中用的协处理器8087是专门用来进行浮点运算的 也有的是通用处理器.随着单片微处理器性能价格比提高,使用多处理器比使用集中控制 式单个处理器更为经济有效,且应用灵活,宜于分成模块结构,便于扩充或维修.

8088的最大模式是专为实现多处理器而设计的.最大模式提供的多个处理性能适合于三种基本配置:协处理器配置,紧耦合配置和松耦合配置.前两种配置十分相似,二者的CPU和支持处理器不仅共享整个存储器和I/O子系统,而且还共享同一个总线控制逻辑和 时钟发生器,这这两种配置中,8086为主控处理器,支持处理器为从处理器,由主CPU提供 总线访问和控制,支持处理器向CPU发出总线请求信号.紧耦合配置中,支持处理器可以 独立的工作,但协处理器不能独立操作,必须直接与CPU通信.图7--14是紧耦合配置图.

松耦合配置用于中型和大型系统中,系统中每个模块都可以作为系统总线的主控设备几个模块可共享系统资源,而系统总线控制逻辑必须解决总线争用问题.处理器的通信可通过共享资源来实现.同时每个模块还可以有自己的存储器和I/O设备. §7.3.1 协处理器配置

虽然8086CPU功能很强,但其指令系统不能有效的满足某些复杂应用的要求.在这种应用 中,配上协处理器,以便扩充指令系统完成特殊的计算任务,如协处理器8087就能快速实现 浮点运算.协处理器配置只需8086工作在最大模式,不需要增添其他逻辑,CPU和协处理器 都执行同一个用8086扩充指令系统编写的程序.若指令由协处理器执行,则CPU除了可能 要为协处理器取出操作数之外,并不需执行其它操作. 协处理器执行指令时,CPU和协处理器之间的相互作用如图7--16所示.系统在执行程序 时,只有主CPU能取指令,协处理器能够接收所有指令并监视主CPU指令执行过程.主CPU 在执行程序時,若需要协处理器工作,程序中安排一条交权指令ESC,该指令唤醒协处理器 并告诉协处理器必须执行的操作和运算.主CPU和协处理器同时对该指令译码,此时主CPU 可能转到执行下一条指令,或者为协处理器读取存储器操作数的

第一个字,而协处理器向 主CPU发高电平信号(忙)到TEST引脚,并执行指定的操作,二者并行工作.若主CPU需要协 处理器操作结束,或者让协处理器完成另外的操作,主CPU要反复执行等待指令,当协处 理器完成操作后,向主CPU发低电平信号到TEST引脚,主CPU就可顺序执行后序指令.协处理 器和主CPU的连接图见图7--17,它们共享同一个时钟发生器和总线控制器.协处理器必须 具有如下功能: (1)当ESC指令在译码和和执行期间发生错误时,它将发出中断请求信号.

(2)当附加的数据必须从存储器中读出或写入时,协处理器能通过主CPU的RQ/GT引脚 发出总线请求,以窃取总线周期.

(3)当协处理器忙时,它必须给主CPU的TEST引脚发出一个高电平信号.

§7.3.2 紧耦合系统

8086还可以和独立的处理器连接,形成进耦合多处理器系统.在这个系统中CPU和独立 处理器共享同一个时钟发生器和总线控制逻辑.独立处理器要取指令或者数据,向CPU的 RQ/GT引脚请求总线访问.主COPU和独立处理器工作过程如图7--18所示.相互之间通信是 通过共享存储空间实现的.主CPU在存储器为独立处理器准备一个描述待执行任务的控制 块然后用输出指令把任务分配给独立处理器.独立处理器从共享存储器得到任务和程序 入口地址并执行用自己的指令系统编写的程序.与主CPU并行工作,独立完成任务.任务 完成后,独立处理器向主CPU发中断请求或修改存储器的状态单元的内容,通知主CPU.

图7-19给出8086COPU与独立处理器8089组成的紧耦合系统.它们共享总线,当一个处理器在使用总线时,其它的处理器的总线位于高阻状态.独立处理器通过主CPU的RQ/GT 引脚请求总线.为了唤醒独立处理器,主CPOU要执行一条输出指令,指令的端口地址分配 给独立处理器的一个端口.

§7.3.3 松耦合系统

松耦合系统中,每个CPU有自己的总线控制逻辑部件,总线裁决通过扩展总线控制逻辑和 增加外部逻辑电路来解决,并且这部分逻辑电路对所有模块是公用的.几个CPU能形成 一个很大系统,每个COPU还可接协处理器或独立处理器.松耦合系统有以下优点:

(1)系统吞吐量高.

(2)系统可按模块形式设计,每个总线主控模块是一个独立的部件,扩充方便. (3)一个模块出故障不会破坏整个系统,易于检查或维修.

(4)每一个总线主控设备可以有局部总线,用于访问专用的存储器和I/O设备,这样可 进一步提高并行处理能力.

松耦合系统中,多个总线主控模块能访问共享的系统总线,由于每一个主控模块独立 运行,必须增加控制电路解决总线裁决问题.这种电路称為总线访问逻辑部件,它的职责 是确保在某一时刻只有一个总线主控设备控制系统总线,同时发生的总线请求根据优先权 来解 决.图7--20是三种优先级排队方法连结图.它们是链形排队法,查询法和独立请求法.

链式优先权排队法中所有的主控模块用同一条线请求总线,若总线不忙,则控制器 发出总线同意信号以响应总线请求.同意信号串行的通过每个主控模块,直到它遇到请求 访问的另一个主控模块为止,这个模块阻止了总线同意信号往下传送,使忙线有效.所以 离控制器最近的模块优先权高.这种方法简单,成本低,但速度慢.

查询法也使用一条请求线,当控制器响应请求时,产生一系列模块地址到地址编码线 当提请求的模块识别到的地址时,激励忙线,并开始使用总线.

独立请求法是并行方法解决优先权问题.每个模块有一个总线请求和同意线,且分配 给一定优先权,控制器有一个优先权译码器,它选择具有最高优先权的请求并返回相应 同意信号,这种方法速度快.INTEL8289总线裁决器是专门为提供总线联络访问信号而设计的.

第4节 可编程定时和计数器

第四节 可编程定时和计数器

在控制系统中,经常需要有一些实时钟以实现实时或延时控制,如定时启动,定时检测,定时通信等,计数器 对外部事件计数.实现这些要求经常有三种方法:

(1)设计数字逻辑电路,用硬件实现定时或计数功能,如用NE555芯片实现定时,用74LS163电路实现计数等.

(2)软件定时,让CPU反复执行一段程序,程序段所需时间乘以循环次数就是延时时间.这种方法通用性, 灵活性好,但占用CPU的时间,降低CPU的利用率.

(3)可编程定时器电路,可用软件改变定时范围,并与CPU并行工作,功能强,使用灵活.

各种系列的微处理器芯片中都有可编程的定时计数电路,如I8253和I8254,Z80CTC,M6840等,本节主要介绍 I8253定时计数电路. §7.4.1 概述

Intel 8253是一种具有以下三个独立的16位计数器的可编程器件,可以用来定时和计数.

1.基本功能如下:

(1)一片上有三个独立的计数器通道. (2)每个计数器的计数频率范围为0~2MHZ. (3)每个计数器都可以按照二进制或十进制计数. (4)每个通道有6中工作方式,可由程序设置或改变. (5)所有输入输出都与TTL兼容.

(6)除具有计数或定时功能外,还可用来作为可编程频率发生器,二进制分频器,数字单稳,以及复杂的电机控制器等.

2.8253的内部结构如图7-21所示.

数据总线缓冲器是8253与CPU数据总线连接的8位双向三态缓冲,CPU用输入输出指令对8253进行读写的 所有信息都是通过这个缓冲器传送的.如CPU向8253写控制字,写计数初值或从8253读计数值等均通过总线 缓冲器.

读/写逻辑是8253内部操作的控制部件,它接收来自系统总线的输入信号,然后产生控制信号.各控制信号及作用为:

CS:片选信号,当CS为低电平时,8253被选中,允许CPU对8253进行读写操作.否则,数据总线缓冲器处在三态,与系统总线脱开,不能进行读写操作.

RD和WR:读和写信号,RD为低电平时,计数值读入CPU,WR为低电平时,CPU可向8253写入控制字和计数初值,这两个信号是控制三态缓冲器传送方向的.

A0和A1:通常接到地址总线的A0和A1上,用来选择控制字寄存器和三个计数器之一.各个端口的读写操作 选择如表7-2.

CS 0 0 0 0 0 0 0 0 1 0 RD 1 1 1 1 0 0 0 0 * 1 WR 0 0 0 0 1 1 1 1 * 1 A1 0 0 1 1 0 0 1 1 * * A0 0 1 0 1 0 1 0 1 * * 写入计数器0 写入计数器1 写入计数器2 写入控制寄存器 读计数器0 读计数器1 读计数器2 无操作 未选中三态 无操作 控制字寄存器在8253的初始化编程时,由CPU写入控制字,用来控制通道工作方式,计数方式等. 计数器0,1,2三个计数器/定时器通道,内部逻辑结构相同,每一个都是由一个16位的可预置初值的减法 计数器组成,三个通道操作完全是独立的.每个通道都是按二进制或十进制计数,从预置初值开始减一计数, 当计数器减到0时,从OUT输出端输出一个信号,在计数过程中,计数器受门控信号GATE的控制,计数器的输入 和输出及门控信号之间的关系取决于工作方式. 3.引脚

8253是24引脚双列直插式器件,其引脚如图7-22所示.数据总线D0~D7及控制线RD,WR,A0,A1,CS是与 系统总线相连的.除此之外,每一个通道还有三条引线,它们是CLK,GATE和OUT.CLK是输入计数脉冲线,

输入 时钟脉冲周期要大于380ns.GATE是门控信号输入线,GATE为高电平时允许计数器工作.GATE为低电平时,禁 止计数器工作.OUT是输出綫线,当计数器減到0时,OUT线有输出,输出波形决定工作方式. §7.4.2 8253的初始化编程

使用8253必须首先进行初始化编程,初始化编程的步骤是:先写入每一个计数器的控制字,然后写入每个计数器计数初值.控制字的格式如图7-23所示.控制字占用8位,其各位的意义如图7-23所示。

D7,D6是计数器选择,决定这个控制字是哪个通道的控制字.由于三个通道是独立工作的,所以需三个控制 字寄存器保存三个写入的控制字.但写入时的地址是相同的(A1A0=11),由控制字的D7,D6分别指定不同的通道.

D5,D4是控制数据读写格式.当CPU向计数器写入初值或读出当前值时,可以只读写低8位,或只读写高8位, 或读写16位,这些功能由D3,D4控制.

D3,D2,D1是工作方式选择,由这三位可选择16种不同的工作方式.

D0位用于数制选择,当D0=0时,计数器按二进制计数,计数范围是0000H~FFFFH.当D0=1时,计数器按二-十 进制计数,计数范围为0000~9999. §7.4.3 8253的工作方式 1、方式0,完成计数时中断

在这种方式下,当把控制字写入控制寄存器后,OUT输出端变低,计数初值装入该计数器后,OUT仍为低, 也不计数.当GATE输入高电平时,计数器开始递减计数.并在计数过程中OUT一直为低电平,当计数器减到0 时,OUT输出变高,其工作波形见图7-24,图中写入的初始值为4.方式0有如下特点:

(1)计数器只计一遍,当计数到0时,计数器不再装入初始值重新计数,输出保持高电平,直到CPU又写入 一个新计数值,OUT变低开始新的计数.

(2)计数过程中,可由GATE信号控制暂停计数,即GATE=0时暂停计数,GATE=1时又接着计数,但GATE不 影响OUT的状态.

(3)计数过程中可重新装入计数初值,若是按8位计数,在写入新的计数初值后,计数器按新的计数初值 重新开始计数.如果是16位计数,在写入第一个字节后,计数器停止计数,写入第二个字节后,计数器按新的 计数值开始计数.

(4)8253内部是在CPU写计数值时WR的上升沿写入时常寄存器,在WR上升沿的下一个CLK脉冲,才将计数值 从时常寄存器装入计数器,计数器才开始计数.所以若设置初值为N,则输出OUT是在N+1个CLK脉冲之后才变高 的.这个特点在方式1,方式2,方式4和方式5也是同样的.

2、方式1,可编程单稳

在这种方式下,CPU写入控制字后,OUT变为高电平,CPU写入计数值后,计数器并不计数,在GATE信号的 上升沿的下一个CLK的下降沿开始计数,OUT变为低电平,直至递减计数器全为0时,OUT变为高电平,输出一个 单脉冲,若GATE信号再由低变高,可以再产生一个单脉冲,相当于一个单稳,图7-25是方式1的工作波形.方式 1的特点是:

(1)输出单脉冲的宽度是计数初值N乘以输入脉冲周期.

(2)当计数到0后,可再次由外部触发启动,可再输出一个同样宽度的单脉冲,而不需要重新输入一个计数 初值.

(3)计数过程中,CPU可改写计数值,但计数过程不受影响,计数将按原来的计数值减到0,若再次启动,则 后写入计数值起作用. 3.方式2,分频脉冲产生器

在这种工作方式下,8253相当于一个分频脉冲产生器,如计数值为N,则每输入N个CLK脉冲,输出一个脉冲,脉冲宽度等于CLK的周期.其计数过程如图7-26所示.方式2的主要特点是: (1)不要重新设置计数值,通道能连续工作,输出固定频率的脉冲.

(2)计数过程可由GATE信号控制,当GATE为0时,暂停计数,当GATE变为高电平的下一个CLK脉冲又重新计数

(3)在计数过程中,CPU可随时改变计数值,当计数器减到0后,又按新的计数值分频. 4.方式3,分频方波产生器

方式3输出的是周期性方波,若计数值为N,则输出方波的周期是N个CLK脉冲周期.所以称为方波产生器. 在这种情况下,CPU写入控制字后OUT变高,写完计数值后自动开始计数,输出保持为高.当计到一半计数值时 输出变低,直至计数到0,输出又变高,重新开始计数,工作波形如图7-27所示.方式3的主要特点是:

(1)当计数为偶数时,装入计数值后,每一个CLK脉冲使计数器减2,计到0后,一方面使OUT状态改变,另外 计数值又装入计数器,这样反复工作.若计数值为奇数第一个CLK脉冲使计数器减1,以后与偶数时的工作情形 相同.所以N值为奇数时,OUT有(N+1)/2个CLK脉冲周期为高,有N/2个CLK脉冲周期为低. (2)GATE信号可以控制计数.GATE=0时停止计数,GATE=1时,允许计数. (3)在计数期间装入新计数值不影响原来的计数过程. 5.方式4,软件触发选通

当写入控制字后,OUT变高,写入计数值后,立即开始计数(相当于软件触发启动),计数器计到0时,OUT变 低,经过一个脉冲周期后,OUT又变高,计数器停止计数,所以是一次性的,当写入新的计数值后才开始新的计数, 工作波形见图7-28.方式4的特点为: (1)要求GATE一直为高电平才能软件触发.

(2)若在计数过程中改变计数值,则按新计数值重新开始计数. 6.方式5,硬件触发选通

在这种方式下,写入控制字后,OUT变高,写入计数值后,计数器不计数,而由GATE信号上升沿触发计数.直到 0后,输出变低,经过一个CLK周期后,OUT又变高,并停止计数,等下次GATE触发器才能计数,如图7-29所示.

§7.4.4 8253在IBM PC/XT中的应用

在IBM PC/XT计算机中,应用一片8253,它的三个通道的作用为:

通道0用作定时器,为系统提供一个恒定的时间标准.初始编程使通道0按方式3工作,每秒产生198.2次 输出信号,该信号送到8259中断控制器的IRQ0输入端.每55MS产生一次中断请求,8088对其计数,用来计算时间. 通道1用在动态RAM刷新定时,每隔15.12微秒产生一次输出信号,请求动态RAM刷新.OUT1输出产生DMA请求信号 送8237,由8237对动态RAM刷新.通道2编程为方波产生器,输出方波送到扬声器,用程序可改变方波频率和延续 时间,就可改变扬声器的声调和发声时间.

图7-30是8253在PC/XT的接线图,三个计数器的输入脉冲都是PLCK的二分频,而PCLK是8284时钟发生器, 频率为2.38MHZ,所以三个计数器的输入脉冲频率均为1.19MHz.GATE0和GATE1都接在5V上,使通道0和1写入 计数值后开始计数.GATE2接在并行接口8255的PB0上,由并行接口控制其工作.

通道0:地址为40H,控制字为36H,即工作方式3,二进制计数,计数初值为0. 通道1:地址为41H,控制字为54H,工作方式2,二进制计数,计数初值为12H.

在PC/XT计算机中,8253分配地址为40~~43H,BIOS对8253进行初始化编程,各通道工作状态为:

通道2:地址为42H,控制字为B6H,工作方式3,二进制计数,计数初值为533H,输出方波频率为1KHZ. 由于通道0的计数常数为0,而8253是16位减法计数器,所以实际计数常数是65536.因此通道0输出方波信号周期T0=55ms。通道1的计数常数为12H,所以通道1输出方波信号周期T1=15.12μs。通道2计数常数为0533H,输出方波信号周期T2=1.118ms,所以喇叭输出频率为894Hz的声音.

第5节 输入输出接口

第五节 输入输出接口

如第六章所述,CPU要通过接口电路才能和外设交换信息.一般在接口电路中要有输入输出数据锁存器和 缓冲器,要有状态和控制命令寄存器,还要有地址译码器和控制电路,以及中断控制逻辑电路.这样才能解决 CPU与外设时序匹配问题,对外设实施控制,保证CPU于外设正确可靠的交换信息.

随着大规模集成电路的发展,生产了许多通用的可编程接口芯片,这些接口芯片按数据传送方式可分成 并行接口和串行接口两大类.如Z80PIO,I8255,MC6821均为并行接口芯片,而Z80SIO,I8251,I8250,MC6850等 均为串行接口芯片,本结只讨论并行接口芯片,有关串行接口芯片在接口电路一书中介绍.

可编程并行接口芯片,在实现方法上各厂家虽各有不同,但器件的基本结构和基本功能大体相同,一般 有以下几个功能:

(1)有两个或两个以上的含有锁存器和缓冲器的数据端口.

(2)每个数据端口都有和CPU交换数据用的状态和数据信息,也有与外设交换信息用的状态和控制信息.

(3)通常每个数据端口还具有能用中断方式与CPU交换信息所必需的电路. (4)选片和控制电路.

(5)都有控制字寄存器,这些寄存器可由CPU写入.即用程序可选择端口,端口传送方向,交换信息的方法等.

INTEL 8255A 是一个典型通用的可编程并行接口芯片,本节作详细介绍. §7.5.1 8255A的内部结构

8255A的内部结构如图7-31所示.由以下几部分组成:

1.数据总线缓冲器,这是一个双向三态缓冲器,是8255A与系统总线的接口,CPU与8255A之间的数据传送 ,状态和命令传送都通过它.

2.读/写控制逻辑,它与CPU的地址总线A1,A0以及有关控制信号相连(RD,WR,RESET,IO/M),由它控制把CPU的控制命令或输出 数据送数据端口,或者将外设的状态和输入数据送CPU.CS片选信号,CS=0时允许CPU与8255A交换信息.RD 和WR读/写信号,RD=0时,CPU读入8255A的数据或状态.WR=0时,CPU将数据或状态送入8255A.RESET复位信号, RESET=1时,清除控制寄存器,并使所有端口为输入方式.A1,A0端口寻址信号,由此两位选择三个端口和一个 控制寄存器.表7-3说明了A1,A0和RD,WR及CS组合所实现的功能.

A1 0 0 1 0 0 1 1 * * A0 0 1 0 0 1 0 1 * * RD 0 0 0 1 1 1 1 * 1 WR 1 1 1 0 0 0 0 * 1 CS 0 0 0 0 0 0 0 1 0 功能 端口A->数据总线 端口B数据总线 端口C数据总线 数据总线端口A 数据总线端口B 数据总线端口C 数据总线控制字寄存器 数据总线为三态 数据总线为三态

1 1 0 1 0 非法状态 3.数据输入端口A,B,C是三个8位输入输出端口.端口A具有一个8位数据输出锁存和缓冲器,一个8位数据输入锁存器.端口A具有一个8位数据输入/输出锁存缓冲器和一个8位数据输入缓冲器.端口C具有一个8位 数据输入缓冲器.通常端口A和B作为数据输入输出端口,端口C作为控制和状态信息端口,在方式控制字的 控制下,端口C可分为两个四位端口,每个端口包含一个四位锁存器.

4.A组和B组控制电路,这是两组根据CPU送来的控制字控制8255工作方式电路,A组控制端口A和端口C的 高4位,B组控制端口B和端口C的低4位.

§7.5.2 工作方式

8255A有三种基本的工作方式,他们是方式0(MODE 0),基本输入/输出方式;方式1(MODE 1),选通输入/输出方式;方式2(MODE 2),双向传送. 1.方式选择控制字

使用8255A时要对8255进行初始化编程,CPU向8255A的控制寄存器输出一个方式选择控制字,由它来决定8255A三个功能和工作方式.控制字的格式如图7-32所示.可以分别选择端口A和端口B的工作方式.端口C则分成两部分,高四位随端口A,低四位随端口B,端口A可有三种工作方式,而端口B只能工作于方式0和方式1.

2.按位置位复位功能

端口C的每一位都可由输出指令置位或复位,这一功能主要用于控制,实现这一功能的控制字格式见图 7-33.要注意的是,端口C按位置位复位的控制字是写到控制寄存器的地址.例如,下面几条指令使端口C的 BIT 1置0,而使BIT 7置1,设控制寄存器地址为CNTRL. MOV AL,02H

OUT CNTRL,AL ;置PC1为0 MOV AL,0FH

OUT CNTRL,AL ;置PC7为1

§7.5.3 8255A的工作方式 1.方式0的功能

方式0是一种基本的输入或输出方式,在这种工作方式下,三个端口的每一个都可由程序设定为输入或 输出端口,但这种方式沒有规定固定的用于应答式的联络信号线,基本功能为:有两个8位端口和两个4位 端口(C),因此,输入输出可有16种不同的组合;任何一端可作为输入或输出,输出是锁存的,输入是不锁存的. 在这种方式下,CPU可用输入输出指令读或写,可用作无条件传送接口电路,也可用作条件接口传送电路, 此时端口C某些位作端口A和B的控制或状态位.方式0的输入输出时序如图7-34所示.

输入时,当外设准备好一个数据,CPU执行一条输入指令便可从8255读入这个数据.但RD的宽度要大于300ns,而且地址信号要超前RD信号TAR,这样在RD有效后经TRD时间,数据即可稳定在数据总线上. 输出时,CPU用输出指令将数据输出到8255数据输出锁存器,并传给外设,要求WR宽度大于400ns,且地址信号要超前WR信号TAW,并在WR信号结束后保持TWA时间(TWA大于70ns).另外输出数据必须在WR结束前TDW时间内有效(大于100ns),并在WR信号结束后保持TWA时间(接口). 2.方式1的功能

这是一种选通的I/O方式,在这种方式时,端口A和B仍作为数据的输入输出端口,但同时规定端口C的某些 位用作控制或状态信息.在方式1工作时,三个端口分成AB两组,每组包含有8位数据口及三条控制和状态线. 每组即可输入也可输出.当端口A和B工作在方式1输入时,其控制字格式及信号连接如图7-35所示.

其中各控制信号的意义如下:

STB(Strobe):选通输入,低电平有效.这是由外设提供的输入信号,当其有效时,将输入设备送来的数据 送入输入锁存器.

IBF:输入缓冲器滿信号,高电平有效,是8255的输出信号,当其有效时,表示数据已输入至输入锁存器,他 由STB信号置位,RD信号上升沿复位.

INTR:中断请求信号,高电平有效,是8255的输出信号,向CPU申请中断请求.当STB,IBF和IBTE都为高电平 时被置为高,由RD信号下降沿清除.

INTE A:端口A中断允许信号,由PC4的置位复位控制,PC4=1时允许中断. INTE B:由PC2的置位复位控制.

方式1的输入时序见图7-36.当外设准备好数据,用STB信号把数据送入输入锁存器.STB的宽度至少为500 ns,STB的下降沿经过TSIB时间(TSIB<300ns),IBF信号有效,输给外设,阻止外设输入新的数据,也可供CPU 查询.STB信号结束后经TSIT向CPU发出INTR信号.CPU响应中断并转入中断服务程序,执行输入指令发出RD信号,把数据读入CPU,并清除INTR,使IBF变为低电平.

方式1输出工作情况如图7-37所示:

控制信号如下:

OBF(Output Buffer Full):输出缓冲器满信号,低电平有效,送给外设信号.当有效时,表示CPU已将数据送到输出锁存器,由WR上升沿置成低电平,ACK使其变高.

ACK(Acknowlege):外设送来的响应信号,低电平有效,表示数据已被外设取走.

INTR:中断请求信号,当外设已取走数据,向CPU中断请求,要求CPU送下一个数据,当ACK,OBF和INTE均为 高电平时,INTR变高,由WR的下降沿复位. INTE A由PC6置位复位,INTE B由PC2置位/复位.

方式1的输出时序如图7-38.方式1用中断方式输出時,由CPU响应中断开始,在中断服务程序,CPU执行输出 指令时发出WR信号,将数据送到输出锁存器,在WR的上升沿产生OBF信号,由OBF将数据送到外设,外设收到数据 后,发回ACK信号,它使OBF变高,使INTR变高,又向CPU申请中断.

3.方式2的功能

方式2可使外设在单一总线上即可接收数据也可发送数据.只有端口A有这种功能,端口C提供5位控制状态 信息。各控制信息信号的信息与方式1输入输出时信号意义相同.其中INTE A表示允许输出中断,由PC6置位/复位控制,INTE B允许输入时中断,由PC4置位/复位控制.

方式2的工作时序就是方式1的输入时序与输出时序的组合,输入和输出都可请求中断.

当端口A工作在方式2时,端口B可工作在方式0或方式1,当端口B工作在方式1时,PC0是INTRB,PC1是IBFB或 OBFB,PC2是INTE B,可以用输入指令读入端口C,检查各位的状态.

§7.5.4 8255A的应用

在IBM PC/XT中,有一片8255A三个端口全部工作在方式0,起电路如图7-40所示.

1.PA0~PA7在加电自检时工作于输出状态,输出当前部件的标志信号,若检测到关键性故障停机时,测量PA口的电平可确定发生故障的部件.PA口主要输出下列被检部件标志: PA2 PA1 PA0

0 0 1 BIOS累加和错 0 1 0 8253错 0 1 1 8237错 1 0 0 前16KB RAM错 1 0 1 8259错 1 1 0 CRT適配器

在正常的工作时,CPU通过PA口读取键盘输入扫描码.

2.PB口输出系统内部控制信号,通过编程设置,可以控制系统内部某些电路的动作. PB0输出TIM2GATESPK信号,送到8253的GATE2,控制8253通道工作. PB1输出SPKDATA信号,控制扬声器发声.

PB3输出控制对系统开关DIP的读取,当PB3=0时,允许PC口读取DIP的低四位,PB3=1时,允许PC口读取DIP的高四位.

PB4输出ENBRAMPCK信号,是允许系统板RAM进行奇偶校验信号,送到奇偶校验电路.

PB5输出ENABLE I/O CK信号,送到NMI控制电路,PB5=0时,允许I/O通道中奇偶校验结果送入NMI控制电路.

PB6和PB7是键盘接口电路的控制信号.

3.PC口读取系统内部状态,其中PC0~PC3读取系统配置开关DIP的设置状态,PC4读取扬声器的状态,PC5 读取8252的OUT2状态,PC6读取I/O通道中奇偶校验状态,PC7读取系统板上RAM奇偶校验的结果.

第6节 总线结构

第六节 总线结构

一个计算机系统由主机和外设组成,而主机又是由各种大规模集成电路芯片为核心的多种插件组成。所以插件与插件之间,同一插件芯片与芯片之间,或者系统与系统之间都需要用通信线路连接起来。所谓 总线,就是若干互连线的集合。由它构成芯片之间,插件之间及系统之间标准信息通路。一块插件中芯片中的互连线称为芯片总线,插件与插件之间的互连线称为内总线或系统总线。如CPU板与存储器板,DMA 控制器板或接口板之间的连线就是内总线。系统与系统之间的互连线称为外总线或通信总线,如微机系统与微机之间,微机系统与仪器仪表之间等,这种总线不是微机系统所特有的。图7-14是三种总线的示意图总线技术在微型计算机中得到广泛的应用。

其主要原因是:

1.用总线连接的系统,结构简单清晰,扩充与更新方便,便于维修.例如,在规模扩充时,只需往总线上多 插几块同类型的插件板;在功能扩充时,只需插入符合总线标准的插件板,在系统更新时,一般只需更换插件。出现故障时,可以用同类插件替换寻找故障,查到后,换一块好的插件即可.

2.简化硬件,软件的系统设计,硬件设计時,只需按照总线规范设计插件板,且所设计的插件板具有很好的 互换性和通用性,便于大批量生产.有利于提高质量和产品系列化.从软件角度看,插件式硬件结构带来了 软件设计的模块化,有利于节约软件调试工时,且模块化程序可为多用户重复使用.

3.采用总线标准,有利于微型机系统模块间接口的标准化,便于用各公司生产的互相兼容的模块组成系统 可使用户将不同厂家买来的话原型产品装入自制或外购的机箱方便灵活的构成各种系统,为微型机在各个领域 的应用提供了条件.

所以一个微型机系统中,所有的地址,数据和控制信号都要通过总线传送,总线对整个系统的组成和结构产生很大影响.目前在美国和其它国家使用着各种不同的微机系统总线,美国IEEE作为标准草案推荐 的系统总线有S-100总线,MULTLBUS总线,在工业控制中,多采用STD总线,这些总线将在接口一书中介绍 由于IBM PC系列机在国际市场上销售量大,INTEL公司为该机配置了62线总线,每个PC机上留有5~8个 总线插槽,便于PC机内存扩充及配置各种不同接口板,组成不同的机器.下面介绍这种总线.

IBM PC总线也叫做IBM PC的输入输出通道,它是8088微处理器总线的一个扩充,是PC机自己定义的一种 总线.它包括8位的双向数据总线,20位的地址总线,6根中断信号线,3根DMA控制线,4根电源线,以及其它各种 控制线共62根,其引脚分配见图7-42所示.

这些信号线按功能分成以下5类: 1.地址线A19~A0(20根)

地址线用来指示内存地址或输入输出设备地址,当用来指示输入输出地址时,A19~A10线无效,仅用A9~A0 表示,故IBM PC通道上I/O设备的编址可达1024个.地址线上的信号(地址码)可以由CPU生成,也可以由DMA控制 器生成,A19为最高位,A0为最低位,寻址空间可达2的20次方,即1MB. 2.数据线D7~D0(8根)

8根数据线用来在中央处理器,存储器和各种输入输出控制器之间传送数据,他们是双向的,每次可传送 一个字节. 3.控制线(21根)

(1)中断请求线IRQ2~IRQ7(6根).这些线可作为输入输出控制器向中央处理器发出中断请求之用. (2)直接内存请求线DRQ1~~DRQ3及其响应信号低DACK0~~低DACK3(7根).用作外部设备请求DMA服务. 当某外部设备控制器需要直接与内存交换数据时(例如软磁盘的读或写操作),相应的请求线电平 当DMA收到请求信号后,即发相应的认可信号DACK1~DACK3,通知外设控制器准备好传送数据,并使请求线变为低电平.DACK0专用来刷新系统动态存储器.

(3)读写信号IOR,IOW,MEMR,MEMW(4根),其中和是I/O接口输入和输出控制,指示CPU正在执行的是输入指令还是输出指令 所以数据总线上的数据是与输入输出控制器有关的.而MEMR和MEMW两个信号由CPU或DMA控制器发生 用来要求内存进行读出或写入.

(4)RESET DRV是一个总请信号,用来使系统初始化.通常在系统加电时或利用键盘进行热启动时发出. AEN信号用于DMA操作,当它为高电平,所有地址线,数据线及IOR,IOW,MEMR和MEMW等均受DMA控制器 控制不受CPU控制.ALE是地址锁存选通信号,此信号用于输入输出通道作为有效的CPU地址的指示 (与AEN配合时).T/C是一个脉冲信号,在进行DMA传送数据,一旦达到預定地传送字数,会发出T/C信号. 4.状态线(2根)

I/O CHCK用来向CPU指出输入输出通道上的扩充存储器或外设发现了奇偶错误,如果允许的话,它 会向CPU发出一个不可屏蔽中断(NMI).I/O CHRDY是就绪信号,他的作用是使CPU与较慢速度的输入输出 控制器芯片或扩展存储器芯片同步,正常情况下它应为高电平当慢速存储器芯片或输入输出控制 芯片被CPU访问时,该信号降为低电平,于是引起CPU产生的读写周期降低到840ns,输入输出读写 周期降到1.05微秒. 5.辅助线及电源线(11根)

OSC是系统板提供给输入输出总线的主振荡器信号,周期为70NS,占空比为50%.CLK是系统时钟信号 ,周期为216ns,占空比为33%.此外还有電源线5根,地线3根,备用线1根.

第7节 练习题

1.8086 CPU 子系统由哪几种芯片组成?它们各自的作用是什么?

2.最小模式和最大模式有什么区别?IBM PC/XT 中的8088 CPU 工作在什么模式? 3.IBM PC/XT中等待控制电路有什么作用?在什么条件下插入等待状态? 4.多CPU系统有哪几种组成形式?它们各自的特点是什么?

5.8253有哪几个通道?各自有哪几种工作方式?简述这些方式的主要特点。 6.用8253实现10ms的脉冲上升沿延迟。

7.芯片8253,通道0工作方式为2,输入脉冲频率为CLK0=5MHz,通道1工作方式为4。要求通道0输出2kHz的方波,并作为通道1的计数脉

冲输入,通道1的计数值为2000,当通道1计数到0向CPU发中断请求,CPU响应 中断后,再写计数值2000。编出8253的初始化程序,并画出硬件连接图。 8.8255A有哪几种工作方式? 端口AB和C如何配置?

9.8255A端口A工作在方式2,端口B工作在方式1,写出其初始化程序。

10.松耦合系统中用8255实现8088 CPU与Z80 CPU之间通信,画出其硬件连接图。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top