← 返回博客用继电器构建计算机 · 2/15

串联开关:隐藏其中的与逻辑

说明两个串联开关如何形成 AND 的物理逻辑,并追溯从 19 世纪 90 年代电话交换机到继电器逻辑的发展;文中包含实时交互电路。

Matthias KellerMatthias Keller
阅读约需 8 分钟
Chalkboard feature illustration for “串联开关:隐藏其中的与逻辑”

本系列第一篇文章介绍了继电器的基本机理:线圈产生的电磁作用驱动触点,使一个控制电路改变另一个电路的导通状态。单个继电器已经具备两状态行为,但只能表示一个二值条件:开或关。

要构建能够计算的系统,需要使多个开关协同工作。最基本的方法是将两个开关串联。该电路结构简单,却体现了计算机所需的第一种形式逻辑:AND 不只是原理图符号,也对应电流通过串联路径的物理条件。

自动交换之前的人工开关网络

以 19 世纪 90 年代中期的一座电话交换局为例。一排排接线员——大多是戴着耳机的年轻女性——面向铺满编号插孔的长木制面板。面板上导线纵横、信号灯林立。一个呼叫到来,指示灯闪烁;接线员伸手把一根线从一个插孔接到另一个插孔,两位远方的人便能交谈。通话结束后,她拔下导线,两端插孔再次安静。在高峰时段,她会同时管理十几路呼叫。一座大城市的交换局里,数百名接线员、数千根导线、数万个插孔共同组成了人类此前建造过的最大开关机器——而每一处连接都由人手完成。

这种人为瓶颈令至少一位堪萨斯城商人十分不满。殡葬业者 Almon Strowger 坚信当地电话接线员把原本打给他的电话转接给竞争对手——也许是故意,也许不是。他的应对方案于 1891 年获得专利:彻底取消接线员,制造出世界上第一套实用自动电话交换机——Strowger 自动交换机。呼叫者逐位拨出号码,一组组电磁步进继电器——与第 1 篇文章中的器件近亲——就在触点间旋转,无需任何人工介入即可完成呼叫路由。

Strowger 与随后数十年不断改进其发明的工程师,把数千只继电器按照经过计算的组合有意连接起来。这些组合每天要回答数百万次的根本问题,正是两个开关与一盏灯实验所回答的问题:当电流必须穿过一串开关时,电路要闭合,哪些条件必须成立?

一条路径中的多个串联断点

考察由一节电池、导线和一盏灯构成的基本电路。将导线在两个位置断开,并在每个断点放置一只刀闸开关,分别记为开关 A 与开关 B。

从电池出发的电流只有一项任务:从正极沿导线前进,穿过灯丝,再返回负极。要完成这段旅程,它必须通过开关 A 的断口,还要通过开关 B 的断口。道路只有一条,每只开关都是路上的一道关卡。

四种输入组合可逐一分析如下:

  • **A 断开,B 断开。**两处阻断,道路断了两次,灯灭。
  • **A 闭合,B 断开。**电流通过开关 A 后立刻撞上 B 的断口,就此停止,灯灭。
  • **A 断开,B 闭合。**电流也许能通过开关 B,但它根本到不了那里——开关 A 已在前面阻断路径,灯灭。
  • **A 闭合,B 闭合。**所有关卡全部放行,从电池到灯再返回的道路畅通,电流流动,灯亮。

四种组合有三种失败,只有一种成功。原因来自结构本身:串联电路只有一条路径,路径上的每一只开关都必须配合。链条中任何位置只要有一只开关不配合,唯一道路就会断开。

这种逻辑也可由日常条件直观理解:两把钥匙同时到位才能开锁,或文件必须具备两个签名才能获批。两项条件缺一不可。

真值表:披上物理外衣的 AND

下面用电子学的简写记录这条规则。把闭合开关视为 1(导通、真),把断开开关视为 0(不导通、假);灯亮时为 1,熄灭时为 0。两个开关恰好有四种组合,全部列在这里:

AB灯(A AND B)
000
010
100
111

四行中只有一行使灯点亮,其余组合均使其保持熄灭。灯就是逻辑 AND 的物理实现——只有在每一个输入都同时为真时,该运算才为真。

AND 门数据手册均给出相同的四行真值表。这些行并非任意规定,而是具有两个串联断点的导线所表现出的可观察结果。

