☰
电流分流测量精度设计:从运放选型到开尔文连接的完整指南
2026/9/25 22:02:49 网站建设 项目流程

很多年前我刚接触电流分流测量时,第一反应是这有什么好折腾的——一个电阻加一个放大器而已。后来在一个电机驱动项目里被折磨了两周,我才彻底改变看法。那次方案倒是很简单:低边分流检测,板子跑起来后用示波器抓电流波形,低频段看着还行,可一加载就乱跳,误差最大能到满量程的5%以上。问题不在软件滤波,也不在ADC,而在模拟放大器这条链路上。我后来把通用运放换成专门的current shunt measurement放大器,重新设计布局,精度马上从几个百分点回到0.5%以内。这篇文章就是想把这个过程中的原理、计算和坑,系统性地梳理一遍。

电流分流测量(current shunt measurement)本身不难理解:在电流路径上串入一个已知阻值的电阻,测它两端的压降,再用欧姆定律换算回电流。难点在于,你会遇到的物理量级。流过的电流可能是几安甚至几十安,但为了让电阻本身的功耗不至于大到烧板子,阻值往往只能选mΩ级,于是满量程压降通常只有10mV到100mV。这个信号要拿去给3.3V或者5V的ADC用,中间必须靠模拟放大器做增益,而这一步做得好不好,直接决定整个测量链路的精度上限。

1. 电流分流测量的本质:一个电压的“小信号放大”问题

分流电阻只是把电流转换成了一个微小的电压,真正决定测量精度的,是你的模拟放大器如何处理这个微小的差分电压。我在设计时总是提醒自己:电流测量系统的物理层是电阻,精度层是放大器。

1.1 分流电阻的参数困境

先聊聊分流电阻本身的选型。要测10A电流,如果选一个0.5Ω的普通电阻,满载时压降是5V,功耗是50W——这已经不是一个能贴在PCB上的元件了。所以高电流分流测量必须牺牲压降,把阻值压低到mΩ级别,比如2mΩ,10A时压降只有20mV,功耗0.2W,一个2512封装的大功率合金电阻就能应付。但这就带来了一个直接后果:你想测的信号,被淹没在系统中各种噪声、失调、共模电压里。

20mV的信号,如果系统里有几十mV的共模干扰,或者说放大器自身有几十μV到几百μV的失调,误差占比马上变得不可接受。我在实际中遇到过不少人直接用一个普通运放搭同相放大器来放大这个20mV信号,结果测出来的数据要么偏大要么偏小,这就是没有意识到“信号本身太小”带来的连锁反应。更麻烦的是,当PWM开关动作时,负载切换瞬间会在系统寄生电感上感生出很高的dv/dt,这个跳变电压如果进入放大器输入级,输出端会出现明显毛刺,而这些毛刺的幅值往往比你想测的直流信号还大。

另一个容易被忽视的是分流电阻的温度系数。锰铜合金电阻的温漂可以做到几十ppm/°C,而普通厚膜电阻可能到几百ppm/°C。如果原本的目标是1%精度,在温升40°C的情况下,电阻温漂本身就可能吃掉其中一半的预算。这一点在后续做误差预算时会非常明显。我在项目里选电阻时,优先看材料,其次是看封装功率,最后才是看阻值,顺序不能反。

1.2 为什么“测得到”和“测得准”之间隔着一条放大器河

你可以说,我可以不用放大器,直接用一个大分辨率的ADC去采20mV信号。但工程现实是:ADC的满量程通常是2.5V、3.3V或者5V,20mV只占满量程的0.6%左右。即便一个16位ADC理论分辨率足够,它的INL(积分非线性)和参考电压噪声也会在低量程段吃掉大量精度。更合理的做法是,在信号进入ADC之前先用模拟放大器把它放大到一个接近满量程的电平,让ADC工作在比较好的输入范围内,然后把放大器的精度做高。这就是“模拟放大器提供精确电流分流测量”这整件事的核心逻辑。

这里想强调一个概念:电流检测放大器链路的核心不是放大器本身有多高级,而是整个信号链路的信噪比设计。你放大了有用的20mV信号,同样也放大了噪声和误差。所以选放大方案时,不能只看增益和带宽,还得看失调、共模抑制比、噪声密度、温度漂移这些“低频指标”。很多人在选型时被高速运放的GBW吸引,但低频测量最需要的恰恰是直流精度和共模抑制能力,这俩才是真正决定分流测量成败的指标。

