彻底掌握计算机的工作原理,最好的方法就是自己搜集零件,试着组装一台微型计算机。
微型计算机(MicroCom)是 Micro Computer 的缩写,字面含义是微小的计算机,但一般也可用于指代 IC 元件外露的、用于控制的计算机。
因为要制作一台真正的微型计算机既花时间又花金钱,所以本文就使用文字简单介绍一下计算机的制作过程吧!
计算机是由硬件和软件构成,本文主要讲解如何制作硬件系统。
计算机硬件是由各种被称作 IC 的元件组成,虽然在 IC 家族当中有功能各异的各种 IC,但是在这里大家记住的只有三种:CPU(处理器)、内存以及 I/O。
CPU 是计算机的大脑,在其内部可对数据执行运算并控制内存和I/O。内存用于存储指令和数据。
I/O 负责把键盘、鼠标、显示器等周边设备和主机连接在一起,实现数据的输入与输出。
只要用电路把 CPU、内存以及 I/O上的引脚相互连接起来,为每块 IC 提供电源,再为 CPU 提供时钟信号,硬件上的计算机就组装起来了,还是非常简单的吧。
所谓时钟信号,就是由内含晶振的、被称作时钟发生器的元件发出的滴答滴答的电信号。如果是 Pentium CPU 的话,所使用的时钟信号会从几百 MHz 到 2GHz 不等。
这里我们使用 Z80 CPU 作为微型计算机的 CPU、TC5517 作为内存、Z80 PIO 作为 I/O。Z80 CPU 是一款古老的 CPU,在 NEC 的 PC-8801、SHARP 的 MZ-80 等 8 比特计算机广泛应用的时代,曾以爆炸般的速度普及过。
TC5517 是可以存储 2K 的 8 比特数据的内存。在计算机的世界里,K 表示 2的10次方=1024。
TC5517 的容量是 8 比特 ×2×1024 = 16384 比特,即 2K 字节。虽然这点容量与诸位所使用的个人计算机比起来相差悬殊,但是对于用于学习的微型计算机来说是绰绰有余了。
Z80 PIO 作为 I/O,经常与 Z80 CPU 一起使用。正如其名,PIO(Parallel I/O,并行输入/输出)可以在微型计算机和外部设备之间并行地(一排一排地)输入输出 8 比特的数据。
在计算机爱好者们沉浸在制作微型计算机的那个年代,这些元件都是常见的 IC。这里要先跟大家说明,这里制作的微型计算机终归只是用于学习的模型,并没有什么实用的价值。
为了制作微型计算机,除了 CPU、内存和 I/O,还需要若干辅助元件。为了驱动 CPU 运转,称为“时钟信号”的电信号必不可少。
这种电信号就好像带有一个时钟,滴答滴答地每隔一定时间就变换一次电压的高低。输出时钟信号的元件叫作“时钟发生器”。
时钟发生器中带有晶振,根据其自身的频率(振动的次数)产生时钟信号。时钟信号的频率可以衡量 CPU 的运转速度。这里使用的是2.5MHz(兆赫兹)的时钟发生器。
用于输入程序的装置也是必不可少的。在这里我们通过拨动指拨开关来输入程序,指拨开关是一种由 8 个开关并排连在一起构成的元件。
输出程序执行结果的装置是 8 个 LED(发光二极管)。
到此为止,主要的元件就都备齐了。
接下来就是开始布线(此部分只是简单介绍):
一、连接数据和地址总线
计算机以CPU为中心运转。CPU 可以与内存或 I/O 进行数据的输入输出。为了指定输入输出数据时的源头或目的地,CPU 上备有“地址总线引脚”。Z80 CPU 的地址总线引脚共有 16 个,用代号 A0~A15 表示,其中的 A 表示 Address(地址)。
后面的数字 0~15 表示一个 16位的二进制数中各个数字的位置,0 对应最后一位、15 对应 第一位。16 个地址总线引脚所能指定的地址共有 65536 个,用二进制 数表示的话就是 0000000000000000~1111111111111111。
因此 Z80 CPU 可以指定 65536个数据存取单元(内存存储单元或 I/O 地址),进行信 息的输入输出,一旦指定了存取数据的地址,就可以使用数据总线引脚进行数据 的输入输出了。
二、连接 I/O
大家都知道“寄存器”这个词吗?寄存器是位 于 CPU 和 I/O 中的数据存储器。
Z80 PIO 上共有4个寄存器。2 个用于设定 PIO 本身的功能,2 个用于存储与外部设备进行输入输出的数据。
因为Z80 PIO 上也有 D0~D7 的数据总线引脚,所以先把它们和 Z80 CPU 中带有同样代号的引脚连接起来。这样 CPU 和 PIO 就能使用这 8 个引脚交换数据了。
接下来要把 Z80 PIO 的 B/A 和 C/D 引脚分别连接到 Z80 CPU 的地 址总线引脚 A0 和 A1 上。
若表示 IC 引脚作用的代号上划有横线,则表示通过赋予该引脚 0(0V)可使之有效,反之若没有横线,则表示通 过赋予该引脚 1(+5V)可使之有效。
因此若赋予 B/A 引脚 1 则表示选 中 B,反之赋予 0 则表示选中 A。同样地,若赋予 C/D 引脚 1 则表示 选中的是 C(C 即 Control,表示控制模式);反之赋予 0 则表示选中的 是 D(D 即 Data,表示数据模式)
三、连接时钟信号
为了传输时钟信号,就需要把时钟发生器的 8 号引脚和 Z80 CPU 的 CLK (CLK 即 Clock,时钟)引脚、Z80 PIO 的 CLK 引脚分别连接起来。时钟发生器的 8 号引脚与 +5V 之间的电阻用于清理时钟信号。
四、连接用于区分读写对象是内存还是 I/O 的引脚
至此,我们已经先后把 Z80 CPU 连接到了 TC5517 和 Z80 PIO 上, 这两次连接都使用了地址总线引脚 A0 和 A1。
如果仅仅这样连接,就会导致一个问题,当地址的最后两位是 00、01、10 和 11 时,CPU 就无法区分访问的是 TC5517 中的存储单元,还是 Z80 PIO 中的寄存器了。
下面需要把 Z80 CPU 的 MREQ 引脚连接到 TC5517 的 CE 引脚上。然后把 Z80 CPU 的 IORQ 引脚连接到 Z80 PIO 的 CE 引脚 和 IORQ 引脚上。
五、连接剩余的控制引脚
CPU、内存、I/O 中不但有地址总线引脚、数据总线引脚,还有其他引脚,通常把这些引脚统称为“控制引脚”。
现在 Z80 CPU 上只 剩下 9 个控制引脚没有连接了,首先把 Z80 CPU 的 M1 引脚(即 Machine Cycle 1,机器周期 1)和 INT 引脚(即 Interrupt,中断)与 Z80 PIO 上标有相同代号的引脚连接 起来。M1 是用于同步的引脚,INT 引脚是用于从 Z80 PIO 向 Z80 CPU 发出中断请求的引脚。
六、连接外部设备,通过 DMA 输入程
这一步将计算机主机系统和外部设备连接起来。 我们要使用 2 个指拨开关和 1 个按键开关,向地址总线引脚和数据总线引脚发送电信号,然后通过 DMA 将数据总线上的数据存储到内存。
七、连接用于输入输出的外部设备
轮到把指拨开关和 LED 连接到 Z80 PIO 上了。当微型计算机运行起来后,指拨开关可用于从外部输入数据,LED 可用于向外部输出数据。
用于输入数据的指拨开关,要连接到 Z80 PIO 的 PA0~PA7 引脚 上。
八、连接电源
IC 与普通的电器一样,只有接通了电源才能工作。 Z80 CPU、TC5517 和 Z80 PIO 上都分别带有 Vcc 引脚和 GND 引脚。
Vcc 和 GND 这一对儿引脚用于为 IC 供电。下面先将 +5V 电源连接到各个 IC 的 Vcc 引脚上,然后将 0V 电源连接到各个 IC 的 GND 引脚 上。
接下来还需要将 +5V 和 0V 连接到时钟发生器上。接通电源后这 些 IC 和时钟发生器就可以工作了。
连接完成后整个电路图如下:
微型计算机终于顺利地制作出来了,微型计算机接上电源就能用了吗?
其实还不能,因为尽管硬件组装好了,但若没有输入软件,计算机还是不能工作的。所以即使为微型计算机接通了电源,它也什么都执行不了。
欢迎关注我,下次为您讲解如何输入软件,运行这台计算机。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.