干了这么多年硬件,面试过不少人,也带过不少新人,发现一个挺有意思的现象:一说“差分放大电路”,大家第一反应都是“我知道,就是放大两个输入信号的差值”。但真让他在白板上把放大倍数公式推一遍,顺便解释一下虚短虚断到底是怎么回事,很多人就开始卡壳了。这玩意儿确实是模拟电路里的一个基础门槛,但也是传感器信号调理、电流检测、音频平衡传输这些场景里绕不开的核心单元。
今天我不想讲那些教科书式的定义,就从一个实际工程师的角度,把这个差分放大电路掰开揉碎,手把手带你把放大倍数公式一步步推出来,顺带把虚短虚断这两把“钥匙”讲明白。看完之后,你可以不用死记任何公式,随手画个电路就能自己推结果。无论是准备面试、做课设,还是调实际产品,这篇都能给你省不少时间。
1. 差分放大电路是干什么的:一个被低估的万能单元
1.1 你在哪些场景会用到差分放大
差分放大电路的应用场景比你想象中要多得多。最典型的就是电桥传感器的信号读取,比如称重传感器、压力传感器,它们输出的本身就是两个引脚之间的微小电压差。假如一个引脚是2.485V,另一个是2.515V,你真正关心的其实是那30mV的差值。如果用单端放大器去放大,这30mV会连同2.5V的共模电压一起被放大,输出早就顶到电源轨上去了,压根没法看。差分放大器的作用就是只认这两个输入之间的差值,把2.5V这种“共同部分”尽量忽略掉,这在专业术语里叫共模抑制。
还有电流检测也是重灾区。低边电流采样一般是用一个毫欧电阻串联在地线上,然后放大电阻两端的压降,这个场景其实用普通运放就能搞定。但高边电流采样呢?采样电阻在电源正端附近,电阻两端电压可能是12V和11.95V,你得把这两者的差值放大,而且不能把12V的共模电压也一起放大。这时候差分放大电路就是最直接、最省钱的方案,比买专用的电流检测芯片要灵活得多。
再比如音频设备里的平衡信号转非平衡信号,本质上也是在做差分接收。一个卡侬头的2脚和3脚上是一对反相的音频信号,中间还叠加了传输线上感应到的噪声,用差分放大器一减,有用的音频信号翻倍,噪声却被抵消掉了。用过这种方案做过产品的人都知道,效果确实立竿见影。
1.2 一个最小可用的差分放大拓扑
先说清楚基本电路结构。一个最经典的差分放大器由一只运算放大器和四只电阻组成,如下图所示的结构关系:反相输入端通过R1接输入信号V1,反馈电阻Rf从输出端接回反相输入端;同相输入端通过R3接另一个输入信号V2,同时R2从同相输入端接地。
这里很多人会记混的地方是:同相输入端不是直接接输入,而是先经R3,再通过R2到地,形成一个分压结构。这个细节极其重要,因为它直接决定了V+点的电压不是V2,而是V2在R2上的分压。你要是把R2和R3当成摆设直接认为V+等于V2,后面推导出来的公式全是错的。
这个电路的神奇之处在于,四个电阻只要满足一个特定关系,输出就正比于两个输入信号的差值。更妙的是,这个电路的“差分”特性并不是靠运放本身实现的,运放只是提供了一个高增益的闭环环境,真正的“减法”功能是靠电阻的配比关系实现的。很多新手以为换了运放就能提升性能,实际上在标准差分结构里,电阻的匹配精度往往比运放本身对性能的影响更大,这一点后文会详细展开。
2. 虚短虚断:分析运放电路的两把钥匙
2.1 虚短的来龙去脉
虚短,说的是运放正常工作时,同相输入端和反相输入端的电压近似相等,也就是V+ ≈ V-。这听起来很玄乎,甚至有点反直觉——两个输入端明明没有导线相连,凭什么电压相等?要理解这个,得从运放的极限增益说起。
一个理想运放的开环增益A是无穷大的,实际运放再差也有几万到几十万倍。运放的输出Vout和两个输入端的差值Vd之间满足Vout = A × Vd。既然输出是有限的值,比如5V,那么Vd就等于Vout除以A,也就是5除以10万,算下来才50微伏。这个值相对于我们电路里的电压尺度来说,小到可以忽略不计,因此就可以认为是V+ ≈ V-。
打个比方,就好比你用手去抬一根跷跷板的一端,手稍微用一点点力,跷跷板另一端就会大幅度摇动,最终稳定在某个位置时,你手上感觉到的反力几乎为零。运放在负反馈下就是这样一个自平衡系统:它不断调整输出电压,让两个输入端的差值趋向于零。关键前提是运放必须工作在负反馈和线性区内,一旦输出饱和,比如顶到电源轨,Vd就不再趋向零,虚短就不成立了。这一点后面排查问题的时候时常会用到。
2.2 虚断的本质是输入阻抗接近无穷
虚断就更直接了:流入运放同相输入端和反相输入端的电流近似为零。原因是理想运放的输入阻抗是无穷大,实际运放的输入阻抗虽然达不到无穷,但通常也有兆欧级别,甚至有输入阻抗高达10^12欧姆的运放,比如CA3140这类场效应管输入的型号。相对于外部电路里常见的几千欧、几十千欧电阻来说,流入运放输入端的电流确实小到可以忽略。
还是用跷跷板来类比:如果跷跷板的支点被设计成几乎没有摩擦,那么你无论怎么往下压,支点处消耗的力都可以忽略。运放的输入端就像这个支点,只感受电压,不索取电流。
虚断的意义在于,我们在列节点电流方程的时候,可以理直气壮地把运放输入端那个节点当成“断路”来处理,电流不会从外部电路流进运放,所有外部电流关系都只取决于外围电阻。这大大简化了分析过程。不过要注意,虚断对JFET输入或CMOS输入的运放来说近似度很高,对双极型输入的运放在低温或大输入偏置电流时就不那么准确了,需要额外考虑偏置电流的影响。
2.3 什么时候这两把钥匙会失灵
虚短和虚断是分析运放电路最常用的近似,但初学的时候特别容易把它们当成绝对真理,这里必须提醒几个关键的“失效场景”。
运放输出饱和的时候,虚短失效。比如你用单电源供电,输入信号让运放输出已经顶到0V或者电源电压附近,此时输出Vout不再等于A乘以Vd,反馈环路已经失控,两个输入端的电压差可能变得很大。调试时如果你发现V+和V-量出来差了零点几伏,不用怀疑,先查输出是不是已经贴轨了。
输入偏置电流不可忽略时,虚断不严格成立。普通双极型运放,比如LM358、OP07,输入偏置电流在纳安到微安级别,如果你的外部电阻用的是兆欧级别,那这个偏置电流在电阻上产生的压降就不可忽视了,会给放大倍数引入明显误差。这种情况下要么换用FET输入的运放,要么在电路中增加平衡电阻来抵消。
共模输入电压超范围时,两个条件同时失效。运放的输入级对共模电压有一个允许范围,一般是电源电压减去1.5V左右。当你把差分放大器用在高压环境,比如48V电池组的高边电流检测,共模电压超过了运放允许的范围,输入级管子直接截止或者反向导通,V+和V-的差值关系完全乱套。这时你需要的是精密电阻分压网络先把共模电压降下来,或者直接用高压共模差分放大器,而不是硬靠一个普通运放去扛。
3. 手把手推导差分放大倍数公式
3.1 叠加定理拆开算,比死记公式靠谱
我先讲一个几乎所有教材都会用、也是我自己最推荐的方法,叠加定理。差分放大器是线性电路,线性电路的核心原则就是可以“分开算,再加起来”。我们把两个输入信号V1和V2分别单独作用,得到各自的输出分量,再把两个分量叠加,就是总输出。
先看第一步,令V2=0,也就是把R3的左端接地,只让V1作用。此时同相输入端通过R3接地,虚断告诉我们R3上没有电流,所以V+点的电压是0。根据虚短,V-点的电压也等于0。这又引出一个常用的概念——虚地。反相输入端虽然不是真正接地,但由于V+接地且虚短成立,它的电位被钳在了0V。
现在看反相输入端节点。V1经过R1流入这个节点,因为V-是0V,所以流过R1的电流就是V1除以R1,方向是从V1流向V-节点。再看反馈电阻Rf,它左端接V-的0V,右端接输出Vout,所以流过Rf的电流是0减去Vout除以Rf,等于负的Vout除以Rf。根据虚断,流入运放反相输入端的电流是0,所以流过R1的电流必然全部流过Rf。列等式:
V1 / R1 = -Vout1 / Rf
于是V1单独作用下的输出分量就是:
Vout1 = -(Rf / R1) × V1
这个结果你肯定眼熟,没错,这就是标准的反相放大器增益公式。差分电路在V2接地时,退化成了一个反相放大器,这个视角可以帮助你理解为什么差分电路里R1和Rf决定了一路的增益。
3.2 让V2单独作用,同相那一路怎么算
第二步,令V1=0,也就是把R1的左端接地,只让V2作用。此时电路看着像一个同相放大器,但要注意V2并不是直接接到同相输入端,而是先经过R3和R2分压。
先算V+点的电压,因为虚断,R3和R2这条支路上的电流是连续的,V2在R3和R2之间分压,于是:
V+ = V2 × R2 / (R3 + R2)
然后,虚短告诉我们V-也等于这个电压。现在看反相输入端,由于虚短,V-被抬到了一个非零电位,不再是0V。流过R1的电流是V-除以R1,等于V+除以R1;流过Rf的电流是(V- - Vout)除以Rf,等于(V+ - Vout)除以Rf。这两个电流依然相等,可以列出方程:
V+ / R1 = (V+ - Vout2) / Rf
整理后得到:
Vout2 = V+ × (1 + Rf / R1)
把V+的表达式代进去:
Vout2 = V2 × [R2 / (R3 + R2)] × [1 + Rf / R1]
这个式子里那一大坨就是同相输入通道的增益。它和标准的同相放大器公式的区别,就是多了一个分压系数R2/(R3+R2)。初学者最容易漏掉的就是这个分压系数,一旦忘记,整个公式就完全不对了。
3.3 把两个半路结果拼起来
根据叠加定理,总输出就等于V1单独作用的贡献加上V2单独作用的贡献:
Vout = -(Rf / R1) × V1 + [R2 / (R3 + R2)] × [1 + Rf / R1] × V2
到这一步,这是最一般形式的差分放大倍数公式,适用于任意四只电阻取值。但这样的表达式不好看,也不直观。为了让它真正实现“放大差值”的功能,我们需要做一个关键约束,让两个输入通道的增益相等。
方法是令R1 = R3,Rf = R2。代入上式,第二项的系数就变成:
[R1 / (Rf + R1)] × [1 + Rf / R1] = [R1 / (Rf + R1)] × [(R1 + Rf) / R1] = 1
这是在电阻匹配条件下,那个大分压系数和同相增益相乘之后神奇地约等于1。于是公式简化为:
Vout = (Rf / R1) × (V2 - V1)
这就是我们在教材和工程中常见的最终结论:差分放大器的放大倍数等于Rf除以R1,输出等于放大倍数乘以两个输入信号的差值。负号在运算中被吸收进了减法关系里,V2减V1,如果V2大于V1,输出为正,反之输出为负。
这个推导过程的关键不是记住最终公式,而是体会那个“电阻匹配让系数约等于1”的瞬间。你在任何时候画差分放大电路,只要四只电阻满足R1=R3和Rf=R2的关系,输出就是(Rf/R1)(V2-V1)。如果电阻不匹配,那就回到了前面那个更复杂的表达式,输出中还会混入共模分量,这个问题下面一章详细说。
3.4 信号源内阻会偷偷改变你的增益
很多人推导完公式就直接去搭电路了,往往忽略了一个问题:信号源本身是有内阻的。如果你的V1和V2是从高阻抗的传感器出来的,传感器内阻会串进R1或R3回路里,等效改变了R1和R3的阻值。
举个例子,假设R1和R3都设计成10kΩ,但V1那一路的传感器内阻有1kΩ,V2那一路的传感器内阻只有0.1kΩ。按理说R1=R3=10kΩ,但实际反相通道的电阻变成了11kΩ,同相通道的电阻变成了10.1kΩ,匹配关系被破坏,共模抑制性能直线下降。
解决办法有两种。第一,在信号源和放大器之间加高输入阻抗的缓冲器,也就是电压跟随器,先把信号源内阻隔离掉,再接差分放大器。第二,如果对精度要求不是极高,可以选择比较大的R1和R3,让信号源内阻相对变小,把误差压到可接受范围。实操中我一般优先用缓冲器方案,尤其是传感器输出阻抗会随环境变化的情况下。
4. 从公式到工程:电阻匹配与共模抑制
4.1 共模抑制比是怎么被电阻搞垮的
前面推导出的简洁公式Vout=(Rf/R1)(V2-V1),隐含了一个前提:四只电阻完美匹配。但实际的电阻都是有误差的,误差的存在会让差分放大器失去理想的共模抑制能力。
我们可以做一个思想实验。假设两个输入信号同时加上2V的共模电压,也就是V1=2V,V2=2V。如果四只电阻完全匹配,按公式输出应该是零。但电阻有误差后,实际输出会是一个不为零的电压。这个电压就是共模信号残留下来的误差,它会在你真正想要放大的差模信号上叠加干扰。
衡量差分放大器抑制共模能力的指标叫共模抑制比,也就是CMRR。对于这个四电阻差分结构,CMRR主要受电阻匹配精度限制,而不是运放本身。工程上有个粗略的估算式:最大共模误差约为容差的四倍除以(1加增益)这么个关系,换句话说,CMRR大约等于(1+G)/(4δ),其中G是差模增益,δ是电阻的相对容差。
拿具体数字说话。假设增益G=10,电阻容差δ=1%,也就是普通精度贴片电阻,那么CMRR大约为(1+10)/(4×0.01)=275倍,换算成dB大约是48.8dB。这个水平说实话一般般,很多运放本身的CMRR都在100dB以上,但你的外围电阻只有49dB,整机的共模抑制能力就被电阻锁死在49dB了。换句话说,换一万块钱的运放也没用,瓶颈在电阻。
4.2 电阻误差的影响到底有多大
再来一个更直观的计算。假设你想设计一个增益为10的差分放大器,取R1=R3=10kΩ,Rf=R2=100kΩ。实际买回来的电阻,R1误差+1%,Rf误差-1%,当面值偏移方向相反时,误差最恶劣。
我们把带有误差的阻值代入最一般的输出电压表达式里算一算。假设两个输入端都加2V共模电压,理想输出应该是0,但实际计算下来输出可能有几十毫伏到上百毫伏的误差。这个偏移相当于在输出端叠加了一个等效的输入失调电压,直接让你的传感器读数失真。
更麻烦的是,电阻的误差不仅有初始容差,还有温漂。普通的厚膜贴片电阻温漂通常有±100ppm/°C,温度变化50°C,阻值就能漂0.5%。如果你的产品要在-20°C到70°C的环境工作,电阻匹配精度会随着温度进一步恶化,共模抑制性能也随之波动。我见过不少产品在实验室25°C下测试一切正常,一到现场环境温度一变化,输出就明显飘,查到最后几乎都是电阻匹配问题。
要压住这个误差,工程上有几个常用手段:第一,用精密薄膜电阻,容差0.1%,温漂±25ppm/°C,价格虽然贵一些,但性能提升是数量级的;第二,用集成电阻排或分立电阻网络,它们内部做了激光调阻,四个电阻的匹配度可以在出厂时就做到极高的一致性;第三,实在追求极致就用仪表放大器,把电阻匹配做到芯片内部,这是后话。
4.3 工程上怎么挑选和排布电阻
关于电阻选型,我的个人经验是:标准差分放大电路里,四个电阻的等值匹配优先级远高于绝对精度。也就是说,R1和R3之间、Rf和R2之间的配对精度,比它们各自的绝对精度更重要。举个例子,R1和R3都用9.9kΩ,Rf和R2都用100.1kΩ,虽然绝对精度都偏了,但匹配关系保持得很好,共模抑制性能依然优秀。反过来,如果R1是9.9kΩ、R3是10.1kΩ,两者匹配被破坏,输出性能会明显变差。
PCB布局上也有讲究。四个电阻尽量放在同一区域,并且保持相同的走线方向和长度,让它们处于相近的温度环境中。如果电阻离得太远,一边靠近发热器件,一边靠近散热好的位置,两者之间会有温度差,匹配就被热应力破坏了。差分走线最好平行等长,同相和反相输入路径要对称。这些细节在低速采样电路里可能影响不大,但在高精度称重或者仪表放大场景里,差之毫厘谬以千里。
还有一个容易被忽略的细节:反馈电阻Rf的取值不要过分大。Rf用得越大,电路噪声就越大,而且和运放输入电容、PCB寄生电容形成的极点频率越低,动态性能越差。一般我习惯把Rf控制在几百千欧以内,如果确实需要很高的增益,宁可加分压或加级,也不要用一个1MΩ以上的反馈电阻硬扛。这个问题在后续的噪声排查里还会遇到。
5. 常见问题排查与调试实录
5.1 输出一直饱和,怎么查
这是新手用差分放大器最常遇到的故障。板子通电后输出直接怼到电源电压,不管怎么调输入都没反应。按照经验,排查顺序是这样的:先查运放电源正负是否都正常,用万用表量一下V+和V-的电压差。再查输出是否已经贴轨,如果输出等于正电源或负电源,说明运放已经饱和。然后量一下两个输入引脚的电压,如果它们不相等,甚至差很多,说明虚短条件不满足,负反馈通道断开了。
最常见的原因是反馈电阻Rf虚焊,或者Rf贴片电阻一端翘起,导致反相输入端到输出的反馈通路断开,运放开环工作,直接饱和。第二个常见原因是电阻取值错误,比如把R1和R3搞混了,或者R2误装成了0欧姆,导致同相输入端直接接地,电路变成了纯反相放大器,输出在输入信号比较正的时候当然就饱和了。
还有一个隐蔽原因:共模电压超过了运放输入范围。比如用单电源5V供电的运放,输入共模电压却是4V,而运放的输入范围只有0到3.5V,这时候运放输入端内部的保护二极管导通或者输入级截止,输出也会异常。所以调试前先翻一下运放的数据手册,确认输入共模电压范围,再对照电路里的实际电压是否在范围内。
5.2 共模电压一高输出就飘
另一个高频问题是:两个输入端的共模电压变化时,哪怕差分信号不变,输出也会跟着漂。比如用差分放大器做高边电流采样时,负载电流不变,但电源电压从12V涨到13V,输出竟然也跟着变了。把两个输入端短接后接地,输出并非固定在零点,而是随着共模电压升高而明显偏移。
这个现象几乎可以肯定和他的电阻匹配度、或运放本身的共模抑制能力有关。先用精密电阻替换测试,看漂移是否改善。如果改善很明显,说明是电阻匹配的问题。如果改善有限,那可能是运放的共模抑制比不够。还要检查电源去耦,就是把电源到运放电源脚之间的电容尽量贴近引脚。曾经有几次排查来排查去,最后发现是示波器探头接地线太长,引入的共模噪声淹没了真实信号,换了一个接地弹簧短针之后,波形立刻干净了。
另外,运放的反馈回路里不要串电阻。有些人想着在输出端串联一个小电阻再接入负载,问题不大,但如果他把这个电阻串在反馈回路内部,也就是把反馈网络的分压点接到了这个电阻和负载的交点上,实际就改变了反馈比例和共模平衡,输出自然跟着飘。
5.3 噪声太大,怎么降
差分放大器输出噪声大,首先区分是什么类型的噪声:持续随机“沙沙”声是热噪声或运放电压噪声,规律的工频干扰可能是共模抑制不足或走线感应。压低噪声有一些立竿见影的操作。
第一,减小反馈电阻阻值。反馈电阻越大,噪声越大,而且是按阻值的平方根关系上升。把100kΩ换成10kΩ,电源损耗增加但噪声明显下降。这个时候要注意信号源能否驱动更低的输入阻抗。
第二,在输出端加一个RC低通滤波。很多传感器信号本身就是低频信号,根本不需要很高的带宽,加一个截止频率合适的低通可以滤掉大部分高频噪声。有时候我会直接把反馈电容并在Rf上,形成一个一阶低通,截止频率是1/(2πRfC)。这种方法特别适合称重、压力、温度这类慢变信号,一两百赫兹的带宽完全够用,噪声却能滤掉一大截。
第三,注意PCB铺地。差分放大器的输入路径应该远离电源和数字走线,敏感的输入走线下面尽可能铺完整地平面做屏蔽。曾经处理过一块板子,噪声特别大,最后发现是差分输入走线绕了一大圈,穿过了DC-DC转换器下方,被开关噪声耦合进去了。把走线改短、避开干扰源之后,噪声立刻降了两三个数量级。
5.4 调试时的几个实测感受
我自己调试这类电路时,还有一个习惯,就是先把两个输入端短接,都接地,先看输出零点。如果输出零点偏得离谱,比如超过了几个毫伏以上,就先查电阻匹配和输入失调。这个步骤可以帮你把“放大器自身的问题”和“信号源的问题”分开。接着再接入一个已知的差分电压,比如用两节电池分压产生一个10mV的差分信号,验证增益是否符合预期。这样一步步推,出问题的时候能快速定位。
还有一点,用万用表测量运放输入引脚电压时要小心。普通的万用表输入阻抗大多只有10MΩ,接上去之后相当于在输入节点并联了一个10MΩ电阻,对高阻电路来说会明显拉低电压,测出来的虚短结果就不准了。要测这种节点电压,最好使用输入阻抗更大的电压表或者示波器探头,并且用差分探头来测量两个输入端的电压差,否则你看到的“虚短不成立”可能只是测量工具造成的假象。
6. 从差分放大器到仪表放大器,一步之遥
如果你经常处理微弱信号,会发现标准的四电阻差分放大器有个绕不开的痛点:输入阻抗低,而且两个输入端的阻抗还不一样。反相输入端看进去的阻抗约等于R1,同相输入端看进去的阻抗约等于R3+R2,信号源的输出阻抗会直接干扰增益和共模抑制比。这时,在差分放大器前面加两个电压跟随器,把输入阻抗提到极高,就构成了经典的仪表放大器结构。
仪表放大器的核心思路就是“高阻抗输入缓冲再加差分放大”。两个跟随器分别接在两个输入端,提供极高输入阻抗,同时由它们共同决定增益。后面接的差分放大器只负责做减法,电阻匹配和共模抑制就更好控制。工程中集成仪表放大器芯片,比如AD620、INA128,内部已做了电阻匹配和激光校准,温漂和共模抑制性能都非常优秀,代价是价格比普通运放贵不少。
但并不是所有场景都需要上仪表放大器。如果信号源输出阻抗本身很低、稳定且已知,标准的四电阻差分放大器完全够用。我自己做电流检测时,如果采样电阻两端电压有几十毫伏以上,而且信号源阻抗可以控制得较低,通常直接用四电阻差分方案,成本低、电路简单、性能也能接受。只有在信号微弱到微伏级别、或者信号源阻抗很高且变化大时,才果断升级到仪表放大器方案。
这个取舍思路,说白了就是“把钱花在瓶颈上”。你的系统瓶颈如果是电阻匹配精度,那就换好的电阻;如果是输入阻抗太低影响信号源,那就加缓冲器;如果是整体精度要极致,直接上仪表放大器。搞清楚每个方案解决什么问题,比一味堆料重要得多。
我自己刚接触差分电路那会儿也走了不少弯路,死记了好几个公式,总觉得会套用就行了。后来发现,真正让我脱离“背公式”状态的,就是认真把叠加定理、虚短虚断这两套工具练熟了。现在随手看到一个运放电路,不管什么拓扑,先找反馈回路,再列电流关系,一套流程下来十几分钟就能推导清楚。希望你也能把这套思路用起来,而不是只记住今天这个Vout=(Rf/R1)(V2-V1),那才是真正值钱的东西。