2. 通用运放与专用电流检测放大器:选型的分界线

在系统设计时,我遇到最多的选型问题就是:能不能用普通运放?什么时候必须上专用的电流检测放大器?这个问题没有绝对答案,但有一条清晰的分界线:当系统共模电压高、或者目标精度要求高、或者信号动态范围大时,通用运放方案会非常吃力。

2.1 通用运放方案的边界

用通用运放搭差分放大器,电路结构看起来很简单:分流电阻两端各接一个高阻输入到运放的两个输入端,再用几个电阻设定增益。早年很多设计都是这么做的。但这个方案有一个致命问题:这种电路的共模抑制比(CMRR)完全取决于外部四个电阻的匹配精度。

这个结论是可以算的。对标准差分放大器,假设四个电阻中,R2/R1的比值匹配误差是ε,那么电路的CMRR大约可以近似为:

CMRR ≈ (1 + R2/R1) / (4ε)

举个例子:如果选0.1%精度的电阻,R2/R1 = 10(增益约10倍),那么CMRR约为11/(4×0.001)=2750,换算成dB也就68dB左右。在电机驱动器这种共模电压随PWM开关剧烈跳动的环境里,68dB的CMRR并不够看。而且0.1%电阻本身就比普通电阻贵,还必须保证左右两个电阻对温度匹配良好,否则温度一上来,CMRR还会进一步恶化。

我见过不少电路,常温下测试数据还像模像样,放进60°C的高温箱里跑一会儿,误差就直接翻倍,这就是电阻温度匹配度不够导致的。如果项目只是做一个静态电流表,精度要求不高,通用运放方案也能用;但如果是电机驱动、开关电源、电池管理这类动态场景,我还是建议早点放弃通用运放搭差分放大器的念头。

2.2 专用电流检测放大器做了什么

专用电流检测放大器,比如TI的INA系列、ADI的AD8418之类的产品,本质上是一个“带精密电阻网络优化”的差分放大器。它的优势在于,内部的增益电阻是生产时激光微调过的,匹配精度可以做到0.01%甚至更高,CMRR可以做到100dB以上。同时很多型号支持高共模电压输入范围(有的甚至到几十伏或上百伏),还内置了偏置、失调校准、带宽控制等功能。这意味着,你在应用时几乎不需要关心“电阻匹配度”这个变量,主要精力可以放在增益设定和系统层面的滤波上。

这类器件还有一个很实用的特性:很多型号支持高边检测,输入共模电压可以高达几十伏,哪怕供电电压只有3.3V或5V。这给设计带来很大灵活性——你可以做高边检测,而不用做复杂的电平移位。相比通用运放方案,专用电流检测放大器在一片小小的IC里完成了精密电阻网络和输出接口的整合,从可靠性和一致性的角度看,量产时省心很多。

2.3 低边检测与高边检测的取舍

选电流检测放大器时,先要决定用低边检测还是高边检测。这个决定会影响放大器选型、PCB布局、甚至系统安全。

低边检测(low-side sensing)是把分流电阻放在负载和系统地之间,电流流入电阻后再回到地。它的优点是电流检测放大器的共模电压接近于0V附近,对放大器的共模耐受能力要求低,用通用运放也常常能凑合工作。缺点是分流电阻会和系统地串联,系统电流路径上的地电位会因此抬高,对于一些需要精确参考地的模拟电路不友好,而且如果负载和地之间还有其他回路,可能出现测量电流不等于实际负载电流的问题。

高边检测(high-side sensing)是把分流电阻放在电源和负载之间。优点是负载本身仍能直接接地,对地回路没有干扰,很多汽车、工业应用会优先采用。但代价是放大器输入端的共模电压很高——例如48V系统,高边检测时放大器输入端的静态电压就是48V。这时候普通运放直接爆掉,必须用带高共模电压输入的专用电流检测放大器。

我的经验是,低压系统(12V以下)里低边检测完全够用,成本也低;但在48V及以上、或者共模跳变尖锐的系统里,高边检测虽然多花钱,但换来的是更干净的信号和更可靠的地平面,这笔投入完全值得。后面说的完整设计实例就是高边方案。

3. 一个完整的设计实例:3.3V ADC采样10A电流链路的设计与计算

