2021-01-29 18:02:55 信驰达科技 19

ble之所以能做到μa级别的功耗,在使用纽扣电池供电的情况下能工作达半年甚至更久的原因就是ble特殊的休眠的机制,简单概括就是在特定的时间启动射频,快速地发射完数据后关闭射频进入休眠状态,也就是说在ble工作期间,其射频大部分时间都是处于关闭状态,所以它的功耗就能非常低。


图1就展示了ble设备发送广播数据的电流(图片来源于信驰达产品实测)。

蓝牙模块方案商

图1 ble设备广播电流


影响ble功耗的参数


本文所说的影响功耗的参数是站在ble协议栈的基础上来说的,不包括硬件本身带来的功耗,比如当你模块负载着很多led的时候,ble模块的功耗降不下来,这就不在讨论范围之内。


影响ble功耗的参数有如下几个:


1.广播间隙(advertising interval)

2.连接间隙(connection interval)

3.从设备延迟(slave latency)

4.连接超时(supervision timeout)

5.扫描窗口(scan window)

6.扫描间隙(scan interval)


1.广播间隙(advertising interval)

ble设备在每次广播时,都会在三个信道上发送相同的报文,这些报文被称为一个广播事件,两个相邻的广播事件的时间就是广播间隙。关于广播间隙的定义如图2(图片来自core_v5.0,蓝牙核心协议5.0)

蓝牙模块方案商

图2 广播间隙


广播间隙是针对从机设备来说的,广播间隙决定了从机设备的广播频率,你说是一秒钟发一次数据的功耗高呢,还是一秒钟发十次数据的功耗高呢?所以将ble广播间隙调大一些,这样在单位时间中广播次数减少,就能有效的降低功耗。范围如图3所示(图片来自core_v5.0,蓝牙核心协议5.0)

蓝牙模块方案商

图3 广播间隙范围



2.连接间隙(connection interval

ble主机设备和从机设备建立连接后,进行数据交互的间隔称为连接间隙,注意是主从设备建立连接后。关于连接间隙的定义如图4(图片来自core_v5.0,蓝牙核心协议5.0)

蓝牙模块方案商

图4 连接间隙


连接间隙就是指主机从机设备之间的交互频率,将连接间隙调大一些即可有效的降低功耗。连接间隙的参数范围也有一个规定值,如图5所示(图片来自core_v5.0,蓝牙核心协议5.0)

蓝牙模块方案商

图5 连接间隙范围



3.从设备延迟(slave latency

从设备延迟是指在连接将被终止之前从设备能够处于睡眠状态的ble连接间隔的数目。为了形象的说明此概念,引用图6来进行解释。

蓝牙模块方案商

图6 slave latency图解


从图中可以看出当从设备延迟关闭(即等于0的时候),每一个主机发起的数据交互从机都必须要响应,当从设备延迟打开(图中等于3的时候),从机可以忽略3次主机发起的数据交互请求,而继续处于休眠状态。

从图6也可以看出当开启从设备延迟时,从机处于休眠的时间就更多,那么设备就可以更省电。


4.连接超时(supervision timeout

连接超时又叫监控超时,是指le链路的链路监督超时时间,必须是10ms的整数倍。必须满足关系:timeout >(1 latency) * interval_max * 2。连接超时范围如图7所示(图片来自core_v5.0,蓝牙核心协议5.0)

蓝牙模块方案商

图7 连接超时范围


5.扫描参数: 扫描窗口(scan window)、扫描间隙(scan interval)

扫描参数是蓝牙主机设备特有的参数,每次扫描时,设备打开接收器去监听广播设备,这称为一个扫描事件。扫描参数有两个:扫描窗口与扫描间隔。如图8所示(图片来自core_v5.0,蓝牙核心协议5.0)

蓝牙模块方案商

图8 扫描参数构成


关于扫描间隙和扫描窗口的定义如图9所示(图片来自core_v5.0,蓝牙核心协议5.0)

蓝牙模块方案商

图9 scan interval 和scan window定义


扫描窗口(scan window)扫描窗口是指进行一次扫描的时间宽度,也就是扫描的持续时间。持续时间越短消耗的能源就越少。


扫描间隙(scan interval):扫描间隙是指两个连续的扫描窗口的起始时间的间隔。即可以理解为扫描频率,频率越低消耗的能量就越少。

需要注意的是扫描窗口要小于扫描间隙。

参数范围如图10所示(图片来自core_v5.0,蓝牙核心协议5.0)

蓝牙模块方案商

图10 扫描间隙扫描窗口范围

如何设置参数来降低功耗?

本文基于信驰达nrf52系列的ble蓝牙模块,来说明如何通过at指令设置参数来降低ble模块的功耗。

1.设置广播间隙

打开串口助手发送指令,如图11所示:at advintv=1600(1600*0.625=1000ms),at advintv=1600(160*0.625=100ms)


蓝牙模块方案商

图11 设置广播间隙为1s和100ms


设置成功后通过电流测试工具抓取电流数据如图12所示,可以看到平均值为29.93ua。设置为100ms时的功耗为250ua.


蓝牙模块方案商

图12  1s和100ms广播间隙的功耗对比

2.设置广播间隙

打开串口助手发送指令如图13所示,设置连接间隙为1s:at conmaxintv=800(800*1.25=1000ms), at conminintv=800(800*1.25=1000ms),设置连接间隙为100ms

蓝牙模块方案商

图13 设置连接间隙为1s和100ms


成功设置连接间隙后使用仪器抓取功耗如图14所示。连接间隙为1s时功耗259μa,连接间隙为100ms时功耗为335μa。


蓝牙模块方案商

图14 1s连接间隙和100ms连接间隙功耗对比

3.设置从设备延迟和链接超时

在设置从设备延迟和连接超时的时候需要注意参数范围:

设置参数如图15所示:timeout >(1 latency) * interval_max * 2

5000>(1 20)*100*2


蓝牙模块方案商

图15 设置从设备延迟和连接超时


需要注意苹果系统的设备做主机的时候,连接参数更为苛刻,需要满足以下关系,否则连接可能存在异常。

interval_max* (slave latency 1) ≤ 2 seconds

interval_min≥ 20 ms

interval_min 20 ms ≤ interval_max

slavelatency ≤ 4

timeout ≤6 s

interval_max* (slave latency 1) * 3 < timeout


4.设置扫描参数

设置扫描参数为1s和10ms,如图16所示:


蓝牙模块方案商

图16 设置扫描参数为1s和10ms


设置成功后,通过仪器观察功耗情况如图17所示:

1s的扫描间隙扫描窗口平均电流:72.4μa

10ms扫描间隙扫描窗口平均电流:3.37ma


蓝牙模块方案商

图17 1s扫描间隙与10ms扫描间隙功耗对比

信驰达目前的ble系列产品众多,这里就不对每种型号做示例,可根据自己手里的型号找到对应手册中的指令进行设置。

若使用的是别的公司的产品,想要降低功耗亦可设置这些参数来降低功耗。这里附上一些信驰达产品测试的具体数据,就能更直观地看到各个参数对于功耗的影响:

蓝牙模块方案商

标签: ble
银河国际galaxy首页
产品
新闻
联系
"));