news 2026/10/6 8:08:05

《计算机是如何工作的:人人都能懂的计算机软硬件工作原理》第 4 章 数字电路 阅读笔记 4

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《计算机是如何工作的:人人都能懂的计算机软硬件工作原理》第 4 章 数字电路 阅读笔记 4

《计算机是如何工作的:人人都能懂的计算机软硬件工作原理》第 4 章 数字电路 阅读笔记 4

第 4 章 数字电路

到目前为止,我们已经介绍了计算机的两个方面。
首先,计算机在 0/1 二进制系统中工作。
其次,计算机是建立在电路上的电子设备。
现在,是时候把这两个方面结合起来了。
本章将定义数字电路的含义。我们将研究实现数字电路的方法,探讨晶体管在其中所扮演的角色。
最后,我们将研究逻辑门和集成电路,它们是我们将在后面章节介绍的更复杂组件的基础模块。

4.1 什么是数字电路

你可能已经注意到,我们在第 3 章搭建的电路不是数字电路—它们是模拟电路。
在这些电路中,电压、电流和电阻的值可以在很大范围内变化。
这并不奇怪:我们的世界本身就是模拟世界!不过,计算机是在数字领域中工作的,要理解计算机,就需要了解数字电路。
如果我们想让电路是数字的,首先必须在电子学的背景下定义其含义,这样我们就可以利用模拟组件来搭建数字电路。

数字电路处理表示有限状态的信号。
本书涉及的是二进制数字电路,所以只考虑 0 和 1 两种状态。
我们一般用电压来表示数字电路中的 0 或 1,其中 0 表示低电压,1 表示高电压。
通常,​“低电压” 意味着 0 V,​“高电压” 往往是 5 V、3.3 V 或 1.8 V,具体值取决于电路的设计。
实际上,数字电路不需要精确的电压来记录 1 或 0,相反,常常是用某电压范围来记录 1 或 0。
例如,在标称 5 V 的数字电路中,2~5 V 之间的任何电压都被记录为 1,0~0.8 V 之间的任何电压都被视为 0。
任何其他电压等级都会导致电路的未定义行为,应该避免。

一般,接地是数字电路中的最低电压,电路中所有其他的电压相对于接地而言都是正的。
如果数字电路由电池供电,我们就认为电池的负极是接地的。其他类型的 DC 电源也是这样的,负极被认为是接地的。

当说到数字电路中的 0 和 1 时,会出现大量的术语和缩写,它们表示的意思都是一样的。这些术语常常可以互换使用。下面是一些常见的表示 0和 1 的术语:

  • 0:低电压、低电平、LO、关、接地、GND、假;
  • 1:高电压、高电平、HI、开、V+、真。

4.2 用机械开关实现逻辑运算

现在我们已经确定了用高电压和低电压表示数字电路中的 1 和 0,接下来就考虑如何构建一个数字电路。
我们想要一个电路,其输入和输出电压始终是预定的高值或低值,或者至少在允许范围之内。
为了完成这个任务,我们引入一个非常简单和熟悉的电路元件:机械开关。
开关很有用,因为它本质上就是数字化的。它要么闭合,要么断开。
当开关闭合时,它就像一根单纯的铜线,电流可以自由通过。
当开关断开时,它就像一个开路,没有电流通过。我们用图 4-1 所示的符号表示开关。

图 4-1 开关的电路图符号——断开(左)​,闭合(右)

开关符号传递了这样一个想法,即当开关断开时是开路;当开关闭合时是闭合电路。
你可以把开关符号或开关本身看成可以打开或关闭的栅栏门。当开关闭合时,电流流经开关。
在真实世界中,开关有各种形状和大小,如图 4-2 所示。

图 4-2 一些开关

注意图 4-2,离我们最近的两个开关是按钮,你可能不会把它们当作开关。
按钮也称为瞬时开关,因为只有在按下按钮的时候开关才会闭合。释放按钮上的压力,开关就会断开。

现在我们已经引入了一个容易打开和关闭的电路元件,就让我们用开关来构建一个数字电路,使其行为类似于 AND 运算符。
如果你还记得第 2 章的内容的话,那么就会知道,仅当两个输入都为 1 时,逻辑 AND 的输出才为 1,否则输出都为 0。
提醒一下,表 4-1 重复给出了 AND 的真值表。

表 4-1 AND 真值表

AB输出
000
010
100
111

现在,我们按照下面的规则把它转换成电路:

  • 输入 A 和 B 用机械开关表示。用打开的开关表示 0,用关闭的开关表示 1。
  • 输出由电路中特定点的电压决定,称为 Vout。
  • 如果 Vout 近似为 5 V,输出就是 1,如果 Vout 近似为 0 V,输出就是 0。

考虑图 4-3 所示的电路,这是用开关实现的逻辑 AND。