这里把一个实际项目里的参数完整走一遍:系统供电48V,负载是一个直流电机,最大电流10A,用3.3V ADC采样电流,目标整机精度优于±1%。选择高边检测方案,放大链路用专用电流检测放大器,输出直接进ADC。

3.1 分流电阻选型与散热核算

首先确定分流电阻。最大连续电流是10A,选2mΩ的金属合金电阻。满量程压降 V = I × R = 10A × 2mΩ = 20mV。电阻功耗 P = I² × R = 100 × 0.002 = 0.2W。常规的2512封装额定功率为0.5W到1W,0.2W的耗散加上温升后仍然有余量。选型时要留一倍以上余量,否则电阻自身发热会明显改变阻值,精度预算就会被吃掉一大块。

这里有个小经验:如果系统可能长时间运行在最大电流附近,功耗余量最好按满载的2倍以上来选。0.2W功耗在2512封装上大概温升30°C到40°C,如果直接贴着额定功率用,温度会很高,电阻的温漂和热电动势都会显著恶化。我通常还会选低温度系数的合金电阻,比如锰铜或康铜材料,温漂可以控制在50ppm/°C以下,而不是普通的厚膜电阻。

3.2 增益与输出范围的分配

3.3V ADC的满量程,按经验最好不要用满,留10%到20%的余量,避免放大器输出级接近电源轨时出现非线性。所以我希望10A对应的输出电压在2.8V左右。于是增益G = 2.8V / 20mV = 140倍。

140倍的增益有点尴尬:很多集成电流检测放大器的固定增益档位通常是50、100、200,没有140这个档位。这时候有两种做法:一是选增益100倍的型号,让10A对应2.0V输出,这样ADC满量程利用率是2.0/3.3≈60%;二是选一个小封装可调增益型号(比如通过外部电阻设定增益到140附近)。我选择了前者,因为固定增益的内部电阻一致性更好,温漂更小。实际系统中,10A对应2.0V,3.3V ADC还能留出更大的余量,对于软件超流保护来说足够了。

如果你需要更高的采样精度,也可以选增益200倍的型号,让10A对应4.0V,然后配合一个分压网络或者直接选5V ADC。但大多数MCU内置ADC就是3.3V供电,所以100倍增益方案是更通用、更稳妥的选择。

3.3 带宽、滤波与输出保护

电流环或者电机控制里,分流信号本身带有高频的PWM纹波和电流尖峰。如果放大器的带宽太宽,这些高频成分会直接进入ADC,造成采样抖动。因此要在放大器输出端加一个二阶RC低通滤波器,截止频率通常设计在信号带宽的3到5倍。比如电机电流环一般需要500Hz到2kHz的带宽,那么低通可以设在5kHz到10kHz。

RC取值的考虑点:R大了会引入电阻热噪声,R小了需要的电容太大。我通常用100Ω到1kΩ的电阻,配合10nF到100nF的X7R陶瓷电容。具体计算很简单:f_cutoff = 1 / (2πRC),如果取R=1kΩ,C=33nF,截止频率约4.8kHz,基本满足需求。

另外要注意输出级的负压问题。如果负载侧发生反向电流或者PWM关断瞬间电感续流,分流电阻上可能出现反向压降,放大器输出端随之出现负电压。如果这个负电压直连ADC,很可能会损伤ADC输入级,所以需要在放大器和ADC之间加一个串联电阻加二极管钳位,或者选带内置钳位功能的检测放大器。这部分容易被忽略,等板子莫名烧掉ADC之后才反应过来,返工成本很高。

4. 精度陷阱拆解:为什么理论算得很准,实测却差得远

设计数值算得再漂亮,也得回到“实测对不上”的现实。我在项目里踩到的坑基本集中在下面几类,逐一说清楚。

4.1 开尔文连接:采样电压不是电阻两端电压

分流电阻在PCB上的传统接法,是电流走线和电压采样线共用同一段铜箔。问题是,铜箔本身也有电阻。25°C时1盎司铜箔的方块电阻约0.5mΩ/sq。假如采样走线从分流电阻焊盘引出后,还要经过一段8毫米长的走线再到放大器输入端,那这段走线电阻可能就有0.1mΩ量级。如果分流电阻只有2mΩ,这0.1mΩ就是5%的额外误差,而且这个误差会随着PCB制作批次、温度剧烈变化,根本没有办法在标定里去完全抵消。

