第二章:终端功耗模型——3GPP定义的功耗状态机、PSM与eDRX模式详解、电流消耗的典型曲线
各位同学,大家好。上一章我们聊了NB-IoT终端的整体功耗挑战,这一章咱们深入底层,看看3GPP标准到底给咱们定义了哪些省电“武器”。
我个人习惯,做低功耗设计之前,先把芯片的“脾气”摸透。说白了,就是搞清楚它什么时候在干活,什么时候在睡觉,睡觉又分几种姿势。这章我们就来拆解这个功耗状态机。
2.1 3GPP定义的功耗状态机
3GPP给NB-IoT终端定义了一套非常清晰的状态迁移模型。我刚开始接触时,觉得这玩意儿就是个理论框架,后来在项目中调试功耗,才发现它简直就是“地图”——没有它,你连芯片在哪个坑里都不知道。
这个状态机,核心就三个大状态:连接态(Connected)、空闲态(Idle)和省电态(PSM/eDRX)。嗯,这里要注意,省电态其实是个统称,下面还有细分。
核心要点:终端大部分时间应该待在省电态,连接态是“烧钱”的,能少待一秒是一秒。
状态迁移的触发条件,主要是看有没有数据要收发,以及定时器怎么设。我画了个简化的迁移图,大家脑子里过一遍:
- 连接态 → 空闲态:数据传完了,RRC连接释放。这时候终端开始“摸鱼”,但还得时不时听听网络有没有寻呼。
- 空闲态 → 省电态(PSM):T3324定时器超时,终端觉得“反正没人找我,我关机睡觉了”。注意,PSM下终端对网络来说几乎是“失联”的。
- 空闲态 → 省电态(eDRX):网络配置了eDRX周期,终端在空闲态下延长监听寻呼的间隔,省电但没完全睡死。
- 省电态 → 连接态:终端主动发数据(比如传感器上报),或者TAU周期到了,必须醒来跟网络打个招呼。
为什么会这样设计?因为物联网设备大部分时间没数据要传。你想想看,一个水表一天就上报一次数据,剩下23小时59分都在“待机”。如果让它一直保持连接态,电池撑不过一周。
2.2 PSM模式详解
PSM,全称Power Saving Mode,省电模式。这是NB-IoT终端的“深度睡眠”模式。
我在项目中遇到过最典型的场景:一个智能井盖,每天凌晨2点上报一次状态。我给它配了PSM,平时电流只有3.5微安。嗯,你没看错,微安级别。这要是换成GPRS模块,光待机就得几十毫安。
PSM的工作原理其实很简单:
- 终端在空闲态待着,等T3324定时器跑完。
- T3324超时后,终端进入PSM,关闭大部分射频和基带电路。
- 在PSM里,终端不监听任何寻呼,网络发来的数据它一概不理。
- 只有两个东西能叫醒它:一是内部定时器(比如TAU周期到了),二是外部中断(比如传感器触发)。
避坑指南:我曾经犯过一个错误——把T3324设得太短。结果终端刚进PSM没几分钟,又因为TAU周期到了被迫醒来。频繁的“睡-醒”切换,反而比一直待在空闲态更耗电。后来我学乖了,T3324至少设到TAU周期的一半以上。
PSM的电流消耗曲线,我给大家画个典型值:
| 状态 | 典型电流 | 持续时间 |
|---|---|---|
| 连接态(发送) | 200-300 mA | 几十毫秒到几秒 |
| 连接态(接收) | 50-80 mA | 几十毫秒 |
| 空闲态(监听寻呼) | 1-3 mA | 几毫秒(每周期一次) |
| PSM(深度睡眠) | 3-5 µA | 几小时到几天 |
看到没?PSM的电流比空闲态低了三个数量级。这就是为什么我说“能进PSM就进PSM”。
2.3 eDRX模式详解
eDRX,Extended Discontinuous Reception,扩展非连续接收。这玩意儿是PSM的“温和版”。
为什么需要eDRX?因为PSM有个致命缺点——网络找不到你。如果你需要终端保持“可被寻呼”的状态,但又想省电,eDRX就是答案。
eDRX的原理,说白了就是拉长终端监听寻呼的间隔。普通DRX周期是1.28秒或2.56秒,eDRX可以拉到10.24秒、20.48秒,甚至更久。终端在大部分时间里关闭接收机,只在约定的时间窗口醒来听一下。
我个人习惯,把eDRX用在那些需要“准实时”响应的场景。比如智能路灯,网络可能随时下发调光指令,但延迟几秒可以接受。这时候用eDRX,电流能降到空闲态的十分之一左右。
注意:eDRX的省电效果取决于你设的周期。周期越长,省电越多,但响应延迟也越大。我曾经见过有人把eDRX周期设到40秒,结果终端收到指令时黄花菜都凉了。这玩意儿得根据业务需求来权衡。
eDRX的电流曲线,我给大家一个参考:
| eDRX周期 | 平均电流(典型值) | 适用场景 |
|---|---|---|
| 2.56秒 | ~1.5 mA | 准实时控制 |
| 10.24秒 | ~0.4 mA | 定时上报+可寻呼 |
| 40.96秒 | ~0.1 mA | 低频率寻呼需求 |
2.4 电流消耗的典型曲线
好了,理论讲完了,咱们看点实际的。我拿一个典型的NB-IoT终端上报流程,给大家画个电流曲线图(脑子里想象一下):
电流 (mA)
^
| 300 ──┐
| │ 发送数据包
| 200 ──┤
| │
| 100 ──┤
| │ 接收确认
| 50 ──┤
| │
| 10 ──┤ 空闲态监听
| 5 ──┤
| │ PSM深度睡眠
| 0 ──┴─────────────────────────────────→ 时间 (s)
0 1 2 3 4 5 6 7 8 9 10
这个曲线,我解释一下:
- 0-1秒:终端从PSM醒来,初始化,连接网络。电流从3µA飙升到几十mA。
- 1-2秒:发送数据包,电流冲到200-300mA。这是整个周期最耗电的阶段。
- 2-3秒:接收网络确认,电流降到50-80mA。
- 3-4秒:进入空闲态,开始监听寻呼。电流降到1-3mA。
- 4-10秒:T3324超时,进入PSM。电流降到3-5µA,直到下一次上报。
你想想看,整个10秒的周期里,真正“烧电”的只有那1-2秒的发送阶段。剩下的时间,终端都在“摸鱼”或者“睡觉”。这就是NB-IoT能实现十年电池寿命的底气。
核心结论:终端功耗的优化,本质上就是“压缩高电流阶段的时间,延长低电流阶段的时长”。PSM和eDRX,就是帮你实现这个目标的两把利器。
好了,这一章的内容就到这里。下一章,我们会聊聊如何根据业务场景,选择合适的省电模式组合。嗯,到时候我会分享一个我在智能水表项目中的实际配置案例,保证干货满满。