只要图 4-3 中的任何一个开关是断开的 (0),就没有电流流动,Vout 为 0 V。只要两个开关都是闭合的 (1),就能形成一条接地的路径,电流流动,Vout 为 5 V。也就是说,如果 A 和 B 都是1,那么输出就为 1。

图 4-3 用开关实现的逻辑 AND

让我们对逻辑 OR 采用同样的方法。OR 的真值表如表 4-2 所示。
看一下图 4-4 中的电路,这是用开关实现的逻辑 OR。

表 4-2 OR 真值表

AB输出
000
011
101
111

图 4-4 用开关实现的逻辑 OR

在图 4-4 中,当两个开关都断开 (0) 时,没有电流经过,Vout 为 0 V,即逻辑 0。当任何一个开关闭合 (1) 时,就会有电流经过,Vout 为 5 V。也就是说,如果 A 或 B 是 1,那么输出就是 1。

4.3 神奇的晶体管

在我们设计数字电路的任务中,刚才讨论的基于开关的电路是一个很好的起点。
但是,在计算机设备中,我们实际上不能使用机械开关。计算机的输入数量巨大,通过切换开关来控制这些输入不是很好的设计。
此外,计算机设备需要把多个逻辑电路连接到一起,使一个电路的输出成为另一个电路的输入。
要实现这一点,开关需要电气控制,而不是机械控制。
我们不想要机械开关,想要电子开关。幸运的是,有个电路元件可以当作电子开关:晶体管!

晶体管是一种控制电流通断(开关功能)或放大电流的器件。在这里,我们重点关注晶体管的开关功能。
晶体管是现代电子产品(包括计算机设备)的基础。
晶体管主要有两种类型:双极结晶体管 (Bipolar Junction Transistor,BJT) 和场效应晶体管(Field-Effect Transistor,FET)。
这两种类型的差异与我们这里的讨论无关,为了简单起见,我们只关注一种类型:BJT。

BJT 有三个端子:基极、集电极和发射极。
BJT 有两种类型:NPN 和 PNP。
两者的差异在于它们对基极电流应用的响应方式。在这里,我们关注的是 NPN BJT。
图 4-5 给出了 NPN 晶体管的电路图符号和照片。

在 NPN 晶体管中,在基极施加小电流可使更大的电流从集电极流向发射极。
换句话说,如果我们把晶体管当作开关,那么在基极施加电流就像打开晶体管一样,而移除电流就像关闭晶体管。
让我们看看晶体管怎样用作电子开关,如图 4-6 所示。

图 4-5 NPN 晶体管的电路图符号(左)和照片(右)

图 4-6 用作开关的 NPN 晶体管

在图 4-6 中,NPN 晶体管连接了一对电阻。Vcc 是施加到集电极的正电源电压。它为电路供电。
Vcc中的 “cc” 代表 “公共集电极” (common collector),Vcc 是 NPN 电路中正电源电压的典型名称。
Vout 是我们想要控制的电压,我们希望当作为开关的晶体管打开时,这个电压为高电压,当这个开关关闭时,这个电压为低电压。
Vin 充当开关的电气控制电压。我们可以用电压 Vin 来控制开关,而不是像开闭机械元件那样控制开关。

让我们考虑一下,如果把 Vin 设置为低电压或高电压时会发生什么。
如果 Vin 为低电压(如接地时)​,那么没有电流经过晶体管的基极。由于基极没有电流,因此晶体管集电极和发射极之间开路。
这意味着 Vout 也为低电压,如图 4-7 所示。

图 4-7 的左边是我们正在讨论的晶体管电路,右边是表示同样状态的开关电路。
换句话说,左边的电路实际上和右边的一样,右边只是用开关替换了晶体管,以表明在这种状态下,晶体管就像是断开的开关。

图 4-7 NPN 晶体管如处于断开状态的开关

如果 Vin 为低电压,那么没有电流经过;如果 Vin 为高电压,那么电流流向晶体管的基极。这个电流使得晶体管把电流从集电极传导到发射极。这意味着 Vout 有效连接到 Vcc,所以输出为高电压,如图 4-8 所示。

图 4-8 NPN 晶体管如处于闭合状态的开关

图 4-8 的左边是我们正在讨论的晶体管电路,右边是具有同样状态的开关电路,在这种状态下,晶体管就像是闭合的开关。

4.4 逻辑门

现在我们已经确定了晶体管可以当作电控开关,可以搭建电路组件来实现逻辑功能,其中的输入和输出可以是高电压和低电压。这种组件称为逻辑门。
让我们从之前设计的 AND 电路开始,并用晶体管替换机械开关。这样做的好处是只需要改变电压就能修改电路的输入,不再需要拨动机械开关。
虽然机械开关是人类和电路交互的好方法,但电子开关允许多个电路相互交互——一个电路的输出可以很容易成为另一个电路的输入。

