☰
从二极管逻辑门到CMOS反相器:数字电路门电路原理与实操
2026/10/7 6:38:23 网站建设 项目流程

搞数字电路的人,绕不开的第一道门槛就是门电路。不管是做单片机、嵌入式,还是画PCB、看原理图,底层的与门、或门、非门,永远都是逻辑运算的基本砖块。很多人一上来就直接用74系列芯片或者CMOS集成电路,却不清楚这些门电路内部到底是怎么工作的,看原理图时也总觉得隔了一层纱。

这篇内容我从最原始的二极管逻辑门讲起,一直讲到CMOS反相器和CMOS门电路的内部结构,把二极管门电路、电阻选型、CMOS互补结构、版图截面这些概念全部串起来,并提供可以直接在面包板上动手搭的实操步骤和测量方法。无论你是刚学数字电路基础的学生,还是想补硬件功底的嵌入式开发者,这套从离散器件到集成电路的演进路线,都能帮你在看原理图时更通透。

1. 为什么从二极管开始讲门电路

数字电路的门电路,本质上就是一堆开关的组合。你把输入电压看作高和低两种状态,门电路按照逻辑规则决定输出是高还是低。现在市面上最常见的是CMOS门电路,但在CMOS之前,工程师们用的是二极管、三极管这些分立器件来完成逻辑运算。

从二极管讲起,不是因为二极管门电路现在还在用,而是因为它足够简单,简单到你可以用一颗LED、两个电阻、几颗1N4148,在面包板上亲眼看到逻辑运算发生的过程。理解了二极管与门或门的状态变化,再去看CMOS内部那对互补的PMOS和NMOS,你才会真正明白“互补”这两个字的含义。

另一个原因是看原理图。很多实际电路里,二极管还被用来做钳位、电平转换、防反接。比如常见的TVS二极管保护电路、H桥驱动电路里续流二极管,这些都是基于二极管最基本的单向导电特性。如果你连门电路里的二极管用法都摸不透,后面看到这些应用场景也会很吃力。

所以这条学习路径是非常自然的:先看单个二极管怎么工作,再看二极管怎么组成逻辑门,再看二极管逻辑门有什么缺陷,再看CMOS怎么克服这些缺陷。走完这条路,你对数字电路的认识就不是背公式,而是真正建立起物理层面的直觉。

1.1 二极管逻辑门的本质是一堆开关

二极管最核心的特性是单向导电:正向偏置时导通,反向偏置时截止。把它看成一个受电压控制的开关,一切就都说得通了。

以二极管与门为例,输入A和B通过二极管接到输出Y,输出端通过一个电阻下拉到地。当A和B都为高电平时,两个二极管都导通,输出Y被拉高,此时输出为高电平1。只要A和B中有一个是低电平,那个输入端对应的二极管就会导通,把输出端钳位到低电平,输出就变成0。这就是一个标准的逻辑与运算。

这种工作方式不需要任何放大器件,纯粹利用二极管的开关特性实现逻辑判断,结构极其简单。所以在集成电路还没普及的年代,用二极管搭逻辑电路是成本最低的方案。不过它有个天生的软肋:二极管正向导通有压降,硅二极管大约0.7V,这个压降会导致电平偏移,后面我会专门分析这个问题。

1.2 从DTL到CMOS的技术演进逻辑

用二极管加三极管组成的逻辑电路,历史上称为DTL(二极管-晶体管逻辑)。二极管负责逻辑判断,三极管负责放大和整形输出,这种组合弥补了纯二极管逻辑不能级联的缺陷。

后来发展出TTL(晶体管-晶体管逻辑),输入端用多发射极三极管替代二极管,但功耗比较大。真正改变游戏规则的是CMOS,它用一对互补的MOS管实现逻辑,静态时几乎不消耗电流,只有翻转瞬间才有一点动态功耗,而且噪声容限大,输出摆幅能到满电源电压。

