banner
NEWS LETTER

嵌入式 Linux 系列 20:功耗、休眠和电源稳定性

Scroll down

有些嵌入式设备常年插电,有些依赖电池,有些工作在不稳定供电环境里。功耗和电源稳定性不仅是硬件问题,软件启动、外设管理、日志写入、网络重连也会影响功耗和可靠性。

一、先明确功耗目标

不同设备目标不同:

  • 网关:稳定性优先。
  • 传感器:低功耗优先。
  • 摄像头:性能和功耗平衡。
  • 工业控制:抗断电和自恢复优先。

没有目标就无法优化。

二、CPU 频率

查看:

1
2
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

常见 governor:

1
2
3
4
performance
ondemand
powersave
schedutil

低功耗设备不一定适合一直 performance。

三、外设电源管理

外设不用时要关闭:

  • Wi-Fi。
  • 蓝牙。
  • 摄像头。
  • 传感器。
  • 显示屏。
  • 蜂窝模块。

注意关闭顺序和恢复顺序。有些模块需要复位脚、电源使能脚、时钟配合。

四、休眠和唤醒

Linux 常见状态:

1
cat /sys/power/state

可能输出:

1
freeze mem disk

进入 suspend:

1
echo mem > /sys/power/state

唤醒源可能是:

  • GPIO。
  • RTC。
  • 网络。
  • 按键。
  • 外部中断。

休眠调试要看 dmesg,确认哪个设备阻止了休眠或导致唤醒失败。

五、电源异常和数据保护

不稳定供电会带来:

  • 文件系统损坏。
  • 配置写一半。
  • OTA 中断。
  • RTC 异常。
  • 外设状态异常。

软件侧要做:

  • 配置原子写。
  • OTA 双分区。
  • 启动自检。
  • 日志限流。
  • watchdog 恢复。

电源问题不能只靠硬件兜底。

六、功耗测试

至少测:

  • 开机峰值电流。
  • 空闲电流。
  • 网络连接电流。
  • MQTT 重连电流。
  • 外设工作电流。
  • 休眠电流。
  • 唤醒耗时。

软件每加一个常驻服务,都要关注它是否增加唤醒和 CPU 占用。

七、总结

功耗优化不是简单关几个模块。它需要硬件、电源、内核、驱动、业务服务一起配合。对产品来说,功耗、稳定性和可维护性要一起设计。

其他文章
目录导航 置顶
  1. 1. 一、先明确功耗目标
  2. 2. 二、CPU 频率
  3. 3. 三、外设电源管理
  4. 4. 四、休眠和唤醒
  5. 5. 五、电源异常和数据保护
  6. 6. 六、功耗测试
  7. 7. 七、总结
请输入关键词进行搜索