第二章 硬件选型与功耗分析

做无线抓包,选芯片是第一道坎。我见过不少团队,软件写得再好,芯片选错了,功耗就是降不下来。说白了,硬件选型决定了功耗的天花板。

低功耗芯片选型要点

选芯片不能只看数据手册上的「低功耗」三个字。你得看具体场景。抓包设备通常是长时间待机、短时间抓包,所以待机功耗比运行功耗更关键。

我个人习惯先看三个核心指标:

  • 深度睡眠电流:抓包间隔期间,芯片能不能进入微安级的睡眠模式
  • 唤醒时间:从睡眠到能抓包,需要多少微秒。太长会错过包
  • 接收电流:抓包时射频全开,电流是多少毫安

举个例子。我几年前做过一个项目,选了某款号称「超低功耗」的芯片。深度睡眠确实只有 1.5 µA,但唤醒时间要 3 ms。结果呢?每次唤醒还没准备好,目标包已经飞过去了。后来换了 Nordic nRF52840,唤醒时间 0.6 ms,问题才解决。

选型核心公式:平均功耗 = (睡眠电流 × 睡眠时间 + 接收电流 × 接收时间 + 唤醒电流 × 唤醒时间) / 总时间

别只看峰值,要看平均。抓包场景下,睡眠时间往往占 99% 以上。

抓包模块的功耗模型

抓包模块的功耗不是一条直线。它分几个阶段,每个阶段的电流差异很大。我习惯把它画成一张图,这样团队沟通起来更直观。

抓包模块功耗状态机 抓包模块功耗状态机 深度睡眠 1.5 µA 唤醒 0.6 ms / 2 mA 射频初始化 1 ms / 8 mA 抓包 10 ms / 25 mA 数据处理 5 ms / 10 mA 回退睡眠 0.3 ms / 1 mA 说明: 每个状态的时间占比决定了平均功耗。抓包只占 10 ms,但电流高达 25 mA。 优化方向:缩短抓包时间、减少唤醒次数、降低睡眠电流。

你看这张图。从深度睡眠到抓包,中间要经过唤醒和射频初始化。每个阶段都有时间成本和电流成本。我见过有人直接让芯片一直处于接收状态,觉得这样响应快。结果电池两天就没了。

我的经验:抓包模块的功耗大头往往不在抓包本身,而在「不必要的唤醒」。我曾经把一个产品的电池寿命从 3 天延长到 3 个月,只做了一件事——把轮询间隔从 100 ms 改成 1 s。因为目标设备每分钟才发一次包。

数据手册关键参数解读

数据手册这东西,新手看参数,老手看条件。同一个芯片,不同测试条件下,电流能差好几倍。

我教你几个必看的参数,以及怎么识破「参数陷阱」。

参数 典型值 陷阱 我的建议
深度睡眠电流 1.5 µA 通常不含 RTC 或 RAM 保持 确认是否包含 RTC 和 64 KB RAM 保持
接收电流 25 mA 测试条件:-90 dBm 输入,无干扰 看最差条件下的值,通常 +3~5 mA
唤醒时间 0.6 ms 从软件调用到射频就绪 实测往往比手册多 20-30%
供电电压 1.8-3.6 V 低电压下射频性能下降 抓包场景建议用 3.0 V 以上

嗯,这里要注意。数据手册上的「典型值」往往是在理想条件下测的。你想想看,芯片厂商当然想展示最好看的数据。但实际产品里,天线匹配、PCB 走线、电源纹波都会影响功耗。

我曾经踩过的坑:选了一款芯片,手册写接收电流 18 mA,深度睡眠 1 µA。结果打样回来一测,接收电流 26 mA,深度睡眠 3.5 µA。后来仔细看手册才发现,18 mA 是在 25°C、3.3 V、-90 dBm 输入下测的。我实际工作在 2.8 V、55°C 环境,电流自然上去了。

所以我现在选型,一定要求供应商提供「最差条件」下的参数,或者自己拿 EVK 实测。

如何根据抓包场景选型

不同抓包场景,对芯片的要求不一样。我把它分成三类:

  • 持续抓包:比如协议分析仪,一直监听。重点看接收电流和射频灵敏度
  • 间歇抓包:比如环境监测,每 10 秒抓一次。重点看唤醒时间和睡眠电流
  • 触发抓包:比如门禁抓包,有事件才抓。重点看唤醒延迟和启动时间

我个人最常用的是 Nordic nRF52840 和 TI CC2652。前者生态好,后者功耗更低。但具体选哪个,得看你抓什么协议。BLE 抓包用 nRF 方便,Zigbee 抓包用 TI 更稳。

选型检查清单:

  1. 确认睡眠电流是否包含 RTC 和 RAM 保持
  2. 确认唤醒时间是否包含射频锁相环锁定时间
  3. 确认接收电流是否包含数字部分功耗
  4. 确认供电电压范围是否覆盖电池放电曲线
  5. 确认是否有硬件包过滤功能(减少唤醒次数)

最后说一句。选型不是一次性的。我习惯先选 2-3 款候选芯片,打样实测,再定最终方案。数据手册是参考,实测才是真理。