4、终端节点功耗规划:电池寿命估算公式、休眠-唤醒周期设计、不同通信模式下的功耗实测数据

终端节点功耗,说白了就是决定你设备能活多久的关键。我见过太多项目,功能调通了,协议栈跑顺了,结果一算电池只能用三个月——直接推翻重来。所以这一章,咱们把功耗这件事彻底聊透。

核心观点:功耗规划不是最后才做的事,而是从选型那天起就要刻在脑子的约束条件。

4.1 电池寿命估算:别被理论值骗了

很多工程师喜欢拿电池容量除以平均电流,得出一个漂亮的理论寿命。嗯,我刚开始也这么干过,结果实际寿命只有理论值的60%。为什么?因为电池有自放电、温度特性、脉冲放电效率,这些因素你忽略一个,估算就翻车。

这里给出一套我实际项目中反复验证过的估算公式:

电池可用寿命(小时) = 
    电池有效容量(mAh) × 放电效率系数
    ────────────────────────────────
    系统平均电流(mA)

其中:
电池有效容量 = 标称容量 × 温度折减系数 × 老化系数
温度折减系数:-20°C 时约 0.5,25°C 时约 1.0,60°C 时约 0.85
老化系数:第一年约 0.95,第二年约 0.90,第三年约 0.85
放电效率系数:脉冲放电(如 LoRa)取 0.85-0.90,连续放电取 0.95-1.0

举个例子。一个 LoRa 温湿度传感器,用两节 AA 锂电池串联,标称容量 3000mAh。系统平均电流 0.12mA,工作温度范围 -10°C 到 45°C,设计寿命 3 年。

我算一下:温度折减系数取 0.8(考虑低温影响),老化系数取 0.85(第三年),放电效率系数取 0.88(LoRa 脉冲发射)。

电池有效容量 = 3000 × 0.8 × 0.85 = 2040mAh
可用寿命 = 2040 × 0.88 ÷ 0.12 ≈ 14960 小时 ≈ 1.7 年

你看,标称 3000mAh,实际能用只有 2040mAh,再乘上放电效率,最后寿命不到 2 年。如果当初按 3000mAh 算,得出 2.85 年,那项目验收时就等着被客户骂吧。

避坑指南:我曾经在一个冷链监测项目中,直接用了电池标称容量除以平均电流,算出 5 年寿命。结果设备在冷库 -18°C 环境下,不到 8 个月就批量掉线。后来拆机测,电池实际放出的容量只有标称的 40%。从那以后,我所有项目的电池估算都强制加上温度折减系数。

4.2 休眠-唤醒周期设计:找到功耗与实时性的平衡点

物联网终端大部分时间都在睡觉。你想想看,一个温度传感器,每分钟上报一次数据,剩下 59 秒都在休眠。所以休眠电流和唤醒策略,直接决定了整机功耗。

我习惯把终端的工作状态分成三个层次:

  • 深度休眠:MCU 进入 STOP 或 STANDBY 模式,仅 RTC 运行,电流 1-5µA。适合上报间隔大于 1 分钟的场景。
  • 浅度休眠:MCU 保持低速时钟,外设掉电,电流 10-50µA。适合需要快速响应的场景,比如按键唤醒。
  • 工作态:MCU 全速运行,传感器采样,无线发射。电流 10-100mA,持续时间通常 10-200ms。

周期设计的核心公式很简单:

平均电流 = 
    休眠电流 × 休眠时间 + 工作电流 × 工作时间
    ────────────────────────────────────────
    总周期时间

举个例子。一个 NB-IoT 水表,每天上报一次。深度休眠电流 3µA,工作电流 80mA,工作时间 2 秒(包括连接网络和发送数据)。

平均电流 = (3µA × 86398s + 80mA × 2s) ÷ 86400s ≈ (0.259 + 0.160) ÷ 86400 ≈ 4.85µA