该表还体现了输入交换对称性。第二行与第三行都输出 0,并且互为镜像。A 闭合而 B 断开,与 B 闭合而 A 断开的结果相同。在串联结构中,**开关位于导线的哪个位置不会改变逻辑。**A 更靠近电池还是 B 更靠近电池,都没有区别。条件始终不变:必须两者都闭合,否则灯就保持熄灭。AND 是对称的。

从网络拓扑看,两个触点都位于同一条支路,支路电流依次通过 A 与 B。交换两个触点的位置只会改变物理排列,不会改变导通条件,也不会改变四种输入组合对应的输出。真值表因而只记录输入状态,而不记录开关在线路中的先后顺序;这正是 AND 输入交换对称性的物理来源。

操作验证:先预测,再观察

下面是两个刀闸开关与一盏灯串联的实时仿真。操作前可先预测真值表各行对应的灯状态,再通过仿真结果验证。

然后逐一尝试全部四种组合,并把每一种结果与上表对照。

两个串联开关。只有两者都闭合,电流才能到达灯——这就是 AND。。
Open in the Relay Lab

可重点验证以下三项性质:

  1. **两个开关都闭合后,只断开其中一个。**两者闭合且灯已点亮时,只断开开关 A。灯会立刻熄灭——虽然开关 B 仍然闭合、仍然配合、仍然提供自己那一半路径。串联链中任何位置只要有一只开关断开,就会否决整个电路。这种否决不是比喻,而是物理事实。

  2. 改变操作顺序。 先闭合 B 再闭合 A,或先闭合 A 再闭合 B,最终均会点亮灯;中间只有一个开关闭合时,灯保持熄灭。真值表对两个输入对称,AND 的结果仅取决于二者是否同时有效,与设置顺序无关。

  3. **打开声音并数一数咔嗒声。**每次状态改变都会产生一次声响。走完真值表需要四声:两次闭合,两次断开。20 世纪 40 年代的继电器计算机中,满屋开关按节奏发出的咔嗒声,是工程师追踪计算过程的方式;在任何读数确认之前,错误的声音模式就会提示某处行为异常。

串联导线与逻辑抽象

AND 运算以逻辑原理图中的 D 形符号表示后,设计者便可在不逐根追踪导线的情况下分析大规模门网络。抽象保留了逻辑关系,但会隐藏该规则对应的物理导通条件。

AND 并不是任意规定。它是多个守门者把守单一路径时不可避免的行为,而这种物理根基对后续内容十分重要。**级联 AND 就是在同一条串联线路上添加更多开关。**三个开关串联,三个都必须闭合;nn 个开关串联,全部 nn 个都要闭合。真值表会扩展到 2n2^n 行,但只有一行能点亮灯:所有输入都为 1 的那一行。

Claude Shannon 在他 1937 年于 MIT 完成的硕士论文中对此给出了严格证明,这篇论文如今经常被称为史上最重要的硕士论文。Shannon 用正式证明说明,任何开关电路都能表示为布尔代数方程,而任何布尔表达式都能实现为开关电路。用他的表示法,串联电路就是乘积 A⋅BA \cdot B:只有两个因子都为 1 时,乘积才等于 1。在这套代数中,19 世纪 90 年代的电话接线员每小时数万次地实时计算布尔表达式,却对此毫不知情。

Shannon 的洞见将支撑本系列此后的每一篇文章。它之所以能够成立,是因为开关在串联后早已表现得像一种数学运算,只是当时还没有人把它写下来。换言之,AND 并非外加给电路的任意规则,而是对串联导通条件的形式化描述。

小结与后续内容

本篇在第 1 篇的基础上得到以下结论:

  • **串联接线形成单一路径。**路径上的每只开关都必须闭合,电流才能完成旅程。
  • **这条物理规则就是 AND。**只有全部输入同时为真时,结果才为真。
  • 四行真值表不是人为发明的——它直接由硬件观察得到。
  • **AND 是对称的。**开关在导线上的先后顺序不会改变结果。

“用继电器构建计算机”系列的第 3 篇文章将把相同的两个开关改为并联,使其分别位于从电池通向灯的独立支路。此时电流存在两条可选通路,只要任意一个开关闭合,灯就会点亮。由此可从物理连接直接得到 OR,并与本篇的 AND 串联条件进行比较。

通过串联与并联两种开关模式,即使尚未引入逻辑门符号,也能观察到基本逻辑结构。从导线出发有助于说明 Shannon 代数与物理开关网络之间的对应关系。

本系列中的每套电路均可在 DigiSim 继电器实验室 中构建;可通过改变连接组合和串联级数验证相应逻辑关系。

将想法变成真正可运行的电路。