域格ASR模低功耗指南
系列文章目录
前言
在物联网设备设计中,功耗与实时性往往是一对矛盾——保持连接意味着持续耗电,深度睡眠又无法及时响应。域格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秒发一次)
综合下以上两种唤醒方式,码了一个流程图可以参考下
当然了,优秀的你觉得这些指令太过简单,你需要一套标准指令去设置心跳,RI脚,连接状态等等各种想要的功能可以参考下这套指令。链接: ASR低功耗指令使用手册
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)