介绍

  NB-IoT 支持三种省电模式:PSM (Power Saving Mode,省电模式)、DRX(Discontinuous Reception,不连续接收模式),eDRX(Extended DRX,扩展不连续接收模式)。
  NB 中采用了 PSM(power saving mode)和 eDRX(extended Discontinuous Reception)来节省功耗。在 PSM 模式下,终端无需接收 paging 以检测是否有下行服务,而 eDRX 模式相对于 DRX,具有更长的寻呼检测周期,因此可能导致更长的时间延时,对于数据的实时性有影响。
  PSM 和 eDRX 是否使用取决于终端和网络的能力及配置,在能力方面,终端不支持的能力网络必不会配置,而终端支持的能力在网络不同情况下,配置亦可以不同。

关于PSM

  PSM技术在3GPP R12中引入的一种独立的状态,支持PSM的UE终端在空闲态持续一段时间后,会进入到PSM状态;此时UE终端的PA(射频部分)停止工作,终端AS(接入层)停止部分相关功能,以减少射频、信令处理等部分功耗消耗,从而达到低功耗的目的。
  由于UE终端射频部分停止工作,接收不到任何寻呼及调度,对于网络侧来说,UE终端此时处于不可达的状态,数据、短信均无法到达终端。但此时,终端在网络中还是标记为注册状态(Registered);因此,从PSM唤醒后,无需重新建立PDN连接,可以直接发送数据。




移动NB卡低功耗的NONE模式 nb中的低功耗_nb-iot


  上图的绿色部分即为UE的PSM状态,可以看到UE在IDLE态持续一段时间后,如果没有再次进入Active态,就会直接进入PSM状态,这段等待时间即为T3324定时器时长。
  通过上图还可以看出,一个完整的TAU周期为IDLE+PSM时间之和,一个TAU周期的时长定义为T3412定时器时长。
  T3412为TAU(Tracking Area Update)时间,而T3324为在IDLE模式下进入PSM的定时器。
  在某些特定APN下,UE可以通过3GPP协议规定的标准指令AT+CPSMS对T3412及T3324定时器进行修改。

关于eDRX

  eDRX即增强型非连续接收,是3GPP R13中引入的一种状态,在此之前已经有DRX技术存在。通过字面意思即可知道,eDRX是对DRX技术的一种扩展。
  eDRX是DRX的增强,支持更长的寻呼周期,减少接收单元不必要的启动,以达到节省功耗的目的。PTW(Paging Time Window)窗口期是eDRX的一个状态,在PTW窗口内可以接收寻呼,一旦PTW窗口过去,设备就进入eDRX,并且直到下一个周期性的PTW窗口才能接收寻呼。



移动NB卡低功耗的NONE模式 nb中的低功耗_nb-iot_02


  上图粉红色部分即为IDLE时间窗,灰色柱状即为寻呼时间窗,在寻呼时间窗内,终端会监听网络侧下发的寻呼消息,并作出响应。
  为了进一步降低监听寻呼带来的功耗,NB-IoT引入了eDRX技术,在一次PTW后,进入沉默状态,等待eDRX周期完毕后再次进入PTW监听寻呼。
  通过这种技术,终端在IDLE下间歇性监听寻呼,降低了功耗;可以看到当寻呼落在PTW时间窗之外时,终端依旧不能响应寻呼,需要等待网络侧缓存的寻呼再次下发落到PTW时间窗内,即可成功响应。

三种模式区别

  DRX:能够随时随地找到设备。
  eDRX:需要花几分钟甚至一两个小时才能找到设备。
  PSM:可能要一两天才能找到设备。

PSM

PSM唤醒

  PSM唤醒条件
   - T3412定时器超时
   - WakeUp引脚拉低

PSM相关指令

AT指令

功能描述

AT+CPSMS

PSM参数设置

AT+ECPMUCFG

PMU单元使能(必要)

AT+ECPCFG=“sleepWaitTime”, time

唤醒UE后,模组保活时间,单位ms(time)

AT+ECPSMR

PSM状态URC

部分发送数据的AT指令

大部分发送数据的AT指令都携带RAI Flag,在发送数据时,可携带此flag,用以释放RRC以快速进入PSM

  *在Socket、OneNET_LWM2M、CTWing_LWM2M等协议与平台数据交互的指令中均带有RAI Flag标志
  *若需使用PSM,则必须设置AT+ECPMUCFG使能PMU与模组唤醒后的保活时间。

  这里不再对AT指令详细说明,有意者可联系作者索取(肝不动了画表格)。。。
  (主要是对上述几个AT指令的详细说明)。