前面我们用机械开关搭建了一个 AND 电路(见图 4-3)​。现在,我们用晶体管作为开关完成同样的事情,如图 4-9 所示。

图 4-3 用开关实现的逻辑 AND

在图 4-9 中,如果 VA 和 VB 是高电压(逻辑 1)​,那么电流流经两个晶体管,Vout 也为高电压(逻辑 1)​。如果 VA 和 VB 是低电压(逻辑 0)​,那么没有电流流动,Vout 也为低电压(逻辑 0)​。这个电路实现了逻辑 AND。

图 4-9 用晶体管实现的逻辑 AND

我们刚才看到了如何用晶体管和电阻搭建逻辑门,即实现逻辑功能的电路。
从现在开始,我会隐藏实现逻辑门的细节,把整个门看作一个电路组件。
这不仅是观察逻辑门的理论方法,也是这些电路元件实际的使用方法。
我们可以购买已经组装好并物理封装成一个组件的逻辑门,所以,一般没必要使用晶体管自己搭建逻辑门,除非是在教学练习时。
各种逻辑门已经被定义了标准电路图符号,你可以在图 4-10 中看到一些常用的逻辑门电路图符号。

图 4-10 常用逻辑门电路图符号

在查看图 4-10 中的各种逻辑门时,请注意加在符号上的小圈圈,它代表的是 NOT 或取反。NOT 门是最简单逻辑门,它只有一个输入,其输出就是这个输入的取反结果,所以,输入 1 变成 0,输入 0 变成 1。
NAND 门的输出和 NOT AND 是一样的,它的输出是常规 AND 门输出的取反结果。
NOR 也是如此,因此你会在逻辑门中看到小圈圈,它代表 NOT 或取反。

在继续讨论其他内容之前,让我们先暂停一下,反思一下我们刚才讨论的某些方面。
首先,我们研究了逻辑门内部是如何工作的。其次,我们使用这个设计,打包封装,并赋予其名称和表示符号。
我们有意隐藏了电路的实现细节,同时继续记录其预期行为。
我们把逻辑门的设计细节放入所谓的 “黑盒” 中,​“黑盒” 指一种已知输入和输出,但隐藏内部细节的元件。
这种方法的另一个术语是封装,这是一种隐藏组件内部细节,但同时记录如何与该组件交互的设计选择。

封装是一种贯穿现代技术的设计原则。
当组件设计人员希望他人能方便地使用自己的创造并能在其上进行其他构建,同时还无须完全了解其实现细节时,就会使用封装。
这种方法还允许在 “盒子” 内部进行改进,只要输入和输出继续保持相同的行为,盒子就能像之前一样继续使用。
封装的另一个优点是团队可以在大型项目上合作,并将项目的一部分封装起来。这使得每个人不需要了解每个组件的所有细节。
在逻辑门中封装晶体管是本书中的第一个封装例子,但随着我们学习的推进,你将会多次看到它。

4.5 用逻辑门进行设计

在第 2 章中,我们看到了如何把多个逻辑运算符组合起来以构成更复杂的逻辑语句。
现在,我们把这个思路扩展到逻辑门。一旦写好了逻辑语句或真值表,就能用逻辑门在物理上把这个逻辑实现成硬件。
我们把这个原则应用到之前为如下语句创建的真值表(见表 2-6)上:

IF it is sunny AND warm,OR it is my birthday,THEN I am going to the beach.
如果天气晴朗且温暖,或者是我生日,那么我就去海滩。

我们把它简化为

(A AND B) OR C

现在把这个语句用逻辑门表示为图,如图 4-11 所示。

如果 A 和 B 都是 1,那么 AND 门的输出将为 1。AND 门的输出和 C 一起作为 OR 门的输入。如果 AND 输出或 C 为 1,那么整个输出将为 1。

当我们按照输出是当前输入的函数这种方式来组合逻辑门时,这种电路被称为组合逻辑电路。
也就是说,一组特定的当前输入总是能产生相同的输出。
时序逻辑电路与之相反,时序逻辑电路的输出是当前输入和之前输入的函数。第 6 章将会介绍时序逻辑电路。

图 4-11 (A AND B)OR C 的逻辑门图

4.6 集成电路

如前所述,已有公司制造销售即用型数字逻辑门。硬件设计人员可以购买这些逻辑门,并以此为基础搭建自己的硬件逻辑电路,而无须担心门电路的内部是如何工作的。
这些逻辑门是集成电路的一个例子。集成电路 (Integrated Circuit,IC)在一个硅片上包含了多个组件,封装后具有外部电接触点或引脚。IC 也称为芯片。