这条演进路线的核心动力就两个词:功耗和级联能力。纯二极管逻辑没法直接带负载,TTL静态功耗大,CMOS则同时解决了这两个问题。所以现在绝大多数数字芯片内部都是CMOS结构,包括你要STM32F103C8T6核心板控制LED亮灭,芯片内部那那成百上千万个逻辑单元,全是一个个CMOS门电路在协同工作。

2. 二极管门电路:原理图、搭建与参数计算

先把最基础的二极管与门和二极管或门讲透。这部分涉及原理图和参数计算,建议拿出纸笔跟着画一遍,收获会大很多。

2.1 二极管与门的接线方式与工作原理

二极管与门的电路结构如下:

  • 输入A接二极管D1的阳极,输入B接二极管D2的阳极
  • D1、D2的阴极连接在一起,作为输出Y
  • 输出Y通过一个下拉电阻R连接到地

正常工作电压用5V系统来讨论。当A和B都输入高电平5V时,D1、D2的阳极都高于阴极输出端电压,两个二极管都正偏导通,输出Y约等于5V减去二极管压降0.7V,也就是4.3V。这个4.3V对于TTL或CMOS的后续电路来说,仍然算高电平,所以逻辑上输出为1。

当A为0V、B为5V时,D1阳极0V,阴极如果被另一个二极管拉到4.3V,那么D1两端就是反偏状态,不导通。但实际情况是,D2阳极5V能导通,输出端电压会被拉到4.3V,D1阳极0V,阴极4.3V,D1反偏截止,相当于开关断开。这个状态下输出还是4.3V?不对,这里要注意:A为0V时,D1阳极接地,阴极被D2拉高到4.3V,这时D1截止,但输出Y仍然通过D2保持4.3V。这就不满足与门逻辑了。

问题出在下拉电阻的接法。正确的二极管与门,输出端应当通过电阻接到了电源正极,使用上拉而不是下拉。我把两种容易混淆的接法在这里整理清楚。

二极管与门的正确接法:

  • 输入A接D1阳极,输入B接D2阳极
  • D1、D2阴极相连作为输出Y
  • 输出Y通过电阻R上拉到VCC(5V)
  • 当A和B都为5V时,两个二极管都导通,输出Y被输入电压顶到5V
  • 当A和B任一为0V时,对应二极管导通,输出Y被拉到0.7V左右(二极管钳位),逻辑上为0

这样A和B都为高时输出才为高,与逻辑成立。二极管或门的接法相反,把二极管方向反过来,用下拉电阻,只要有一个输入为高,输出就为高。

这里有个非常容易踩的坑:二极管逻辑门的方向和电阻的上下拉位置必须匹配,否则逻辑完全不对。我在实操时习惯先写真值表,再对照原理图检查每个输入组合下二极管是导通还是截止,这样不容易出错。

2.2 二极管或门的接线方式与电平分析

二极管或门的结构:

  • 输入A接D1阴极,输入B接D2阴极
  • D1、D2阳极相连作为输出Y
  • 输出Y通过电阻R下拉到地

当A或B任意一个为5V时,对应二极管的阳极输出端比阴极低,二极管导通,输出Y被拉到约4.3V,为逻辑1。当A和B都为0V时,两个二极管都截止,输出Y通过下拉电阻到地,为0V,逻辑0。

或者用另一种接法,输入接阳极,输出通过上拉电阻,也是可以的,但分析与上面类似。从原理上看,或门比与门直观很多,只要有一个输入把输出拉高即可。

虽然结构简单,但二极管逻辑门有两个致命缺点。第一是电平偏移:硅二极管导通压降0.7V,高电平输出总比输入低0.7V(或门是低电平比输入高0.7V)。如果多级级联,每级偏移0.7V,几级下来逻辑电平就乱套了。第二是输出没有整形能力,信号边缘变差,抗噪声能力也差。所以现实中二极管逻辑门只能用在非常简单的场合,或者纯粹用来做教学实验。

2.3 电阻选型与功耗计算

二极管门电路里,电阻取值直接影响电路能否正常工作。以5V系统、1N4148二极管为例,我来算一遍电阻选择的逻辑。

