“需要低功耗”是智能硬件需求中非常常见的一句话,但从研发角度看,这句话本身还不能直接转化成技术方案。
一颗MCU的深度休眠电流可能很低,但如果传感器长期保持工作、无线模块频繁连接、DC/DC静态功耗偏高,或者软件一直让系统无法进入睡眠,整机续航仍然可能远低于预期。
反过来,有些设备单次工作电流并不小,但每次只运行几百毫秒,大部分时间处于休眠状态,平均功耗反而可以控制得很低。
因此,智能硬件低功耗设计真正需要解决的不是“选一颗最省电的芯片”,而是:
让设备在不同工作状态下,只消耗完成当前任务所必需的能量。
这也是为什么低功耗设计必须同时考虑硬件、电源、嵌入式软件、传感器、无线通信以及产品实际使用方式。

判断一台设备是否省电,不能只看它“工作时多少毫安”或者“睡眠时多少微安”。
真正影响续航的是设备在一个完整周期内分别处于什么状态,以及每个状态持续多久。
例如一个无线温度传感器可能每10分钟完成一次:
唤醒 → 传感器采样 → 数据处理 → BLE广播或上传 → 重新休眠
如果整个过程只持续数百毫秒,而剩余时间都处于深度睡眠,那么通信和处理阶段即使瞬时电流较高,平均功耗仍然可能较低。
另一台设备虽然主控本身支持深度睡眠,但为了保持网络连接长期运行Wi-Fi、屏幕和传感器,其平均电流可能始终处于较高水平。
所以低功耗设计首先要明确的是设备的工作模式,而不是芯片型号。
低功耗项目最好在硬件选型之前建立一份初步功耗预算。
它不要求第一版就非常精确,但应该让研发人员知道主要耗电来自哪里。

