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年左右,这个数字就比较靠谱了。
总结一句话:功耗模型的核心不是算得准,而是知道哪些因素会影响续航。把每个状态的电流和时间测准了,模型自然就准了。