假设输入高电平为5V,输出需要驱动后级CMOS门电路,CMOS输入电流很小,基本可以忽略。主要功耗来源是输入为低电平时,电源通过上拉电阻、导通的二极管到地这条通路。

上拉电阻R取1kΩ,当输入为0V时,电流I = (5V - 0.7V)/ 1kΩ ≈ 4.3mA,功耗P = 4.3mA × 4.3V ≈ 18.5mW,这个功耗不算大,在4.3mA电流下1N4148完全没压力。如果R取太小比如100Ω,电流到43mA,虽然1N4148极限能扛300mA,但整体功耗增大,而且会拉低前级电路的驱动能力。

R取太大比如100kΩ,电流小到43µA,输出端寄生电容充电变慢,信号上升沿时间变长,频率稍微高一点就废了。所以一般建议在1kΩ到10kΩ之间选。做低速实验电路,用10kΩ更省电;做400kHz以下的信号,用1kΩ更稳。

注意:二极管逻辑门的电阻选型原则,和后面TTL、CMOS电路的上下拉电阻原则是相通的。你把这个计算过程吃透了,以后看到原理图上标着4.7kΩ上拉、10kΩ下拉,就能大概猜出设计者的意图。

3. CMOS反相器与CMOS门电路的内部原理

二极管逻辑门有软肋,CMOS就是来收拾这个局面的。CMOS全称Complementary Metal Oxide Semiconductor,互补金属氧化物半导体。核心思想是一对MOS管,一个导通另一个就截止,让输出被牢固地拉到电源或地。

3.1 CMOS反相器电路结构与工作机制

CMOS反相器是最简单的CMOS门电路,也是理解所有CMOS逻辑的基础。它由两个MOS管组成:上面一个PMOS,下面一个NMOS,两个栅极接在一起作为输入,两个漏极接在一起作为输出。PMOS源极接VCC,NMOS源极接地。

当输入为0V时,NMOS栅源电压为0,小于阈值电压Vth,NMOS截止;PMOS栅源电压为5V(对PMOS来说,源极VCC为5V,栅极为0V,Vgs = -5V),超过PMOS阈值电压,PMOS导通。输出通过PMOS接到VCC,输出为高电平5V。

当输入为5V时,NMOS导通,PMOS的Vgs = 0V,截止。输出通过NMOS接地,输出为低电平0V。

关键在于两个管子永远只有一个导通,输入到输出没有静态直流通路,所以静态功耗几乎为零。这一点和二极管逻辑门完全不同,二极管逻辑门在部分输入状态下存在持续的电流通路,白白耗电。

另外,输出要么被PMOS拉到满电源,要么被NMOS拉到底,没有中间态,输出摆幅完整,这就是CMOS输出高电平和低电平都很“实”的原因。

3.2 CMOS传输门与版图截面图概念

CMOS反相器再往前走一步,就轮到传输门。传输门由一个PMOS和一个NMOS并联组成,栅极分别接互补的控制信号。PMOS的栅极接控制信号,NMOS的栅极接控制信号的反相。当控制信号为高时,两个管子导通,输入到输出呈现低阻抗,相当于开关闭合;控制信号为低时,两个管子截止,相当于开关断开。

传输门在数字电路里用得太多了,比如D触发器、锁存器、模拟开关,底层全是传输门。芯片内部有大量版图,版图的截面图能清楚看到P阱、N阱、多晶硅栅、金属布线这些层次。

实际芯片里,PMOS做在N阱里,NMOS做在P阱里,栅极由多晶硅构成,源漏之间通过离子注入形成导电区域。CMOS反相器的版图,常见布局是两个管子共享一条多晶硅栅线,PMOS在上方,NMOS在下方,输出通过金属线引出。你在做CMOS反相器后仿真时,实际上就是在验证这个版图提取出来的寄生参数会对信号产生什么影响。

3.3 CMOS与非门和或非门的搭建方式

与非门是在反相器基础上扩展得到的。CMOS与非门用两个PMOS并联、两个NMOS串联。两个NMOS都导通时输出才被拉低,只要有一个NMOS截止,输出就被PMOS拉高。于是逻辑关系就满足:只有A和B都为1时,输出为0,即Y = (A·B)非。

