打字猴:1.700413352e+09
1700413352 计算机是怎样跑起来的 [:1700412625]
1700413353 计算机是怎样跑起来的 2.4 连接I/O
1700413354
1700413355 下面开始连接I/O,只有了解作为I/O的Z80 PIO的结构,才能理解为什么要这样布线。诸位都知道“寄存器”这个词吗?寄存器是位于CPU和I/O中的数据存储器,Z80 PIO上共有4个寄存器,2个用于设定PIO本身的功能,2个用于存储与外部设备进行输入输出的数据
1700413356
1700413357 这4个寄存器分别叫做端口A控制、端口A数据、端口B控制和端口B数据。所谓端口就是I/O与外部设备之间输入输出数据的场所,可以把端口(Port)想象成轮船装卸货物的港口。Z80 PIO有2个端口–端口A和端口B,最多可以连接2个用于输入输出8比特数据的外部设备(如图2.7所示)
1700413358
1700413359 图2.7 Z80 PIO内部结构
1700413360
1700413361
1700413362
1700413363
1700413364 既然已经大体上了解了Z80 PIO的结构,下面开始布线,因为Z80 PIO上也有D0-D7的数据总线引脚,所以先把它们和Z80 CPU中带有同样代号的引脚连接起来,这样CPU和PIO就能使用这8个引脚交换数据了
1700413365
1700413366
1700413367
1700413368
1700413369
1700413370 接下来要把Z80 PIO的和引脚分别连接到Z80 CPU的地址总线引脚A0-A1上,若表示IC引脚作用的代号上有横线,则表示通过赋予该引脚0(0V)可使之有效,反之若没有横线,则表示通过赋予该引脚1(+5V)可使之有效。因此,若赋予引脚1表示选中B,赋予0表示选中A;同样地,若赋予引脚1表示选中的是C(C即Control,表示控制模式),反之赋予0表示选中的是D(D即Data,表示数据模式)
1700413371
1700413372 通过Z80 CPU的A0-A7(00000000-11111111共256个地址)地址总线引脚可选择内存(TC5517)中的存储单元。同样,使用Z80 CPU的A0-A1(00-11共4个地址)地址总线引脚可选择I/O(Z80 PIO)中的寄存器
1700413373
1700413374 Z80 CPU的A8-A15地址总线引脚尚未使用,所以什么都不连接。在电路图中可以用代号NC(No Connection,未连接)表示引脚什么都不连接。IC上的引脚有些只用于输出,有些只用于输入,还有些是输入输出两用的。对于只用于输出的引脚,不需要使用时的处理方法是这个引脚什么都不连接;而对于只用于输入或输入输出的引脚,不需要使用时的处理方法是把这个引脚上的电压固定成+5V或0V
1700413375
1700413376
1700413377
1700413378
1700413379 计算机是怎样跑起来的 [:1700412626]
1700413380 计算机是怎样跑起来的 2.5 连接时钟信号
1700413381
1700413382 正如前文所述,Z80 CPU和Z80 PIO的运转离不开时钟信号。为了传输时钟信号,就需要把时钟发生器的8号引脚和Z80 CPU的CLK(CLK即Clock,时钟)引脚、Z80 PIO的CLK引脚分别连接起来。时钟发生器的8号引脚与+5V之间的电阻用于清理时钟信号
1700413383
1700413384 再插入一段题外话。诸位可以把Z80 CPU和Z80 PIO在时钟信号下运转的情景,想象成是它们在跟随滴答滴答响的时钟同步做运作。据说19世纪英国的查尔斯·巴贝奇(Charles Babbage)曾向制造计算机的原型–分析机发起过挑战,分析机由齿轮组成,因为当时科技水平的限制并未制造完成。可如果把分析机改用电子元件制造出来的话,就是今天的计算机
1700413385
1700413386
1700413387
1700413388
1700413389 计算机是怎样跑起来的 [:1700412627]
1700413390 计算机是怎样跑起来的 2.6 连接用于区分读写对象是内存还是I/O的引脚
1700413391
1700413392 至此,我们已经先后把Z80 CPU连接到了TC5517和Z80 PIO上,这两次连接都使用了地址总线引脚A0和A1,如果仅仅这样连接,就会导致一个问题,当地址的最后两位是00、01、10和11时,CPU就无法区分访问的是TC5517的存储单元还是Z80 PIO中的寄存器了
1700413393
1700413394
1700413395
1700413396
1700413397
1700413398 Z80 CPU上的(即Memory Request,内存请求)引脚和(即I/O Request,I/O请求)引脚解决了这个问题。当Z80 CPU和内存之间有数据输入输出时,引脚上的值是0,反之则是1.当Z80 CPU和I/O之间有数据输入输出时,引脚上的值是0,反之则是1
1700413399
1700413400
1700413401
[ 上一页 ]  [ :1.700413352e+09 ]  [ 下一页 ]