正确的做法是开尔文连接(Kelvin connection):大电流路径和电压采样路径在物理上是独立的。采样线从分流电阻的焊盘内侧直接引出,尽量不经过任何大电流铜箔,线宽可以很细,走线要短,并且两条采样线要紧密平行走线,最好做成差分对。这样才能保证放大器测到的电压,就是分流电阻本体上的电压,而不是电流流过的铜箔压降。很多精密分流电阻本身就是四端结构,就是为了配合这种接法。

我见过不少原理图画得很漂亮、但实测精度很差的设计,一查Layout,采样线从分流电阻的一端引出后,穿过了大半个板子,途中还跟电源走线并行了很长一段,这种情况下谈精度就是奢望。开尔文连接不是加分项,而是必要条件。

4.2 焊点热电动势:微伏级别的误差源

这个话题平时很少人提,但它真实存在。分流电阻的引脚或焊盘通常是铜合金,焊锡是锡银铜合金,两种不同金属在温度梯度下接触,会产生温差电动势。如果你的采样走线从分流电阻的两端分别引出,而两端的焊点温度又不完全一致,那么热电动势会直接叠加在20mV的测量信号上。

热电动势的绝对值不大,通常每摄氏度几微伏到几十微伏。但别忘了,我们测的是20mV满量程,目标是1%精度,相当于允许0.2mV的误差。热电动势如果到20μV,那就是10%的误差预算了——在一个60°C高温工作环境里,这完全可能发生。

减小它的办法也简单:尽量让分流电阻两端在布局上对称,避免一侧靠近发热器件(比如MOSFET或功率电感),另一侧却是散热铺铜;采样走线要短且等长;分流电阻本身选用低热电动势的材料。还有一点,采样走线沿途尽量别经过大电流铜箔,因为大电流铜箔的温度梯度会通过走线传导到采样线上,形成额外的热梯度。

4.3 放大器误差项如何折算进电流

我不会只看运放的“理想增益”来做设计,必须把误差项逐项列出,折算到等效电流误差。典型误差源如下:

  • 输入失调电压Vos:精密运放约10μV到100μV,普通运放可能到几百μV甚至mV级。在20mV满量程信号上,100μV的失调意味着0.5%的误差。
  • 失调温漂:比如1μV/°C,升温40°C就是40μV,又吃掉0.2%。
  • 增益误差:固定增益型号通常有±0.5%以内,外部电阻增益则取决于电阻精度和匹配。
  • CMRR:在高边检测中,共模电压并非固定为48V,PWM开关时会有动态跳变。CMRR越差,这个动态共模就越容易耦合进输出。

把这些误差源合在一起,如果目标是±1%精度,必须逐项分配预算。比如:分流电阻精度0.1%,温漂50ppm/°C;放大器总量程误差0.5%;布线引起的误差通过开尔文连接降到0.1%以下;热电动势控制到0.1%以下。这样加在一起才能在温升后保持在1.5%以内,留出余量。

如果预算超了,优先考虑提升分流电阻等级(从厚膜换到金属箔或合金电阻),或者换更高精度的检测放大器,而不是盲目增加软件校准——软件校准只能校正固定偏置,校不掉随温度变化的漂移。这也是我反复强调的:模拟域的精度问题要在模拟域解决,软件只是最后一道保险。

5. 实际调试中的两个关键场景与我的处理经验

前面说完了原理和设计,说说我在调试中实际遇到的两个典型问题。这两类问题都是设计阶段如果没有想清楚,现场会花很久排查的。

5.1 PWM共模瞬态干扰导致的波形异常

有一版设计用的是分立运放搭差分放大器,增益100倍,放在高边。无负载时输出非常干净,基本是0V。但只要电机转起来,输出波形上会出现一个个窄窄的毛刺,幅值可以到几十毫伏甚至上百毫伏,频率和PWM频率一致。起初我怀疑是运放带宽太高,于是加了滤波电容,毛刺只是稍微变小,纹丝不除。

后来用示波器同时观察分流电阻两端相对地的电压,才发现问题:PWM开关瞬间,负载的回流电流在寄生电感上产生快速dv/dt,这个dv/dt通过运放输入端的寄生电容耦合,或者直接作用于差分放大器的共模输入范围,导致运放输出瞬间饱和。这种情况下,加多少滤波电容都无济于事,因为干扰发生在放大器输入端,而不是输出端。