例如可以按照这样的方式估算:
| 模块 | 工作状态 | 典型关注项 | 对平均功耗的主要影响 |
|---|---|---|---|
| MCU | 运行 / 睡眠 | 主频、运行时间、睡眠电流 | 软件任务和唤醒周期 |
| 传感器 | 采样 / 待机 | 转换时间、预热时间 | 采样周期 |
| BLE/Wi-Fi | 连接 / 发送 / 休眠 | 发射电流、连接时长 | 通信频率和数据量 |
| 存储 | 读写 / 待机 | 写入电流、写入次数 | 日志和缓存频率 |
| 电源 | 全程工作 | 静态电流、转换效率 | 长期待机设备尤其明显 |
| 指示/显示 | 点亮 / 关闭 | 亮度、刷新方式 | 用户交互策略 |
平均电流可以简单理解为:
各状态电流 × 该状态所占时间比例,再进行累加。
例如设备99%的时间都处于20μA休眠状态,只有1%的时间以20mA运行,其平均功耗与“设备一直20mA运行”完全是两个概念。
这个计算还能够帮助研发团队识别真正值得优化的环节。
如果无线通信已经占整机能耗的70%,继续花大量时间把MCU睡眠电流从5μA优化到2μA,实际收益可能非常有限。
低功耗软件很容易出现一种情况:芯片明明支持多种低功耗模式,但应用程序实际上从未真正进入这些状态。
原因通常不是硬件不支持,而是系统中一直存在某个任务、定时器、通信接口或者外设阻止主控休眠。
因此,在程序架构阶段就应该明确设备有哪些状态。
例如,一个电池传感器可以抽象成:
深度休眠 → 定时唤醒 → 传感器上电 → 等待稳定 → 采集 → 处理 → 通信 → 关闭外围 → 再次休眠
这种结构与一个长期在线的Wi-Fi设备完全不同。
后者可能无法长时间进入深度休眠,而要重点优化网络保持方式、CPU空闲状态和外围器件功耗。
所以“低功耗程序”并不是后期再加一个Sleep函数,而应该从状态机和任务架构开始设计。
对于BLE、Wi-Fi、4G等联网设备,无线通信往往是整机功耗的重要来源。
真正影响功耗的并不只是无线芯片标称电流,而是通信过程持续多久。
以BLE设备为例,如果设备只需要周期性广播少量状态,与手机偶尔连接,功耗模型可以非常轻量;如果设备需要长期保持连接、高频传输数据,其平均功耗就会明显增加。
Wi-Fi也是类似逻辑。
一次数据上传可能包括:
唤醒 → 搜索网络 → 连接AP → 获取网络状态 → 建立服务器连接 → 发送数据 → 等待响应 → 断开或保持连接
如果每分钟都完整执行一次上述流程,功耗可能比一次连接后连续发送多组数据高很多。
因此,无线低功耗优化往往不是简单降低发射功率,而是减少:
不必要的连接、握手、等待和重复通信。
对于蜂窝通信,这个问题通常更加明显。网络搜索、注册以及弱信号环境下的重复发送,都可能显著提高能耗。
所以通信周期应该从业务需求反推,而不是简单设置成“越实时越好”。
传感器也是低功耗设计中很容易被忽略的一环。
一些传感器本身支持睡眠模式,可以由MCU控制进入低功耗状态;另一些设备则可以直接通过受控电源关闭。
但是否能够直接断电,还要看传感器特性。
例如某些气体、环境或高精度传感器在上电后需要一定稳定时间。如果为了省电频繁断电,每次重新启动后的等待时间反而可能延长工作时间,甚至影响数据质量。
因此传感器功耗策略应该同时考虑:
待机电流、启动时间、采样时间和数据稳定性。
一个合理方案不一定是“全部断电”,也可能是让传感器进入自己的低功耗模式,由MCU只在需要时触发测量。
对于多传感器设备,还可以把不同数据的采样周期分开。
用户不一定真的需要所有参数都以同样频率更新。
低功耗项目经常把注意力放在MCU和无线模块上,却忽略电源系统本身。
对于一个平均工作电流只有几十微安的设备,如果使用的稳压器本身静态电流已经达到相近量级,那么电源部分就可能成为明显的长期负担。
因此选择LDO、DC/DC等电源方案时,不能只看:
最大输出电流;
输出电压;
转换效率。
对于长期待机设备,还要关注轻载效率和静态电流。
反过来,高功率设备如果工作阶段电流很大,只追求最低静态电流也未必合理。此时转换效率、峰值电流能力和动态响应可能更加重要。
因此电源方案需要根据实际负载曲线选择,而不是把“超低静态电流”作为唯一目标。
最简单的续航估算经常是:
电池容量 ÷ 平均电流 = 运行时间
它可以用于早期粗估,但实际产品通常会比这个公式复杂。
首先,标称容量不代表在任何工作条件下都能够完全使用。温度、放电倍率、电池老化以及截止电压都会影响可用容量。
其次,无线模组、电机或其他高功耗器件可能产生瞬时峰值电流。如果电池或电源路径无法稳定提供峰值电流,即使剩余容量很多,设备也可能因为电压瞬间下降而复位。
另外,部分电池在低温下性能会明显变化。
因此最终续航判断至少要结合:
平均功耗 + 峰值功耗 + 实际电池特性
进行验证。
低功耗设计不能只停留在Excel理论计算上。
有些需求在产品定义阶段本身就需要重新判断。
例如:
纽扣电池供电,但设备必须一直连接Wi-Fi并实时响应云端命令。
或者:
设备要求运行一年,同时屏幕长期常亮并持续高频采样。
这类需求可能不是通过优化程序就能解决。
因为某些功能本身需要持续消耗能量。
此时需要回到产品层讨论:
是否真的需要秒级实时?
屏幕是否可以降低刷新或自动关闭?
设备能否周期唤醒而不是长期保持连接?
是否应该增加电池容量?
是否更适合采用外部供电?
低功耗研发中一个非常重要的能力,就是识别哪些问题属于软件优化,哪些实际上是需求之间存在冲突。
如果产品目标本身不成立,单纯替换更低功耗的MCU并不能解决根本问题。
让主控进入深度睡眠通常意味着部分时钟、外设甚至RAM区域会关闭。
睡得越深,功耗往往越低,但重新唤醒所需时间和状态恢复复杂度也可能增加。
因此,一个需要随时在极短时间内响应外部事件的设备,与一个每小时采集一次数据的设备,不应该采用完全相同的睡眠策略。
设计时要结合实际响应时间要求选择:
保持运行、浅睡眠还是深度睡眠。
如果设备有多个工作模式,也可以采用分层策略。例如用户正在操作设备时保持快速响应,长时间无人操作后再进入更深的睡眠状态。
这类动态策略往往比简单规定“所有情况下都尽量深睡”更合理。
产品后期经常会增加OTA、日志和远程诊断功能。
这些功能非常有价值,但会改变设备的功耗模型。
例如OTA意味着设备需要:
保持网络连接;
下载较大的固件;
写入Flash;
校验数据;
重启。
一次OTA的功耗可能远高于正常周期工作。
但这通常不是问题,因为升级并不是高频事件。
真正需要注意的是不要为了支持OTA,让设备在正常状态下长期维持不必要的网络活动。
日志也是类似。
如果设备频繁写Flash或不断上传调试信息,可能同时影响功耗、存储寿命和通信流量。
所以低功耗并不意味着删除这些能力,而是让低频维护功能和日常工作模式相互分离。
芯片手册中的功耗数据通常是在特定电压、温度、时钟和工作模式下测得。
而真实产品还包括:
主控、传感器、无线、电源、Flash、指示灯以及PCB上的其他器件。
因此,样机阶段应该测量实际整机功耗。
尤其值得观察的是完整工作周期,而不是只用普通万用表读取一个平均值。
例如一次无线数据上报可能经历:
MCU唤醒 → 传感器工作 → 无线连接 → 发射峰值 → 等待 → 休眠
如果测量设备只能显示一个缓慢变化的平均电流,就可能看不到短时间内的高电流峰值。
对于低功耗问题排查,更有价值的是知道:
电流在哪一刻升高,持续多久,以及对应软件正在执行什么任务。
把电流波形与程序日志或GPIO标记结合起来,通常比单纯猜测哪个模块“比较耗电”更容易定位问题。
“续航长”不能作为唯一验收描述。
因为等设备真正运行半年再判断显然不现实。
工程阶段可以把低功耗目标拆成可测量指标。

