长连接超低功耗方案

一、超低功耗是什么

超低功耗是相对于低功耗而言的。考虑到模块大部分应用场景:系统休眠后,依然需要隔一段时间进行数据收发,来上报设备的状态。所以传统的低功耗数据只具备一定的参考意义,实际业务场景下,并不能达到这个数值。超低功耗是针对【隔段时间收发数据】这一场景的特定优化,来降低产品的整体功耗。

特别说明:不管是进入低功耗还是超低功耗状态,都不会丢失服务器发来的数据。 二、能降低多少功耗

合宙Cat1 AT标准固件,在实网下测量的功耗数据如下:

测试项 移动BAND40 联通BAND1 电信BAND1 样机数量 3PCS 1# 1# 1# 信号质量 AT+CESQ 67 61 68 飞行模式(mA) 底电流 1.2 1.2 1.2 AT+CFUN=0 1.21 1.21 1.21 AT+CFUN=4 1.21 1.21 1.21 工作电流(mA) IDLE模式 12.37 11.98 12.72 休眠电流(mA) AT+CSCLK=2 1.96 1.72 2.71 TCP心跳包保活(mA) (默认设置) 1分钟一次 10.17 9.32 8.29 TCP心跳包保活(mA) (超低功耗AT*RTIME=1) 1分钟一次 3.95 3.76 4.41

从最后两行对比结果看,超低功耗模式下,心跳包保活场景功耗降低了一半以上。

注意:实际测量数据会受网络信号、是否已经注册上网、外围是否接了设备因素影响,如果差异比较大建议先断开外围设备,进入飞行模式对比一下数据。 三、什么时候用

超低功耗可用于大多数的数传业务场景。这些场景有一个共同的特点:需要传输数据的时候利用网络进行数据传输,传输完成后,设备进入心跳包保活状态。超低功耗正是针对心跳保活功耗的优化来实现整体功耗的降低。典型产品场景有:云喇叭、监控摄像头、共享设备、远程控制等。 四、怎么用

首先,打开进入低功耗休眠模式,让设备空闲状态下进入低功耗状态;其次,通过AT命令AT*RTIME打开超低功耗模式。下面以AT版本为例,设置步骤如下:

1,打开低功耗模式:AT+CSCLK=2

2,关闭网络灯:AT+CNETLIGHT=0

3,关闭日志: ATTRACECTRL=0,0和ATTRACECTRL=1,0

4,设置串口立即休眠:AT+WAKETIM=1

5,设置超低功耗:AT*RTIME=2

步骤1-4参考通用AT指令手册。

下面单独介绍一下超低功耗AT指令:

AT*RTIME=

该命令设置后会被保存到NV中,掉电后存储。

语法规则:

命令类型 语法 返回 设置命令 ATRTIME= OK 查询命令 ATRTIME? *RTIME: OK

参数定义:

参数 定义 取值 对取值的说明 在数传模式下,等待多长时间进入休眠状态 0~20 单位:秒,0表示关闭。

信号正常情况下,值越短功耗就越低,建议设置为2。如果实际使用环境信号比较差,数据收发经常出现重传延迟,那这个值就需要改大。

五、哪个版本才支持

AT版本>=V301716

Lua版本>=V3024

CSDK版>= 2020-12-19提交 https://gitee.com/openLuat/Luat_CSDK_Air724U

六、要注意什么

1,在进行CTA/GCF等测试认证的时候需要关闭该功能。

2,如果心跳包比较频繁,不如10秒一次,那就不建议开启这个功能,极端情况下可能会导致设备断网。

3,如果数传是基于UDP这种非可靠传输,打开这个功能后,丢包概率会变大。