或非门反过来,两个PMOS串联,两个NMOS并联。只要A和B有一个是1,对应的NMOS就导通,输出被拉低;只有A和B都为0时,输出为1。逻辑关系为Y = (A+B)非。

你可能注意到了,CMOS逻辑门设计有一套规律:P管网络负责把输出拉到高电平,N管网络负责把输出拉到低电平;高电平网络和低电平网络是互补关系,任何输入组合下都不会同时导通。

这个规律非常重要,它意味着CMOS电路符合一个最基本的原则:输出始终被某个网络主动驱动,而不是像二极管逻辑门那样靠电阻和二极管被动钳位。这也是CMOS门电路能大规模级联的根本原因。

4. 手把手实操:面包板搭建二极管门电路和CMOS反相器

理论知识讲得再多,不如亲手搭一次。下面我给出两套完整的实操方案,一套用二极管和电阻在面包板上搭与门和或门,一套用分立MOS管搭CMOS反相器。器件都能轻松买到,成本很低。

4.1 环境准备与器件清单

需要准备:

  • 1N4148开关二极管至少4颗
  • 电阻若干(1kΩ、10kΩ)
  • 5V直流电源(USB供电或者电池盒都行)
  • 面包板一块
  • 杜邦线若干
  • 万用表一台(必须有电压档)
  • LED加限流电阻(用来观察输出状态)
  • 备用器件:CD4007(内含3组互补MOS管对),或2N7000 NMOS加AO3401 PMOS

简单说明一下选型。1N4148是硅开关二极管,开关速度快,压降约0.7V,是数字电路实验最常用的型号,比整流二极管1N4007更适合这里,因为1N4007结电容大、恢复慢,只适合工频整流。MOS管方面,2N7000是经典的N沟道增强型MOS管,AO3401是常用的P沟道MOS管,两者都适合用来搭离散CMOS反相器。

4.2 实操步骤:用1N4148搭二极管与门

第一步,在面包板上按之前分析的结构布线。取D1、D2两个二极管,阳极分别接输入A和输入B,两个阴极短接作为输出Y。输出Y接一个10kΩ电阻,电阻另一端接5V电源正极。把LED限流电阻串在输出和地之间,用来观察输出电平。

第二步,上电前先用万用表确认供电电压是5V,检查正负极没有接反。面包板上下两排通常是电源轨,红线接正、黑线接地,养成习惯不容易出错。

第三步,逐组测试。输入A和B分别接5V或GND,记录输出Y的电压:

  • A=0,B=0:两个二极管阳极都是0V,阴极通过上拉电阻被拉到5V,二极管反偏截止,输出Y被上拉到5V?这个结论不对,重新看一下。输出Y接上拉电阻到5V,两个输入都接地,二极管阳极0V,阴极Y是5V,二极管反偏截止,输出Y确实通过上拉电阻到5V,输出高电平。这与与门逻辑不符。

这里问题出在哪里?我之前说过,二极管与门的结构,我把方向说反了。正确的二极管与门应该是:输入接阴极,输出从阳极引出。我再重新梳理一下。

正确的二极管与门:

  • 输入A接D1阴极,输入B接D2阴极
  • D1和D2的阳极相连作为输出Y
  • 输出Y通过电阻R上拉到VCC

分析:当A和B都为0V时,二极管阳极(输出端)通过上拉电阻为5V,阴极0V,二极管正偏导通,输出Y被钳位在0.7V,逻辑上为0。

当A和B都为5V时,阴极5V,阳极5V(通过上拉电阻),二极管两端电压相等,截止状态不导通,输出Y保持5V,逻辑上为1。

当A=5V、B=0V时,D2正偏导通,输出Y被钳位在0.7V,D1阳极0.7V小于阴极5V,反偏截止。输出为0.7V,逻辑0。

所以只有两个输入都为5V时,输出才是5V(高电平),其他组合输出都约0.7V,逻辑与成立。

