第一次被零点漂移折磨是在一个传感器调理电路上。当时要放大一个只有几毫伏的直流信号,我用两级直接耦合的共射放大电路去搭,输入短路之后,输出端电压不是稳稳待在零位,而是一分钟能自己散步走出几百毫伏。这个“自己动”的现象,就是模拟电子技术基础课上最绕不开的概念之一——零点漂移。而解决它的主流方案,就是本文要展开的差分放大电路。这篇文章写给两类人:正在学模电、被差分电路折磨的初学者,以及工作后需要重新把基础捡起来的硬件工程师。我会把这套电路“为什么长这样”“怎么算参数”“实际怎么测”完整讲清楚,最后还有一些仿真和实物调试的踩坑记录。
先说结论:差分放大电路的核心价值不是放大倍数,而是“在放大差模信号的同时抑制共模干扰”。这个“共模抑制”能力,才是它在集成运放输入级里地位不可动摇的根本原因。下面我们从零点漂移这个老对手开始,一步步把电路拆开。
1. 零点漂移的本质:单管直流放大器的“自走”
1.1 一个让我反复返工的现场问题
当年做压力传感器信号调理时,传感器输出是一个约0~10mV的直流电压,后续需要放大到0~3V给ADC。我一开始想得很简单:一级共射增益不够,那就两级、三级直接耦合,后面再来个跟随器输出。结果一上电就傻眼了——输入端焊锡短路、信号源断开,理论上输出应该是0V,但实测输出根本不是0,而且在缓慢无规律地变化。更麻烦的是,这个漂移和信号混在一起,根本没法分辨哪部分是真实传感信号、哪部分是电路自己产生的。
后来查了许多资料才明白,这根本不是接错线的问题,而是直接耦合多级放大器在直流放大场景下的天然缺陷。每一级放大器的静态工作点都会随温度变化,直接耦合会把前级工作点的微小偏移一级一级放大,最终在输出端形成不可忽略的“假信号”。
1.2 零点漂移的三个主要来源
晶体管参数随温度变化是最核心的源头。Vbe的温度系数大约是-2mV/℃,也就是说温度每升高1℃,Vbe会下降约2mV。对单管放大而言,这个2mV的变化经过放大后会在输出端放大成巨大的漂移。假设后级总增益有1000倍,仅仅是温度升高5℃带来的Vbe变化就可能让输出移动10mV以上,这在精密直流放大中是无法接受的。
电阻阻值随温度变化也不可忽视。放大器的增益和静态工作点都依赖于电阻值,普通金属膜电阻的温漂大约在50~100ppm/℃,即每变化1℃,阻值变化0.005%~0.01%。对于分压电阻、集电极负载电阻,这种变化会直接转化为工作点移动。
电源电压波动是第三个来源。尤其是稳压特性不好的电源,供电电压轻微下降会让所有偏置点跟着动。这也就是为什么精密模拟电路里,电源往往比信号通道更讲究。
1.3 用数字感受一下漂移有多麻烦
做一个简单估算。设差分输入级等效总增益为2000倍,输入级单管Vbe随温度漂移为-2mV/℃。温度变化1℃时,等效到输入端的漂移就是2mV,输出端就是4V——这个漂移量已经完全覆盖了传感器0~10mV的动态范围,ADC读出来的东西全是噪音。
从工程角度看,这时候有两个解决方向。一是恒温,把电路板封在恒温槽里,成本高、体积大,一般设备根本做不了。另一个是改动电路拓扑,这就是差分放大电路登场的理由。
2. 差分对管的核心思想:拿对称性换稳定性
2.1 基本电路结构与静态工作点计算
差分放大电路的基本结构是一个对称的“双管共射对(后面有图)”。两只特性相近的NPN三极管Q1、Q2,集电极各接一个阻值相同的集电极电阻Rc,两个发射极连到一起,再通过尾电阻Re接到负电源Vee(也有直接接地的情况,但双电源供电是标准接法)。两个输入信号Vi1、Vi2分别加到两个三极管的基极,输出可以取两只管子集电极之间的电压差(双端输出),也可以只取其中一个集电极对地的电压(单端输出)。
静态分析时,两个输入端都接地。由于电路完全对称,两管的基极电流、集电极电流完全相同。设Vbe=0.7V,β=100,负电源Vee=-12V,尾电阻Re=5.1kΩ,Rc=6.8kΩ,正电源Vcc=12V。
尾电阻上的电流是两管发射极电流之和,也就是约2·Ie。发射极公共点电压约为 -Vbe = -0.7V(因为基极接地),所以尾电阻两端电压是 -0.7V 减去 -12V,等于11.3V。于是:
Ie ≈ 11.3V / (2×5.1kΩ) ≈ 1.1mA
也就是说,每管静态发射极电流约1.1mA,集电极电流约1.09mA,集电极静态电压约为:
Vc = Vcc - Ic×Rc ≈ 12V - 1.09mA×6.8kΩ ≈ 4.6V
这里有个非常关键的直觉:两管电流相等时,尾电阻上的电压是固定的。如果某只管子电流变大,另一只必然变小才可能维持总电流不变(在尾电阻恒流特性近似成立时)。这个“相互制约”的关系,就是后面理解共模抑制的钥匙。
2.2 尾电阻如何实现共模负反馈
所谓“共模信号”,就是两个输入端同时出现的、同方向、同大小的电压变化,比如电源纹波、地噪声、温度引起的Vbe漂移都近似表现为共模形式。假设温度升高,两管Vbe同时下降,两管Ib同时增加,Ic同时增加。这不仅让两个集电极电压同时下降,更重要的是,两管发射极电流之和也会增加,于是尾电阻上的压降升高,公共发射极点电位升高。
发射极电位升高会直接拉高Vbe,反过来压制电流的增加。这就是共模负反馈的基本过程:共模成分让尾电阻上出现压降变化,压降变化又抵消掉原始的共模漂移。Re越大,反馈越强,共模抑制能力越强。这里可以类比“两个人抬一个轿子”:如果两个轿夫同时被脚下地面颠簸抬起(共模),只要两人抬的高度一致,轿子还是平的;但如果轿子本身有一个“横杆”约束两个人的动作幅度,那两人即使同时被抬,横杆也会限制这种同向运动。
许多教材会写“Re对差模信号没有负反馈作用”,这一点一定要理解透。差模信号是指两个输入端一增一减,比如Vi1上升ΔV,Vi2下降ΔV。此时Q1电流增加,Q2电流对称减小,尾电阻上的总电流基本不变,公共发射极电位也就不变。既然发射极电位不动,那它对差模信号就不产生任何反馈作用。这也是为什么差分对能在提供大差模增益的同时,又用同一颗电阻实现了共模抑制——关键在于“差模电流抵消、共模电流叠加”这条天然性质。
2.3 为什么差模信号不受尾电阻“拖累”
对差模输入,两管电流一个增大一个减小,幅度相同、方向相反。流过尾电阻的电流增量是 ΔIe1 + ΔIe2 = ΔIe + (-ΔIe) = 0,所以尾电阻上的电压波形纹丝不动。这就相当于交流分析时,尾电阻的发射极连接点是一个“虚地”。
进入差模状态的电路,从Q1的角度看过去,它就是一个发射极交流接地的共射放大器,增益可以拉满;同样Q2也是。于是差模信号被两只管子正常放大,而尾电阻“既不添乱也不消耗增益”。这个特性是差分对结构最优雅的地方——它不需要一个额外的开关或选通电路,靠电流的对称抵消就自动实现了对差模和共模信号的区分。
3. 差模增益、共模增益与共模抑制比:半电路分析法
3.1 半电路分析法的操作步骤
分析差分电路,核心工具是“半电路法”。它利用电路对称性,把整个电路拆成两个独立的单管共射电路来分析,最后再合成结果。具体操作分两步:
对于差模信号,由于公共发射极点是虚地,直接把尾电阻从电路里去掉,把Q1和Q2各自看成一个发射极接地的共射放大器,输入分别为 +Vid/2 和 -Vid/2。
对于共模信号,由于两管电流变化方向相同,公共发射极电位会随共模输入移动。从单管视角看,尾电阻不再只是Re,而是等效为2Re——因为流过它的总电流是两个管电流变化之和,对单管来说等于自己发射极电流变化的两倍。等效出来就是每管发射极串了一个2Re的负反馈电阻。
3.2 差模增益推导与一个完整算例
差模输入时,对Q1单边来说,输入是Vi1 = Vid/2,输出是集电极电压变化。单边增益近似为:
A1 = -β·Rc / rbe
其中rbe是晶体管输入电阻,估算公式为 rbe ≈ 300Ω + (1+β)·26mV/Ie。
双端输出电压 Vod = Vc1 - Vc2,由于一侧反相一侧同相,vod = A1·vid/2 - (A1·(-vid/2)) = A1·vid。所以:
Ad(双端) = -β·Rc / rbe
用之前静态参数算:Ie≈1.1mA,rbe≈300 + 101×(26/1.1)≈2687Ω,β=100,Rc=6.8kΩ。
Ad ≈ -100×6800 / 2687 ≈ -253
也就是说,1mV的差模输入,双端输出能获得约253mV的变化,而且输入输出极性相反。
如果取单端输出,比如只看Q1集电极对地电压,输入仍然是一正一负,那半边贡献增益只有双端输出的一半,所以 Ad(单端) ≈ -127。
3.3 共模增益与KCMR,双端输出和单端输出的区别
共模输入时,两管电流同时增大或减小,公共发射极电位跟着变化。对单管而言,等效电路是一个发射极通过2Re接地的共射放大器,所以共模增益近似为:
Ac(单端) ≈ -β·Rc / (rbe + (1+β)·2Re) ≈ -Rc / (2Re)
代入数值:Ac ≈ -6800 / (2×5100) ≈ -0.67。也就是说1V的共模输入,在单端输出上会产生约-0.67V的共模输出。虽然它“放大了”不到1倍,但考虑到强共模干扰往往达到伏特级,0.67的输出也足够淹没毫伏级的小信号了。
真正有价值的是差模增益与共模增益的比值——共模抑制比:
KCMR = |Ad / Ac|
单端输出时,Ad取-127,Ac取-0.67,KCMR ≈ 190,约45.6dB。
双端输出时情况要亮眼得多:理想完全对称的电路里,两管集电极电压随共模输入的变化是完全相同的,Vc1 - Vc2 始终不变,因此Ac(双端) = 0,KCMR趋向无穷大。这也就是为什么高精度直流放大几乎都采用双端差分信号,并配合后级仪表放大器做减法。
3.4 有限失配才是现实:为什么实际KCMR没那么高
现实中不存在两个完全一样的晶体管。Vbe有一点点差异、Rc阻值差一点点、β差一点点,都会导致共模信号在双端输出端不能被完全抵消。此时双端输出共模增益不再是0,KCMR不再无穷大,而是由失配程度决定。
举个例子:两只Rc各为10kΩ,误差1%即相差约200Ω。双端输出时,一个集电极电压下降多一些,另一个少一些,输出端就不是理想的0了。从工程经验看,分立元件搭的差分对,双端输出的KCMR做到50~70dB是正常的,要再往上就需要精密电阻和配对三极管,或者直接用集成差分管和激光调阻工艺。
这个真相很重要:别把“理想无穷大”当成工程值。仿真软件里如果电阻精度设成理想值,算出来的KCMR可能高得离谱,但实际焊板后性能会明显掉下来。这是我踩过最大的认知坑之一。
4. 想要更高的共模抑制比:从长尾电阻到恒流源
4.1 长尾电阻的代价:电源电压与动态范围的矛盾
从 Ac(单端) ≈ -Rc/(2Re) 可以看出,想要提升KCMR,一个直接手段是加大Re。但Re变大不是没有代价的。静态电流由尾电阻决定,Ie≈(0-(-Vee)-Vbe)/(2Re),如果我把Re从5.1kΩ换成100kΩ,而电源电压不变,那静态电流就掉到约0.056mA,rbe会暴涨到约47kΩ,差模增益反而大幅下降。要维持同样的静态电流,就必须把负电源电压提升到上百伏,这在板上根本不现实。
这就是“长尾电阻”的瓶颈:它是一条腿,但这条腿占了太多电压裕量。要获得高共模抑制比,同时又不牺牲工作点,就得用一个“动态电阻大、直流压降小”的东西去替代它,这就是恒流源。
4.2 恒流源取代尾电阻的经典做法
理想的尾电阻替代方案是:对直流,压降固定,电流恒定;对交流,等效阻抗无穷大。三极管恒流源恰好符合这个需求。
最经典的接法是用一只NPN管Q3构成恒流源。Q3的基极用两个电阻R1、R2分压,发射极串电阻R3到负电源。基极电压固定,Vbe固定,所以R3上的电压(决定了电流)就固定,于是集电极电流恒定:
I0 ≈ (Vb - 0.7V) / R3
Q3工作在放大区时,它的集电极-发射极动态阻抗可达几百千欧甚至兆欧级,而它两端的直流压降只需要2~3V。这等于用很小的直流压降代价,换来了非常大的交流等效Re,KCMR可以轻松比长尾电阻方案提升一个量级。
集成运放的输入级几乎都这么干。比如经典运放内部,尾电流就是一个镜像电流源,两只输入对管的工作电流由一个外部偏置电流决定,温漂小且抗电源波动能力强。
4.3 失调电压的成因与调零手段
即使电路是对称的,实际三极管的Vbe、β、以及电阻误差都会导致“输入短路时输出不为零”。把这个输出误差折算回输入端,就是输入失调电压Vos。普通分立差分对的Vos大约1~10mV,集成运放的Vos可以做到微伏级。
在很多精密场合,这个失调不能靠“接受它”来处理,需要调零。经典手段有两种:第一种是在两只集电极电阻之间加一个电位器,改变两侧集电极等效负载,从而补偿不对称;第二种是在发射极之间加一个小阻值电位器,通过引入不对称发射极电阻来抵消Vbe失配。实测中我更推荐用发射极调零方式,它对差模增益的影响更小,调零效果也更线性。
需要注意的是,调零只能补偿当前温度下的失调。温度一变,Vos会重新漂移,所以极高精度场景需要使用斩波稳零或自动校准技术,这是后话。
5. 仿真与实测:如何把理论变成可信的数据
5.1 SPICE仿真中的典型接线与参数
仿真是学习差分电路性价比最高的方式,建议用Multisim或LTspice。我以LTspice为例画一个最基础的双端输出差分对。这里给出一份可直接运行的SPICE网表架构:
VCC VCC 0 12 VEE 0 VEE 12 Q1 VC1 VI1 VE Q2N3904 Q2 VC2 VI2 VE Q2N3904 RC1 VCC VC1 6.8k RC2 VCC VC2 6.8k RE VE VEE 5.1k V1 VI1 0 DC 0 AC 1 V2 VI2 0 DC 0 AC 1注意电源VEE我用了电压源VEE正极接地、负极接电路,这样仿真器里能形成双电源。做AC分析时,让V1和V2一个设为+0.5V、一个设为-0.5V就是差模激励;两个都设为+1V就是共模激励。跑完AC扫描后,直接看输出VC1-VC2的幅频响应,能清楚看到差模增益和共模增益的差别。
仿真时要特别留意:如果不给静态工作点设置合理的初值,某些版本仿真器可能无法收敛。遇到不收敛,试着加一个较大的栅极/基极对地电阻,或者把并联电阻选项打开。
5.2 实测共模抑制比的完整流程
实物测试建议按下面这套流程走,顺序不要乱。
先把两个输入端接到一起并接地,用万用表测两个集电极对地电压。理论上应该相等且接近4.6V,如果相差超过几十毫伏,说明两个Rc或两个管子的失配比较明显,先排查器件配对。
然后给两个输入端同时加一个已知的共模信号。比如用信号发生器输出1kHz、幅值1V的正弦波,接到短接的两个输入端,用示波器测双端输出电压。理想情况下输出应为0,实际会看到一个几十毫伏的小信号,这个信号除以输入1V就是双端共模增益。假设实测得到20mV,那双端Ac就是0.02。
接下来做差模测试:把信号发生器的输出接到Vi1,Vi2接地,或者用一个变压器产生正负对称信号。用示波器观察VC1-VC2,测得输出幅值再除以输入差模电压,得到差模增益。最后用KCMR=20lg(Ad/Ac)算出共模抑制比。
实际操作中,输入信号幅值不要选太大,避免输出摆幅受限。差模输入20mV比较合适,因为单边增益约127倍,双端大约253倍,输出会到5V左右,接近电源轨边界,再大就削顶了。
5.3 示波器测差分信号的坑:A-B模式与差分探头
测差分电路的输出,最容易出问题的地方在测量环节。如果把示波器两个通道的地夹子分别夹到两管集电极,信号是量到了,但两个地夹子通过示波器内部的地线连在一起,等于把两个集电极交流短接,会把电路工作点破坏掉,测量结果完全失真。
正确做法是:用示波器的两通道分别接VC1和VC2,然后启用数学通道或者A-B差分运算模式,让示波器自己计算两个通道之差。这样地夹子共用一个参考地,不会破坏电路。更高频场景建议直接上差分探头,它的共模抑制能力远强于普通探头做A-B,而且可以避免两通道增益不一致带来的测量误差。
这里还牵出一个经验:测量共模增益时,如果用普通探头A-B模式,探头本身通道间增益失配(一般为±1%左右)也会产生假信号干扰读数。比如输入1V共模信号,两个通道增益差0.5%,A-B输出就有5mV的虚假差分,这对高KCMR测量来说已经被放大了很多倍。所以精密测量最好用匹配好的差分探头,或者在测试前先做通道增益校准。
6. 我踩过的坑和给初学者的几条调试顺序
6.1 先算静态,再谈动态:别上来就怼示波器
刚开始学差分电路时,我拿到电路就直接接信号源看波形,结果输出一团糟,以为电路没焊对。后来才意识到,动态特性是建立在静态工作点之上的。正确顺序永远是:上电后先测两个集电极直流电压、公共发射极电压,跟手算值对比。差得远就先把静态调对,再考虑输入信号的事。
静态调不对最典型的表现是管子进入饱和区。集电极电压接近发射极电位,说明Ic过大或者Rc过大,这时放大功能已经失效了。遇到这种情况,先检查尾电流,确保Ie在几百微安到几毫安这个合理区间,再检查Rc取值是否和电源电压匹配。
6.2 元器件不对称比理论计算更致命
理论公式都基于完全对称的假设,而实物永远不可能完全对称。我用万用表挑过最接近的两只2N3904,Vbe误差还是有1~2mV,这直接限制双端KCMR上限。实际项目里如果要追求高性能,优先考虑三件事:
第一,集电极电阻必须用0.1%甚至更高精度的精密电阻,不要用普通5%金属膜电阻。第二,输入对管最好买配对管,或者用集成差分对芯片,它们的Vbe和β匹配度远超自己挑选。第三,保持热耦合,两只对管要紧挨着布局,最好做到对称布线,避免一侧吹风一侧背风导致温漂。
6.3 常用参数速查与选型建议
给一张速查表,方便直接抄作业。基本参数取Vcc=12V、Vee=-12V、β=100、Vbe=0.7V。
| 参数 | 常见取值 | 影响 |
|---|---|---|
| Rc | 4.7k~10kΩ | 决定差模增益和输出摆幅 |
| Re(长尾) | 5.1k~51kΩ | 决定共模抑制和静态电流 |
| 尾电流I0 | 0.5~2mA | 平衡增益、噪声和功耗 |
| rbe估算 | 300Ω+(1+β)·26mV/Ie | 计算增益必须用 |
| Ad(双端) | -βRc/rbe | 典型值约-200~-400 |
| Ac(单端) | -Rc/(2Re) | 典型值约-0.1~-0.7 |
选型逻辑可以记成一句话:先定尾电流,再定Rc,最后按希望的KCMR倒推Re或恒流源动态阻抗。不要反着来,否则很容易出现静态工作点飞了、增益却不够的窘境。
最后再分享一个小技巧:调试前先做一次“手指加热试验”。用手捏住其中一只输入对管,观察输出端电压变化,如果变化很大,说明这个位置的对称性和热耦合还有问题;如果变化很小,说明共模抑制设计到位了。这个土办法在实验室里比仪器还能快速暴露问题,我用它排除过好几块板子的热漂移故障。差分电路就是这样,理论扎实之后,调试方向会非常清晰。