1. 为什么远距离传输偏爱4-20mA先建立电流源的概念做过工业仪表或者传感器采集的工程师迟早会跟4-20mA打交道。热电偶、压力变送器、液位计、阀门定位器现场几十米上百米长的信号线几乎清一色走这个标准。第一次接触的人往往会问明明电压信号接线更简单为什么非得绕一圈做电流最直接的原因有两个。第一电压信号在长线上会吃亏。导线本身有电阻信号从传感器传到接收端线上压降是叠加在负载上的线越长、线径越细误差越大。电流不一样只要整个回路是串联的不管导线电阻是多少电流处处相等接收端的采样电阻上电压只由电流决定线阻影响可以忽略。第二电流信号天然带断线检测。4-20mA规定了“活零点”4mA代表量程起点、20mA代表满量程如果回路断掉、电流变成0mA系统马上就知道出故障了这是0-10V这类电压方案给不了的自诊断能力。做这个设计时还有一个隐含的行业惯例4-20mA对应的是“线性映射”。比如一个量程0-100℃的温度变送器4mA对应0℃20mA对应100℃中间任何温度对应的是4到20之间的线性电流值。所以整个电路的性能指标归根结底就是两个字线性。输出不是“能出电流”就算完而是要精准落在伏安特性的直线上偏离一个小数点可能整条测量链路就漂了。用运放加三极管做线性4-20mA电流源正是这个领域里最经典、也最适合亲手搭来验证负反馈思想的一类电路。从名字里的“电压跟随”到“精密电流环”其实就是一条完整的认知升级路径先理解运放在电压回路里怎么“跟随”再把这个逻辑换成电流取样环路的控制目标变了整个电路的灵魂也就换了。这篇文章是按这个路线展开的适合有一定模拟电路基础、想从课本走向实际电路的读者也适合刚拿到项目需要搭建模拟输出通道的工程师参考。2. 从电压跟随器起步负反馈的“虚短”到底在稳定什么2.1 电压跟随器为什么能“稳稳跟住”输入电压跟随器是几乎所有运放电路的起点它长得很简单运放同相输入端接输入信号输出端直接接到反相输入端构成100%负反馈。输出等于输入没有放大看起来像多此一举但实际上它解决的是阻抗匹配问题。从信号源角度看运放输入阻抗极高几乎不抽取源电流从负载角度看运放输出阻抗很低带动下一级电路时不易被拉垮。换句话说跟随器把“高阻信号源”隔离成了“低阻驱动源”后面想接什么负载都从容很多。但这里有个新手经常忽略的关键动作跟随器稳定的是输出电压。为什么它能稳定因为负反馈环路一直在比较同相端和反相端的电压差只要两者不等运放就会调整输出把反相端拉回同相端的电位。这个“虚短”机制本质上是运放用巨大的开环增益在强行抹平两个输入端的压差。2.2 运放有限增益下的跟随误差理想运放开环增益无穷大虚短成立真实运放开环增益只有几万到几十万倍所以跟随器输出和输入之间一定有一个微小误差。误差近似等于输出电压除以开环增益比如LM358开环增益典型值100dB左右也就是10万倍如果输出5V误差大约是50微伏。多数场景下这个误差可以忽略但如果你是个较真的人就会意识到一个结论反馈精度取决于环路增益而增益不是白来的它来自运放本身的开环特性。这个结论在电流环里同样成立而且更关键。三极管本身是非线性器件它的电流放大、饱和压降、温度特性都有明显的非线性但只要把它放在深负反馈环路内运放会拼命调整三极管的基极驱动以压制采样点电压的偏差三极管自身的非线性几乎不会直接出现在输出里。这解释了为什么“运放三极管”的方案能做出线性度很好的恒流源而单独拿三极管搭恒流电路性能就差一大截。2.3 从跟随器到电流环反馈什么就稳定什么理解了电压跟随器的原理电流环就只剩下一层窗户纸。跟随器是“采样输出电压反馈回反相端于是输出电压稳定”如果我把采样点改成“电流经过采样电阻时的电压”也就是用一个电阻把电流变成电压再把这个电压反馈回反相端那运放就是在稳定“电流在电阻上产生的电压”因为电阻值是固定的稳定电压就等于稳定电流。这就是标题里“从电压跟随到精密电流环”的完整逻辑。这个认知到位了后面看电路图就不会发懵因为你已经知道运放在干一件什么事它一直在比较“目标电压”和“电流采样电压”然后不断调整三极管基极让两个电压趋于相等。3. 核心电流环的搭建运放与三极管如何协作形成精密环路3.1 最常用的NPN低侧采样拓扑先看一个最常见的电路拓扑也是我用过最省心的结构运放同相输入端接参考电压Vref这个电压对应目标电流值运放输出端接NPN三极管的基极三极管发射极接采样电阻RsenRsen下端接地负载RL接在电源正端和三极管集电极之间运放反相输入端接到发射极节点也就是Rsen上端。整个控制环路是这么工作的假设Vref升高运放输出变高基极电流增大发射极电流也就是流过采样电阻的电流变大Rsen上压降Vsen变大反相端电压升高与同相端差值缩小。环路稳定之后Vref约等于Vsen也就是Iout ≈ Vref / Rsen输出电流只由参考电压和采样电阻决定跟负载电阻的大小、三极管的放大倍数没有直接关系。负载从100Ω变成500Ω输出电流几乎纹丝不动因为环路会自动调整三极管集电极-发射极压降来吸收变化。3.2 三极管放哪一侧误差模型完全不同很多人抄电路时踩过坑同样一个运放三极管放在采样电阻和负载的不同位置分析出来的误差模型是不一样的。上面这个NPN低侧拓扑里反馈控制的是三极管发射极电流Ie而流过负载的是集电极电流Ic。三极管本身有基极电流Ib根据基本关系Ic Ie - Ib。所以严格说输出到负载的电流是Iout Vref / Rsen - Iout / β整理一下Iout (Vref / Rsen) × [β / (β 1)]如果三极管β只有100输出电流比目标值少约1%β有500误差降到0.2%。这个误差在有些场合可以接受但既然标题里写了“精密”就不能当作没看见。解决办法很简单选β足够高的三极管或者用达林顿结构比如TIP122β轻松上千把误差压到千分之一级别。还有一个容易忽略的点如果负载在集电极侧运放的供电电压不用太高。比如负载电阻500Ω、20mA时压降10V采样电阻压降1V三极管饱和压降约1V加上线损总压降也就12V左右24V供电完全够用。但如果你把负载和采样电阻换到射极侧运放驱动三极管的方式和功耗预算都会变化不能照搬。3.3 电压跟随器在完整系统里的真实角色当你把整个模拟输出通道画出来电压跟随器并不是只存在于草稿纸上的练习它经常作为参考电压的缓冲级出现在电流环之前。比如你用PWM加RC滤波得到0.2-1V的直流电压滤波输出阻抗可能比较高直接接到运放同相输入端虽然运放输入阻抗极高但前面的RC节点如果被噪声干扰或者被外部负载影响参考电压本身就不稳。正确的做法是先过一个电压跟随器让参考源变成低阻抗再去驱动电流环。我习惯把整个链路拆成三级来看第一级是参考源第二级是电压跟随缓冲第三级是电流环功率输出。理解了这个信号流标题里“从电压跟随到精密电流环”就不再是两个孤立电路而是一条完整的、可扩展的模拟输出通道。4. 参数计算与选型按照24V供电把每条支路的预算算清楚4.1 采样电阻决定量程映射设计第一步是定采样电阻Rsen。输出4-20mA需要知道目标电流对应的参考电压范围。设采样电阻为RsenImin 4mA时Vmin 0.004 × RsenImax 20mA时Vmax 0.020 × Rsen如果选Rsen 250Ω那么参考电压范围是1V到5V这个区间很适合直接用标准DAC或者TL431基准加调理电路来产生。如果选Rsen 50Ω参考电压范围是0.2V到1V低电压区间对运放失调电压就更敏感但采样电阻的功耗小很多。我做的时候选了250Ω因为它和5V基准、DAC输出电压的匹配最自然误差折算也好看。50Ω方案的优点在于电阻功耗低、温漂影响相对小但0.2V的最小参考电压很考验运放的失调。你自己搭的时候定哪一个都行关键是先把量程映射关系想清楚。4.2 三极管选型按最坏负载算功耗三极管选型是新手最容易翻车的地方。很多人只看“20mA电流不大”随便抓一个2N2222来用结果负载短路时三极管直接发烫。功率计算不能按额定工况要按最坏情况来。假设供电24V负载RL 0Ω输出短路或接近短路采样电阻压降是20mA × 250Ω 5V三极管集电极到发射极的压降Vce约为24V - 5V 19V此时三极管功耗P Iout × Vce 0.02 × 19 0.38W2N2222在25℃时最大功耗约625mW看起来够用但实际环境温度升高后降额严重而且你在狭小密闭的接线盒里0.38W的热量积累起来不是闹着玩的。更稳妥的选择是TIP31C、BD139这类中功率管额定功耗1.2W以上β也不差。如果追求高β达林顿管TIP122的β能做到上千但要注意达林顿管的饱和压降偏高对低压差设计不友好。4.3 运放选型失调电压、偏置电流和GBW的取舍运放的选型判断直接决定精度能不能到位。LM358是入门经典单电源供电、共模范围包含地价格便宜做跟随器完全够用但它的失调电压典型值2mV、最大值可能到7mV输入偏置电流最高150nA对精密电流环来说并不是最优解。失调电压对恒流的影响折算公式是ΔI Vos / Rsen以Rsen 250Ω为例1mV失调电压就会引起4μA的电流误差相对20mA满量程是0.02%。看起来不大但如果失调达到7mV误差升到0.14%再加上温漂可能就撑不住精度要求了。所以“精密”二字是有代价的至少要选OP07、OPA2277这类低失调运放。这里有个有意思的现象OP07的GBW只有600kHz明显低于LM358的1.1MHz但用在电流环里并没有问题因为4-20mA信号本身是低频信号GBW不需要太高。相反高GBW运放在长线驱动时反而容易振荡。选运放的思路应该是先满足直流精度再看带宽需求不要被“带宽越高越好”带偏。参数LM358OP07OPA2277失调电压典型值2mV75μV22μV失调电压温漂约7μV/℃1.3μV/℃0.1μV/℃输入偏置电流约45nA约2nA约0.5nAGBW1.1MHz600kHz1MHz单电源3-5V供电支持受限支持适合场景跟随器、入门实验精密测量高精度工业仪表4.4 参考电压的产生方式参考电压是整个电路的精度源头。不要直接用普通电位器分压就当参考碳膜电位器的温漂和老化会让你在调试时怀疑人生。我踩过一次调好的输出电流放了一晚上第二天早上漂了0.5%最后发现是电位器受潮。比较可靠的方案有三种用TL431加精密电阻分压温度系数约50ppm/℃成本低用专用基准芯片比如REF195、ADR421温漂能到5ppm以下适合高精度需求用微控制器的DAC直接输出配合电压跟随器缓冲适合需要程控输出电流的场合。如果是用PWM加RC滤波产生参考电压务必在RC后面加一级跟随器否则参考电压的内阻会跟后续采样网络纠缠在一起影响线性度。4.5 用24V供电做一次完整预算验证把各路压降列在一张表里能直观看到方案是否成立。假设24V供电、20mA满量程、最小负载0Ω、最大负载500Ω预算项最小负载(0Ω)最大负载(500Ω)负载压降0V10V采样电阻压降5V5V三极管Vce19V9VVce对应功耗0.38W0.18W只要供电电压大于“负载压降 采样压降 三极管饱和压降 线损”的总和电路就工作在线性区电流源才能正常恒流。这也是我后来排查“电流上不去”这类故障的标准思路。5. 一份可见的误差预算失调电压、基极电流和电阻温漂如何吃掉精度5.1 失调电压与温漂的折算学习运放时失调电压是趴在数据手册里的一个参数做了实际电路才知道它有多重要。对电流环来说失调电压就是直接串联在采样环路里的误差源。假设运放失调电压Vos 100μV采样电阻250Ω那么ΔI 100μV / 250Ω 0.4μA相对20mA是0.002%完全可忽略。但如果你随手抓了一个失调电压5mV的运放误差就到了20μA占满量程的0.1%这就不太体面了。温漂也一样按这个公式折算OP07的失调温漂1.3μV/℃不算差但若环境温度变化30℃额外产生39μV失调折算电流误差0.156μA占0.0008%。这个量级只有基准源和采样电阻的温漂能跟它“门当户对”。在实际工程里我给自己定过一条经验线如果目标精度是±0.1%满量程那么运放失调折算误差、基准源误差、采样电阻温漂误差、三极管基极电流误差这几项加起来必须低于0.05%留一半裕量给装配和老化。别每一项都按极限凑凑到最后整体肯定是超标的。5.2 采样电阻的温漂比三极管更值得关注做精度分析时新手容易盯着三极管看但精密电流环里最伤害精度的往往是采样电阻。250Ω电阻流过20mA时功耗0.1W如果选了0.25W的普通金属膜电阻表面温升可以达到十几度。普通金属膜电阻温度系数约100ppm/℃温升15℃就会带来0.15%的电阻值变化反映到输出电流就是0.15%的漂移这个数字比运放失调温漂大多了。解决方案是采样电阻选低温漂的精密电阻最好25ppm/℃以下同时额定功率要留足够裕量。我常选0.5W以上的金属膜电阻或金属箔电阻封装大一档温升就能低很多。电阻的引脚也尽量短贴近PCB铜箔散热。这个细节听起来很基础但温度漂移的问题十有八九是栽在这里。5.3 三极管基极电流带来的系统误差前面推导过NPN低侧拓扑里输出电流和发射极采样电流相差一个基极电流。这种误差不是随机漂移而是恒定的系统误差。β100时差1%β500时差0.2%。做“精密”设计时我通常不纠结这个值而是直接用达林顿管或者高β管把误差压下去。TIP122达林顿管的β通常在1000以上这个误差就小于0.1%再配合后面调试时实测校准一次完全可以忽略。如果要求再高可以考虑用两只三极管做组合把基极电流从输出回路里“摘”出来但电路复杂度上升明显本文不展开。对大多数4-20mA发送器来说β带来的误差通过选型就能解决不必绕太远。5.4 接线端子与接触电阻还有一个实际工程里非常容易忽略的误差源两端子的接触电阻。250Ω采样电阻如果精度0.1%好办但如果在电路板上用插拔端子接线接触电阻可能有10-50mΩ且不稳定。对250Ω采样电阻来说50mΩ只占0.02%影响不大但如果采样电阻选得比较小比如10Ω这时单点接触电阻的漂移就足以毁掉整个精度。标准4-20mA仪表为了排除这个隐患通常采用四线制开尔文接法或直接焊接二线制变送器里则会在布局上尽量缩短采样电阻的连线。你可以不完全照搬四线制但至少要做到采样电阻的电流路径与反馈取样路径分开走线不要共用一段会发热的铜箔。6. 实测调试与几个典型故障把理论丢回现实电路检验6.1 上电前的检查清单实际焊接完电路我建议先不要急着接真实负载按下面几步走确认供电极性并且量一下运放电源脚输出端在空载时是否有异常电压接一个固定电阻假负载比如250Ω-500Ω功率电阻不要接长线给参考电压一个固定值比如用高精度电源直接输入1V不要先接DAC串联一台万用表电流档在负载回路里确认初始电流不超过预期。这个顺序能最大程度避免“调了半天结果问题在上一级”的尴尬。我见过不止一次DAC没初始化好输出直接到了满量程电流源的反馈环路拼命想压都压不住。先用固定电压源校核电流环路再接入控制源是分步排除问题的基本思路。6.2 实测线性度、负载调整率与电源调整率一个合格的4-20mA电流源不是“能出电”就行最好把这三个指标都测一遍线性度把参考电压从最小值对应4mA按步进增大到最大值对应20mA记录期望电流与实测电流画出来看偏差是否成线性负载调整率保持参考电压不变把负载电阻从0Ω慢慢调大到500Ω观察输出电流变化变化越小说明恒流特性越好电源调整率保持负载和参考电压不变把供电电压从12V调到24V观察电流变化。这个测试不需要昂贵设备。一个可调电源、一个精密电阻箱、一台还算准的万用表就能得到很直观的结果。如果数据不好逐项误差定位也是按这个顺序来的。6.3 故障一自激振荡高频纹波叠加在输出上三极管电流环有一个很常见的自激现象系统变成振荡器输出电流上叠加了几MHz的振荡纹波。原因通常不在运放芯片本身而在三极管的高频特性、负载电感、以及采样电阻两端分布电容构成的寄生极点。处理办法我按优先级排序在运放输出端和三极管基极之间串联一个几十欧姆的电阻抑制电流突变在采样电阻两端并联一个100pF到10nF的小电容给反馈环增加一个零点补偿检查负载线是否过长长线电感很容易和环路构成谐振运放电源引脚加0.1μF陶瓷电容紧贴芯片放置。用示波器测基极波形和采样电阻波形能看到清晰的振荡频率和幅度。补偿电容的值不是一个固定公式能算死的我通常从100pF开始往上试振荡消除后在最恶劣负载下留足裕量。6.4 故障二大电流上不去饱和了如果把参考电压加到满量程输出电流却停留在某个值上不涨或者涨得特别慢十有八九是环路进入了饱和区。检查顺序是测量三极管集电极到发射极的电压Vce如果接近饱和压降0.2-0.5V说明压榨太狠了。要么降低负载电阻要么提高供电电压测量运放输出脚的电压NPN低侧拓扑里运放输出只需要比发射极采样电压高一个Vbe通常1.5V左右就够如果这个电压到顶了检查运放供电是否足够检查供电电压在重载时是否被拉垮别忽略电源本身的内阻和线上压降。在项目里遇到过一种很隐蔽的情况参考电压是5V对应20mA采样电阻是250Ω但是参考源来自一个带不动负载的DAC输出参考电压一接上就被拉低到4.2V电流自然卡在16.8mA。用万用表量参考电压就能发现但新人往往盯着一堆元件瞎猜浪费了不少时间。6.5 故障三负载开路输出电流异常飙升这个坑必须单独拎出来讲。在NPN低侧拓扑里如果负载RL开路集电极电流没有通路为了让发射极电流继续等于Vref/Rsen运放会不断增大基极电流直到三极管进入深度饱和基极电流可能达到十几毫安。对普通小功率三极管来说这个电流可能让管子或运放发热损坏。在调试阶段负载开路很容易发生鳄鱼夹松了、接线端子没拧紧、导线断了。保护方式比较简单在负载两端并联一个钳位电路或者在运放输出端做限流也可以在集电极到地之间并联一个二极管反向保护。如果不想增加太多器件至少在使用说明里强调不要空载上电。做产品的话这个问题必须正面解决不能靠提醒用户注意。6.4 故障四通电瞬间电流过冲把接收端打懵上电瞬间参考电压从0V跳到目标值运放输出迅速拉高三极管基极电流猛增输出电流可能瞬间冲到满量程以上然后环路才把它拉回正常值。如果接收端设备对过流敏感这个毛刺会导致上电误报故障。治理方法也不复杂在参考电压输入到运放同相端之前加一个RC软启动电路让参考电压缓慢上升。我常用10kΩ电阻串联4.7μF电容给同相端充电时间常数约47ms过冲基本就消化掉了。注意这个RC网络会稍微拉低带宽但对4-20mA这类低频信号完全无感。6.5 实测数据效果参考写完这篇文章前我按上面这套设计搭了一个测试板供电24V采样电阻250Ω0.5W金属膜三极管BD139运放OP07参考电压由精密电源提供。实测结果负载从0Ω调到500Ω输出电流波动小于0.05%参考电压按4mA到20mA步进线性度好于0.05%满量程把供电从12V拉到24V电流变化约0.02%。这个水平已经优于很多工业变送器的采购批次一致性做项目参考完全够用。如果你用的运放是LM358失调和温漂会更明显但成本低适合做原型验证。真正定精度时再换OP07或OPA2277布局不必大改这也是这套电路最适合入门进阶的原因结构简单但每个环节的取舍都讲得清楚。个人多年的体会是这类模拟电路设计最难的部分永远不是原理图而是“理解误差从哪来、放大器在干什么”。把运放的虚短吃透把电流环路的反馈对象想明白再去算功率、查温漂整个设计就会顺畅很多。希望这篇从电压跟随一路推到精密电流环的拆解能让你少走我之前走过的弯路。
阅读完成 · 觉得有帮助?