例如:
| 验证项目 | 关注内容 |
|---|---|
| 深度休眠 | 整机睡眠电流是否达到约定范围 |
| 工作阶段 | 一次采集和处理持续多久 |
| 通信阶段 | 一次连接及数据上传消耗多久 |
| 峰值电流 | 电池和电源是否能够稳定支持 |
| 唤醒 | 定时、按键或传感器唤醒是否可靠 |
| 异常网络 | 断网时是否出现长时间高功耗重连 |
| 周期功耗 | 完整典型工作周期的平均电流 |
| 续航估算 | 根据实际测量重新计算预计续航 |
如果产品的续航是关键指标,最终还应该通过实际样机和真实工作模式进行进一步验证。
理论计算用于方案设计,实测数据才更接近最终产品表现。
比较常见的一种情况,是看到MCU休眠电流很低,就认为整个产品一定低功耗。实际上外围器件、电源芯片或者无线模组可能完全没有进入休眠。
另一种情况是过度提高通信频率。用户真正需要的是“几分钟内看到数据”,但设备却按照秒级频率连接服务器,从而把大量电量消耗在无线通信上。
还有一些项目会为了极限降低静态电流,把大量器件彻底断电,却忽略传感器启动时间、网络重新连接时间和设备响应体验。
这些问题说明:
低功耗不是一个独立参数,而是一系列工程取舍。
真正需要优化的是单位时间内完成有效业务所消耗的能量,而不是某一个芯片的最低电流数字。
北京心玥科技有限公司在智能硬件、IoT终端、电子产品和嵌入式软硬件项目中,可以根据实际产品目标进行低功耗相关方案分析和研发。
对于电池供电设备,通常需要结合工作周期、采集频率、无线通信方式、传感器状态和目标续航共同评估,而不是单独从MCU参数决定方案。
具体工作可能涉及主控和器件选型、电源设计、外围器件供电控制、嵌入式休眠与唤醒机制、BLE/Wi-Fi等通信策略以及样机阶段功耗测试。
如果项目同时包含APP、Web、服务端或IoT平台,还需要从完整系统角度判断数据上传和远程控制频率。例如通过平台减少无意义轮询、合理设计设备心跳和数据上报周期,也可能直接改善终端功耗。
已有样机如果实际续航明显低于预期,也可以先根据硬件资料、固件逻辑和实际功耗波形定位主要耗电环节,再判断是软件策略、电源设计、无线通信还是器件选择需要调整。
低功耗设计最终追求的并不是让设备“尽可能少工作”,而是:
在满足用户功能和响应要求的前提下,减少无效运行、无效通信和无效待机带来的能量消耗。
不一定。应该先分析整机功耗组成。如果无线通信、传感器或电源芯片是主要耗电来源,只优化MCU休眠电流可能不会明显改善整机续航。
不能脱离使用方式直接判断。BLE通常更适合低数据量和低功耗场景,但实际功耗仍取决于连接方式、广播间隔、通信频率和数据量。Wi-Fi如果使用频率很低并合理休眠,也可以用于部分电池设备。
理论平均功耗不变时可以接近这种关系,但真实产品还会受到电池有效容量、温度、老化、峰值电流和截止电压等因素影响,因此最终需要通过实际测试验证。
常见原因包括外围传感器没有休眠、无线模块仍在工作、电源芯片静态功耗较高、GPIO存在漏电路径,或者软件实际上没有进入预期的低功耗状态。需要结合硬件和程序逐项排查。
可以。OTA属于低频维护操作,不需要因为日常低功耗而取消。关键是正常运行时不要为了OTA功能长期维持不必要的高功耗连接,同时应在硬件选型阶段预留足够存储和升级机制。