拓冰建站拓冰建站
首页 / 资讯中心 / 正文

高边电流采样全解析:原理、选型、PCB布局与工程实践

做嵌入式硬件这几年我踩得比较深的一个坑就是电流采样。之前做一款12V工业控制板想实时统计整机功耗图省事把采样电阻放在GND回路里结果板子一跑起来串口、CAN和模拟量采集全被干扰得不成样。后来把方案改成高边电流/功率传感器High-Side Current/Power Sensor用专用的高边电流检测放大器重新做了一版问题才彻底解决。这篇文章就围绕这个方案聊聊高边检测的原理、芯片选型、参数计算和PCB布局给做电源管理、电池BMS、电机驱动、板卡功耗监测的朋友做个参考。我尽量把话说明白适合刚入门不久、还在用低边采样将就的工程师也给有经验的人一些可以直接抄的细节。高边检测这东西表面看只是把采样电阻换了个位置实际上牵扯到共模、CMRR、Kelvin走线、功率和噪声的取舍每一环都有坑。1. 高边检测到底解决什么问题1.1 低边采样为什么容易翻车低边电流采样是很多人的第一反应把采样电阻串在负载和GND之间然后在采样电阻两端接运放。因为电阻两端都是低电位放大电路的设计非常方便普通运放就能搞定。网上很多入门教程也是这么教的但放到真实系统里就会出事。我用低边方案踩的坑比较典型。12V系统负载是一块带模拟采集的控制板我在它的电源负极回路里串了1mΩ电阻做了个放大电路。板子单独供电调试的时候一切正常一旦把外部传感器、串口调试器一起接上采样值就开始乱跳整块板的GND电位也被抬高了接近几十毫伏模拟采集精度直接崩掉。问题根源在于低边采样把本应干净的参考地切断了。采样电阻上的压降会让负载的GND和电源的GND不再等电位所有以GND为参考的信号都会受到干扰。如果负载本身还有接地点还会形成地环路轻则信号噪声重则直接不能工作。负载端的通信接口比如CAN、RS485也容易因为共模偏移出现误码。1.2 高边检测的原理与差异化价值高边检测的做法是把采样电阻放到电源正极和负载之间。采样电阻上的压差依然和电流成正比但因为电阻两端对地的电压都很高不再是0V附近所以不能用普通运放简单放大需要专门处理共模电压。这个位置带来的好处是实实在在的。负载可以真正接到GND不会抬高参考地系统所有模块的地电位保持一致这是通信和模拟电路能稳定工作的前提。另外高边采样天然适合过流保护因为只要检测到采样电阻压降超过阈值就能判断负载侧异常可以直接触发MOS管断开电源低边方案做这类保护会很别扭。缺点是检测电路要直接面对电源电压动态变化。比如12V系统里采样电阻两端的共模电压就是12V附近如果负载是电机电流突变时母线电压还会波动运放必须承受很高的共模输入电压并且在高共模下还能准确放大极小的差分信号这对器件选型提出了要求。1.3 高边和低边选型对比我把两种方案整理成一个表方便做方案评审时直接参考。对比项低边检测高边检测采样电阻位置负载和GND之间电源和负载之间运放共模电压接近0V接近电源电压会随负载波动对系统GND影响抬高参考地干扰敏感电路无影响负载直接接GND短路保护不适合检测负载上方短路适合可直接联动保护放大电路难度低普通运放可做高需要高CMRR器件成本较低稍高但可靠性提升明显做产品的时候成本永远要考虑但我会谨慎对待低边省一个专用芯片钱这种想法。因为低边采样带来的地电位扰动往往要花更多时间在信号完整性和软件滤波上最后算下来并不划算。除非是极简单的、负载与系统完全隔离的场合否则我基本会选高边。2. 核心方案选型从分立运放到专用传感器2.1 分立运放方案能做但代价不低高边采样如果非要用分立运放做通常考虑差分放大电路用两个输入电阻和反馈电阻把采样电阻两端的差分信号搬到一个参考地。听上去不难但工程里很容易变成看着原理图正常实际精度很差。差分放大器对四个电阻的匹配度极其敏感。假设运放本身的CMRR有100dB但外部电阻比例只要差0.1%电路的总CMRR就可能掉到60dB以下。用我前面讲过的计算在12V共模电压下60dB对应的误差是12mV而2mΩ采样电阻上10A电流也只有20mV信号这个误差等于直接把你辛辛苦苦放大出来的信号吃掉了。我并不是说分立方案绝对不能用。如果系统对精度要求不高只是做一个粗略的过流判断用高精度匹配电阻加上普通运放也够。但如果要拿这个信号去做功耗统计、做闭环控制我建议直接用专用电流检测放大器省下的调试时间远比芯片差价贵。2.2 专用高边电流检测放大器是主流市场上有大量专为高边电流检测设计的放大器比如TI的INA180、INA240、INA281ADI的AD8210、AD8418还有MAX4080等。这类芯片的内部电阻都做了激光校准增益精度高共模抑制比通常在100dB以上有些型号允许共模电压到80V甚至更高非常适合工业和车载环境。我实际用得最多的是INA240。它和普通电流检测放大器最大的区别是内置了PWM抑制功能对电机驱动、DC-DC这类开关噪声很强的应用特别友好。之前在一个H桥电机驱动板上做过对比同样条件下普通放大器在PWM边沿会输出明显的尖峰毛刺而INA240的输出相对干净软件上少做很多滤波处理。使用非常简单采样电阻两端接芯片的IN和IN-输出端给MCU的ADC增益通过型号后缀选好就行比如INA240A1是20倍A2是50倍A3是100倍A4是200倍另外还有双向检测版本可以根据应用选。虽然都是运算放大器但用起来真的跟普通运放不一样不用考虑外部电阻匹配。2.3 数字功率监测芯片怎么选如果需求不只是测电流还要在系统里实时看电压和功率直接用数字输出的功率监测芯片更省事。行业里最常用的就是INA219和INA226这俩都是I2C接口芯片内部集成了高边分流放大器和ADC还能把总线电压和电流乘起来得到功率读寄存器就行。INA219量程低、价格低适合笔记本、手机这类轻负载INA226支持更高的VBUS能达到36V分流电压范围做到正负81.92mV用16位ADC精度高很多适合12V和24V工业设备。我做过一个整机功耗统计模块就是用一个2mΩ采样电阻加INA226挂在12V电源轨入口I2C接出来上位机直接读电流和功率稳定性和精度都够用。读INA226的功率数据时要注意寄存器里的Current_LSB不是随便定的它决定电流和功率的分辨率。后面参数设计章节我会结合实际算一次新手容易在这里栽跟头。2.4 霍尔与隔离式方案的取舍高边采样还有一种常见的实现是霍尔电流传感器比如ACS712、ACS724以及一些闭环霍尔模块。它们不用串采样电阻输入输出隔离很适合大电流或者要求电气隔离的场合。但霍尔传感器的劣势也很明显精度通常不如电阻采样存在零电流偏置和温漂带宽和相位延迟也是个问题做高速电流环会吃力。ACS712在小电流下还要注意输出噪声比较大。所以能用电阻采样的场景我不会轻易换霍尔。只有在电流非常大、功率损耗不允许串联电阻或者系统必须隔离时我才优先考虑霍尔。3. 参数设计与电路实现12V/10A案例这一节我用一个实际案例把参数从头算一遍系统电源12V额定电流10A峰值电流12A需要监测负载电流、电压和功率。3.1 采样电阻计算阻值、功率、温漂第一步定采样电阻阻值。阻值越大同样电流下压降越大信噪比越好但损耗越大。我会让满量程压降控制在20mV到100mV之间。这里取2mΩ10A时压降是20mV功耗是I平方R等于0.2W选额定功率0.5W或1W的电阻留够散热余量。如果取5mΩ10A压降50mV信噪比更高但功耗会到0.5W在紧凑板卡上发热明显且温漂会抬升零点。我的习惯是12V/10A级别优先用2mΩ到3mΩ再通过放大器增益把信号抬到ADC量程内而不是单靠加大采样电阻来取得信号。还要看温漂系数。采样电阻最好是合金电阻或金属箔电阻温漂控制在50ppm/℃以内。普通厚膜电阻温漂可能到几百ppm电流一大温度一上来满量程可能偏好几个百分点后面再去校准会很痛苦。采购时一定要确认封装功率和温漂参数不能只看阻值。3.2 增益和ADC分辨率怎么匹配采样电阻定了下一步把电流信号放大到ADC量程附近。以INA240为例选50倍增益的A2型号Vout等于I乘以2mΩ再乘50化简就是I乘0.1V/A10A时输出1V12A时输出1.2V。如果MCU的ADC参考是3.3V只用了不到40%量程分辨率浪费不少。所以我会改用100倍增益的A3型号Vout等于I乘0.2V/A10A时输出2V12A时2.4V还留了安全余量。用12位ADC来计算满量程3.3V对应4096个LSB每个LSB约为0.806mV对应电流分辨率是0.806mV除以0.2V/A大约4mA。这个精度对绝大多数功耗监测都够了。如果测的是双向电流比如电机刹车时电流反向就不能简单选100倍。双向检测要先把零点抬到VS的一半再看正负方向的范围这个我在3.3节说。3.3 功率测量与双向电流检测用INA226这类数字芯片做功率测量时需要正确设置校准寄存器。一个典型流程是先确定期望最大电流比如12A把Current_LSB设为12除以32768取整到0.5mA/LSB然后用公式Calibration等于0.00512除以Current_LSB和Rshunt的乘积算出校准值。采样电阻0.002ΩCurrent_LSB取0.0005ACalibration就等于0.00512除以0.000001得到5120把5120写入校准寄存器。读回的数据要按寄存器定义换算ShuntVoltage寄存器每个LSB是2.5µVBusVoltage寄存器每个LSB是1.25mV电流寄存器的值等于Current_LSB乘以寄存器读数功率寄存器的Power_LSB是25倍的Current_LSB。只要这些比例对了算出来的功率才准。双向电流的场景我单独提醒一句。如果只是单向电源轨监测用单向配置就行。但电机驱动、电池充放电这些应用里电流方向会变采样电阻两端压差会正负切换。这时候要么选INA240的双向版本设置基准电压偏置要么在INA226配置里允许双向测量并确保读回的符号位被正确解析。我在一个电池充放电项目里忘记处理符号位结果把放电电流算成了充电功率排查了很久。3.4 滤波电路加在哪别加错高边采样最常见的滤波误区是把RC低通放在放大器输出端或者在ADC输入前堆电容。其实多数电流检测放大器尤其是INA240这类官方推荐在输入端加差模RC滤波而不是在输出端因为输出端加电容可能影响放大器稳定性。输入端的RC可以抑制来自采样电阻本身拾取的高频干扰同时对PWM边沿的电荷注入也有衰减。我常用的做法是采样电阻两端各串一个10Ω到100Ω的电阻然后在对地并一个1nF到10nF的电容形成差模滤波。选值时要注意不要太大否则会拖慢阶跃响应。比如前面用10Ω电阻加1nF电容时间常数约10ns对音频以上噪声都有衰减但对电流变化几乎没有延迟适合大多数场景。如果系统里PWM开关频率高、噪声特别凶我还会在软件里再做一个滑动平均滤波。不要指望一段RC能搞定所有问题硬件滤波和软件滤波搭配使用才是在真实项目里最稳妥的做法。4. PCB布局与抗干扰电路原理正确只是第一步高边电流检测的成败很大程度看PCB布局。4.1 Kelvin采样走线是命根子采样电阻上的有效信号通常只有几十毫伏大电流路径上任何铜箔压降都会污染测量结果。1oz铜箔1mm宽走1cm直流电阻就有差不多5mΩ这个量级和我的采样电阻一样。如果放大器引线直接从大电流铜箔上接测到的就不仅是采样电阻压降了。正确的做法是开尔文连接从采样电阻两端的焊盘或电阻本体上单独引出两根细的检测走线到放大器输入端检测线不要经过大电流路径也不要承载电流。两条检测线尽量等长、靠近走形成差分对这样外界的共模干扰能在放大器处抵消。这话我说过很多次但每次评审还是能看到有人把检测线从大电流铜箔中间引出来然后电流一大读数就偏。4.2 大电流路径与小信号路径隔离高边采样放大器本身是模拟小信号器件放在功率开关器件旁边会很容易吸收开关噪声。布局时采样电阻和放大器尽量靠近检测点但放大器输出和输入走线要避开大电流环路尤其是MOS管栅极驱动、电感、PWM走线这些强干扰源。功率地和信号地要分开走在源头单点汇合。如果系统里既有高边采样又有MCU、通信接口采样放大器的GND引脚不能直接铺到功率大地里最好单独引线到模拟GND区域再单点连接。实测中很多读数乱跳的问题最后查来查去都是地平面被功率电流干扰了。4.3 我踩过的布局坑说一个我印象很深的案例。有块电机驱动板高边采样放大器一开始放在功率MOS管和电感之间的空隙里因为那里布线最短。结果一跑电机采样输出在开关边沿出现一大串振铃靠RC滤波压不下去。后来我把放大器挪到板边输入走线改成Kelvin差分把功率环路重新圈小干扰立刻下降了不止一个数量级。从那以后我评审PCB第一件事就是看采样电阻和放大器的位置。另一个坑是采样电阻的封装。选大电流采样电阻时不要只看阻值和功率还要看寄生电感。有些功率电阻自带螺丝固定或四端开尔文结构价格贵一点但对精度和重复性帮助很大。对要求高的产品我宁愿用带Kelvin引脚的专用采样电阻也不在普通贴片电阻上反复折腾。5. 实测校准与常见问题排查5.1 软件校准零点与增益两步走任何模拟链路都有零点偏置高边采样也不例外。上电后先让负载断开采一次ADC读数作为零点偏置存起来后续所有测量都先减掉这个偏置。这一步能消除放大器残余失调和ADC自身偏置效果很明显。第二步是增益校准。用一个已知精度的电子负载或标准电流源加一个稳定的10A电流读取ADC值计算出实际增益系数和理论增益对比得到修正系数。采样电阻的温漂、放大器增益误差、ADC参考电压偏差都可以被这一步整体修正。校准完之后把补偿系数存进Flash或EEPROM每次上电加载系统性能就稳定了。5.2 常见故障现象速查表现象可能原因处理办法零负载时输出不为0放大器失调、PCB感应软件减零点检查检测走线小电流读数偏大检测线引入了大电流铜箔压降改Kelvin连接大电流读数偏低采样电阻温漂、增益不足换低温漂电阻复核增益输出在PWM边沿跳变开关噪声耦合加输入RC优化布局读数饱和到满量程增益或采样电阻过大降低增益或Rshunt数字芯片读数为负方向位判断错误检查双向配置和寄存器符号位这张表算是我这几年调试电流检测的浓缩经验遇到问题先按表排查能省不少事。5.3 系统级功耗监测的落地经验如果把高边电流/功率传感器接入系统有几点落地经验可以分享。第一数字方案优先考虑I2C地址冲突INA226这类芯片A0/A1引脚能配置多个地址在单总线上设计好跳线别等板子做好了才发现地址冲突。第二采样率不用盲目拉满功耗监测往往10Hz到100Hz就够把总线让给更关键的管理事务。第三在软件层面把电流和电压读取做成同一时刻采样否则在负载快速变化时用不同时刻的电流电压相乘算出的功率误差会很大。INA226内部有同步机制用模拟方案时就需要软件配合。我手上这个12V/10A模块最终用的方案是INA240A3加STM32的ADC同时保留了一路INA226做数字冗余。简单工况下用模拟通道实时控制统计时读INA226两边数据交叉验证之后整机功耗曲线非常干净。项目交付后这套电路的精度和抗干扰表现一直比较稳定几乎没再出现之前低边方案那种全线崩溃的状况。最后说点个人体会。高边电流/功率传感器本身的电路并不复杂核心原理就是欧姆定律加上一个把差分小信号从高共模环境里拎出来的放大器。真正决定项目成败的往往是对地电位、共模噪声、PCB布局这些细节的处理。我见过不少方案芯片选型和理论计算都挑不出毛病最后死在采样电阻的检测线引错位置或者GND处理不当上。所以我的建议是画原理图之前先把系统里的地关系想清楚尤其是电流传感器的地、MCU的地、功率地怎么汇合。多花半小时做Kelvin走线和布局规划比事后改三版板子都管用。项目做多了就会明白测量电路的精髓不是把器件堆多好而是把干扰路径一条一条断干净。这套方法不光能用在高边电流/功率传感器上凡是要测微弱信号的电路都适用。希望这篇能帮你少走点弯路。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门