省电模式 ======== 作者:金艺 # 概述 Air724UG支持多种省电模式,通过进入不同的省电模式达到降低功耗的目的。 1. 全功能模式(默认):一般的工作模式,CPU,时钟全速运行。 1. 睡眠模式:CPU休眠,射频部分工作,周期进行寻呼,仅维持网络连接,能随时接收网络端的电话,短信等。功耗较低(具体功耗数据参考6.5章节),主要的省电模式。可以通过GPIO中断,内部计时器中断,网络消息,来电,短信等唤醒。 1. 飞行模式:CPU休眠,射频与SIM卡关闭,无法注册网络,无法接收网络端的任何信息。功耗最低(具体功耗数据参考6.5章节)。只能通过发AT指令或者软件主动调用接口退出。 ``注意:模块是否有进入睡眠模式,从外部电气信号或调试日志中无法体现,只能通过检测模块的消耗电流来判断。进入休眠后模块的电流会在1到2mA的底电流的基础上跳动。`` **模式切换汇总:** +----------+------------------+------------------+------------------+ | 当前模式 | 下一模式 | | | +==========+==================+==================+==================+ | | 关机 | 正常模式 | 睡眠模式 | +----------+------------------+------------------+------------------+ | 关机 | | 使用PWRKEY开机 | | +----------+------------------+------------------+------------------+ | 正常模式 | 使用PW | | 软件调用睡眠 | | | RKEY管脚,或VBAT | | 接口,AT版本不做 | | | 电压低于关机电压 | | 动作30s自动休眠 | +----------+------------------+------------------+------------------+ | 睡眠模式 | 使用PWRKEY或VBAT | GPIO管脚 | | | | 电压低于关机电压 | 中断、定时器、接 | | | | | 收短信或网络数据 | | +----------+------------------+------------------+------------------+ -------------- AT指令方式 ---------- 对于AT版本可以通过给模块发AT指令来进入或者退出各种工作模式。 **最少功能模式/飞行模式:** 最少功能模式可以将模块功能减少到最小程度,此模式可以通过发送“AT+CFUN=”命令来设置。参数可以选择0,1,4。 • 0:最少功能(关闭RF和SIM卡); • 1:全功能(默认); • 4:关闭RF发送和接收功能; 如果使用“AT+CFUN=0”将模块设置为最少功能模式,射频部分和SIM卡部分的功能将会关闭。而串口依然有效,但是与射频部分以及SIM卡部分相关的AT命令则不可用。 如果使用“AT+CFUN=4”设置模块,RF部分功能将会关闭,而串口依然有效。所有与RF部分相关的AT命令不可用。 模块通过“AT+CFUN=0”或者“AT+CFUN=4”设置以后,可以通过“AT+CFUN=1”命令设置返回到全功能状态。 **睡眠模式:** 串口应用下支持两种睡眠模式: - 睡眠模式1:通过AP_WAKEUP_MODULE管脚电平控制模块是否进入睡眠。 - 睡眠模式2:模块在串口空闲一段时间后自动进入睡眠。 两种模式功耗相同,串口不工作,无法进行收发数据。 ``注意: 通过串口使模块进入睡眠的先决条件是:不接 USB 口`` **睡眠模式1:** - 开启条件: 发送AT指令AT+CSCLK=1 - 模块进入睡眠: AP_WAKEUP_MODULE为高时,允许系统进入休眠,当系统进入空闲状态时,就会自动进入睡眠模式。 - 模块退出睡眠: 1. 拉低AP_WAKEUP_MODULE脚50ms以上,模块会退出睡眠模式可以接受AT指令。 2. 外部GPIO中断,计时器中断,短信,来电,网络端下发数据。 - 模块在睡眠模式1时的软件功能: 不响应AT指令,但是收到数据/短信/来电串口会唤醒并有URC上报 **睡眠模式2:** - 开启条件: 发送AT指令AT+CSLCK=2 - 模块进入睡眠: 系统空闲时,经过一定时间后(默认5s),模块自动进入睡眠模式2。 通过AT+WAKETIM配置休眠时间。例如AT+WAKETIM=8,系统空闲后8S进入睡眠模式,取值(0~100)。 - 模块退出睡眠: 串口连续发送AT直到模块回应时即退出睡眠模式2 - 模块在睡眠模式2时的软件功能: 不响应AT指令,但是收到数据/短信/来电会有URC上报 **USB休眠模式** 在连接USB模式下进行休眠 - 开启条件: HOST USB必须支持USB suspend/resume - 模块进入睡眠: HOST发起USB suspend - 模块退出睡眠: HOST发起USB resume 通过UART口设置睡眠唤醒:AT+CSCLK ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 通过串口使模块进入睡眠的先决条件是:不接USB口。 语法规则: ======== ========== ================================ 命令类型 语法 返回和说明 ======== ========== ================================ 设置命令 AT+CSCLK= OK 查询命令 AT+CSCLK? +CSCLK: OK 测试命令 AT+CSCLK=? +CSCLK: (list of supported s) OK ======== ========== ================================   参数定义: +-----------------+-----------------+-----------------+-----------------+ | 参数 | 定义 | 取值 | 对取值的说明 | +=================+=================+=================+=================+ | | 睡眠设置 | 0 | 关闭模 | | | | | 块睡眠功能。模 | | | | | 块无法进入睡眠 | | | | | 状态。缺省值。 | +-----------------+-----------------+-----------------+-----------------+ | | | 1 | 睡眠 | | | | | 模式1。由模块A | | | | | P_WAKEUP_MODULE | | | | | 脚控制是 | | | | | 否进入睡眠。当 | | | | | AP_WAKEUP_MODUL | | | | | E拉高(缺省有内 | | | | | 部上拉),设置A | | | | | T+CSCLK=1,没有 | | | | | 其他中断产生( | | | | | GPIO、来电、来 | | | | | 短信等),模块 | | | | | 将自动进入睡眠 | | | | | 模式1。在这种模 | | | | | 式下,模块仍能 | | | | | 接收来自网络的 | | | | | 呼叫和短消息。 | | | | | 当模块处于睡 | | | | | 眠模式1时,可以 | | | | | 通过以下的几种 | | | | | 方法唤醒模块。 | | | | | l  | | | | | 模块接收到 | | | | | 外部中断信号; | | | | | l  | | | | | 模块接收到语 | | | | | 音或数据呼叫; | | | | | l  | | | | | 模块接收到 | | | | | 短消息(SMS); | | | | | l  | | | | | 串口 | | | | | 接收到AT命令; | | | | | l  | | | | | 拉 | | | | | 低AP_WAKEUP_MOD | | | | | ULE引脚大概50ms | | | | | 注意:模块收到 | | | | | 语音、数据呼叫 | | | | | 或短消息后会有 | | | | | URC上报,但串口 | | | | | 不能响应AT命令 | | | | | 。只有将AP_WAKE | | | | | UP_MODULE引脚拉 | | | | | 低50ms后模块才 | | | | | 会响应AT命令。 | +-----------------+-----------------+-----------------+-----------------+ | | | 2 | 睡 | | | | | 眠模式2。自动进 | | | | | 入睡眠。当串口 | | | | | 为三线串口(只 | | | | | 连接TXD,RXD, | | | | | GND三个信号线) | | | | | ,睡眠功能只能 | | | | | 采用睡眠模式2。 | | | | | 设置AT+CSCL | | | | | K=2后,模块会连 | | | | | 续监测串口数据 | | | | | ,如果模块的串 | | | | | 口上没有数据输 | | | | | 入,并且没有其 | | | | | 他中断产生(GPI | | | | | O,来电,来短信 | | | | | ,来数据等), | | | | | 缺省5秒后模块会 | | | | | 自动进入睡眠模 | | | | | 式2(\ **注:睡 | | | | | 眠模式2情况下, | | | | | AP_WAKEUP_MODUL | | | | | E电平对模块睡眠 | | | | | 唤醒功能无影响* | | | | | *\ )。在这种模 | | | | | 式下,模块仍能 | | | | | 接收来自网络的 | | | | | 呼叫和短消息。 | | | | | 当模块处于睡 | | | | | 眠模式2时,可以 | | | | | 通过以下的几种 | | | | | 方法唤醒模块。 | | | | | l  | | | | | 模块接收到 | | | | | 外部中断信号; | | | | | l  | | | | | 模块接收到语 | | | | | 音或数据呼叫; | | | | | l  | | | | | 模块接收到 | | | | | 短消息(SMS); | | | | | l  | | | | | 串口 | | | | | 接收到AT命令。 | +-----------------+-----------------+-----------------+-----------------+   举例: +-----------------------+-----------------------+-----------------------+ | 命令(→)/   | 实例 | 解释和说明 | | 返回(←) | | | +=======================+=======================+=======================+ | \**睡眠唤醒应用实例1 | | | +-----------------------+-----------------------+-----------------------+ | → | AT+CSCLK=2 | 当使用三 | | | | 线串口时,设置为睡眠 | | | | 模式2。在这种睡眠模式 | | | | 下,以下情况同时满足 | | | | 时,模块进入睡眠。l  | | | | 模块在AT口无输入l  | | | | 没有 | | | | URC上报(包括没有来电 | | | | ,没有短信,没有收到 | | | | 服务器发来的数据等) | | | | l  无GPIO中断 | +-----------------------+-----------------------+-----------------------+ | ← | OK |   | +-----------------------+-----------------------+-----------------------+ | → | AT+WAKETIM? | 查询进入睡眠的时间 | +-----------------------+-----------------------+-----------------------+ | ← | +WAKETIM:5 OK | 查询结果为5秒钟。 | | | | 5秒钟是CSCLK设置睡眠 | | | | 后缺省进入睡眠的时间 | +-----------------------+-----------------------+-----------------------+ | → | AT+WAKETIM=8 | 如 | | | | 果需要修改进入睡眠的 | | | | 时间,可以通过WAKETIM | | | | 来设置,例如改为8(一 | | | | 般情况下不需要设置) | | | | \**注:W | | | | AKETIM此时不要设置为0 | +-----------------------+-----------------------+-----------------------+ | ← | OK |   | +-----------------------+-----------------------+-----------------------+ |   |   | 模 | | | | 块唤醒方式有以下几种: | | | | 1) | | | | 串口输入几 | | | | 个AT命令(一个往往唤 | | | | 不醒,需要多输几个) | | | | 2) | | | | 任意URC上报( | | | | 包括来电,来短信,收 | | | | 到服务器发的数据等) | | | | 3) GPIO中断 | +-----------------------+-----------------------+-----------------------+ | → | AT+CSCLK=0 |   | +-----------------------+-----------------------+-----------------------+ | ← | OK | 0, | | | | 设置为不允许模块睡眠 | +-----------------------+-----------------------+-----------------------+ | \**睡眠唤醒应用实例2 | | | +-----------------------+-----------------------+-----------------------+ | → | AT+CSCLK=1 | 当使 | | | | 用全串口时,设置为睡 | | | | 眠模式1。在这种睡眠模 | | | | 式下,以下情况同时满 | | | | 足时,模块进入睡眠。 | | | | l  模块在AT口无输入 | | | | l  | | | | 没有 | | | | URC上报(包括没有来电 | | | | ,没有短信,没有收到 | | | | 服务器发来的数据等) | | | | l  | | | | 模块AP_WAKEU | | | | P_MODULE为高(AP_WAKE | | | | UP_MODULE高,是允许模 | | | | 块睡眠;AP_WAKEUP_MOD | | | | ULE低,是唤醒模块)l  | | | | 无GPIO中断 | +-----------------------+-----------------------+-----------------------+ | ← | OK |   | +-----------------------+-----------------------+-----------------------+ | → | AT+WAKETIM? | 查询进入睡眠的时间 | +-----------------------+-----------------------+-----------------------+ | ← | +WAKETIM:5 OK | 查询结果为5秒钟。 | | | | 5秒钟是CSCLK设置睡眠 | | | | 后缺省进入睡眠的时间 | +-----------------------+-----------------------+-----------------------+ | → | AT+WAKETIM=8 | 如 | | | | 果需要修改进入睡眠的 | | | | 时间,可以通过WAKETIM | | | | 来设置,例如改为8(一 | | | | 般情况下不需要设置) | | | | \**注:W | | | | AKETIM此时不要设置为0 | +-----------------------+-----------------------+-----------------------+ | ← | OK |   | +-----------------------+-----------------------+-----------------------+ |   |   | 模 | | | | 块唤醒方式有以下几种: | | | | l  | | | | 串口输入几个AT命令 | | | | (一两个AT就可以了) | | | | l  | | | | 任意URC上报( | | | | 包括来电,来短信,收 | | | | 到服务器发的数据等) | | | | l  GPIO中断 l  | | | | AP_WAKEUP_MODUL | | | | E唤醒(AP_WAKEUP_MODU | | | | LE低,唤醒;AP_WAKEUP | | | | _MODULE高,允许睡眠) | +-----------------------+-----------------------+-----------------------+ | → | AT+CSCLK=0 |   | +-----------------------+-----------------------+-----------------------+ | ← | OK | 0, | | | | 设置为不允许模块睡眠 | +-----------------------+-----------------------+-----------------------+   #### 设置睡眠等待时间:AT+WAKETIM 语法规则: +----------+------------------------------------------+--------------+ | 命令类型 | 语法 | 返回和说明 | +==========+==========================================+==============+ | 设置命令 | AT+WAKETIM= | OK | +----------+------------------------------------------+--------------+ | 查询命令 | AT+WAKETIM? | +WAKETIM: OK | +----------+------------------------------------------+--------------+ | 注意事项 | l  \*\* l  | | | | \**请 | | | | 用WAKETIM命令设置模块睡眠时间,请用CSCLK | | +----------+------------------------------------------+--------------+   参数定义: +-----------------+-----------------+-----------------+-----------------+ | 参数 | 定义 | 取值 | 对取值的说明 | +=================+=================+=================+=================+ | | 在 | 0~100 | 单位:秒 | | | IDLE状态下(无 | | ,0表示不睡眠。 | | | AT,无短信,无通 | | | | | 话且AP_WAKEUP_M | | | | | ODULE为高的情况 | | | | | 下)等待多长时 | | | | | 间进入睡眠状态 | | | +-----------------+-----------------+-----------------+-----------------+ | 缺省值为5。 | | | | +-----------------+-----------------+-----------------+-----------------+   举例: ====================== ============ ================= 命令(→)/   返回(←) 实例 解释和说明 ====================== ============ ================= → AT+WAKETIM=8 设置睡眠时间为8秒 ← OK   ====================== ============ ================= 设置WAKEUP_OUT指示功能:AT+CFGRI ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 设置命令设置WAKEUP_OUT脚(39PIN),在收到URC上报的时候是否会有低脉冲指示。如果打开指示功能,则相应的URC到来时,WAKEUP_OUT会产生一个120ms的低脉冲。 语法规则: +-----------------------+-----------------------+-----------------------+ | 命令类型 | 语法 | 返回 | +=======================+=======================+=======================+ | 设置命令 | AT+CFGRI= | OK | +-----------------------+-----------------------+-----------------------+ | 查询命令 | AT+CFGRI? | +CFGRI: OK | +-----------------------+-----------------------+-----------------------+ |   | 无论为何 | | | | 值,无论是0还是1,当 | | | | 收到短信的时候,都会 | | | | 产生一个120ms低脉冲; | | | | 当来电话的时候,会跳 | | | | 变为低电平,直到接通 | | | | 或挂断电话才会变成高 | | | | 电平。(注:目前Air7 | | | | 20/720G/720D/720S系列 | | | | 模块暂不支持电话)只 | | | | 有设置AT+CFGRI=1后, | | | | 数据业务(包括TCPIP, | | | | HTTP,MQTT,FTP)到来时 | | | | 的URC上报,才会使WAKE | | | | UP_OUT产生120ms低脉冲 | | +-----------------------+-----------------------+-----------------------+   参数定义: ==== ========== ==== ============================================== 参数 定义 取值 对取值的说明 ==== ========== ==== ============================================== \ RI指示状态 0 RI指示功能关闭 \ 1 RI指示功能打开(TCPIP/FTP/HTTP/MQTT及其他URC) ==== ========== ==== ============================================== 相关资料以及购买链接 -------------------- 相关开发板购买链接 `Air724UG开发板 `__ `Air724 开发板使用说明 `__ `相关软件资料下载 `__ 常见问题 -------- https://luatdoc.papapoi.com/628/ Air724UG 4G LTE 开发板实网待机功耗测试方法 ------------------------------------------ `Air724UG低功耗测试方法.pdf `__