第二章:终端功耗模型——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的工作原理其实很简单:

  1. 终端在空闲态待着,等T3324定时器跑完。
  2. T3324超时后,终端进入PSM,关闭大部分射频和基带电路。
  3. 在PSM里,终端不监听任何寻呼,网络发来的数据它一概不理。
  4. 只有两个东西能叫醒它:一是内部定时器(比如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,就是帮你实现这个目标的两把利器。

好了,这一章的内容就到这里。下一章,我们会聊聊如何根据业务场景,选择合适的省电模式组合。嗯,到时候我会分享一个我在智能水表项目中的实际配置案例,保证干货满满。