大家在BLE选型阶段都非常关心芯片的功耗表现,对于该问题我们的套路做法总是翻出芯片的数据手册,对比蓝牙相关的参数指标,然后给出结论。但这样准确吗?答案肯定是部分准确,今天我们就仔细分析一下蓝牙的功耗问题。
蓝牙功耗概念
理解如下概念,对理解蓝牙系统功耗非常有帮助。
1. 软体:
软体这里主要写在连接状态下和功耗相关的参数,无连接的ADV广播模式不赘述。
连接过程
蓝牙处于连接状态下,周期性运行的事件。该周期性事件会发生在蓝牙的channel 1- channel 37(channel 38, channel 39, channel 40为三个广播信道)。
主端在连接事件中起主导作用,启动连接,从机端处于监听模式,监听接受主端发送的数据。
在每次连接事件中,他们可以尽可能多的来回传输数据,即使在没有需要传输的数据,连接事件依然会发生,并完成交互,确保该蓝牙连接持续有效。
如果在指导数量的连接事件中双方没有应答数据,连接被视为丢失,蓝牙将断线。
下图所示为一个蓝牙从设备的电流消耗示意图:可以看到该设备大部分事件处于休眠模式,电流消耗在10uA以下,这就是BLE功耗之低的原因之一。
在右上角的放大部分,你还可以看到该从设备在每个连接事件中,SOC从休眠模式到唤醒时的电源配置,MCU内部处理,监听主设备,发送确认信息,并做一些善后处理,再次进入休眠模式的概括。
连接间隔:Connection Interval
主机和从机建立连接之后,及时双方没有传输数据的要求,也会保持以一定频率和对方交换信息以保持联系。这个双方约定好交换数据的时间我们称之为连接间隔。
蓝牙规定,这个连接间隔的时间范围为7.5ms-4s,其中IOS和安卓又略有不同,详细见另外一篇文章《蓝牙4.2最大传输速率详细分析》。
从机端的间隔唤醒: Slave Latency:
Slave Latency定义了从机可以忽略主机在连接事件中发出的启动连接,从机可以忽略用于更进一步降低功耗。
这个值通常为可以设置为0-499之间的任意值,另外他也必须遵循下面的准则:
((supervisionTimeout / connInterval) – 1)
以下图为例,如果Slave Latency为0,每一个连接事件,从机都会唤醒回应主机,如果Slave Latency设置为3,那么从机在和主机交互一次后,会自动忽略接下来的三次主机事件连接的邀请,指导第四次从机才唤醒,和主机主动交换数据,这样作的好处显而易见,更进一步的降低功耗,但是很明显,数据交互的次数少了,数据吞吐量自然下降。
超时 Supervision Timeout
当主从距离过远,受到干扰,多长时间蓝牙连接会掉线?
答案是100ms到32s,掉线的最小时间间隔如下:
(1 + slaveLatency) * (ConnInterval)
2:硬体:
硬体的功耗和内核,芯片工艺息息相关,下面列举几个重要指标:
0dbm TX power:
蓝牙芯片在0dbm的发射功率时的瞬态峰值电流。当然,0dbm发送功率的电流消耗是为大家约定俗成的一个指标,根据不同的芯片厂家,TX发送功率可以在0dbm-10dbm之间可调。
RX Power:
蓝牙芯片在最大接收灵敏度时的瞬态峰值电流。
MCU运行功耗:
射频链路没有工作,仅仅只有MCU工作时的功耗
休眠模式平均功耗:
SOC处于休眠模式(MCU和射频链路都处于休眠模式)时的平均功耗.
实际案例TI CC2640R2F
指标都谈完了,我们看一个完整的事例,结合TI CC2640R2F芯片,理论知识结合测量实际。
测试环境搭建
- TI BLE EVM板, TI CC2540 dongle, BTOOL, Agilent N6705B DC Power Analyzer.
- TI CC2540 Dongle配合 BTOOL作为主机端.
- TI CC2640R2F demo板作为从机端.
- 直流分析仪给 TI CC2640R2F demo板供电.
ADV广播模式:
首先测试CC2640R2F在广播模式的功耗,我们展开一个广播事件的波形来看其中可以分为非常多个阶段,下图为设置好了在三个广播通道上都广播的模式下的Agilent N6705B DC Power Analyzer截图。其阶段可以分为唤醒,MCU预处理,广播TX, RX接收主机返回数据;下一个通道广播,RX接收主机返回数据;再下一个通道广播,RX接收主机返回数据。MCU处理数据,进入休眠模式。
计算1-16图形的面积/Adv interval时间计算出来的就是平均功耗,不同的Adv interval,在几个通道上Adv会影响该设备广播模式下的平均功耗。
Connection连接模式:
连接模式下,蓝牙的功耗可以分为以下几个阶段:唤醒MCU,RTOS进程任务执行,开启radio,进行RX监听,RX监听到数据后,打开TX,回应主机数据,关闭radio,MCU进入内部事件处理,最后进入休眠模式。
计算1-8阶段图形的面积/Connection interval的时间计算出来的就是平均功耗,不同的Connection interval,主从是否有数据交互都会影响其连接模式下的平均功耗。
小结:
- 蓝牙的功耗和硬件发射功率,接收功率,MCU平均功耗,待机功耗相关。
- 蓝牙的功耗和广播间隔,广播通道数,连接间隔,连接延迟应答latency,是否有数据传输息息相关。
网友评论