ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

二极管与门、或门和三极管非门:用1N4148与9013理解数字逻辑底层

二极管与门、或门和三极管非门:用1N4148与9013理解数字逻辑底层 前阵子整理元件盒翻出一把1N4148和几只9013突然想起刚入门那会儿最让我上头的事——不是直接拿74系列芯片拼电路而是用两个二极管搭出与门、或门再用一只三极管做出非门。这几个看起来寒酸的分立元件门电路其实是理解数字逻辑最直观的入口。现在很多人一上手就用单片机与门或门非门全封装在芯片里看不见摸不着真到要分析某个电平为什么被拉低、某路信号为什么反相的时候反而说不清楚。这篇就把二极管与门、二极管或门、三极管非门这三块硬骨头从头扒一遍讲清楚电路怎么搭、参数怎么算、为什么这么设计以及我自己在面包板上踩过的那些坑。1. 分立元件搭门电路到底值不值得花时间1.1 芯片里看不到的底层逻辑逻辑门在芯片内部本质上就是一批二极管和三极管的组合只不过被做进了硅片、封装成了黑方块。你在数据手册上看到的输入高电平门槛、输出低电平最大电压、扇出能力这些参数追根溯源都来自里面那些PN结的导通压降和晶体管的饱和压降。直接拿74HC00这种成品门当然省事但一旦电路出现电平不匹配、信号被钳位、输出莫名其妙升高0.7V这类怪现象没有分立元件的基础就会一脸茫然。我用分立元件搭门电路主要是为了把抽象的逻辑变成能拿万用表量出来的电压。与门输出高的时候表笔显示几伏低的时候显示几伏和理论值对得上心里才踏实。而且这些电路结构简单、成本极低一个与门只要两只二极管加一个电阻做实验、做教具、给小项目里加个简单的硬件逻辑判断都够用。它的意义不在于替代芯片而在于让你理解芯片。1.2 二极管管逻辑、三极管管反相的分工这套方案的分工非常清晰二极管负责完成与、或这种组合逻辑因为它们单向导电天然适合做多路信号谁说了算的判断三极管负责反相因为它有基极控制集电极电流的开关能力输入和输出正好反着来。理解了这个分工后面每个电路为什么长这样就有迹可循了。具体来说与门和或门的差别只是二极管方向掉个头、电阻从上拉变下拉非门则把二极管换成三极管利用它截止时输出高、饱和时输出低的特性。这三个电路合起来理论上就能拼出所有复杂逻辑。下面逐个拆解每个都配参数计算和实测记录你可以照着在面包板上复现。提示本文所有电路默认采用正逻辑高电平记为逻辑1低电平记为逻辑0供电以常见的5V系统为例。2. 二极管与门两只管子加一个电阻的极简组合2.1 电路拓扑与导通路径分析二极管与门的标准结构是两只二极管的阴极分别接输入端A和B阳极并在一起作为输出端Y输出端再通过一只上拉电阻R接到电源Vcc。别看它简单里面的导通逻辑值得掰开揉碎讲。当A、B任意一端为低电平时比如A接0V那么A对应二极管的阴极就被拉到0V而它的阳极连着输出端输出端又被上拉电阻往Vcc方向拉。二极管阳极电压高于阴极正偏导通于是把输出端钳位在阴极电压加上一个正向压降的位置也就是大约0.7V。这就是低电平输出。只要有一路输入是低的输出就被拉低这正好是与逻辑的要求。反过来当A、B全都接高电平Vcc时两只二极管的阳极输出端和阴极输入端电位基本相同二极管处于零偏或微反偏基本不导通输出端只被上拉电阻轻轻拉到Vcc输出高电平。所以只有全部输入为高输出才为高。2.2 输出低电平为什么不是0V这是初学者最容易困惑的地方也是二极管与门最典型的瑕疵。理想逻辑里低电平就该是0V但实际输出低电平时量出来是0.7V左右。原因就是那个钳位作用——二极管导通总要有正向压降输出端没法低到0V只能低到输入低电平加上0.7V。在5V系统里0.7V还算能被后续电路识别成低电平因为TTL和CMOS的输入低电平门槛通常都在1.5V以下。但如果你把这种与门级联好几级或者用在对低电平要求很严的场合这个0.7V就会变成麻烦。更隐蔽的问题是这个0.7V会随着流过二极管的电流变化略微浮动电流越大压降越大所以在重载时输出低电平可能升到0.8V甚至更高。相比之下它的输出高电平倒是很干净直接等于Vcc因为全部输入为高时二极管不导通没有压降损失。这一点和或门正好相反也是这对电路对偶特性的一个体现。选型时我一般用1N4148它的正向压降在1mA到10mA区间大约是0.65V到0.75V开关速度快恢复时间只有几纳秒做逻辑门正合适。像1N4007这种整流管压降差不多但结电容大、恢复慢只适合做电源别拿来搭逻辑。2.3 动手搭建与实测记录我把这个电路在面包板上复现过好几次具体连接是两只1N4148的阴极分别接两根杜邦线当输入A、B阳极拧在一起接输出输出再串一只10kΩ电阻接到5V电源正极。输入端我用拨码开关切换0V和5V。实测数据很能说明问题A和B都接5V时输出量出来4.98V几乎是满值A接0V、B接5V时输出0.68VA接5V、B接0V时输出0.69VA、B都接0V时输出0.71V。这个0.71V的小差异来自二极管个体压降的区别。给输出挂一个10kΩ的负载电阻到地高电平基本不变低电平略微上浮到0.73V说明它带载时低电平会变差。注意上拉电阻不能选太小。如果选到几百欧输入端为低时流过二极管的电流会很大一是白白耗电二是0.7V的压降会更明显还可能超过二极管的额定电流。10kΩ到47kΩ是比较舒服的区间兼顾速度和功耗。3. 二极管或门把二极管方向掉个头就行3.1 与门的对偶结构把与门里的二极管全部反接再把上拉电阻改成下拉电阻你就得到了二极管或门。具体结构是两只二极管的阳极分别接输入A和B阴极并在一起作为输出Y输出再通过一只下拉电阻R接地。它的逻辑同样一目了然。当A、B任意一路接高电平比如A接5V那只二极管的阳极被顶到5V阴极连着输出端又被下拉电阻往0V方向拉二极管正偏导通把输出顶到大约4.3V也就是5V减去一个正向压降。只要有任意一路输入是高输出就是高满足或逻辑。只有当A、B全是低电平0V时两只二极管的阳极都在0V附近阴极输出被下拉电阻拉到0V二极管不导通输出干干净净的0V。所以全低才输出低。这个电路和与门几乎是镜像关系二极管方向相反电阻接法相反输出的好电平和坏电平也刚好对调。3.2 或门的电平跌落与带载能力或门的问题出在高电平上。输入高电平是5V经过一个二极管压降输出高电平只有4.3V左右。如果这个输出再去驱动下一级或门的输入下一级又要减一个0.7V变成3.6V级联两三级的功夫高电平就掉到识别门槛以下了。这就是为什么分立二极管门电路很少多级级联也是教材里要引入三极管做电平恢复的原因。下拉电阻的取值同样要权衡。取值太小输入为高时流过二极管的电流大输出高电平被压得更低还费电取值太大输出在高电平和低电平之间的跳变会变慢因为输出端的杂散电容和下拉电阻构成的时间常数变大。我一般取10kΩ到100kΩ速度要求不高时宁可取大一点省电。用一个表把与门和或门的关键差异摆出来对照着看更清楚对比项二极管与门二极管或门二极管方向阴极接输入阳极接输出阳极接输入阴极接输出电阻接法输出上拉到Vcc输出下拉到地输出高电平理想接近Vcc比输入高电平低约0.7V输出低电平比输入低电平高约0.7V理想接近0V主要缺陷低电平抬升高电平跌落3.3 实测与参数微调同上面一样我用1N4148和10kΩ下拉电阻搭了一遍。A、B都接0V时输出0.02V非常干净A接5V、B接0V时输出4.31VA接0V、B接5V时输出4.30V两路都接5V时输出4.32V。可以看到输出高电平稳定在4.3V左右这个数值和1N4148的实际压降吻合。如果你想缓解高电平跌落有几个折中的办法一是把输入高电平提高到比系统电压更高比如用12V给输入输出高电平变成11.3V再通过分压取回需要的电平但这要让二极管和电阻能承受高压二是选正向压降更低的肖特基二极管比如1N5819压降只有0.3V左右输出高电平能到4.7V。肖特基的代价是反向漏电流偏大在对漏电敏感的场合要谨慎。提示肖特基二极管搭逻辑门时低电平的抬升或高电平的跌落都会比普通硅管小实测能省下0.3V到0.4V的余量做实验时很值得一试。4. 三极管非门让信号拐个弯4.1 三极管的三种工作状态与开关选择要做非门得先想清楚三极管在开关电路里怎么用。三极管有截止、放大、饱和三种状态开关电路关心的只有两端截止时集电极和发射极之间几乎断开相当于开关断开饱和时集电极和发射极之间压差很小大约0.1V到0.3V相当于开关闭合。放大区是过渡过程开关电路要尽量避免管子长时间停在放大区否则功耗大、发热、输出电平也不确定。NPN三极管的导通条件是基极电位比发射极高大约0.7V而且基极要有足够的电流。截止条件是基极电位低于这个门槛或者根本没有基极电流。所以只要用输入信号控制基极电流的有无就能控制这只开关的通断。把发射极接地集电极通过电阻接Vcc输出从集电极取——这就构成了共射极反相电路也就是非门。逻辑关系是这样的输入高电平基极有电流注入三极管饱和导通集电极被拉到接近0V输出低电平输入低电平基极没有电流三极管截止集电极只被上拉电阻接到Vcc输出高电平。输入和输出一高一低、一低一高反相功能就出来了。4.2 共射极反相电路的电阻计算参数计算是非门的核心算错了管子要么不饱和、输出低不下去要么基极电流过大烧管。我以9013这只常用的NPN管为例走一遍完整计算供电5V集电极负载电阻Rc取1kΩ。第一步算集电极电流。三极管饱和时集电极到发射极压降取0.2V那么饱和电流是Ic等于Vcc减0.2V除以Rc也就是5减0.2除以1000等于4.8mA。这个电流是输出低电平时流过Rc和管子的电流决定了后级能吸取多少电流。第二步算所需基极电流。9013的电流放大倍数β典型值在100以上但设计要按最坏情况取最小值我取β等于100。要让管子进入饱和基极电流至少是Ic除以β即4.8mA除以100等于48μA。但48μA只是刚好让管子到达放大区和饱和区的边缘实际工程里要让管子深度饱和通常取5到10倍的过驱动系数这里取0.5mA。第三步算基极电阻Rb。基极电阻上的压降等于输入高电平减去基极发射极压降即5减0.7等于4.3V。Rb等于4.3V除以0.5mA约等于8.6kΩ取标准值8.2kΩ或10kΩ都行。取10kΩ时基极电流4.3mA除以... 重新算4.3V除以10kΩ等于0.43mA仍然远超48μA饱和没问题。饱和电流 Ic (Vcc - Vce_sat) / Rc (5 - 0.2) / 1000 4.8mA 最小基极电流 Ib_min Ic / β_min 4.8mA / 100 48μA 取过驱动系数 10则 Ib 480μA ≈ 0.5mA 基极电阻 Rb (Vin - Vbe) / Ib (5 - 0.7) / 0.5mA ≈ 8.6kΩ取 8.2kΩ还有一只电阻别忘掉基极到地的泄放电阻一般取10kΩ左右。它的作用是输入变低时把基极积累的电荷快速放掉让管子干脆利落地截止。没有这只电阻管子关断会变慢输出高电平的上升沿会拖尾做高频信号时尤其明显。4.3 从NPN到PNP高边开关与电平转换用法非门只是三极管最基础的用法理解了开关本质之后PNP管能玩出别的花样。PNP三极管导通条件是发射极电位比基极高0.7V所以把发射极接Vcc、集电极接负载就构成了高边开关控制信号为低时管子导通负载得电。这跟NPN低边开关正好互补。在电平转换场景里三极管特别好用。比如一个输出3.3V的信号要控制一个5V的电路NPN共射极电路接5V上拉输入3.3V高电平能让管
返回列表