4、功耗模型分析:节点工作状态划分

做NB-IoT电源设计,最核心的一步是什么?

我个人觉得,不是选电池,也不是算电容,而是先把节点的「工作状态」搞清楚。说白了,你得知道你的设备一天24小时里,到底在干什么、干了多久、每种状态吃多少电流。

这就像记账——你不记流水账,永远不知道钱花哪儿了。功耗分析也一样。

4.1 四种核心工作状态

NB-IoT节点的工作状态,我习惯把它分成四类。这四类基本覆盖了所有场景:

  • 活跃态(Active):设备正在干活——发数据、收数据、做测量。电流最大,但时间最短。
  • 空闲态(Idle):设备还挂在网上,随时准备响应。电流中等,时间看网络配置。
  • PSM(Power Saving Mode):深度睡眠,几乎不耗电。但网络侧会认为设备离线。
  • eDRX(Extended Discontinuous Reception):省电模式的一种折中。设备周期性地醒来听一下寻呼,其他时间睡觉。

嗯,这里要注意:PSM和eDRX不能同时用。它们是两种不同的省电策略,你得根据业务需求二选一。

4.2 各状态电流实测数据

光说理论没用,咱们看实测数据。这是我用某款主流NB-IoT模组(BC95-G系列)在实验室测出来的典型值:

工作状态 典型电流 持续时间 备注
活跃态(发送) 220~250 mA 1~3 秒 峰值出现在发射瞬间
活跃态(接收) 60~80 mA 0.5~1 秒 下行数据接收
空闲态 1.5~3 mA 数秒到数分钟 取决于网络T3324定时器
PSM 3~5 μA 数小时到数天 模组深度休眠,RTC保持
eDRX(周期2.56秒) 平均 0.3~0.5 mA 持续 周期性唤醒监听
eDRX(周期40.96秒) 平均 0.05~0.1 mA 持续 省电效果更明显

关键点:活跃态的峰值电流虽然吓人(200多毫安),但持续时间极短。真正决定续航的,是空闲态和PSM/eDRX的平均电流。

4.3 状态切换与时间线

我给大家画个典型的时间线,你一看就明白了:

【发送数据】→【等待ACK】→【空闲态】→【进入PSM】→【深度睡眠】→【定时唤醒】→【重新激活】→【发送数据】
  活跃态       活跃态       空闲态        PSM          PSM         活跃态        活跃态
  200mA        80mA        2mA          4μA          4μA         200mA         200mA
  1秒          0.5秒       10秒         3600秒        0.1秒       1秒           1秒

你看,如果一天只发一次数据,PSM模式下99.9%的时间都在4μA的深度睡眠里。那续航自然长。

但如果你做的是智能门锁,需要随时响应服务器的开锁指令,那就不能用PSM了——因为PSM状态下服务器找不到你。这时候就得用eDRX,比如每2.56秒醒一次听听有没有消息。

我的经验:我在做智能水表项目时,客户要求每天上报一次数据,但允许延迟。我直接选了PSM模式,一节ER18505电池用了快4年。后来做智能路灯控制,要求实时响应,只能上eDRX,电池寿命就降到了1年半。这就是取舍。

4.4 避坑指南:实测与手册的差距

这里我要说一个很多人踩过的坑。

我曾经被一份模组手册坑过——手册上写PSM电流3μA,我兴冲冲算完续航,结果实测出来是12μA。差了4倍!

为什么?因为手册给的是「模组核心芯片」的电流,没算上外围电路。你的电源LDO、电平转换、传感器待机电流,这些都会叠加进去。

所以我的建议是:

  • 永远不要只看手册。手册数据是理想值,实际要打折扣。
  • 自己搭测试环境。用精密万用表或电流探头,实测每个状态的电流。
  • 留余量。我一般会在理论计算值上乘以1.2~1.5倍,作为工程余量。

警告:PSM模式下,模组虽然只吃几微安,但如果你板子上有个LED指示灯忘了关,或者上拉电阻没选对,轻轻松松多出几十微安。这些「小电流」在长时间尺度下,比发射峰值电流更致命。

4.5 如何建立自己的功耗模型

好了,有了这些数据,咱们就可以建模型了。我个人习惯用Excel,但这里给个简化版的计算思路:

一天总耗电量 = 
    (活跃态电流 × 活跃态时间 × 次数) +
    (空闲态电流 × 空闲态时间 × 次数) +
    (PSM电流 × PSM时间)

电池容量 / 一天总耗电量 = 理论续航天数

举个例子:

  • 每天发4次数据,每次活跃态2秒,电流220mA
  • 每次发完后空闲态10秒,电流2mA
  • 其余时间PSM,电流5μA
  • 电池容量:2400mAh(ER18505)

算下来:

活跃态耗电:220mA × 2s × 4次 = 1760 mAs
空闲态耗电:2mA × 10s × 4次 = 80 mAs
PSM耗电:0.005mA × (86400 - 48)s ≈ 432 mAs
一天总耗电:1760 + 80 + 432 = 2272 mAs ≈ 0.63 mAh
理论续航:2400 / 0.63 ≈ 3809天 ≈ 10.4年

嗯,10年看起来很美好。但别忘了,电池自放电、低温容量衰减、模组老化,这些都会缩短实际寿命。我一般会再打个7折,大概7年左右,这个数字就比较靠谱了。

总结一句话:功耗模型的核心不是算得准,而是知道哪些因素会影响续航。把每个状态的电流和时间测准了,模型自然就准了。