搜索   Search
联系我们   Contact

影响蓝牙BLE设备功耗的几个因素

发布:2015-06-04 09:02 点击:

1、广播的方式

蓝牙BLE设备的广播分两种形式:永久广播(GAP_ADTYPE_FLAGS_GENERAL)和限时广播(GAP_ADTYPE_FLAGS_LIMITED)。如果将BLE设备的广播方式设置成永久广播,那么只要BLE设备上电就会开始广播直到BLE设备断电为止。如果将BLE设备的广播方式设置成限时广播,那么打开广播后,超过一定的时间就会自动停止广播以节省电源。所以为了节省BLE设备的功耗,最好设置默认的广播模式为限制广播。


#define DEFAULT_DISCOVERABLE_MODE GAP_ADTYPE_FLAGS_LIMITED

 

2、广播的间隔

在广播期间,每次发送广播数据的间隔也能影响BLE设备的功耗,对于广播模式为永久广播的BLE设备来说尤为明显。所以可以将广播的间隔修改大一点以降低功耗。

广播间隔在代码中,如下设置:


#define DEFAULT_ADVERTISING_INTERVAL 160

uint16 advInt = DEFAULT_ADVERTISING_INTERVAL;

GAP_SetParamValue( TGAP_LIM_DISC_ADV_INT_MIN, advInt );

GAP_SetParamValue( TGAP_LIM_DISC_ADV_INT_MAX, advInt );

GAP_SetParamValue( TGAP_GEN_DISC_ADV_INT_MIN, advInt );

GAP_SetParamValue( TGAP_GEN_DISC_ADV_INT_MAX, advInt );

可以将原先的160(单位为625us160 = 100ms)修改成更大的值,如320。但是需要注意的的是,如果将广播的间隔修改大之后,相应地会影响BLE设备的连接速度,所以这里也不宜修改过大,最好广播间隔不要超过1s

 

3、广播持续的时间

在广播模式为限制广播模式(GAP_ADTYPE_FLAGS_LIMITED)下,可以设置每次开始广播后的广播持续时间,理所当然,广播持续的时间越短则越省电。广播持续时间如下设置:


VOID GAP_SetParamValue( TGAP_LIM_ADV_TIMEOUT, 30);

这里设置每次广播持续的时间为30s。具体的时间根据实际使用的场合而定。

 

4、连接间隔

当连接上蓝牙BLE设备时,蓝牙主机会定期向BLE设备发送连接事件(Connection Events)BLE设备接收到连接事件后,就必须进行回复,以通知蓝牙主机连接通路正常。而这段时间正是BLE设别连接后最耗电的时候,所以增加连接间隔时间会降低BLE设备的功耗,但是需要注意的是,改变连接间隔时间就相应地会改变蓝牙的通讯速度,所以还需谨慎修改。

影响蓝牙BLE设备功耗的几个因素 - ziye334 - ziye334的博客

在代码中,提供两个参数:最小连接间隔和最大连接间隔。通过修改这两个参数,BLE协议栈就会根据不同的情况设置这两个参数之间的连接间隔时间。连接间隔参数以1.25ms为单位,范围可从7.5ms~4s。连接间隔时间如下设置:

#define DEFAULT_DESIRED_MIN_CONN_INTERVAL     80

#define DEFAULT_DESIRED_MAX_CONN_INTERVAL    800

uint16 desired_min_interval = DEFAULT_DESIRED_MIN_CONN_INTERVAL;

uint16 desired_max_interval DEFAULT_DESIRED_MAX_CONN_INTERVAL;

GAPRole_SetParameter(GAPROLE_MIN_CONN_INTERVAL, sizeof( uint16 ), &desired_min_interval );

GAPRole_SetParameter(GAPROLE_MAX_CONN_INTERVAL, sizeof( uint16 ), &desired_max_interval );

这里设置最小连接间隔为100ms,最大连接间隔为1s。

5、从机延时次数

  所谓的从机延时(Slave Latency)次数,就是在连接时忽略连接事件的次数。在每一个连接事件(Connection Event)中,蓝牙主机必须先发包,然后蓝牙设备必须回复,一直这样重复下去,不然蓝牙主机会认为蓝牙设备那边不正常。而通过设置从机延时的次数,允许蓝牙设备一定次数内不对蓝牙主机数据进行回复,这时蓝牙主机即使没有收到蓝牙设备的回复也不会认为蓝牙设备不正常,这样的话,蓝牙设备也就降低了功耗。

影响蓝牙BLE设备功耗的几个因素 - ziye334 - ziye334的博客
影响蓝牙BLE设备功耗的几个因素 - ziye334 - ziye334的博客

在代码中,从机延时如下设置:


#define DEFAULT_DESIRED_SLAVE_LATENCY     3

uint16 desired_slave_latency = DEFAULT_DESIRED_SLAVE_LATENCY;

GAPRole_SetParameter(GAPROLE_SLAVE_LATENCY, sizeof(uint16), &desired_slave_latency );

这里设置跳过3个连接回复。

6、进入睡眠状态

在蓝牙工程Project->Options->C/C++ Compiler->Defined Symbols下的编辑框中添加POWER_SAVING,这样的话,系统就会在必要的时候进入低功耗状态了。

 

7DCDC转换芯片

  给蓝牙BLE设备添加一块DCDC降压芯片,对于TICC254x系列来说推荐配套的TPS62730芯片。这款降压芯片可以将2.0v~3.6v之间的电压转换成2.0v,而且它带有旁路电路,可以通过芯片引脚设置这款减压芯片是否降压。要知道,给芯片提供的电压越低自然也越省电。对于CC254x芯片来说,2.0v的电压可以支持芯片的程序的运行,不过如果加上射频部分就有点力不从心了,所以我们可以在射频不工作或者传感器不工作时让降压芯片工作降压成2.0v,其他情况下不降压。最简单的方式是在系统进入睡眠时,打开降压芯片加压成2.0v;当退出睡眠时,则关闭降压芯片的降压。


关闭 大豪方案承接以下业务:

单片机开发
智能家居方案开发
ARM软件开发
手机APP软件开发
电子产品电路设计
电子产品开发
无线控制系统开发
产品老化测试系统定制
单片机工控系统定制
电子产品合作开发
动静态数据采集系统
应力应变测试开发
欢迎新老客户来电咨询! 13530382506