PSM特性

  AT+CPSMS指令可以用来设置PSM的相关参数,其中Requested_Periodic-RAU和Requested_GPRS-READY-timer无需设置,Requested_Periodic-TAU代表3412定时器,Requested_Active-Time代表3324定时器。都是以8位二进制数来表示,其中高三位为Unit,低五位为value,换算方法如下:



   Requested_Periodic-RAU

Unit

基数

可表示的最小值

可表示的最大值

0

10min

2400

18600

1

1h

21600

11160

2

10h

14400

1116000

3

2sec

2

62

4

30sec

90

930

5

1min

690

1860

6

320h

1150000

35712000

  *例:00111000计算方法如下
  Unit=1(001), value=24(11000),时间即为24h(1*24)。

   Requested_Active-Time

Unit

基数

可表示的最小值

可表示的最大值

0

2sec

2

62

1

1min

120

1860

2

6min

2160

11160

说明

1. 当模组退出PSM模式后,如果没有其他指令操作,模组会在计时AT+ECPCFG=“slpWaitTime”,time设置的time时间后再次进入PSM。此过程可以被AT可以被AT指令打断,每次敲击AT会从新计时time时间,计时结束后,若无其他不可进入PSM的状态,则模组重新进入PSM模式。

2. 目前T3324和T3412实际值为运营商下发的值,使用AT+CPSMS命令手动配置的T3324和T3412参数可能无法在实际情况中生效。

3. 只通过AT+CPSMS指令开启PSM可依进入PSM模式,但可能无法真正降低功耗,必须通过AT+ECPMUCFG指定PMU等级,根据不同的PMU等级其进入PSM的功耗也不同。

4. 开启PSM后,建议通过AT+ECPCFG=“slpWaitTime”,time来设置模组唤醒后的保活时间,否则可能会发生唤醒模组后来不及发送数据再次进入PSM的情况。

5. 在设置PMU等级时,高于SLEEP1(含)的睡眠深度仅支持Pad Wakeup,若将模组Pad Wakeup与串口相连,则需要发送两次AT指令,第一次为唤醒模组,第二次为真正可发出的数据(也可不断的发送AT,等待模组返回OK,继而发送业务数据)。




eDRX

eDRX简介
eDRX模式

  eDRX模式作为Rel-13中新增的功能,主要目的是支持更长周期的寻呼监听,从而达到省电的目的。传统的2.56s寻呼时间间隔对UE的电量消耗过大,而下行数据发送频率较小时,通过核心网和用户的协商配合,用户终端跳过大部分的寻呼监听,从而达到省电的目睹。
  eDRX模式的节电效果比PSM模式要差一点,但是相对于PSM模式,大幅提升了下行通信链路的可达性。
  eDRX周期如上图所示,用户可通过查阅相关AT指令(AT+CEDRXS)进行eDRX周期设置。

PTW

  在每个eDRX周期内,都有一个寻呼时间窗口(Paging Time Window,PTW),UE只能在PTW内按照DRX周期监听寻呼信道,以便接收下行业务,PTW外的时间处于睡眠状态,不监听寻呼信道,不能接收下行业务。

eDRX配置相关指令

  如下命令可以设置不同的 eDRX 参数,以实现不同应用场景下的多样应用需求。

AT指令

功能描述

AT+CEDRXS

eDRX参数设置

AT+CEDRXRDP

读取动态eDRX参数

AT+ECPTWEDRXS

PTW和eDRX参数设置

AT+ECPMUCFG

PMU单元使能(必要)

AT+ECPCFG=“sleepWaitTime”, time

唤醒UE后,模组保活时间,单位ms(time)

  这里不再对AT指令详细说明,有意者可联系作者索取(肝不动了画表格)。。。
  (主要是对上述几个AT指令的详细说明)。




应用示例

PSM模式
开启/关闭PSM模式

AT指令

指令响应

事件描述

AT+ECPSMR=1

OK

开启PSM事件上报

AT+ECPMUCFG=1,4

OK

使能PMU为Hibernate等级

AT+ECPCFG=“sleepWaitTime”,5000

OK

设置UE唤醒保活时间为5s

AT+CEREG=4

OK


AT+CEREG?

+CEREG: 4,1,“4644”,“046AC853”,9,“00000001”,

