ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

IoT设备续航优化指南:电源模块选型与低功耗设计实战

IoT设备续航优化指南:电源模块选型与低功耗设计实战 1. 先搞清楚IoT设备的电池到底是怎么“耗干”的1.1 为什么“省电”是所有IoT设备的命门做物联网硬件这些年我见过太多“死于续航”的产品。有客户拿来一款智能门锁装上去功能全好App能开、指纹能按、甚至还能远程查看门锁状态但4节AA电池只撑了不到两个月。用户最开始觉得新鲜后来天天担心门锁没电把自己锁外面最后直接把产品拆了退货。另一款温湿度传感器板子做得很精致传感器精度也够但厂家为了省成本选了个静态电流偏大的LDO结果一节CR2032纽扣电池标称能用两年实际四个月就挂了。说句实话IoT设备的电池寿命问题从来不是“电池容量不够大”这么简单。真正决定续航上限的是整条供电链路——从电池到各个负载模块——每一环的损耗和浪费。电源模块恰恰就是这条链路上最先过手的一环它选得对不对、用得好不好直接决定了设备的休眠功耗、工作功耗和转化效率也就直接决定了你是三个月换一次电池还是三年都懒得碰一次电池。这篇文章主要面向做IoT硬件研发、嵌入式软件、或者正在给自家设备选型电源方案的工程师。我会从功耗源头拆起讲清楚电源模块为什么能帮设备“省出”续航再给出一套从选型、设计到测试的完整实操流程最后把我在项目里踩过的坑、积累的排查经验一起拿出来。内容偏实战适合刚入门低功耗设计的工程师也适合已经有一定经验、想补齐电源这块短板的硬件老兵。1.2 功耗的去向静态功耗、动态功耗与无线发射要谈省电先得弄清楚电能到底被谁吃掉了。我一般会把IoT设备的功耗拆成三个部分来看这样排查问题时思路特别清晰。第一部分是静态功耗也叫待机功耗。设备进入睡眠模式以后MCU停了、传感器关了、无线模块睡了但电源芯片本身还在消耗电流。这部分的“大头”往往不是MCU而是电源模块自己的静态电流Iq。很多新手容易忽略这一点觉得板子都睡了应该没什么电流结果万用表一测整机睡眠电流高达几十微安一半以上都耗在了电源芯片上。第二部分是动态功耗也就是设备在执行计算、读取传感器数据、写入Flash这些操作时消耗的电流。这部分电流的特点是“脉冲式”的——持续时间短、瞬时电流大。比如一颗Cortex-M4内核的MCU跑在48MHz工作电流可能到10mA但只运行几百微秒就回到睡眠状态。动态功耗由工作电压、时钟频率和活动时间共同决定也是电源模块的负载特性之一。第三部分是无线发射功耗。这一块是最猛但也最容易被误判的。BLE广播时的峰值电流能做到10mA左右但如果是NB-IoT或者LoRa模块发射瞬间电流动辄上百毫安而且持续时间较长。Wi-Fi模块更夸张峰值电流能到300mA以上。发射阶段对电源模块的“瞬态响应能力”提出了极高要求——电压不能掉纹波不能大否则无线性能会明显劣化。这三部分功耗叠加起来才是设备从电池里真正拿走的能量。前两部分和电源模块的选型高度相关第三部分则和电源模块的瞬态能力强绑定。所以做物联网产品的续航优化第一步往往不是换大电池而是先审视电源方案是不是够“抠门”。2. 电源模块为什么是提升续航的第一站2.1 电源转换效率DCDC和LDO的取舍IoT设备通常电池电压在2.0V到4.2V之间但板上的数码逻辑经常需要3.3V或者1.8V传感器可能还要独立的模拟供电。电池电压和负载电压不匹配中间就必须有一级电压转换转换效率直接决定了电池能量的利用率。传统上第一反应是用LDO低压差线性稳压器。LDO的好处是电路简单、成本低、输出纹波小、几乎没有噪声劣势是它本质上是一个可变电阻——输入输出压差乘以负载电流这部分能量全部变成了热量。电池电压4.2V降到3.3V如果负载电流是100mA就有90mW白白烧掉了。更麻烦的是电池电压随着放电会不断下降LDO的压差会越来越大效率进一步恶化。所以只能在负载极轻、瞬态要求不高的场合用LDO否则就是在拿电池寿命换电路简洁。DCDC开关稳压器就走完全另一条路线。它通过电感储能和开关动作实现电压变换理论上效率可以做到90%以上输入输出压差越大优势越明显。BUCK拓扑负责降压BOOST负责升压BUCK-BOOST则能在电池电压高于或低于目标电压时都稳定输出。现代电源模块把这个过程集成到一颗芯片里我们只需要配一个电感、两个电容就能完成设计。这里涉及一个关键选择逻辑永远不要第一时间选LDO但也不要无脑选DCDC。比如电池电压3.0V到4.2V需要3.3V输出如果设备大多数时间是睡眠状态微安级负载LDO的静态电流可能只有0.5uA而DCDC即便用了低功耗模式静态电流也常到1uA以上此时LDO反而更优。反之如果设备频繁工作、平均负载超过1mADCDC的效率优势就碾压LDO了。所以正确的思路是画出设备的负载分布图找到“主力功耗区间”再选对应区间效率最高的方案。2.2 容易被忽略的静态电流Iq静态电流这个参数是电源模块选型里最容易被低估的一项。它指的是电源芯片在无负载、且不进行开关动作时自身从输入电源消耗的电流。IoT设备通常一天里99%以上的时间都处于睡眠状态静态电流哪怕只差几微安多年累积下来对电池寿命的拖累都相当可观。举个例子一颗LDO的Iq是1uA一颗低功耗DCDC的Iq是2uA看上去差距不大但如果睡眠时间是99.9%LDO一年的静态消耗约8.8mAhDCDC约17.5mAh。对于一颗250mAh的纽扣电池来说这接近7%的容量差异就白白没了。低功耗电源模块厂商这几年一直在Iq上较劲。有的芯片能做到300nA甚至更低这在以前是不可想象的。但这里有个坑规格书标称的“静态电流”往往是在特定测试条件下测出来的——输入电压、温度、使能状态都可能影响实际值。我实测过一款标称2uA的DCDC在输入电压4.2V、温度40℃的情况下实际Iq跑到了2.8uA。这还不说极端低温下芯片的启动电流变化设计时一定要留足余量。另外还有一点容易被忽略很多DCDC有一个“低功耗模式”引脚可以通过逻辑电平在PWM模式和PFM/突发模式之间切换。PFM模式牺牲一点输出纹波换取极低的静态功耗。有的芯片不需要引脚控制能根据负载自动切换。选型时优先看“支持自动轻载模式切换”的型号能省去很多软件配合的麻烦。2.3 轻载效率PMIC的突发工作模式很多工程师看DCDC效率曲线时眼睛只盯着峰值效率那一段比如12V转5V2A负载时效率95%觉得这参数很漂亮。但IoT设备大部分时间连1mA都用不到这时候如果DCDC还在用正常PWM模式开关损耗会占主导效率可能跌到50%甚至更低这么一来反而不如一个优秀的LDO。应对轻载低效的方案就是突发模式Burst Mode或者叫脉冲频率调制PFM。简单说就是负载轻的时候芯片不是固定频率地持续开关而是等到输出电压掉到一定阈值才开一下输出补回上限后立刻停止。开关次数大幅减少静态电流自然就降下来了。这项技术对电池续航的贡献非常直观。我之前测过一颗TI的TPS62740切换成PFM模式后在10uA负载下输入电流能做到大约1.5uA而同样条件下如果强制用PWM模式输入电流可能到50uA以上。差一个数量级还多。所以在IoT设备设计里选电源模块尽量找支持PFM/PSM模式的芯片并确认设计里的使能引脚配置能让芯片真正进入这个模式而不是一直处于强制PWM状态。有个容易踩的坑是有些DCDC的PFM模式会带来输出电压纹波的明显增大这就对后级负载的供电纹波容忍度提出了要求。如果MCU的ADC、射频模块对电源噪声特别敏感就得在PFM模式之外增加一级低噪声LDO做后级稳压或者选支持“低纹波PFM”的改进型芯片。3. 实操电源模块选型和供电架构实现3.1 选型前必须理清的“需求清单”不少工程师选电源芯片时习惯先去厂商官网按“输入电压范围”“输出电压”“最大电流”三个条件筛筛出来哪颗便宜选哪颗。这种选法做普通消费电子问题不大但做电池供电的IoT设备后果就是续航不达标、无线性能抖动、低温环境掉链子。我建议在选型之前先花两天时间把下面这张清单填满。第一项是电池类型和电压范围。锂电池3.0V到4.2V碱性电池1.8V到1.5V两节就是3.6V到3.0V纽扣电池3.0V到2.0V。这个范围决定了你需要BUCK、BOOST还是BUCK-BOOST。第二项是负载分布。把设备一天24小时的运行模式列出来睡眠多长时间、每个模式下的电流是多少、占空比是多少。这组数据是后续所有选型和寿命估算的基础。我一般会用功耗分析仪实测一轮没有仪器就用手头的万用表和示波器凑合估算但务必把睡眠电流、工作电流、发射电流三个典型数值记录清楚。第三项是瞬态响应要求。无线模块发射瞬间的电流急升会直接拉低电源输出电压如果跌落超过无线芯片的容忍范围轻则丢包重则重启。所以选型时必须知道模块的峰值电流和持续时间。第四项是面积和成本预算。IoT产品对PCB面积极度敏感一颗电源芯片占的面积越小越好高集成度的电源模块比分离式方案省事很多。成本则是另一个现实约束一般我会把电源部分的总成本控制在整机BOM的5%以内超过就要重新权衡。3.2 一个典型传感器节点的供电设计案例拿一个我自己做过的温湿度传感器节点来说。设备需求是CR2032纽扣电池供电电压3.0V新电最低放到2.0V主控是nRF52832蓝牙芯片工作电压1.8V到3.6V传感器是SHT30工作电压2.4V到3.6V无线发射峰值电流约15mA长10ms设备每15分钟测量并广播一次其余时间深度睡眠。这颗纽扣电池的标称容量是225mAh但实际能放出的容量跟放电电流关系很大。1uA级别放电能接近标称值10mA级别放电容量就要打八折。所以我直接放弃用纽扣电池扛大电流的想法采用“电池直接供电间歇工作”的模式睡眠时整机电流做到2uA以下工作段短而快平均电流不超过30uA。电源架构我选了BUCK-BOOST方案具体型号是TPS62740这颗超低功耗DCDC它支持2.0V到5.5V输入输出可设为1.8V到3.6V轻载效率在5uA负载时还能做到80%以上。这样既能在电池电压高于3.3V时降压也能在电压降到3.0V以下时继续输出稳定的3.3V保证射频部分始终有干净的供电。供电链路我从电池拉出两路一路经过DCDC给数字逻辑和传感器供电另一路直接从电池给射频功率放大级供电。射频PA对电源内阻敏感直接接电池可以避开DCDC瞬态响应不足的问题。这个架构实测下来睡眠电流2.1uA广播时峰值电流14.8mA整机平均电流约26uA一颗CR2032理论上能用一年半以上实际测试也跑满了14个月。3.3 电池寿命的估算方法很多工程师做完硬件就不管了以为电池能用多久是“命”其实完全可通过计算提前预判。电池寿命估算的核心公式只有一条就是容量除以平均电流但真正估算的难点在于“平均电流”怎么算准确。我用的方法是把一天24小时按事件拆开。假设设备每15分钟唤醒一次每次唤醒连续工作50ms工作电流10mA广播时峰值15mA持续10ms睡眠电流2uA。折合到一天唤醒次数96次每次工作时间50ms加10ms总工作时间约5.76秒。工作段等效电流按保守的12mA算一天工作段耗电约0.00002Ah。睡眠占剩下的23.9999小时电流2uA一天耗电约0.000048Ah。两者相加每天总耗电约0.000068Ah实际大约0.068mAh。CR2032标称225mAh除以0.068理论寿命约3308天也就是9年左右。但真实情况远比这个估算悲观。纽扣电池自放电每年约1%到2%加上电池容量随温度、电流变化打折再考虑DCDC转换效率不是100%实际能用三年就很不错了。所以我做寿命估算时会把理论值的30%到50%作为“保守可用寿命”。如果客户要求两年保修期设计目标就必须做到理论寿命四年以上。这个估算逻辑同样适用于锂电池设备只是锂电自放电小、循环寿命需要单独考虑。3.4 电源模块的典型外围电路配置细节芯片选好了外围电路同样决定成败。我见过不少工程师直接照抄规格书里的参考电路抄完发现设备工作异常、效率低、甚至芯片发烫问题基本都出在外围元件的匹配上。电感是DCDC设计里最关键的元件。电感值太小纹波电流大效率低、输出噪声高电感值太大响应变慢、DCR增大也会降低效率。很多时候规格书会给出推荐电感值范围但推荐值是基于某一类负载场景的如果设备的睡眠负载特别轻建议选稍大一点的电感可以降低轻载模式的频率抖动间接减小输出电压纹波。电感饱和电流也必须特别注意。DCDC在负载瞬变或电池短路时电感电流可能瞬间翻倍如果电感饱和了感值骤降开关管可能过流损坏。选电感的饱和电流至少要高于芯片最大开关电流的1.2倍到1.5倍。输出去耦电容和输入电容同样有讲究。大部分IoT设备都要求低静态电流而电容的漏电流会直接增加系统的静态功耗。建议选X5R或X7R材质的MLCC避免用漏电流大的钽电容。容量选择上输入端一般放1uF到10uF输出端根据负载瞬态需求放4.7uF到22uF。软件层面还有一个容易被漏掉的配置DCDC的PFM/低功耗模式引脚必须确认上电默认状态是“使能低功耗模式”。有些芯片默认是强制PWM模式不主动切换的话睡眠功耗会飙升。我踩过这个坑——用了支持低功耗模式的芯片但忘了在初始化代码里切换工作模式结果整机睡眠电流比预期高了近50倍。3.5 低功耗模式切换的软件配合再聊几句软件层面的事。电源模块能不能真正省电往往不是硬件一接就行还得软件配合把芯片切到正确的模式。对支持PFM/PSM的DCDC通常有一个MODE引脚拉高为强制PWM拉低为自动PFM/PWM切换。上电默认状态每颗芯片不一样一定要看数据手册确认。设计时我会把MODE引脚接一个GPIO这样软件可以根据当前负载情况动态切换在射频发射前强制PWM保证供电稳定在睡眠前切回PFM省电。使能引脚的管理也很关键。如果系统有多路供电比如DCDC给数字域LDO给传感器模拟域那么睡眠时应该把传感器那一路的LDO直接关断通过GPIO控制EN引脚。不要指望传感器自己进低功耗模式——它的低功耗模式和你外部完全断电比静态电流往往还是高出一个数量级。还有一点启动时序。多路电源供电时MCU内核、IO、ADC基准电压源之间的上电顺序如果不对可能导致MCU锁死或ADC采样异常。有些DCDC带Power Good引脚能输出“输出电压稳定”的信号可以用它来触发下一路电源的使能实现干净的上电时序。4. 常见问题与排查技巧实录4.1 症状设备放两天就没电先查Iq而不是查电池有次帮朋友排查一个智能水表的电源问题。他们的设备是锂电池供电充满电能跑一年的预期结果客户反馈放两天就没电。打开设备测整机工作电流正常工作段一切正常一到睡眠状态电流就变成几毫安。查MCU配置低功耗模式正常外设也都关了最后用夹具一个一个量电源芯片的输入电流发现某个LDO芯片在睡眠时还在往外输出电流原因是EN引脚浮空芯片一直处于工作状态。把EN引脚接上GPIO并拉低后总睡眠电流从3.2mA降到了4uA差了800倍。这个案例说明排查电池快速耗尽问题时第一步永远是测整机睡眠电流而不是直接怀疑电池质量。睡眠电流异常先查电源芯片的EN引脚状态、DCDC的轻载模式是否生效再查外设的去耦电容有没有漏电最后才去看传感器和MCU的睡眠状态。顺序排对了排查效率会高很多。4.2 症状DCDC轻载效率反而不如LDO测量姿势对吗有工程师拿着示波器兴冲冲测板子上DCDC的效率测完发现轻载时输入电流居然比LDO版还大立刻认定DCDC是“宣传大于实际”。我看了他的测试方法问题在于他用万用表串联在电池端测输入电流。DCDC的输入电流是脉冲状的高频电流带有很大的di/dt万用表在这种波形下测出的读数极其不准确。正确做法是用高带宽的电流探头或功率分析仪测输入电流在输入前端加足够大的去耦电容保证被测电流尽量平滑。如果没有功率分析仪也可以用统计方式——长时间记录电池电压下降曲线用电池容量除以时间反推平均电流。这个土办法虽然慢但结果往往比示波器读数更可靠。还有一个常见误区测试时DCDC直接驱动一个负载电阻但负载电阻本身在PFM模式下会引入测量误差。建议在DCDC输出端加一个电子负载设置为恒定电流模式再测输入端的平均电流。4.3 症状电池寿命测试结果和计算值差一半查脉冲电流实际跑耐久测试经常发现实测续航只有计算值的一半左右。这背后最常见的原因是电池的标称容量是针对连续小电流放电测的而IoT设备的工作电流是脉冲式的——无线发射时100mA发射完立即回到2uA。脉冲大电流会加速电池内部极化导致可用容量下降。解决路径有三条。第一条是降低发射峰值电流比如把BLE的发射功率从0dBm降到-4dBm对很多室内场景信号强度影响不大但峰值电流能降到原来的一半。第二条是加一个足够大的储能电容用大电容缓冲发射时的能量需求让电池端输出的是相对平缓的小电流这样电池容量利用率能显著提升。第三条是调整发射策略避免多次短发射改为一次性长发射减少脉冲次数。另外还要留意温度。纽扣电池在0℃环境下容量可能直接掉一半很多北方客户反馈设备冬天续航骤减就是这个原因。设计时要么用耐低温的锂亚电池要么加保温措施要么在容量估算时就留足低温余量。4.4 症状低功耗模式唤醒失败上电时序比想象的更敏感有几款DCDC在深度睡眠退出时会因为负载瞬间拉高而进入过流保护导致系统反复重启。这类问题用示波器一看就能发现唤醒瞬间电源电压先跌落再反弹如果跌落幅度超过MCU的掉电复位阈值MCU就重启了。解决手法是动态调整唤醒流程——先让MCU以最低频率启动建立时间超过几个毫秒后再开外设、开射频。如果芯片支持软启动能延长启动斜坡也能减小浪涌。还有一种思路是把大容量负载的供电分成两路一路先上电过几十毫秒再上另一路避免多模块同时拉电流。这种问题和电源芯片的环路稳定性、ESR特性强相关。如果换了几颗电容仍然踢不掉可以试着在输出端并联一个几十欧的假负载把输出电容的电荷放掉一部分改善环路响应。但假负载会带来额外的静态功耗实际项目里要权衡着用。4.5 排查工具与设备清单做低功耗设计工具不一定要多贵但有几样东西建议提前备好。第一是精密万用表至少四位半能测到0.1uA的分辨率。这个主要用来测睡眠电流和静态电流买二手台式万用表也完全够用。第二是数字示波器带宽至少100MHz配一个高精度电流探头。示波器的作用是测瞬态响应和唤醒波形电流探头用来测脉冲电流的真实形状。没有电流探头的时候可以串一颗10mΩ的采样电阻两端接到示波器差分通道上也能测出近似电流波形。第三是程控电子负载这个对电源模块的效率测试太重要了。没有它纯粹靠电阻箱模拟负载效率测试会非常难调。程控电子负载还能方便地做动态负载测试模拟无线模块的发射脉冲。第四是功耗分析仪这个属于预算充足才上比如是德科技的N6705C可以直接测出各时间段内的平均电流和能量。没有功耗分析仪时我习惯用“电池高精度记录万用表”的组合采样间隔设到100ms记录24小时再离线计算平均电流虽然累一点但准确度很够。5. 写在最后的一点实际经验做了几年低功耗物联网产品的硬件设计我最大的感受是电池续航从来不是靠某一个“神奇芯片”解决的而是电源方案、电路设计、嵌入式软件和系统策略四者共同作用的结果。电源模块确实处在最关键的位置它决定了能量从电池到负载的每一站损耗是多是少也决定了整个系统的睡眠下限能压到多低。如果只让我给一个最实用的建议那就是项目立项第一天就把“睡眠电流”当作一条硬性设计指标和性能、成本放在同一优先级上。很多项目做到后期才想起优化功耗结果PCB已经定型、外壳已经开模只能在软件里东补西补效果大打折扣。如果你能把电源方案选对、外围电路做扎实、功耗测试跑在前头这台设备的电池寿命基本不会让你和你的用户失望。
返回列表