如何启用 NB-IoT 和 Cat-M 的省电模式并评估预期能耗
作者:Markus Pihl, Vanja Samuelsson
提高物联网 (IoT) 设备的电池寿命是低功耗广域网 (LPWAN) 技术的主要目标之一。因此,省电功能是蜂窝 LPWAN 技术、NB-IoT(Cat-NB1 和 Cat-NB2)和 Cat-M(LTE-M,亦称 Cat M1)的重要组成部分。但是,这些功能是如何使用的,对电流消耗有怎样的影响呢?
本文本着解答这些问题为目标,探讨了省电功能的定义、定时器及其计算方法,以及启用这些功能的命令。为了了解对能源消耗的影响,所有这些内容都随附了电流消耗曲线的可视化显示。
NB-IoT 和 Cat-M 的省电模式
NB-IoT 和 Cat-M 技术有两个基本的省电功能:省电模式 (PSM) 和扩展型非连续接收 (eDRX)。
PSM 使设备能够设置休眠和活动定时器,并转发到网络:周期性跟踪区更新 (TAU) (T3412) 和活动时间 (T3324)(图 1)。如果被网络接受,网络将在设定的时间内保留设备在系统中的注册状态,如果设备在这段时间内被唤醒,则不需要再重新执行连接程序(分离和重新连接程序能耗会很高)。在休眠间隔期间,无法访问设备,但由于存在定时器,网络知道设备的下一次唤醒时间,以及它处于活动状态以接收寻呼消息的时长。设备的深度休眠模式可以设置为长达 14 天。
相较于目前 LTE 网络中现有的常规 DRX,eDRX 在时间方面得以延长。eDRX 延长了设备在活动时间段内不监听网络的时间。对于许多物联网设备来说,在几秒钟或更长时间内无法访问是可以接受的。这样功耗得以降低,而与应用 PSM 相比,设备仍可访问。所要做出的妥协是功耗降幅不如 PSM 大。eDRX 可通过定时器寻呼周期长度 (PCL) 和寻呼时间窗 (PTW) 来配置(图 1)。
在蜂窝模块上设置 PSM 和 eDRX 定时器的命令在 3GPP 技术规范 TS 27.007 中进行了定义,如下所示:
AT+CPSMS=[<mode>,,[, <RequestedPeriodicTAU>[, <RequestedActiveTime>]]]
AT+CEDRXS=[<mode>[, <AcT-type>[, <Requested_eDRX_value>]]]
PTW 是个例外。本文将介绍一个由 Thales 创建的 PTW 命令,该命令特定于 Thales 用作受测设备 (DUT) 的 Cinterion® 模块:
AT^SEDRXS=[<mode>[, <AcT-type>[, <Requested_eDRX_value>][, <Requested_Paging_time_window>]]]
此外,还将引入所谓的挂起模式,这是 Thales 为 Cinterion 模块提供的另一种专用省电功能,用于进一步推动模块进入最低能耗状态。此命令只需设置一次。
AT^SCFG="MEopMode/PowerMgmt/Suspend",1
图 1:省电功能、PSM 定时器(周期性 TAU 和活动时间)和 eDRX 定时器(PCL 和 PTW)。(图片来源: Thales)
设置
为了使低功耗模式可视化,使用了来自 Thales 的两套不同 Cinterion 模块以及来自 Qoitech 的 Otii 功率分析仪。
对于 PSM 定时器,使用了 Thales 的 DevKit ENS22-E,它已焊接到 NB-IoT 专用模块上。使用全球通用 MNO SIM 卡在商用网(漫游)中完成了 NB-IoT 中的测量。
对于 eDRX 定时器,使用了 LGA DevKit 上的纯 Cat-M 模块 Cinterion® EMS31。由于测试所在地德国没有 Cat-M 网络,该模块通过天线(而非有线)连接到 Amarisoft Cat-M 网络仿真器。
Qoitech 的 Otii 是一款多功能功率分析仪,在本例中有三个目的:
- 用于可视化和功率曲线分析
- 用于控制无线电模块(通过 GPIO 引脚)
- 用于功率测量和 UART 日志同步(通过 RX/TX 引脚和主电源)
图 2:测量设置:Thales 带蜂窝模块的 LGA 开发套件以及 Qoitech 的 Otii。(图片来源: Thales)
[td]
|
表 1:用于图 2 设置的引脚连接。
对于 PSM 测量,Cinterion ENS22-E NB-IoT 模块(范围 2.8 - 4.2 V)采用 3.6 V 供电(图 3),以使结果与模块硬件接口描述的额定电流消耗相当。GPO 的数字电平需要设置为 3 V(图 3)。
图 3:Otii 项目 SUPPLY 设置。(图片来源: Thales)
VUSB => +5 V - 需要此电源为 LGA DevKit 供电。注意!请勿另外通过 USB 为 DevKit 供电。
因此,电路板左下方的 DevKit 开关设置为左侧 PWR – EXT 和右侧 ASC0 – RS232(图 4)。
因此,电路板左下方的 DevKit 开关设置为左侧 PWR – EXT 和右侧 ASC0 – RS232(图 4)。
图 4:DevKit 开关设置。(图片来源: Thales)
根据测量设置,使用了 Otii 应用程序中的 UART 命令行。该命令行需要在 Otii 项目设置的 LOGS 部分中启用。
默认情况下,串行接口 ASC0(RX0/TX0 布线)的传输速度为 115200 波特(图 5)。
默认情况下,串行接口 ASC0(RX0/TX0 布线)的传输速度为 115200 波特(图 5)。
图 5:Otii 项目 LOGS 设置。(图片来源: Thales)
如何计算 PSM 定时器?
对于 PSM,使用 AT+CPSMS 命令来设置请求的周期性 TAU (T3412) 周期和请求的活动时间 (T3324)。该值需要以 8 位二进制格式输入,其中前 3 位表示 5 位二进制数的基础乘数。这是 3GPP 中的规定,可在以下规范中找到:TS 24.008(图 6)。
图 6:3GPP TS 24.008 中的周期性 TAU 和活动时间计算。(图片来源: Thales)
作为应用示例,该模块将被配置为每 7 分钟向网络发送一次跟踪区更新消息。这意味着周期性 TAU 将被设置为 7 分钟或 420 秒。
对于 7 分钟,可以使用 1 分钟 (101) 乘数与值 7 (00111) 或 30 秒 (100) 乘数与二进制值 14 (01110)(图 6)。
活动时间设置方法相同,但基础值不同。例如,10 秒活动时间将使用值 000 作为 2 秒基础乘数和 00101(等于 5),因此命令为:
at+cpsms=1,,,10001110,00000101
如何设置 PSM 定时器?
启用 Devkit 电源(5 V,见图 7)和模块电源(3.6 V,见图 7)后,通过将 GPO2(图 7)打开约 2 秒,然后再关闭来开始启动该模拟。
对于 7 分钟,可以使用 1 分钟 (101) 乘数与值 7 (00111) 或 30 秒 (100) 乘数与二进制值 14 (01110)(图 6)。
活动时间设置方法相同,但基础值不同。例如,10 秒活动时间将使用值 000 作为 2 秒基础乘数和 00101(等于 5),因此命令为:
at+cpsms=1,,,10001110,00000101
如何设置 PSM 定时器?
启用 Devkit 电源(5 V,见图 7)和模块电源(3.6 V,见图 7)后,通过将 GPO2(图 7)打开约 2 秒,然后再关闭来开始启动该模拟。
图 7:Otii 电源开关。(图片来源: Thales)
该模块启动后将在 UART 日志中使用以下 URC(非请求结果码)来指示这一点:
- \sHI2115-ssb-codeloaderl\e\sHI2115-codeloader&\e
- ^SYSSTART
现在可以将 AT 命令传递给模块,以便 1) 启用挂起模式,2) 启用注册状态显示,以及 3) 检查并设置 PSM 定时器:
- 如前所述,Thales 专用省电功能只需发送一次配置命令即可启用。此设置为非易失性设置,会一直保持到更改为止。at^scfg="MEOpMode/PowerMgmt/Suspend","1"该模块将通过 +CIEV URC 来通知挂起功能现已可用。如果已启用挂起,则不会有 suspendAvailable URC。
- at^scfg="MEOpMode/PowerMgmt/Suspend","1"
- ^SCFG: "MEOpMode/PowerMgmt/Suspend","1"
- OK
- +CIEV: suspendAvailable,1
- 在发送“at+cereg=5”之后,该模块将通过 URC 通知用户模块注册状态的变化。此设置是易失性设置,在重启后必须重新设置。在模块已注册的情况下,它可能只回复 OK。在这种情况下,可以通过发送“at+cereg?”来请求状态。在上面的例子中,模块在漫游模式下注册,并显示网络当前配置的 PSM 值(每 10 分钟 TAU 一次,活动时间为 30 秒)。
- at+cereg=5
- OK
- at+cereg?
- +CEREG: 5,5,C9F9,00323333,9,,,00001111,10100111
- | | | | | |_Periodic-TAU(T3412): 10m
- | | | | |__________Active-Time (T3324): 30s
- | | | |_________________Act:E-UTRAN(NB-S1 mode)
- | | |________________________CI - cell ID
- | |_____________________________TAC - Tracking Area Code
- |_________________________________stat:5 registered roaming
- 现在,可以通过“at+cpsms”命令设置请求的值。此命令将触发模块向网络发送 TAU(跟踪区更新)消息。在来自网络的回复消息(跟踪区更新接受)中,模块将接收必须执行的值。换句话说,网络决定采取哪些值。这些值有希望与请求的值相同,但这并不能保证。这取决于移动网络运营商,以及他们是允许请求的值,还是用他们的值(有时是固定的)替代这些值。
- at+cpsms=1,,,10001110,00000101
- OK
- at+cereg?
- +CEREG: 5,5,C9F9,00323333,9,,,00001111,10010100
- | | | | | |_Periodic-TAU(T3412): 7m
- | | | | |__________Active-Time (T3324): 30s
- | | | |_________________Act:E-UTRAN(NB-S1 mode)
- | | |________________________CI - cell ID
- | |_____________________________TAC - Tracking Area Code
- |_________________________________stat:5 registered roaming
- +CIEV: suspendReady,0
- +CIEV: suspendReady,1
该模块将使用 suspendReady URC 来指示何时可以进入挂起模式。一旦收到“suspendReady,1”的指示,就可以通过设置 RTS0(即 GPO1,图 7)使模块进入挂起模式 5 秒(5 秒是默认值,也可以更改,请参见模块 AT 规范文件)。
PSM 定时器对能耗有什么影响?
作为参考测量,图 8 显示了默认模式(未启用 PSM、eDRX 或挂起模式)下 Cinterion ENS22-E NB-IoT 的电流曲线。
PSM 定时器对能耗有什么影响?
作为参考测量,图 8 显示了默认模式(未启用 PSM、eDRX 或挂起模式)下 Cinterion ENS22-E NB-IoT 的电流曲线。
图 8:未启用任何省电模式的参考测量电流消耗曲线。(图片来源: Thales)
标记区域的预期平均电流消耗约为 16 mA。
启用 PSM 定时器后(本例中周期性 TAU 为 7 分钟,活动时间为 10 秒),且网络已接受这些定时器的情况下,电流消耗降至平均 13 mA(图 9)。
请注意,网络可能会忽略 PSM 定时器的请求,而建议使用其他定时器。不同的 MNO 和不同的网络通常具有迥然不同的允许定时器集,因此在部署物联网设备之前需要了解这一点。
启用 PSM 定时器后(本例中周期性 TAU 为 7 分钟,活动时间为 10 秒),且网络已接受这些定时器的情况下,电流消耗降至平均 13 mA(图 9)。
请注意,网络可能会忽略 PSM 定时器的请求,而建议使用其他定时器。不同的 MNO 和不同的网络通常具有迥然不同的允许定时器集,因此在部署物联网设备之前需要了解这一点。
图 9:启用 PSM 时的电流消耗曲线。(图片来源: Thales)
如果设置了挂起模式,该模块将指示它准备好使用 URC(未经请求的结果代码)挂起。切换 RTS 信号后,本例为在 Otii 中设置为 GPO1(图 7)后,模块进入挂起模式,平均电流消耗约为 3 µA(图 10)。
图 10:启用挂起模式时的电流消耗曲线。(图片来源: Thales)
如何计算 eDRX 定时器?
在设置 eDRX 的定时器值时,所用的计算方式非常简单。有的定时器适用于每一种无线接入技术,如图 11 中的表所示。
图 11:3GPP TS 24.008 中的 eDRX 定时器定义。(图片来源: Thales)
如何设置 eDRX 定时器?
使用 eDRX 的影响可以在 LGA DevKit 上通过 Cinterion EMS31 纯 Cat-M 模块来演示。该 LTE-M 模块的供电电压范围为 3.2 - 5.5 V。Otii 将为其提供 3.8 V 的电源。在 Otii 应用程序的项目设置中,必须调整主电压(图 3)。
模块启动后,如 ^SYSSTART URC 所示,需要增加 PSM 定时器,使其具有更长的活动期(5 分钟),以便更好地看到 eDRX 的影响 [(设置 at+cpsms=1,,,00000110,00100101)、禁用 eDRX (at+cedrxs=0) 并通过 at+cereg=4 启用注册状态显示]。
- ^SYSSTART
- +CIEV: prov,1,sbmjp
- at+cedrxs=0
- OK
- at+cpsms=1,,,00000110,00100101
- OK
- at+cereg=4
- OK
要核实 eDRX 是否已按请求禁用,请使用 at+cedrxrdp 命令读取当前的动态 eDRX 参数。
- at+cedrxrdp
- +CEDRXRDP: 0
模块注册到网络后,即应收到相关的 URC,其中显示具有 5 分钟活动时间的注册状态。
- +CEREG: 1,"0001","01A2D004",7,,,"00100101","00000110"
- | |_TAU(T3412): 60min
- |_____Active-Time(T3324): 5min
使用 Otii 应用程序进行测量时,在活动时间内每 1.25 ms 就可以看到连续无线电监听器峰值,如图 10 中 1 分钟时间戳附近区域所示。
现在,使用 3GPP 命令 at+cedrxs 或使用 Thales 特定命令 at^sedrxs 发送启用 eDRX 的命令。3GPP 命令的缺点是无法设置寻呼时间窗 (PTW),而在 Thales Cinterion 模块上实现的专用 AT 命令则可以。
根据图 10 中的表格,Cat-M 中的 eDRX 值被设置为 20.48 秒(“0010”),寻呼时间窗为 5.12 秒(“0011”)。
现在,使用 3GPP 命令 at+cedrxs 或使用 Thales 特定命令 at^sedrxs 发送启用 eDRX 的命令。3GPP 命令的缺点是无法设置寻呼时间窗 (PTW),而在 Thales Cinterion 模块上实现的专用 AT 命令则可以。
根据图 10 中的表格,Cat-M 中的 eDRX 值被设置为 20.48 秒(“0010”),寻呼时间窗为 5.12 秒(“0011”)。
- at^sedrxs=2,4,0010,0011
- OK
- +CEDRXP: 4,"0010","0010","0011"
该模块将通过 +CEDRXP URC 通知用户 eDRX 值的变化,其中会显示所请求的 eDRX (PCL) 值“0010”、从网络中设置且也必须从模块中使用的值 [第 2 个“0010”])和 PTW(“0011”)。
该模块需要一些时间来适应更改后的周期,并且最终将显示 eDRX 行为,如图 12 所示。
eDRX 定时器对能耗有什么影响?
eDRX 定时器仅在活动阶段有影响。配置的活动期越短,eDRX 的影响就越低。
eDRX 适用于需要长网络访问时间间隔甚至是全程不访问的设备。在此时间内,设备的接收器部分将仅在特定的时间间隔 (PTW) 内启用,每个 eDRX(PCL) 周期会重复该时间间隔。由于设置了定时器,移动网络知道设备将在哪些时间帧中监听寻呼,并且将仅在该时间帧期间发送针对该设备的寻呼。这也将节省网络 (eNodeB) 端的资源。
默认设置为 PTW,设置为 5 秒,不启用 eDRX(图 12)。启用 eDRX 后,平均电流消耗从 3 mA 降至 2 mA。
该模块需要一些时间来适应更改后的周期,并且最终将显示 eDRX 行为,如图 12 所示。
eDRX 定时器对能耗有什么影响?
eDRX 定时器仅在活动阶段有影响。配置的活动期越短,eDRX 的影响就越低。
eDRX 适用于需要长网络访问时间间隔甚至是全程不访问的设备。在此时间内,设备的接收器部分将仅在特定的时间间隔 (PTW) 内启用,每个 eDRX(PCL) 周期会重复该时间间隔。由于设置了定时器,移动网络知道设备将在哪些时间帧中监听寻呼,并且将仅在该时间帧期间发送针对该设备的寻呼。这也将节省网络 (eNodeB) 端的资源。
默认设置为 PTW,设置为 5 秒,不启用 eDRX(图 12)。启用 eDRX 后,平均电流消耗从 3 mA 降至 2 mA。
图 12:寻呼时间窗设置为 5 秒作为参考,不启用 eDRX;右侧为相同的 PWT,但启用了 eDRX。(图片来源: Thales)
总结
根据物联网设备用例和可用网络技术的不同,可以使用不同的省电功能来延长设备的电池寿命。
使用 PSM,可以为设备设置长达 14 天的深度休眠模式。
设备会根据设定的时间间隔定期唤醒,连接至网络,并可以选择发送数据。在进入连接状态之后一小段时间,设备将处于活动但空闲的状态,并在该活动时间内侦听传入的数据。在这段活动时间内,可以使用 eDRX 配置设备启用其接收器的时隙。
所有的设置都配合网络来完成。网络始终知道设备能够接收数据的时间和时长。
采用 Cat-M 技术的设备将比 NB-IoT 设备需要更多的电能。设备休眠的时间越长,节省的电能就越多。设备侦听传入数据的时隙越短越少,其能耗就越优化。
因此,在最佳情况下,设置最大 PSM 和最小活动时间并且只有一个监听峰值(PTW 最小)时,NB-IoT 设备最省电。