低功耗 GPS 定位设备可以用 MCU 控电和周期上报控制续航
一次性电池供电的 GPS 定位设备,核心矛盾是位置数据有价值,但 GPS 定位、4G 入网和数据上报都很耗电。设备体积有限,电池不可频繁更换,仍然希望在现场运行几年。
这类设备的续航设计可以收束成四件事:平时彻底休眠,按周期短时间唤醒;GPS 只在需要时定位;4G 只在需要时联网;定位和上报参数允许云端调整。相关项目中,整机休眠电流可以做到微安级,实测约 6 uA。
低功耗控制点
GPS 定位设备不能把 GPS 和 4G 长期开着。GPS 要等待有效定位,4G 要搜网、入网、建链和上报,两者都是高功耗动作。一次完整唤醒可能包含 GPS 冷启动、等待有效位置、4G 入网、MQTT 连接和数据上报。项目中冷启动定位约半分钟,上报还需要十几秒,所以每次唤醒的总在线时间很关键。
低功耗设计的第一目标是减少高功耗状态出现的次数和持续时间。能休眠就休眠,能批量上报就不频繁联网,能用配置拉长周期就不固定高频定位。
系统结构
常见架构是 MCU 负责低功耗控制,外挂 4G + GPS 合封模块负责联网和定位。MCU 常驻低功耗运行,负责 RTC 唤醒、业务状态机、外设电源控制、本地配置和上报调度;4G + GPS 模块按需上电,完成定位和联网;云端接收定位记录,并下发定位间隔、距离阈值、上报周期和业务开关。
硬件供电域必须能被 MCU 管住。4G、GPS 和其他高耗电外设通过 MOS 管或电源开关独立供电,休眠时断电,需要定位或联网时再上电。硬件如果没有把供电域拆开,软件后期很难把功耗追回来。
RTC 负责让设备按周期醒来。定时器到期后唤醒 MCU,MCU 判断累计睡眠时间是否达到定位周期;未到业务时间就继续休眠,到达业务时间后再给 GPS 或 4G 模块上电。如果 MCU 内部 RTC 的最大周期不够长,可以用多次短周期累计,也可以在预算允许时使用外部 RTC 芯片。
GPS 定位耗时
GPS 的能耗不能只看模块工作电流,还要看每次定位持续多久。冷启动越慢,设备在线时间越长;定位失败后继续等待,也会快速消耗电池。
设计时要优先确认这些边界:
- GPS 冷启动到有效位置的典型时间。
- 弱信号、遮挡、室内边缘环境下的最长等待时间。
- 定位失败后是否继续等待、放弃本轮,或只上报状态。
- 模块频繁冷启动是否会触发内部 Flash 写入,寿命需要结合厂家手册和原厂支持确认。
GPS 模块通常还会提供备电模式,给 RTC、星历或热启动相关状态保留一部分供电。这样下次唤醒时不必完全冷启动,理想情况下几秒内就能拿到位置读数。代价是休眠电流不再是整机微安级关断状态,GPS 备电本身可能带来几百微安的持续消耗。
因此是否使用 GPS 备电,要看产品更重视快速定位还是长期续航。定位间隔很短、业务要求醒来后立即出位置时,备电模式有价值;一次性电池设备如果目标是运行几年,几百微安的长期静态电流通常会明显压缩续航,需要谨慎使用。
定位和上报策略
定位间隔越短,位置越新,唤醒次数也越多。一次性电池设备通常要接受分钟级或更长延迟,通过业务配置控制定位频率。
定位间隔可以按场景分层:
- 静止或低价值时段:拉长定位间隔。
- 巡检、运输、布防等关注时段:缩短定位间隔。
- 电池低电量:降低定位和上报频率。
- 云端下发参数:按业务状态动态调整定位周期和阈值。
定位周期不只是一个定时器参数,它直接决定 GPS 冷启动次数、4G 上报机会和整机续航。
距离触发容易写成“本次定位和上次定位做距离比较”。这个判断在低频定位场景里有一个时间窗口缺陷:真实移动过程可能刚好跨过采样窗口边界,被拆成两段都不足阈值的位移。
例如定位间隔为 60 分钟,设备在 T0 + 50min 开始移动,到 T0 + 110min 停止,最终位移刚好达到触发阈值。设备只在 T0、T0 + 60min、T0 + 120min 取到三次位置。相邻比较时,T0 到 T0 + 60min 只覆盖前半段移动,T0 + 60min 到 T0 + 120min 只覆盖后半段移动,两段都可能低于阈值;但 T0 到 T0 + 120min 的总位移已经满足触发条件。
因此距离触发不应只看最近两次定位。设备端可以保留最近若干次有效定位记录,每次得到新位置后,分别和历史位置做距离比较。只要新位置相对某个历史位置超过阈值,就认为发生了需要上报的位移。
这项优化保持定位频率不变,只在既有定位间隔下改变判定窗口。它能覆盖跨窗口移动、慢速移动和边界卡点场景,同时不显著增加 GPS 唤醒次数。
工程实现时还要限制历史窗口长度,避免无限回看带来过期触发。通常可以按业务允许的最大延迟保留最近几次定位,并过滤定位质量差、时间异常或明显漂移的点。触发上报后,再把新的稳定位置作为后续比较基准。
4G 上报策略
GPS 取到位置后,不一定每次都要立刻打开 4G 上报。4G 搜网、入网、建链和 MQTT 交互同样耗电,频繁联网会抵消 GPS 侧的节能收益。
常见做法是把定位和上报拆开:
- 定时定位:按配置间隔保存位置。
- 批量上报:累计多条定位记录后再打开 4G,一次性上报。
- 事件上报:位移超过阈值、低电量、异常状态等场景触发即时上报。
- 参数同步:每次联网时顺带拉取云端配置,减少额外通信窗口。
这样可以让 GPS 负责“按需知道在哪里”,让 4G 负责“必要时把结果发出去”。两者的节奏可以不同,功耗模型也更容易控制。
本地配置
设备端需要保存云端下发的配置,例如定位间隔、距离阈值、上报数量、业务开关等。配置写入本地 KV 数据库,后续固件版本增加配置项时,可以按键名独立读取和写入。
KV 存储在这里是支撑点。它的作用是让定位间隔、距离阈值、批量上报数量和业务开关可以长期调整。键值对把每个配置项拆开,新增字段不会改变旧字段的位置关系,旧设备升级后仍然能读取已有配置。
适用范围
这套思路适合资产定位、周期巡检、低频移动监测、户外设备状态上报等场景。前提是业务允许分钟级或更长延迟,不要求连续轨迹和秒级实时位置。
如果产品要求实时轨迹、频繁远程控制或长时间在线,功耗模型就会完全不同,需要重新评估电池、模块、电源架构和通信策略。
本文由 AI 辅助生成,可能存在错误或遗漏,请以实际资料和官方文档为准。