解决方法是把放大器改成专用的高共模电流检测放大器,它内置了更好的输入级保护和动态共模抑制;同时在采样走线上加一组差模和共模RC低通网络,通常在放大器输入端加一组差分RC,把PWM频率分量在进入放大器之前就衰减掉。那版的波形马上从“毛刺满屏”变成了“干净平滑”。如果你在示波器上看到PWM频率的毛刺,第一反应不应该是滤波,而应该先检查共模路径。

5.2 校准流程与实测对比

做完整机后,我一般会做两步校准。第一步是零位校准:在系统空载、无电流流过的情况下,记录放大器实际的输出值,作为Vos_offset存进固件。第二步是两点增益校准:用一台精度足够的电流源灌入已知电流(比如满量程的10%和90%),记录ADC读到的值,算出实际增益斜率。把这两个参数写进标定表,每次开机先读零位再测电流。

这里要说一个非常容易被忽略的点:零点校准必须在和实际工作温度相近的环境下做,最好是系统通电稳定运行一段时间后再校准。因为放大器与分流电阻的自热、板子上的温差都会影响零位。我踩过的坑是,在板子刚通电、芯片还没热起来的时候做了零点校准,结果跑一段时间后,零位漂了相当多,整机电流精度就崩了。后来改成“先让系统在目标工况下跑20分钟,再校准、再正式使用”,问题解决。

直接对比数据也说明问题:同样的硬件,校准前在10A时的最大误差约120mA(约1.2%),零点校准后到80mA(约0.8%),再把增益校准做完,误差降到30mA(约0.3%)以内。这套两步骤校准流程,配合开尔文布局,是整机精度稳定的关键。校准参数可以存在EEPROM里,每次出厂时写入,也可以在固件里用校准界面临时刷新,灵活度比单纯用电阻微调高很多。

6. 对PCB布线的最后交代:模拟检测的成败八成都在这

这一节没有太多理论,全是实践经验。之前说的专用放大器再好、再精密,到了PCB上,如果布局有问题,精度照样事倍功半。

采样走线要短、要细、要对称。采样走线不要用大面积铺铜,更不要和功率电流路径并行走线。两条采样线之间距离尽量贴近,保证外部磁场在两线上感应出的噪声电压相互抵消。采样走线越短,寄生电感越小,高频噪声拾取越少。

滤波电容要放在放大器输入引脚附近,而不是放在分流电阻旁边。很多人图方便直接在分流电阻两端焊一个电容,这在低频时可能没问题,但容性负载会改变反馈环路特性,而且电容引脚上的寄生电阻会把分流电阻上的微小压降再分压,产生额外误差。正确的做法是,在放大器的输入引脚处放置差分滤波电容,用一小段短走线连接回采样点。

采样走线和功率走线最好分属不同的地层域。如果整块PCB只有一块完整地平面,那么采样线应该尽量远离跳变的功率走线。如果PCB设计允许,让采样电路和功率电路之间有1到2mm的间隔,必要时在采样走线两侧铺上保护地。

对了,还要提一个很多人会犯的错:在分流电阻两端为了过电流而走双面粗线,结果采样线也从同一段走线上引出,电流路径和采样路径在板层之间发生交叉。这种连接方式几乎必然破坏开尔文连接的有效性。哪怕你原理图画的是四端接法,PCB Layout如果做成了两端共享铜箔,效果也等于零。所以布局阶段就要把分流电阻当作一个四端器件来摆:两端接功率,中间(或侧面)接采样,物理上彻底分开。

我开头说的被折磨两周的项目,最后就是这么解决的:原理图方案换成专用电流检测放大器,PCB重新按开尔文连接布局,再把零位校准放到温升以后做。这三件事做完,整机电流测量精度从大电流时的5%误差,一路降到了0.3%以内。这个数字,如果你一开始只看datasheet,会觉得理所当然;真正走过一遍之后才会明白,标称的精度一点都不能直接信,得靠一个个细节去换。

最后再分享一个小技巧:调试电流检测电路时,不要只看示波器上的波形平均,也不要只信万用表的直流读数。我习惯用示波器在交流耦合模式下看一下放大输出端的残余AC分量,再用一个六位半万用表或高精度电压表测直流均值。如果两者匹配,说明链路基本干净;如果AC分量大而直流均值稳定,多半是共模干扰或布线上还有问题。这个小习惯帮我避掉了不少“看起来正常但精度不稳”的雷。

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

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

立即咨询