你看,虽然工作电流高达 80mA,但因为时间极短,平均电流只比休眠电流多了不到 2µA。这就是休眠-唤醒设计的精髓——让设备「醒得快、干得猛、睡得沉」。

个人经验:我建议在唤醒后先做一件事:快速采样,然后立即发射,发射完马上睡。不要在唤醒后做日志打印、LED 闪烁、串口调试这些事——它们会吃掉你宝贵的唤醒时间。我曾经见过一个团队,唤醒后先打印一串日志,再等 500ms 才采样,结果平均电流翻了一倍。

4.3 不同通信模式下的功耗实测数据

理论算得再好,不如实测一把。下面这张表是我在多个项目中实测的典型功耗数据,环境温度 25°C,供电电压 3.3V。注意,不同芯片和模组会有差异,但量级可以参考。

通信模式 休眠电流 接收电流 发射电流 单次发射耗时 典型场景
LoRa (SF12, 14dBm) 2 µA 11 mA 42 mA 1.2 s 远距离、低速率
LoRa (SF7, 14dBm) 2 µA 11 mA 42 mA 0.15 s 近距离、高速率
NB-IoT (eDRX) 3 µA 25 mA 120 mA 1-3 s 蜂窝覆盖、低移动性
BLE (广播模式) 1 µA 6 mA 8 mA 3 ms 穿戴设备、信标
Zigbee (终端设备) 1 µA 25 mA 35 mA 10 ms 智能家居、传感器网络
Wi-Fi (802.11b, 0dBm) 10 µA 50 mA 180 mA 5-20 ms 高带宽、室内固定设备

从表中能看出几个有意思的结论:

  • LoRa 的 SF 因子影响巨大。SF12 比 SF7 单次发射耗时多了 8 倍,功耗直接翻倍。所以能用 SF7 就别用 SF12,除非你真的需要那多出来的链路预算。
  • NB-IoT 的发射电流最高,但因为有 eDRX 和 PSM 省电模式,如果设计得当,平均功耗可以做到很低。我做过一个 NB-IoT 燃气表,每天上报一次,两节 AA 电池撑了 3 年。
  • Wi-Fi 的休眠电流是 BLE 的 10 倍,发射电流更是 20 倍以上。所以 Wi-Fi 设备通常需要插电,或者用大容量电池。别指望用纽扣电池跑 Wi-Fi,那是给自己挖坑。

关键提醒:实测数据一定要在你自己的硬件上跑一遍。模组批次不同、天线匹配不同、供电电压不同,电流都会有差异。我习惯在项目开发阶段就焊一个 10 欧姆采样电阻在电源路径上,用示波器抓电流波形——这样能看到休眠、唤醒、发射每个阶段的真实电流,比任何数据手册都靠谱。

4.4 功耗规划知识体系

下面这张图把本章的核心逻辑串起来了。从电池选型到周期设计,再到实测验证,每一步都环环相扣。

终端节点功耗规划知识体系 终端节点功耗规划知识体系 电池寿命估算 休眠-唤醒周期设计 通信模式功耗实测 关键要素 • 标称容量 vs 有效容量 • 温度折减系数 • 放电效率系数 关键要素 • 深度休眠 / 浅度休眠 • 唤醒时间占比 • 平均电流计算 关键要素 • 休眠/接收/发射电流 • 单次发射耗时 • 典型场景匹配 输出:电池寿命预测 → 周期参数配置 → 实测验证 反馈闭环:实测数据修正估算模型 修正估算模型

这张图想表达的核心思想是:功耗规划不是一次性的计算,而是一个持续迭代的过程。你先用公式估算,然后设计周期参数,再实测验证,最后用实测数据反过来修正估算模型。我每个项目至少做三轮这样的闭环,才能放心地把设备丢到现场去。

一个小技巧:在项目初期,我会用 Excel 搭一个功耗估算模板,把电池参数、周期参数、通信参数都设成可调变量。这样每次改方案,只要改几个数字,就能立刻看到对电池寿命的影响。比每次重新算一遍快多了。