3. PSM模式深度解析:PSM进入条件、定时器T3324与T3412配置、PSM唤醒流程与数据缓存

各位同学,今天我们聊一个NB-IoT里最核心、也是最容易让人头疼的话题——PSM模式。说实话,我做了这么多年物联网终端设计,PSM模式是我觉得最需要「吃透」的东西。你想想看,一个电池要撑5年甚至10年,PSM用得好不好,直接决定了产品能不能活到那一天。

3.1 PSM进入条件:不是你想进就能进

PSM全称是Power Saving Mode,省电模式。但注意了,它不是终端想进就能进的。终端必须满足两个条件:

  • 终端主动请求:在附着或TAU(跟踪区更新)流程中,终端必须在NAS信令里带上「PSM支持」的标识。
  • 网络侧同意:核心网(MME)收到请求后,会根据签约数据和策略决定是否允许。如果网络不支持,终端再怎么请求也没用。

我记得有一次做海外项目,终端明明在实验室里PSM跑得好好的,一到客户现场就死活不进省电模式。排查了半天,发现是当地运营商的MME版本太老,压根不认识PSM的IE(信息元素)。嗯,这种坑,踩过一次就记住了。

核心要点:PSM的进入,是终端和网络「双向奔赴」的结果。终端主动提,网络点头,才能进。

3.2 定时器T3324与T3412配置:两个关键「闹钟」

PSM模式里有两个定时器,我习惯把它们比作「闹钟」。一个是T3324,一个是T3412。搞懂这两个,PSM就懂了一半。

3.2.1 T3324:活动定时器(Active Timer)

T3324是终端从空闲态进入PSM前的「缓冲期」。说白了,就是终端告诉网络:「我还能再撑一会儿,你有数据赶紧发过来。」

  • 取值范围:0秒到255秒(3GPP TS 24.008定义)
  • 典型配置:我个人习惯设成60秒到120秒。太短了,下行数据容易漏;太长了,省电效果打折扣。
  • 作用:T3324超时后,终端进入PSM,此时网络无法主动寻呼终端。

我的经验:如果你做的是抄表类应用,数据上报频率低,T3324可以设短一点,比如30秒。但如果是远程控制类,建议至少留60秒,给下行指令留足窗口。

3.2.2 T3412:周期性TAU定时器(Periodic TAU Timer)

T3412是终端「醒来」跟网络报到的周期。即使终端在PSM里睡大觉,到了T3412超时,也必须醒来做一次TAU。

  • 取值范围:最长可达310小时(约13天)
  • 典型配置:我见过最极端的项目设了7天一次TAU,电池确实省,但网络侧容易把终端「遗忘」。
  • 作用:保持终端在网络侧的注册状态,防止被MME「踢出」。
定时器 作用 典型值 超时后果
T3324 活动定时器,延迟进入PSM 30-120秒 终端进入PSM,网络无法寻呼
T3412 周期性TAU定时器 数小时到数天 终端必须醒来做TAU,否则网络去注册

避坑指南:我曾经有一个项目,T3412设了24小时,结果客户反馈终端经常「失联」。后来发现是网络侧的隐式去注册定时器比T3412还短,终端还没到TAU时间就被网络踢掉了。所以,T3412一定要比网络侧的隐式去注册定时器短,这是铁律。

3.3 PSM唤醒流程:从沉睡到苏醒

终端在PSM里,射频模块完全关闭,只有RTC(实时时钟)在跑。唤醒的触发条件只有两个:

  1. T3412超时:终端醒来做TAU,顺便看看有没有下行数据。
  2. 终端主动上报:比如传感器采集到数据,终端主动发起上行数据。

唤醒流程大致是这样的:

  • 终端从PSM醒来,打开射频,同步网络。
  • 发起TAU或上行数据请求。
  • 网络侧如果有缓存的下行数据,会在TAU Accept或RRC连接中下发给终端。
  • 数据传输完成后,T3324开始计时,超时后终端再次进入PSM。

你想想看,这个流程其实很像「潜水员浮出水面换气」。换完气(传完数据),再潜下去(进PSM)。

3.4 数据缓存:网络侧的「小纸条」

终端在PSM里,网络侧如果有下行数据要发给终端,怎么办?答案是:缓存

MME会把下行数据暂存在S-GW或SCEF(服务能力开放功能)里,等终端下次醒来做TAU或上行数据时,再捎带下去。这个机制,我称之为「小纸条」——网络侧把消息写好,等终端来取。

关键点:PSM模式下,网络侧不能主动寻呼终端。所以,所有下行数据都必须依赖终端主动触发才能送达。如果你的应用需要实时下行控制,PSM可能不是最佳选择。

我记得有个做智能锁的客户,非要用PSM,结果用户远程开锁经常失败。为什么?因为锁在PSM里睡大觉,网络侧的开锁指令根本送不过去。后来我建议他们改用eDRX(扩展不连续接收),才解决了问题。

3.5 配置示例:AT指令实战

说了这么多,咱们来点实际的。下面是我常用的PSM配置AT指令:

// 请求PSM,T3324设为60秒,T3412设为24小时
AT+CPSMS=1,,,"00110010","01100000"

// 参数说明:
// 第一个参数"1":启用PSM
// 第二个参数"":使用网络默认的RAI(注册区标识)
// 第三个参数"00110010":T3324=60秒(十六进制)
// 第四个参数"01100000":T3412=24小时(十六进制)

小技巧:配置完可以用AT+CPSMS?查询当前PSM状态。如果返回+CPSMS: 1,说明PSM已启用。如果返回+CPSMS: 0,说明网络没同意,这时候就要检查签约数据了。

3.6 总结与思考

PSM模式,说白了就是「用延迟换功耗」。终端睡得越久,电池越省,但下行实时性就越差。设计时一定要权衡好T3324和T3412的配置。

我个人建议:

  • 对于纯上报类应用(如温湿度传感器),T3324设短一点,T3412设长一点。
  • 对于需要下行响应的应用(如远程控制),T3324设长一点,或者干脆考虑eDRX。
  • 永远记得检查网络侧的隐式去注册定时器,别让T3412成了「摆设」。

下一章,我们会聊eDRX模式。eDRX和PSM最大的区别是什么?eDRX允许网络在特定时间窗口寻呼终端,而PSM完全不行。嗯,到时候我们再细讲。