CPU、内存、I/O中不但有地址总线引脚、数据总线引脚,还有其他引脚,通常把这些引脚统称为“控制引脚”。之所以这样命名是因为这些引脚上输入输出的电信号具有控制IC的功能。现在Z80 CPU上只剩下9个控制引脚没有连接了,那么就再加把劲,继续用红铅笔把它们也连接到电路中吧。 首先把Z80 CPU的M1引脚(即Machine Cycle 1,机器周期1)和INT引脚(即Interrupt,中断)与Z80 PIO上标有相同代号的引脚连接起来。M1是用于同步的引脚,INT引脚是用于从Z80 PIO向Z80 CPU发出中断请求的引脚。所谓中断就是让CPU根据外部输入的数据执行特定的程序。有关中断的详细内容将在第4章介绍,这里只需要先记住I/O可以中断CPU对程序的处理流程就可以了。 一旦把Z80 CPU的RESET引脚(即Reset,重置)上的值先设成0再还原成1,CPU就会被重置,重新从内存0号地址上的指令开始顺序往下执行。重置CPU可以通过按键开关完成。按键开关需要经过电阻接在+5V和0V之间。请仔细地观察这一部分的电路图,可以看出RESET引脚上平时是+5V(即1)。当按下按键开关时,RESET引脚就变成了0V(即0),而放开按键开关后又会回到+5V(即1)。电阻是为了防止短路而加入的,否则一旦按下了按键开关,+5V和0V就会直接接到一起发生短路。像这样通过加入电阻把+5V和0V连接起来的方法在电路图中随处可见(如图2.8所示)。 连接在RESET引脚上的电容,用于在电路接通电源时自动重置CPU。电容就好像一个充电电池,具有储存电荷的功能。在通电后的一刹那,由于电容正在充电,所以RESET引脚上的电压并不会立刻上升到+5V。而完成充电后,RESET引脚的电压会变为+5V,这样就相当于RESET引脚上的值从0变成了1,重置了一次CPU。 总线是连接到CPU中数据引脚、地址引脚、控制引脚上的电路的统称。使用快动开关可以使Z80 CPU的BUSRQ引脚(即Bus Request,总线请求)上的值在0和1之间切换。若将BUSRQ引脚的值设为0,则Z80 CPU从电路中隔离。当处于这种隔离状态时,就可以不通过CPU,手动地向内存写入程序了。像这样不经过CPU而直接从外部设备读写内存的行为叫作DMA(Direct Memory Access,直接存储器访问)。在诸位所使用的个人计算机里,硬盘等设备要读写内存时使用的就是DMA。 当Z80 CPU从电路中隔离后,BUSAK引脚(即Bus Acknowledge,响应总线请求)上的值就会变成0。也就是说,把BUSRQ引脚上的值设成0以后,还要确认BUSAK引脚上的值已经变成了0,然后才能进行DMA。请把BUSAK引脚分别连接到4个74367的G1和G2引脚上。有关74367的作用将在后面说明。 Z80 CPU的其他控制引脚并未使用。所以要把WAIT引脚和NMI引脚上的值设为1,即连接到+5V上。之所以在连接时加入电阻,是为了便于今后加入开关等元件。请诸位先记住一个词——上拉(Pull-up),指的就是像这样通过加入电阻把元件的引脚和+5V连接起来。剩下的HALT引脚和ASTB引脚什么都不连接。 Z80 PIO的PA0~PA7(PA表示Port A)以及PB0~PB7(PB表示Port B)用于与外部设备进行输入输出,所以稍后要把它们分别连接到指拨开关和LED上。对于剩下的几个引脚可以这样处理:将IEI引脚上拉,IEO引脚、ASTB引脚、ARDY引脚、BSTB引脚和BRDY引脚则什么都不连接。 到此为止,Z80 CPU、TC5517、Z80 PIO以及时钟发生器上要用到的引脚就都接入电路了。这意味着计算机主机系统的功能完成了。作为总结,表2.3汇总了这几块IC上引脚的作用以及电信号的输入输出方向(从各个IC的角度看)。 用红铅笔尝试布线的诸位觉得怎么样呢?虽然需要连接的电路有点多,但也并不是太复杂吧?其实计算机的工作原理非常简单。CPU在时钟信号的控制下解释、执行内存中存储的程序,按照程序中的指令从内存或I/O中把数据输入到CPU中,在CPU内部进行运算,再把运算结果输出到内存或I/O中。无论是小型的微型计算机,还是高性能的个人计算机,其工作原理都是相同的。