ARTICLE DETAIL

资讯详情

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

电流分流测量精度设计:从运放选型到开尔文连接的完整指南

电流分流测量精度设计:从运放选型到开尔文连接的完整指南 很多年前我刚接触电流分流测量时第一反应是这有什么好折腾的——一个电阻加一个放大器而已。后来在一个电机驱动项目里被折磨了两周我才彻底改变看法。那次方案倒是很简单低边分流检测板子跑起来后用示波器抓电流波形低频段看着还行可一加载就乱跳误差最大能到满量程的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或者5V20mV只占满量程的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到1W0.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.0V3.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)如果取R1kΩC33nF截止频率约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在高边检测中共模电压并非固定为48VPWM开关时会有动态跳变。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分量大而直流均值稳定多半是共模干扰或布线上还有问题。这个小习惯帮我避掉了不少“看起来正常但精度不稳”的雷。
返回列表