如何估算 BLE 模块的功耗?

use*_*035 2 bluetooth ios bluetooth-lowenergy

我正在为带有 BLE 模块的设备编写一个 iOS 应用程序,该模块在连接时一致地通告几个字节的数据。我们正在尝试估算 BLE 模块的功耗,以便估算设备的电池寿命。我已经在 SO 和 Google 上搜索过,寻找合适的方法来估计这一点,但我一无所获。有没有办法将正在发送的字节数乘以数据发送的频率并得出功耗的粗略近似值?

Nip*_*ipo 5

典型的 BLE SoC(即一体化应用 + 无线电芯片)通常消耗:

\n\n
    \n
  • 深度睡眠时几百纳安,
  • \n
  • 2 到 10 \xc2\xb5A,同时 RTC 跟踪时间(在广播或连接时无线电事件之间需要),
  • \n
  • CPU 或无线电运行时(计算数据、TX、RX)为 10 至 30 mA。RX和TX功耗大致相同。
  • \n
\n\n

BLE 外设的生命周期基本上由 3 个主要状态组成:

\n\n
    \n
  1. 闲置(不做广告,不连接)。大多数人会告诉您的设备已关闭。除非它有物理电源开关,否则它仍然消耗几百纳安。

  2. \n
  3. 通告(在连接发生之前)。外设需要每 50 毫秒运行大约 5 毫秒。这是您的设备实际上使用最多电量的时间,因为广告需要频繁发送许多数据包。平均功耗在 1-10 mA 范围内。

  4. \n
  5. 保持联系。在这里,消耗取决于应用程序。如果应用程序大部分时间处于空闲状态,则外设需要定期唤醒,并且必须每次发送一个数据包以保持连接处于活动状态。即使外设没有任何有用的信息可发送,仍然会发送一个空数据包。副作用:这意味着低占空比应用程序基本上免费传输数据包。

  6. \n
\n\n

所以要真正回答你的问题:

\n\n
    \n
  • 你的有效负载的长度不是问题(只要你保持你的数据包短):我们谈论的是每比特在 1 \xc2\xb5s 期间进行传输,而其余的处理(唤醒,接收主数据包,等等,让我们至少在 200 \xc2\xb5 秒内保持清醒);

  • \n
  • 你实际上所说的“连续”是关键点。是5赫兹吗?200赫兹?3 kHz ?

  • \n
\n\n

假设我们以 5 Hz 的速率发送数据。功耗估计约为每秒 5 个连接事件,每个连接事件大约 2 毫秒 CPU + 无线电,因此每秒运行 10 毫秒。平均功耗:200 \xc2\xb5A (.01 * 20 mA + .99 * 5 \xc2\xb5A)

\n\n

但此计算并未考虑某些参数:

\n\n
    \n
  • 您应该增加传感器的消耗(陀螺仪/加速度计可以消耗几毫安),
  • \n
  • 您应该考虑板载通信(i2c、SPI 等),
  • \n
  • 如果您的设计实际上使用两个芯片(一个用于与无线电模块通信的应用程序),功耗大约会增加一倍。
  • \n
\n