“00111000”


OK


AT+CPSMS=1,“00111000”,

“00100001”

OK


+CEREG: 4,1,“3a59”,“0a14ff60”,9,“00011110”,“00111000”


+ECPSMR: 1

开启PSM模式,并设置T3412_ext和T3324定时器

AT+CEREG=0

OK


AT+ECPMUCFG=0

OK

失能PMU

AT+CPSMS=0

OK


+ECPSMR: 0

关闭PSM

PSM和UDP测试示例

AT指令

指令响应

事件描述

AT+ECPSMR=1

OK

开启PSM事件上报

AT+ECPMUCFG=1,4

OK

使能PMU为Hibernate等级

AT+ECPCFG=“sleepWaitTime”,5000

OK

设置UE唤醒保活时间为5s

AT+CPSMS=1,“00111000”,

“00100001”

OK

开启PSM模式,并设置T3412_ext和T3324定时器

AT+SKTCREATE=1,2,17

+SKTCREATE: 1


OK

创建Socket

AT+SKTCONNECT=1,“ip”,port

OK

绑定UDP服务器

AT+SKTSEND=1,6,303132333435

OK

发送数据到UDP服务器


+SKTRECV: 1,3 “313233”

从UDP服务器接收数据


+ECPSMR: 1

如果数据传输完毕,UE将自动进行PSM模式

PSM和UDP测试示例(RAI Flag)

AT指令

指令响应

事件描述

AT+ECPSMR=1

OK

开启PSM事件上报

AT+ECPMUCFG=1,4

OK

使能PMU为Hibernate等级

AT+ECPCFG=“sleepWaitTime”,5000

OK

设置UE唤醒保活时间为5s

AT+CPSMS=1,“00111000”,

“00100001”

OK

开启PSM模式,并设置T3412_ext和T3324定时器

AT+SKTCREATE=1,2,17

+SKTCREATE: 1


OK

创建Socket

AT+SKTCONNECT=1,“ip”,port

OK

绑定UDP服务器

19.532)


AT+SKTSEND=1,6,303132333435,1

OK



(17:31:23.816)


+ECPSMR: 1

发送数据到UDP服务器


如果数据传输完毕,UE将自动进入PSM模式


可以看出,携带RAI Flag后UE可以非常快速

的进入PSM模式

eDRX模式

  使能eDRX模式时,需打开PMU电源管理单元及sleepwaitTime,下面不再叙述。

开启eDRX模式

AT指令

指令响应

事件描述

AT+COPS?

+COPS: 0,2,“46000”,9


OK

查询网络信息,运营商及网络制式

AT+CEDRXS=?

+CEDRX: (0,1,2,3),(5),(“0010”-“1111”)


OK

查询eDRX参数范围

AT+CEDRXS=1,5

OK

开启eDRX模式,配置自动保存

AT+CEDRXRDP

+CEDRXRDP: 5,“0010”,“0010”,“0011”


OK

如果eDRX支持:

第一个0010为UE请求的eDRX周期

第二个0010为网络下发的eDRX周期

第三个0011为网络下发的PTW周期

AT+CEDRXRDP

+CEDRXRDP:0


OK

如果不支持eDRX模式,返回0

设置eDRX周期为指定值

AT指令

指令响应

事件描述

AT+CEDRXS=1,5,“0011”

OK

开启eDRX模式,eDRX周期为40.96s

AT+CEDRXRDP

+CEDRXRDP: 5,“0011”,“0011”,“0011”


OK

如果eDRX支持:

第一个0010为UE请求的eDRX周期

第二个0010为网络下发的eDRX周期

第三个0011为网络下发的PTW周期

设置eDRX周期为20.48s,PTW为10.24s

AT指令

指令响应

事件描述

AT+ECPTWEDRXS=1,5,0011,0010

OK


AT+CEDRXRDP

+CEDRXRDP: 5,“0010”,“0010”,“0011”


OK

如果eDRX支持:

第一个0010为UE请求的eDRX周期

第二个0010为网络下发的eDRX周期

第三个0011为网络下发的PTW周期

关闭eDRX模式

AT指令

指令响应

事件描述

AT+CEDRXS=0

OK

关闭eDRX模式

AT+CEDRXRDP

CEDRXRDP: 0


OK

关闭eDRX模式


结语

  首次更新的内容不多,算是练手吧!后面会逐步更新出模组与云平台通信方面的教程,顺带也会加入平台侧操作。