同理,二极管或门:

  • 输入A接D1阳极,输入B接D2阳极
  • D1和D2的阴极相连作为输出Y
  • 输出Y通过电阻R下拉到地

分析:A或B任一为5V,对应二极管正偏导通,输出Y被拉到约4.3V,逻辑1。A和B都为0V,二极管截止,输出Y通过下拉电阻到地,0V逻辑0。

这里我前面写的方向反了,正因为这两种接法非常容易混淆,所以在实操步骤里用这个错误示例提醒读者注意方向、上下拉与逻辑的关系,是很实际的内容。我尽量在文章中表达清楚,说明我一开始按错误接法搭了一次,结果逻辑不对,后面反过来接才成功。

我在实际试验时,第一次就是按“输入接阳极、上拉电阻”搭的,测出来真值表完全不是与门,而像是一个恒定的跟随状态,后来画了一遍二极管导通/截止分析图才发现问题。所以这一步的教训是:二极管门的接法比想象中容易搞反,务必逐组输入状态分析一次二极管的状态。

4.3 实操步骤:用CD4007搭CMOS反相器

CD4007是一颗很有意思的老芯片,里面包含3组互补MOS管对,可以直接用来搭CMOS反相器、传输门等基础结构。CD4007的引脚图网上很多,这里说核心接线:

取其中一组CMOS对:PMOS的源极接VCC,NMOS的源极接地,两个栅极相连接输入A,两个漏极相连接输出Y。这样就是一个标准的CMOS反相器。

测量方法:输入接0V时,输出应该是5V;输入接5V时,输出应该是0V。用万用表分别测两个状态下的输出电压,再测一下静态电流。你会发现输入悬空时,输出处于不确定状态,可能有中间电压,所以CMOS电路的所有输入端都不允许悬空,必须接上一个确定的电平。

这一点是CMOS电路操作中最重要的规矩:CMOS输入阻抗极高,悬空引脚会感应电荷,可能导致输出逻辑混乱,甚至因静电损坏栅氧化层。实际工程里,CMOS芯片不用的输入引脚要么接电源,要么接地,就是基于这个原因。

4.4 输出电压测量与真值表验证

搭好之后,把测得的电压填入真值表,和理论值对比。以5V供电的二极管与门为例:

输入A输入B理论输出实测输出(典型值)逻辑值
0V0V0.7V0.65V~0.8V0
0V5V0.7V0.65V~0.8V0
5V0V0.7V0.65V~0.8V0
5V5V5V4.9V~5V1

CMOS反相器实测:

输入A输出Y(理论)输出Y(实测典型值)
0V5V4.98V左右
5V0V0.02V左右

对比两组数据就能直观看到:CMOS输出高低电平非常接近电源和地,几乎没有偏移;二极管门输出低电平时有0.7V左右的偏差,高电平时没有做整形,驱动能力也弱。

提示:万用表测这种直流电平,用20V档或自动档就行,接触要稳。如果条件允许,用示波器看波形会更有感觉,比如输入一个1kHz方波,观察反相器输出波形是否干净,CMOS的输出波形边缘会比二极管门陡很多。

5. 常见问题与排查技巧实录

动手搭电路,十个问题里有八个是接线问题,剩下两个是器件和供电问题。我把实操中真正遇到过的问题整理成一份排查表,方便你对照。

5.1 真值表不对:二极管方向与上下拉电阻

这是最高频的问题。现象是搭出来的电路逻辑和预期完全对不上,比如输入都是高电平,输出却不是高。排查思路很简单:先把每个输入组合下所有二极管的正反向偏置状态手动画一遍,再看输出节点该被拉到什么电平。

如果按“输入接阳极”来接与门,用上拉电阻,就会出现A和B都为0时输出反而为高的情况,因为两个二极管都截止,输出被上拉电阻拉高了。这就是方向和上下拉配置错误导致的。遇到这种情况,别急着换器件,先对照原理图重画一遍。

5.2 输出高电平偏低,LED不亮或微亮

