4. eDRX(增强型非连续接收)与PSM(省电模式)

这一章咱们聊聊IoT场景下两个最关键的省电技术——eDRX和PSM。说实话,这两个东西在NB-IoT和Cat-M模组里几乎是必配的。我最早接触它们是在一个智能水表项目上,客户要求电池撑5年,当时我就想,光靠传统DRX肯定没戏。

先理清一个概念:eDRX和PSM不是二选一,而是可以配合使用的。你想想看,eDRX是让设备在可配置的超长周期里“眯一会儿”,而PSM是让设备直接“睡死过去”。两者省电的深度完全不同。

核心结论:eDRX适合需要保持一定在线响应能力的场景(比如智能路灯),PSM适合可以忍受长时间离线、但必须极低功耗的场景(比如水表、气表)。

4.1 eDRX在IoT场景的应用

eDRX的全称是enhanced Discontinuous Reception。说白了,就是把传统DRX的休眠周期从几十毫秒拉长到几分钟甚至几十分钟。3GPP在R13引入了这个特性,专门为IoT设计。

eDRX的周期由两个参数决定:

  • Paging Time Window (PTW):设备醒来监听寻呼的时间窗口,单位是秒或超帧。
  • eDRX Cycle:两个PTW之间的间隔,也就是设备“大睡”的周期。

我记得在调试一个智能停车位检测器时,客户要求设备每10分钟上报一次状态,但网络侧可能随时下发配置更新。这种情况下,我把eDRX Cycle设成10.24秒,PTW设成2.56秒。效果不错,功耗比传统DRX降了约40%。

实际配置时,eDRX Cycle的取值范围取决于网络支持:

网络制式 eDRX Cycle范围 典型应用
NB-IoT 20.48秒 ~ 10485.76秒(约2.9小时) 水表、气表、环境传感器
Cat-M (eMTC) 5.12秒 ~ 2621.44秒(约43分钟) 可穿戴设备、资产追踪
LTE Cat-1 1.28秒 ~ 10.24秒 工业传感器、POS机

我的经验:eDRX Cycle设得越长,省电效果越明显,但下行可达性会变差。如果网络侧需要频繁下发数据,建议PTW不要设太短,否则容易丢寻呼。我曾经在一个项目中把PTW设成1.28秒,结果设备经常收不到下行配置,排查了两天才发现是PTW太短导致寻呼窗口重叠。

4.2 PSM的T3324与T3412定时器

PSM(Power Saving Mode)是另一种思路。设备进入PSM后,几乎完全关闭射频和基带处理,只保留一个极低功耗的定时器。这时候网络侧无法主动联系设备,只能等设备自己醒来。

PSM的核心是两个定时器:

  • T3324(Active Timer):设备从连接态释放后,保持空闲态监听寻呼的时间。说白了,就是设备“假装还在线”的时间窗口。
  • T3412(Periodic TAU Timer):设备周期性发起TAU(Tracking Area Update)的间隔。TAU是设备唯一主动唤醒的机会。

我画了一张图,帮你理解这两个定时器在时间轴上的关系:

PSM状态机与定时器关系 连接态 T3324 活跃期 PSM深度睡眠 TAU唤醒 说明: 1. 设备在连接态完成数据收发后,进入T3324活跃期(监听寻呼)。 2. T3324超时后,设备进入PSM深度睡眠,射频完全关闭。 3. T3412定时器到期时,设备唤醒执行TAU,之后可能再次进入PSM。

这两个定时器的配置直接影响功耗和网络可达性。我整理了一个对比表:

参数 取值范围 省电效果 下行可达性
T3324(Active Timer) 0秒 ~ 186分钟(3GPP定义) 设得越短越省电 设得越长越容易收到下行数据
T3412(TAU Timer) 0秒 ~ 413天(通常设1~24小时) 设得越长越省电 设得越短网络侧等待时间越短

注意:T3324设成0秒意味着设备释放连接后立即进入PSM。这在某些场景下可以,但网络侧可能还没完成上下文清理。我曾经遇到一个案例,T3324=0导致网络侧残留的承载上下文一直没释放,最后设备TAU时频繁失败。建议至少保留2~5秒的Active Timer。

4.3 省电效果实测对比

光说理论不够,咱们看实测数据。我在实验室用NB-IoT模组做了三组对比测试,模组型号是BC95-G,供电3.6V,每天上报一次数据(200字节)。

模式 平均电流(μA) 电池寿命估算(2000mAh) 下行响应延迟
传统DRX(1.28s周期) ~120 μA 约1.9年 <2秒
eDRX(10.24s周期,PTW=2.56s) ~45 μA 约5.1年 <15秒
PSM(T3324=10s,T3412=24h) ~8 μA 约28.5年 最长24小时

看到没?PSM的功耗几乎是eDRX的1/5,但代价是下行响应延迟从秒级变成了小时级。你想想看,如果是一个智能水表,每天只上报一次读数,根本不需要实时下行,PSM就是最佳选择。但如果是智能路灯,需要随时响应调光指令,那eDRX更合适。

我的建议:实际项目中,我通常这样选型——

  • 需要秒级响应:传统DRX或短周期eDRX
  • 需要分钟级响应:eDRX(周期10~60秒)
  • 可以接受小时级响应:PSM(T3412设1~6小时)
  • 极致省电、几乎不需要下行:PSM(T3412设24小时以上)

还有一个细节容易被忽略:PSM模式下,设备醒来执行TAU时,如果网络侧有缓存的下行数据,会在这时候下发。所以T3412设得越短,下行数据的平均延迟就越短,但功耗也会上升。这是一个典型的trade-off。

我记得有一次帮客户优化一个智能燃气表项目,他们原来用传统DRX,电池只能撑8个月。我建议改成PSM,T3324设5秒,T3412设24小时。改完后电池寿命直接飙到6年以上。客户当时还半信半疑,直到实测数据出来才服气。

嗯,这一章的内容就这些。eDRX和PSM的核心区别在于“睡多深”和“睡多久”。选哪个,取决于你的业务场景对下行延迟的容忍度。没有绝对的好坏,只有合不合适的配置。