系列文章目录


前言

在物联网设备设计中,功耗与实时性往往是一对矛盾——保持连接意味着持续耗电,深度睡眠又无法及时响应。域格ASR模组的Sleep1模式,正是为解决这一难题而生:它在保持4G网络在线的前提下,将功耗压缩至典型值1mA,同时实现了服务器数据实时唤醒、上行数据即时发送。


一、低功耗:1.5mA保持网络在线

Sleep1模式的核心突破在于功耗控制。模块进入该模式后,VEXT电源输出自动关闭,不对外部设备供电,内部射频与基带电路进入间歇性工作状态。典型电流仅1mA,相比全速工作模式(数十至上百毫安)下降了一个数量级。

这意味着:一节2000mAh的电池,理论上可支撑设备待机2000小时以上(约83天),非常适合水表、气表、烟感、定位器等电池供电场景。
唤醒方式|触发条件|适用场景

唤醒方式 触发条件 适用场景
MAIN_DTR管脚唤醒 外部MCU拉低DTR引脚 主控主动发起通信
服务器数据唤醒 下行数据到达模块 远程控制、报警推送、参数下发
上行实时发送 设备主动需要发数据 传感器上报、心跳包发送
串口AT唤醒 通过串口发送任意AT指令 本地调试、配置变更
USB唤醒 USB接口激活 固件升级、高速日志导出

二、唤醒方式

1.MAIN_DTR管脚唤醒

MAIN_DTR管脚唤醒是单片机MCU设备最常使用的低功耗控制方式。这种方式通过一根GPIO引脚即可实现模块睡眠状态的精确控制。
在这里插入图片描述

发送AT指令 AT+CSLCK=1:串口空闲超过AT+WAKETIM配置的时间(默认5s),模块自动进入休眠,模块退出休眠,串口连续发送AT直到模块回应时,模块退出休眠

管脚 连接方向 功能说明
MAIN_DTR MCU输出 → 模块输入 控制模块睡眠/唤醒
MAIN_RI 模块输出 → MCU中断输入 模块唤醒MCU(可选)

DTR引脚内部有上拉电阻,默认状态为高电平。这意味着:不连接时:DTR默认高电平,模块可进入睡眠,MCU主动拉低:强制唤醒模块
发送以下指令可进入低功耗模式

①关指示灯

AT+NETLIGHT=0 — 禁用网络状态LED,减少功耗

②RRC主动释放

AT+MEDCR=0,34,3 — 发送34字节数据后,3秒无活动触发RRC本地释放

③ 快速休眠

AT+WAKETIM=1 — 串口空闲1秒后进入休眠

④深度睡眠使能

AT+CSCLK=1 — 允许模块在空闲时进入CSCLK睡眠模式

AT+NETLIGHT=0 //关闭灯
AT+MEDCR=0,34,3 //数据发送多少秒后主动触发 rrc local release
AT+WAKETIM=1  //设置串口没有数据输入后1秒快速休眠

AT+CSCLK=1

:看图片有连接UART,也支持串口AT唤醒,当检测到串口数据时,会自动退出睡眠模式,并开始响应AT指令

2.远程数据唤醒

模块唤醒MCU:
模块收到数据/短信/来电时,会先通过MAIN_RI信号唤醒MCU,并且URC上报
因为各个客户对RI脚的唤醒电平有各个要求,电波电平都可以修改。

AT+YGRICFG=100,1,1 // 方波持续100ticks==500ms  1个方波,最后一位1,默认输出高电平,信号触发低电平。默认是0,状态相反

OK
AT+YGRICFG=100,2,1 // 方波持续100ticks==500m  2个方波

OK
AT+YGRICFG=0,0      // 关闭RI功能

OK

不难理解,就是普通低功耗模式下进行TCP连接,以下是简单的远程唤醒的流程,TCP想了解的可以参考下,链接: 域格模组使用TCP功能

AT+QIPOPEN=1,1,"TCP","122.51.209.56",5888,0,1
AT+QIPOPEN=2,2,"TCP","122.51.209.56",5888,0,1
AT+NETLIGHT=0
AT+MEDCR=0,34,3
AT+WAKETIM=3   //设置串口没有数据输入后3秒快速休眠
at+csclk=1
AT+qipsendex=2,00B2B00(75秒发一次)

综合下以上两种唤醒方式,码了一个流程图可以参考下

模块启动

AT+QIPOPEN建立TCP连接(双路)

发送AT+CSCLK=1

串口空闲3秒(AT+WAKETIM=3)

模块进入Sleep1模式(功耗≈1mA)

AT+QIPSEND主动心跳
(75秒后)

服务器下发数据
(实时唤醒)

MCU发AT指令
(唤醒)

唤醒发送心跳包

继续睡眠

3秒后再次进入睡眠

RI中断通知MCU

MCU收到数据
处理完成

立即响应

当然了,优秀的你觉得这些指令太过简单,你需要一套标准指令去设置心跳,RI脚,连接状态等等各种想要的功能可以参考下这套指令。链接: ASR低功耗指令使用手册

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