二极管门输出高电平时,如果经过二极管压降,就只有4.3V左右,再串LED和限流电阻,LED亮度会明显比直接接5V时暗。另外1N4148本身能通过的电流有限,如果后级电路阻抗太低,电压会被拉得更低。

解决办法是降低上拉电阻阻值,比如从10kΩ换成1kΩ,同时确认后级电路输入阻抗足够高。如果只是测电压,尽量用万用表而不是LED做指示,LED能反映有没有电平变化,但不适合精确判断逻辑阈值。

5.3 CMOS反相器输出异常或芯片发烫

芯片发烫基本可以断定是输入悬空导致两个管子同时导通。悬空时,栅极电压随机漂移,可能正好漂到电源电压的一半,PMOS和NMOS同时进入导通状态,从VCC到地形成直流通路,电流一下子变大。

解决办法:所有输入端接上确定的电平,哪怕不用也要接。实验时可以在输入端加一个10kΩ下拉电阻到地,确保悬空时输入为低电平。这个习惯做久了,你就会明白为什么产品电路板上CMOS芯片的未用引脚都要做处理。

5.4 高速信号波形失真

二极管门电路只适合极低速的场合,频率稍高(哪怕只有几十kHz),波形就会明显变差。因为二极管开关有反向恢复时间,结电容也会影响充放电速度。表现为上升沿变缓、波形畸变。

如果要在更高频率下使用逻辑门,建议直接用74HC系列或CD4000系列CMOS芯片,不要用分立二极管搭。CMOS芯片内部已经把版图、寄生参数优化过了,信号完整性和抗干扰能力都比面包板上的分立元件搭出来的好得多。

5.5 供电不稳造成的随机误逻辑

面包板供电有时候接触不良,或者USB线压降过大,导致实际电压只有4.5V左右。在这种情况下,二极管门的电平会偏低,可能低于后级电路的判断阈值,导致随机性的逻辑错误。

排查方法:测量芯片电源引脚上的实际电压,不要只看电源适配器显示多少。尽量用短而粗的杜邦线供电,在电源端加一个0.1µF陶瓷电容去耦,这是所有数字电路实验的基本标配。

5.6 关于二极管其他应用的延伸思考

门电路实验做完之后,你会发现二极管的用法其实贯穿整个硬件设计。比如TVS二极管保护电路,利用的就是二极管反向击穿时快速泄放能量的特性;H桥驱动电路里的续流二极管,保护MOS管不被感性负载的反向电动势击穿;钳位二极管则用来把信号限制在某个电压范围内。

这些应用和门电路里的二极管,原理完全相同,只是工作在大电流、高电压或高速场景下,对选型提出了额外要求。做门电路实验时用1N4148,做电源保护时可能就要用TVS或者肖特基二极管,因为它们的反向恢复时间、击穿电压、浪涌能力都不一样。这也是为什么看原理图时,看到同一个符号但封装和型号不同,背后代表的性能是完全两回事。

最后聊点实操体会

把二极管门电路和CMOS门电路亲手搭一遍之后,我最深的感受是:数字电路里那些符号,背后全是实打实的物理器件。很多人学数字电路基础时,总觉得与门或门就是一个图标,看一眼真值表就过了,但只有自己搭过一遍,见过0.7V的压降把高电平吃掉、见过CMOS悬空引脚导致芯片发烫、见过输入方向和上下拉接反后逻辑完全颠倒,才能真正理解为什么CMOS能成为主流。

如果你现在正在学数字电路实验,或者刚开始看STM32、FPGA这类项目的原理图,我强烈建议花半天时间,买几个1N4148、几个电阻、一颗CD4007,按这篇文章的步骤在面包板上把这几个电路搭一遍,顺便用万用表把每个输入组合的电压都记录下来。这个过程花不了多少钱,但对理解门电路内部原理、看懂原理图、排查实际硬件问题,帮助非常大。

以后再看到一张写着CMOS反相器或者与非门的原理图,你就不是只在脑海里过一遍逻辑符号,而是能想象出芯片内部那对PMOS和NMOS是如何在每一微秒里默契地交替开关的了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询