本书主要研究双列直插式封装 (Dual In-line Package,DIP) 的IC,它有具备两排平行引脚的矩形外壳。
这些引脚间隔排列,所以它们可以方便地插在面包板上。制造商用微型晶体管制作 IC,这种晶体管比图 4-5 所示的分立晶体管小得多。
分立组件是只包含一个元件(比如电阻或晶体管)的电子设备。和用分立晶体管制作的电路相比,IC会让同样的小电路运行更快,价格更低。

我们之前讨论的使用电阻和晶体管的逻辑电路被称为电阻——晶体管逻辑 (Resister-Transistor Logic,RTL) 电路。
制造商用这种方法制作了早期的数字逻辑电路,但后来它们采用了其他方法,其中就包括二极管-晶体管逻辑 (Diode-Transistor Logic,DTL) 和晶体管-晶体管逻辑 (Transistor-Transistor Logic,TTL)。
TTL 电路中最流行的是 7400 系列。这个系列的集成电路包含了逻辑门和其他数字组件。自 20 世纪 60 年代推出以来,7400 系列及其后代仍然是数字电路的标准。我将重点关注 7400 系列,以便为你提供如何使用集成电路的真实例子。

让我们研究一个特定的 7400 系列集成电路。图 4-12 所示的是包含了 4 个 OR 门的 7432 芯片。

图 4-12 双列直插式封装的 SN7432N 集成电路,右侧为插在面包板上的效果

7432 IC 封装有 14 个引脚。每个 OR 门需要 3 个引脚,所以 4 个门就需要 12 个引脚,再加上 1 个正电源电压 (Vcc) 引脚和 1 个接地引脚,总共是 14 个引脚。
说到电压,7400 系列的工作电压 Vcc 是 5 V。
也就是说,高电压(逻辑 1)理想状态下是 5 V,低电压是 0 V。但实际上介于 2 V到 5 V之间的任何输入电压都被视为高电压,介于 0 V到 0.8 V之间的任何电压都被视为低电压。

从图 4-12 可以看到,7432 封装每边有 7 个引脚,可以整齐地插入面包板。当把这样的芯片插入面包板时,要保证芯片跨在面包板中心的缝隙上,以确保直接相对的引脚(比如引脚 1 和引脚 14)之间不会意外连接。注意封装上的半圆形凹口,它能告诉你在识别引脚时芯片的方向。

图 4-13 给出了封装内的电路排布。这是个引脚图——标记组件电接触点或引脚的图。这种图的目的是展示组件的外部连接点,不过,引脚图一般不会记录电路的内部设计。

图 4-13 展示 7432 IC 引脚排布的引脚图

假设你想使用 7432 IC 4 个 OR 门中的一个,而且你选择了图 4-13 引脚图中左下方的门(连接引脚为 1、2 和 3)​。要使用这个门,需要按照表4-3 来连接引脚。

表 4-3 连接 7432 IC 中的单个门

7400 系列包含上百个组件。这里不会全部都介绍,但图 4-14 给出了该系列中 4 个常见逻辑门的引脚排布。你可以快速在线搜索到其他 7400 IC的引脚排布。

图 4-14 常用 7400 系列集成电路的引脚图

4.7 总结

本章介绍了二进制数字电路,这是一种用高低电压表示逻辑 1 或 0 的电路。
你学习了开关如何被用于在物理电路中构建逻辑运算,比如 AND。
我们介绍了使用机械开关的局限性,并引入了一种可以用作电控开关的新电路元件—晶体管。
你了解了逻辑门,一种实现逻辑功能的电路元件。我们以 7400 系列为例介绍了集成电路。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/6 8:06:45

视频会议系统设计技术指南:从H.323协议到H.264编解码与部署实践

简介:面向智能视频会议系统规划与实施人员,这是一份可直接参考的技术解决方案文档,适用于政企、教育、医疗等行业的远程会议、应急指挥、远程培训场景,可辅助需求梳理、方案设计与项目汇报。文档以 doc 格式提供,压缩包…

作者头像 李华
网站建设 2026/10/6 8:06:21

一篇文章,吃透数据在内存中的存储

文章目录 整数在内存中的存储◦ 大小端字节序和字节序判断◦ 为什么会有大小端之分◦ 经典练习题 浮点数在内存中的存储浮点数存的过程浮点数取的过程 整数在内存中的存储 前面我们了解到整数的二进制表示方法有三种:原码,反码,补码。 对于有…

作者头像 李华
网站建设 2026/10/6 7:59:41

第二篇:keepalived VRRP 原理篇:协议与 VIP 漂移机制深入解析

Keepalived 原理篇:VRRP 协议与 VIP 漂移机制深入解析开篇很多运维朋友都用过 Keepalived,知道它能做高可用、能漂移 VIP,但对它"为什么能漂移"、VRRP 报文里到底传了什么、主备是怎么选举的,往往一知半解。本文作为 Ke…

作者头像 李华