
1. 从一个诡异的电流读数说起如果你做过电流测量相关的硬件设计大概率遇到过这种情况明明采样电阻的阻值精确到千分之一ADC也是16位的高精度型号但实测电流就是跟负载端串联的万用表读数对不上误差有时候能到百分之十几而且负载电流越大偏差越离谱。你换更贵的电阻、换更高分辨率的ADC、甚至给整个板子加了屏蔽罩问题依旧。这个坑我自己踩过不止一次。最早做电机驱动板的时候用了一个2512封装的1毫欧采样电阻配合INA226做电流监测空载的时候读数还算正常一旦电机启动、电流上到5A以上INA226读出来的值就比实际值偏小而且偏得很有规律——电流越大偏得越多。当时第一反应是电阻精度不够换了个0.5%的合金电阻问题没解决。第二反应是ADC校准有问题重新做了零点校准和增益校准还是不对。折腾了整整两天最后用四线法测了一下采样电阻两端的实际压降才发现问题根本不在电阻本身而在于我测量电压的位置——我直接从电阻焊盘的外侧边缘取的电压信号而那段走线上有电流流过走线本身的电阻被算进了采样电阻里。这就是开尔文连接要解决的核心问题。它的本质说起来特别简单把“电流流过的路径”和“电压测量的路径”彻底分开让测量端只感知采样电阻本身的压降而不掺杂任何走线、焊点、过孔的寄生电阻。但就是这么个简单的道理在实际PCB设计里有太多细节会让它失效。这篇文章我会把开尔文连接在电流测量中的应用从头到尾拆一遍它到底解决什么问题、PCB上怎么画才真正有效、配合INA226这类电流监测芯片时有哪些容易忽略的坑、双电阻采样和三电阻采样场景下开尔文连接又该怎么处理。内容偏向实操适合做过或者正在做电流测量硬件设计的工程师参考也适合刚接触采样电路、想搞清楚“为什么我的电流测不准”的朋友。2. 开尔文连接到底在解决什么问题2.1 采样电阻的“有效阻值”为什么总比标称值大要理解开尔文连接得先接受一个反直觉的事实你焊在板子上的那个采样电阻它的“有效阻值”从来都不是数据手册上写的那个值。数据手册标的是电阻体本身的阻值但实际电路中电流从PCB走线流进电阻焊盘、穿过焊锡、经过电阻体、再从另一端焊锡和焊盘流出去这一整条路径上每一段都有电阻。焊盘的铜箔有电阻焊锡有电阻电阻体两端的内部电极结构也有电阻。对于1毫欧这种级别的采样电阻来说这些寄生电阻的量级完全不能忽略。一个2512封装的焊盘如果走线从焊盘一侧接入焊盘本身的等效电阻可能在几十微欧的量级焊锡的电阻虽然小但架不住接触面积和厚度不均匀更关键的是如果你从焊盘边缘取电压信号那段从取点位置到电阻体实际端点的铜箔它的电阻会直接叠加到测量结果里。我实测过一个案例一个1毫欧的2512电阻从焊盘外边缘取电压用四线法测得的等效阻值大约是1.18毫欧也就是说寄生电阻贡献了将近18%的误差。这个误差在1A电流下就是0.18mV的额外压降对于满量程可能是几十毫伏的INA226来说直接吃掉了一大块精度。2.2 四线法与开尔文连接的关系开尔文连接本质上就是四线法测量在PCB上的实现形式。四线法的核心思想是用一对线Force线给被测电阻注入电流用另一对线Sense线去测量电阻两端的电压。因为Sense线上几乎没有电流流过电压表的输入阻抗极高所以Sense线本身的电阻不会产生压降测量到的电压就纯粹是被测电阻两端的电压。在PCB上Force线就是承载主电流的粗走线或者铺铜Sense线就是从采样电阻两端引出到ADC或电流监测芯片的细走线。关键在于Sense线的取点位置必须在电阻体的电气端点而不是焊盘边缘或者走线上的任意位置。这里有个常见的误解很多人以为只要从电阻两端分别引两根线出来就算开尔文连接了。实际上如果两根Sense线从同一个焊盘的不同位置引出但这两个位置之间仍然有电流流过那Sense线测到的电压里依然包含那段焊盘的压降。真正的开尔文连接要求Sense线的取点位于电流路径的“内侧”——也就是电流已经全部进入电阻体、不再从取点之间流过的位置。2.3 一个生活化的类比你可以把采样电阻想象成一条高速公路上的收费站电流就是车流。Force线是高速公路的主路所有车都必须从收费站通过。Sense线是你站在收费站两端观察车流量的观察员。如果你站在收费站外面的高速公路上观察你看到的是主路上的车流但这段主路本身也有“拥堵成本”压降。只有当你站在收费站的正入口和正出口观察你看到的才是收费站本身的通过情况。开尔文连接就是确保你的“观察员”站在收费站的正入口和正出口而不是站在外面的高速公路上。3. PCB上画开尔文连接的正确姿势3.1 采样电阻的焊盘设计从“共用焊盘”到“分离取点”大多数PCB设计软件里电阻的封装都是两个焊盘走线从焊盘中间或者边缘接入。这种设计对于普通电阻没问题但对于采样电阻尤其是毫欧级别的就必须做特殊处理。我的做法是在采样电阻的每个焊盘上额外引出两个独立的连接点。一个连接点用于主电流的流入/流出另一个连接点用于电压信号的取出。这两个连接点在物理上要分开中间最好有一段明显的间隔。具体来说对于2512封装的采样电阻我会把焊盘设计成“T”形或者“L”形。主电流走线从焊盘的一端宽幅接入电压取点从焊盘的另一端单独引出一根细走线。这样主电流在焊盘上的流动路径和电压取点的位置就分开了电压取点处几乎没有电流流过测到的就是电阻体端点附近的真实电压。注意有些工程师喜欢在焊盘上打多个过孔来降低阻抗这本身没问题但过孔的位置必须在主电流路径上不能打在电压取点附近。过孔本身也有电阻如果电压取点附近有过孔过孔的压降会被算进去。3.2 Sense线的走线规则细、短、远离干扰源Sense线的作用是传输一个非常微弱的电压信号。以INA226为例它的满量程差分输入是±81.92mV而典型采样电阻上的压降可能只有几十毫伏甚至几毫伏。这么小的信号对走线的要求其实比很多人想象的要高。首先Sense线要尽量细。细走线的电阻大但Sense线上几乎没有电流所以电阻大不是问题。细走线的好处是占用空间小更容易从焊盘的内侧取点也更容易避开主电流路径。我一般用6mil到8mil的线宽。其次Sense线要尽量短。虽然Sense线上没有电流但走线越长引入噪声和干扰的机会就越大。尤其是在电机驱动或者开关电源场景下板子上的dv/dt和di/dt都很高长走线就像一根天线很容易把开关噪声耦合进来。第三Sense线要成对走线并且尽量靠近。差分信号对共模干扰有抑制作用但前提是两根线受到的干扰要尽量一致。如果一根Sense线绕了很远另一根走直线那它们感受到的噪声就不一样差分抑制效果会大打折扣。我通常会把两根Sense线并排走间距保持在3倍线宽以内必要时可以在它们下面铺一层地铜作为屏蔽。3.3 地平面处理Sense地的单点连接这是一个特别容易被忽略的点。INA226这类电流监测芯片通常有独立的Sense地和功率地引脚或者至少有一个专门的Kelvin Sense输入对。如果芯片的地引脚和主电流的地回路共用一段走线那么主电流在地走线上的压降就会叠加到测量结果里。正确的做法是Sense线的地回路要单独走一根线回到芯片的GND引脚这根线不能和主电流的地回路共用任何一段走线。在芯片端Sense地和功率地通过一个单点连接在一起通常是芯片的GND焊盘或者一个专门的星点。我见过不少设计把INA226的GND直接连到板子的主地铜皮上结果电机一启动电流读数就跳得厉害。后来把Sense地单独拉了一根线回到芯片GND问题立刻改善。这个细节在数据手册里通常只有一句话带过但实际影响非常大。3.4 一个完整的开尔文连接PCB布局示例假设我们要在一个四层板上做一个电机电流采样电路采样电阻是1毫欧的2512封装配合INA226使用。我的布局思路是这样的第一层顶层放置采样电阻和INA226。采样电阻的焊盘做特殊处理主电流从焊盘外侧宽幅接入Sense线从焊盘内侧引出。INA226尽量靠近采样电阻放置Sense线走线长度控制在10mm以内。第二层内层完整的GND平面。这个平面作为屏蔽层减少顶层走线之间的串扰。第三层内层电源平面或者信号走线层。如果有其他敏感信号尽量远离Sense线。第四层底层主电流的回流路径。注意回流路径要尽量宽减少地回路阻抗。Sense线的取点位置我用一个具体的坐标来说明假设采样电阻的焊盘在X轴方向从0到2mm电阻体在中间。主电流从X0处接入那么Sense线的取点应该在X1.8mm到2.0mm之间也就是焊盘靠近电阻体的那一侧。这样从X0到X1.8mm这段焊盘上的压降不会被Sense线测到。4. INA226配合开尔文连接的实战细节4.1 INA226的Kelvin输入结构INA226是一款被广泛使用的电流监测芯片它的输入结构其实已经为开尔文连接做了考虑。芯片有两个差分输入引脚IN和IN-分别对应采样电阻的两端。这两个引脚的输入阻抗很高输入偏置电流在微安级别所以它们对采样电阻的影响很小。但这里有个细节INA226的IN和IN-引脚内部有ESD保护二极管这些二极管在正常工作电压下是反偏的不会导通。但如果采样电阻上的压降超过了芯片的共模输入范围或者Sense线的走线电感在开关瞬间产生了尖峰电压这些二极管可能会导通导致测量异常。所以Sense线的走线要尽量短必要时可以在IN和IN-之间加一个小的RC滤波网络。4.2 采样电阻的选型不是阻值越小越好很多人觉得采样电阻的阻值越小对电路的影响就越小所以倾向于选0.5毫欧甚至更小的。但阻值越小同样的电流下产生的压降就越小对测量精度的要求就越高。INA226的最大差分输入是81.92mV如果你选0.5毫欧的电阻在10A电流下压降只有5mV只用了满量程的6%ADC的有效位数会大幅下降。我的经验是根据最大测量电流和INA226的满量程来反推采样电阻的阻值。假设最大电流是20A希望用到满量程的80%那么采样电阻上的压降应该是81.92mV × 0.8 ≈ 65.5mV阻值就是65.5mV / 20A ≈ 3.27毫欧。实际选型时取一个标准值比如3毫欧或者2毫欧。另外采样电阻的功率额定值要留足余量。20A电流下3毫欧电阻的功耗是1.2W如果选2512封装的电阻它的额定功率通常是1W到2W需要降额使用。我一般会让实际功耗不超过额定功率的50%所以可能会选更大封装的电阻比如2725或者3920。4.3 校准开尔文连接之后的最后一步即使开尔文连接做得再好采样电阻本身的阻值公差、INA226的增益误差和失调误差仍然存在。所以校准是必不可少的。我的校准流程是这样的首先在零电流条件下读取INA226的电流寄存器值这个值就是失调。然后在已知的精确电流下比如用高精度电子负载设定1A、5A、10A读取INA226的值计算增益误差。最后把失调和增益校准系数写入INA226的校准寄存器。INA226的校准寄存器计算方式是CAL 0.00512 / (Current_LSB × R_shunt)。其中Current_LSB是你希望每个LSB代表的电流值R_shunt是采样电阻的阻值。这里有个坑R_shunt应该填的是开尔文连接之后实际测得的等效阻值而不是电阻的标称值。如果你用标称值去算校准出来的结果会有系统偏差。我通常会用四线法实际测量一下焊在板子上的采样电阻的等效阻值把这个值代入校准公式。这一步能让初始精度提高不少。4.4 实测数据对比开尔文连接前后的差异我在一块电机驱动板上做过对比测试。采样电阻是1毫欧的2512合金电阻INA226配置为最大电流20A、Current_LSB为0.5mA。测试条件是用电子负载拉载从0A到15A每隔1A记录一次INA226的读数和电子负载的读数。负载电流(A)非开尔文连接读数(A)开尔文连接读数(A)电子负载读数(A)1.00.920.991.005.04.454.975.0010.08.729.9510.0015.012.8514.9315.00非开尔文连接时误差随着电流增大而增大15A时误差达到了14.3%。开尔文连接之后误差降到了0.5%以内。这个对比很直观地说明了开尔文连接的价值。5. 双电阻采样与三电阻采样中的开尔文连接5.1 双电阻采样低侧采样的开尔文处理双电阻采样通常用在三相电机驱动中在两个下桥臂各放一个采样电阻通过测量两个下桥臂的电流来重构三相电流。这种拓扑下采样电阻的一端直接接地另一端接MOS管的源极。低侧采样的开尔文连接有一个特殊之处采样电阻的接地端本身就是参考地所以Sense线的地端可以直接连到采样电阻的接地焊盘内侧。但要注意这个“地”必须是干净的模拟地不能和功率地共用走线。我通常会在采样电阻的接地焊盘旁边打一个过孔连接到内层的模拟地平面而功率地则通过另一条路径回到母线电容。5.2 三电阻采样高侧采样的挑战三电阻采样是在三个下桥臂都放采样电阻或者在某些拓扑中放在高侧。高侧采样的开尔文连接难度更大因为采样电阻两端的共模电压很高可能是几十伏甚至上百伏。这时候INA226就不适用了需要选用支持高共模电压的电流监测芯片。高侧采样时Sense线的走线要特别注意爬电距离和电气间隙。如果采样电阻在高压侧Sense线不能和低压侧的走线靠得太近否则会有击穿风险。我通常会在Sense线周围留出足够的禁布区必要时用开槽来增加爬电距离。5.3 单电阻采样开尔文连接还适用吗单电阻采样是在母线负极或者母线正极放一个采样电阻通过特定的PWM时序来重构三相电流。这种拓扑下采样电阻上的电流是脉冲式的对开尔文连接的要求更高。单电阻采样的难点在于采样电阻上的电流不是连续的而是在PWM开关过程中有剧烈的跳变。这时候Sense线上的寄生电感会产生很大的感应电动势干扰测量。我的做法是在Sense线上串联一个小电阻比如10欧姆并在INA226的输入端加一个差分RC滤波截止频率设置在100kHz左右。这样既能滤掉开关噪声又不会影响电流信号的带宽。6. 那些数据手册不会告诉你的坑6.1 焊锡的电阻比你想象的大我做过一个实验用同样的PCB、同样的采样电阻只改变焊接工艺测量等效阻值的变化。回流焊和手工焊的差异能达到5%以上。手工焊时焊锡量不均匀有些地方厚有些地方薄导致接触电阻不一致。对于毫欧级别的采样电阻这个差异直接体现在测量精度上。所以我的建议是采样电阻尽量用回流焊并且控制焊锡量。如果必须手工焊尽量让焊点饱满均匀焊接完成后用四线法实测一下等效阻值。6.2 温度系数的影响采样电阻的阻值会随温度变化合金电阻的温度系数通常在50ppm/°C左右看起来不大但如果电阻自身的温升有50°C阻值变化就是0.25%。对于1毫欧的电阻0.25%就是2.5微欧在10A电流下产生25微伏的额外压降。更麻烦的是铜的电阻温度系数是3900ppm/°C比合金电阻大得多。如果Sense线的取点位置不够“内侧”那段铜箔的电阻会随温度剧烈变化导致测量结果漂移。这也是为什么开尔文连接的取点位置如此重要——它不仅要减少初始误差还要减少温度漂移。6.3 过孔不是免费的在多层板上主电流从顶层流到底层或者内层时必须经过过孔。过孔本身有电阻一个0.3mm孔径的过孔电镀铜厚度25微米时电阻大约是0.5毫欧。如果你用了两个过孔并联电阻是0.25毫欧。对于1毫欧的采样电阻来说这个过孔电阻已经不能忽略了。我的做法是主电流路径上的过孔尽量多打比如4个到6个并联把过孔电阻降到几十微欧的量级。同时Sense线的取点要在过孔之前不能放在过孔之后否则过孔电阻会被算进去。6.4 开关噪声的耦合路径在电机驱动或者开关电源中采样电阻上除了有用的电流信号还叠加了大量的开关噪声。这些噪声通过两种路径耦合到Sense线上一种是传导耦合通过共用的地回路或者电源回路另一种是辐射耦合通过空间电磁场。传导耦合的解决办法是单点接地和差分走线。辐射耦合的解决办法是缩短Sense线长度、增加屏蔽层、必要时用双绞线或者屏蔽线。我在一个48V电机驱动项目上最初Sense线走了30mm噪声很大后来把INA226挪到采样电阻旁边Sense线缩短到8mm噪声立刻降了一个数量级。7. 从原理图到量产开尔文连接的检查清单7.1 原理图阶段的检查项在画原理图的时候就要把开尔文连接的意图表达清楚。我通常会在采样电阻的符号上标注“Kelvin Sense”字样并且把Sense线的网络名单独命名比如“ISENSE_K”和“ISENSE-_K”以区别于主电流网络。另外INA226的校准寄存器计算需要用到采样电阻的等效阻值这个值在原理图阶段可以先填标称值但在PCB打样回来之后必须实测更新。7.2 PCB布局阶段的检查项PCB布局完成后我会专门检查以下几个点Sense线的取点是否在采样电阻焊盘的内侧是否避开了主电流路径。Sense线是否成对走线间距是否均匀是否尽量短。Sense线的地回路是否单独走线是否和功率地单点连接。采样电阻的焊盘设计是否支持开尔文取点是否有足够的空间引出Sense线。主电流路径上的过孔是否足够多是否避开了Sense取点区域。7.3 打样后的验证步骤板子回来之后我会先用四线法测量采样电阻的等效阻值确认开尔文连接是否有效。具体做法是用高精度电源给采样电阻注入一个已知电流用高精度万用表测量Sense线取点处的电压计算出等效阻值。如果这个值和电阻标称值接近差异在1%以内说明开尔文连接有效。如果差异很大说明取点位置有问题需要检查PCB布局。然后是用INA226读取电流值和电子负载的读数对比做多点校准。校准完成后再在满量程范围内验证一遍线性度。7.4 量产阶段的工艺控制量产时采样电阻的焊接工艺一致性很重要。我会要求代工厂对采样电阻的焊接做特殊管控比如指定回流焊温度曲线、控制焊锡膏用量、避免手工补焊。同时在首件检验时用四线法抽测采样电阻的等效阻值确保批次一致性。8. 一些进阶思路和替代方案8.1 用集成式电流监测方案替代分立采样电阻如果你的电流测量精度要求很高但又不想在开尔文连接的PCB设计上花太多精力可以考虑集成式的电流监测方案。比如有些芯片把采样电阻和电流监测电路集成在一个封装里内部已经做了开尔文连接你只需要把主电流引进去就行。这种方案的精度和一致性通常比分立方案好但成本更高而且采样电阻的阻值不可选。8.2 数字隔离在高压场景下的应用在高侧采样或者高压场景下INA226这类非隔离芯片就不适用了。这时候可以用隔离式的电流监测芯片或者用隔离放大器加隔离电源的方案。隔离方案的好处是Sense线的共模电压问题被彻底解决但代价是成本增加、电路复杂度提高。8.3 温度补偿的软件方案如果采样电阻的温漂是主要误差来源可以在软件层面做温度补偿。具体做法是在采样电阻附近放一个温度传感器实时读取电阻温度根据电阻的温度系数曲线修正测量值。这个方法在环境温度变化大的场景下特别有效但需要提前标定电阻的温度系数。9. 我个人的几条经验总结做电流测量这些年开尔文连接是我认为“投入产出比最高”的一个设计细节。它不需要额外的物料成本只需要在PCB布局时多花一点心思就能把测量精度提高一个数量级。但它的难点在于很多设计规则是“隐性”的——数据手册不会告诉你焊锡电阻有多大不会告诉你过孔电阻在毫欧级别下有多致命也不会告诉你Sense线的取点位置差1mm会带来多少误差。我的建议是只要你的采样电阻小于10毫欧就一定要认真对待开尔文连接。不要觉得“差不多就行”在毫欧级别下差一点就是差很多。每次画完采样电路用四线法实测一下等效阻值这个习惯能帮你省下大量的调试时间。另外INA226虽然好用但它的校准寄存器计算一定要用实测的等效阻值不要用标称值。这个细节我在早期项目中忽略了导致批量生产时出现了一致性问题后来统一改成实测校准才解决。最后说一个我最近在尝试的思路用PCB内层的铜箔做采样电阻。在一些成本敏感、精度要求不高的场景下可以利用内层铜箔的已知厚度和宽度来计算阻值配合开尔文连接做电流监测。这个方案的阻值温漂很大铜的温度系数是3900ppm/°C但通过温度补偿可以在一定范围内使用。我还在验证阶段等有更多数据了再单独写一篇。