low power iot design

    电池供电的 IoT:怎样做一份能预测真实续航的休眠电流预算

    怎样估算并改善低功耗 IoT 设备的续航:电流预算表、一个算例、休眠状态里隐藏的漏电来源、缩短射频和 GPS 的工作时间,以及怎样正确测量突发电流。

    ·XTELL 工程团队

    续航是一道算术题,而多数估算漏掉了一半

    数据手册里一行"深度休眠 2 µA",几乎说明不了产品能用多久。真正重要的是整个周期里的平均电流:一长段极小的电流,加上一小段比它大几千倍的突发电流。老老实实把它们加起来,突发部分通常是主角。有些团队花几周时间从休眠状态里抠出一微安,却让射频多开了一秒,这是在优化错误的一端。

    解决办法是做电流预算:在硬件定型之前写一张表,列出设备经历的每个状态、电流多大、持续多久。这只需要一个下午,却能平息大部分争论。

    把预算做成一张表

    按顺序列出一个周期里的每个状态:深度休眠、唤醒与启动、传感器上电与读取、射频启动与连接、发送、等待应答、后处理、回到休眠。每一项写上电流和时间,算出每个周期的电荷量(电流乘时间),再把各项加起来。

    下面是一个示意性的例子,数字是编的,但合情合理。设备每分钟上报一次。休眠电流 5 µA,每次唤醒 100 ms,平均 20 mA,用来读传感器、连网并发送一条短消息。

    • 工作突发:20 mA × 0.1 s = 2.0 mA·s
    • 深度休眠:0.005 mA × 59.9 s = 0.30 mA·s
    • 每个 60 秒周期合计 2.30 mA·s,平均约 38 µA

    1000 mAh 的电池在不做降额的情况下能用约 26000 小时,接近三年。降额很重要:低温和大脉冲电流会让可用容量下降,电池会自放电,设备会在截止电压而不是零电压时就停止工作。先按标称容量的 60% 到 70% 来规划是合理的,这里大约是两年。

    有用的启示在于占比。这个例子里,休眠只占电荷量的 13% 左右。把工作时间减半,平均电流几乎减半;把休眠电流减半,只省不到 7%。预算会告诉你该把功夫花在哪里。

    休眠电流到底去了哪里

    当休眠电流比单片机数据手册里的数字高时,几乎都是板上其他东西的问题。按顺序检查:

    • 稳压器。LDO 的静态电流,以及开关电源在轻载下的效率,都可能超过单片机自己的休眠电流。有些转换器有低功耗模式,有些要在大得多的负载下才能达到标称效率。
    • 上拉、下拉电阻:当某根线被拉低时,它们会跨在电源两端消耗电流;还有悬空的输入,会让输入级导通。
    • 电池电压检测分压器。3.6 V 电池上接一个 100 kΩ 的分压器,就会消耗 18 µA,比很多整机休眠电流还大。要做成可开关的,或者用大得多的阻值配合采样保持的方法。
    • 没断电的外设。传感器、电平转换器、LED、外部闪存(用它的深度掉电命令)、显示屏、GPS 和蜂窝模块。给每一路非必要的电源加一个负载开关,是便宜的保险。
    • 一直开着的保护芯片和电量计。
    • 仍然连着的调试器或串口适配器,会通过信号线给板子反向供电。测量时要把它们拔掉。

    让工作时间变短

    既然突发部分占主导,大的收益就在这里。

    • Wi-Fi。扫描、关联、获取地址,往往比发送数据本身还久。保存信道和接入点地址并直接重连,用静态地址或缓存的租约,一次短事务就把数据发完。
    • 低功耗蓝牙。广播间隔和连接间隔既是延迟参数,也是续航参数。先确定产品真正需要多快的响应,再选满足要求的最长间隔。
    • 蜂窝,包括 GPRS。网络附着和注册要几秒,比有效数据更耗电。让模块只在通信期间上电,并把多个读数合并成一次会话。
    • GPS。冷启动可能要几十秒的大电流,带有最新星历的热启动则少得多。只在定位成功之前上电,然后立即关闭,并认真想一想到底需要多久定位一次。
    • 处理器。快速完成再回到休眠,往往比慢慢算更省能量,要实测而不是假设。把闪存写入合并,因为擦除和编程闪存都是昂贵的操作。

    唤醒源与定时

    靠事件或定时器唤醒,绝不用轮询。精确的 32 kHz 晶振用一点电流换来准确的定时;内部振荡器更便宜但会漂移,唤醒时间表里的漂移,就会变成错过的网络时间窗。看门狗和实时时钟要用它们允许的最低功耗时钟,并确认看门狗在休眠期间的行为,因为有些配置会让它停止,有些不会。

    要正确地测量

    • 台式万用表是取平均的。它会很乐意给你一个数字,把比休眠电流大一千倍的突发藏在里面。
    • 用电流分析仪或带快速采样的源测量单元,或者用小阻值采样电阻加示波器,看完整个周期,包括突发之后外设仍在耗电的拖尾。
    • 测休眠电流时,所用仪器的量程要能到微安甚至更低,并确认仪器自身的压降不会让设备掉电重启。
    • 用真实类型的电池测,并在产品会遇到的极端温度下测。也要在信号差的地方测射频,重试会成倍增加工作时间。

    然后把实测值填回预算里,再跑几天真实运行,对比预测。一份从不与实测对账的预算,不过是表格包着的一个猜测。

    电池本身也是电路的一部分

    电池有内阻,几十毫安的脉冲会让它的电压下陷,有时大到足以让设备复位。特别是小型一次性电池,脉冲能力有限,可能需要在负载附近加大电容,或者换一种电池体系。要看突发期间设备处的电压,而不是静态时的。

    我们工作中的一个例子

    我们的 Apollo2 低功耗 IoT 终端就遵循这种模式:单片机绝大部分时间处于深度休眠,由实时时钟唤醒,GPRS 和 GPS 只在需要上报时才上电。如果你在设计电池供电的产品,希望预算、硬件和固件三者保持一致,请看我们的 IoT 产品开发服务,以及低功耗无线硬件设计指南。

    需要专业服务?

    联系我们获取定制化解决方案和报价