基于RSSI门限的BLE速率自适应算法
2022-09-19孙中杰
孙中杰
(南京矽力微电子技术有限公司,江苏 南京 210042)
0 引 言
近几十年,随着互联网应用的爆炸式增长,新兴的小型化互联网设备也越来越多。这些小型化互联网设备,大多具备云端通信、语音识别、自组网等功能,进一步提高了人们的生活质量。物联网应用需要多种通信技术,其中低功耗蓝牙(Bluetooth Low Energy, BLE)作为一种重要的短程无线电技术,在物联网中发挥着不可或缺的作用。
BLE是一种节能、低功耗、低成本、不太复杂的短程无线电技术,设计之初被用于轻量级的短程数据交换。BLE在各个应用领域具有适用性,因此获得了很大范围的普及。2006年,BLE由诺基亚首次引入,并在2010年被添加到蓝牙4.0核心规范中。此后多个版本被标准化,BLE的整体性能也在版本的升级中得到优化。Bluetooth Special Interest Group(SIG)于2016年发布了BLE 5.0版本,并于2021年发布了BLE 5.3版本,以满足即将到来的物联网应用浪潮的多功能需求。BLE 5.0蓝牙规范不像以前的版本(蓝牙规范4.2)只提供1 Mb/s的数据速率,而是新增了三个速率选项:2 Mb/s、500 Kb/s和125 Kb/s。其中后两者与物理层编码相结合,虽然牺牲了数据通信的吞吐量,但是提高了通信可靠性。此外,BLE 5.0蓝牙规范还将最大传输功率从10 dBm提高到20 dBm。实际应用中,由于BLE 5.0的通信速率和传输功率有了更多选择,可以对这两个参数进行自适应控制,能够在不牺牲通信质量的情况下进一步提高系统的整体性能,同时降低系统的功耗。
然而,目前关于BLE 5.0的速率自适应控制算法的研究较少。Badihi等人研究了BLE 5.0中的多个速率在实际办公环境中的传输效率,包括通信的吞吐量和功耗等性能。Bocker等人从跳频算法等方面,论证了BLE 5.0对复杂通信场合的适用性。Karvonen等人通过nRF52840实物测试,得出了BLE 5.0与BLE 4.0的性能评估数据。Pau等人提出了一种基于模糊逻辑的优化方案,通过使用模糊逻辑控制器改变传输功率来管理BLE 5.0中的功耗。Sheikh等人着重分析了BLE 5.0中不同PHY模式速率之间的权衡及其对功耗和吞吐量的影响。以上研究重点论证了BLE 5.0新的突出性能,并没有针对其新特性进行过多的优化研究。尤其在BLE 5.0数据速率有更多选择的情况下,关于如何利用速率和功率进行自适应控制的研究并不多。
本文提出一种基于RSSI门限的BLE速率自适应算法,通过RSSI门限动态选择BLE的发射功率和速率,自适应地选择最优速率进行通信,从而提高系统的吞吐量。同时在高吞吐量区域使用发射功率控制,以此来降低BLE的功耗。
1 基于RSSI门限的BLE速率自适应算法
在BLE 4.0协议中,设备的传输速率恒定为1 Mb/s。在BLE 5.0协议中,设备的传输速率变为四种:1 Mb/s、2 Mb/s、500 Kb/s、125 Kb/s。
根据香农定理:
其中:是信道容量;是信道带宽;SNR是信噪比。
由于部分新加的低速率(500 Kb/s、125 Kb/s)比原有的1 Mb/s速率低,根据香农定理得出,原有设备的发射功率会低于低速率设备的发射功率。
在BLE 5.0蓝牙规范中,提出了速率切换的基本方式,即通过PHY Update Procedure进行速率切换。基本的切换流程如图1所示,两个设备进入连接状态后,由其中的一个设备发起PHY Update Procedure流程,首先发送LL_PHY_REQ包,用来告知对方其希望切换的通信速率;接收方通过回复LL_PHY_RSP包告知是否支持该通信速率;最后通过LL_PHY_UPDATE_IND完成双方的速率切换,使得双方设备能够顺利切换到新的通信速率。
图1 PHY Update Procedure速率切换流程
PHY Update Procedure能够完成多种速率的切换,但是在切换之前必须保证双方设备都能够支持即将切换到的通信速率。在不同的环境中,例如双方设备距离不同时,可以动态地使用该流程进行速率切换,保证通信双方拥有最优的通信吞吐率。
在BLE 5.0蓝牙规范中,还提出了功率控制的基本方式,即通过Power Control Request Procedure进行功率控制。流程如图2所示,即通过LL_POWER_CONTROL_REQ和LL_POWER_CONTROL_RSP的交互,让设备双方在保证通信质量的前提下,尽可能减小发射功率。
图2 Power Control Request Procedure流程
本文在上述两种流程的基础上,提出了一种基于RSSI门限的BLE速率自适应算法,具体流程如图3所示。该算法首先获取处于连接状态的对方设备RSSI值,然后根据设置好的RSSI门限值进行速率的选择。如果当前RSSI值在RSSI_500K的门限之下,则选择125 Kb/s的传输速率;如果当前RSSI值在RSSI_500K的门限和RSSI_1M门限之间,则选择500 Kb/s的传输速率;如果当前RSSI值在RSSI_1M的门限和RSSI_2M门限之间,则选择1 Mb/s的传输速率;如果当前RSSI值在RSSI_2M的门限之上,则选择2 Mb/s的传输速率,同时进行设备之间的功率控制。需要注意的是,每个速率选择前应该维持当前速率一段时间,确保RSSI值在这段时间内没有区域的变化。该速率自适应算法能够保证在RSSI值的变化中,达到连接设备之间通信吞吐量的最大化。
图3 基于RSSI门限的BLE速率自适应算法流程
本算法在RSSI_2M门限选择的基础之上,添加了功率控制的算法,即在设备之间距离较近时,此时设备通信的吞吐量基本趋于极限。此时可以适当降低设备的发射功率,只要能够维持吞吐量极限即可。通过降低设备的发射功率,能够降低设备的功耗,同时也能降低对周围设备的干扰。
2 测试与分析
2.1 测试参数
本文选用nRF52840芯片作为实验芯片,nRF52840符合BLE 5.0标准,能够完成PHY Update Procedure等多个流程的实施。表1给出了实验时nRF52840的基本参数配置。
表1 nRF52840实验参数一览表
2.2 测试结果
图4反映了nRF52840芯片在不同的速率下, 其传输功率和功耗的关系。在同样的传输功率下,采用2 Mb/s的速率进行通信时,具备最低的功耗;而采用125 Kb/s的速率进行通信时,具备最高的功耗。同时在传输速率固定的情况下,传输功率越大,其消耗的能量也越大。
图4 nRF52840芯片传输功率和功耗的关系
图5给出了传统单一速率下RSSI值与吞吐量的关系。由图可以看出,在RSSI大于-83 dBm时,2 Mb/s的吞吐量最优;在RSSI位于-83~-90 dBm时,1 Mb/s的吞吐量最优;在RSSI位于-90~-98 dBm时,500 Kb/s的吞吐量最优;在RSSI小于-98 dBm时,125 Kb/s的吞吐量最优。同时,在RSSI大于-55 dBm时,设备吞吐量变化也不大,即使RSSI变大,也不会大幅度提高设备的吐吞量。
图5 单一速率下RSSI与吞吐量的关系
根据图5,本文算法选取RSSI_2M值为-83 dBm,RSSI_1M值 为-90 dBm,RSSI_500K值 为-98 dBm,RSSI_2M_POWER值为-55 dBm。
图6为采用本文算法在nRF52840芯片上测试出的 RSSI与吞吐量的关系。从图中可以看出,RSSI值在RSSI_500K的门限之下,则选择125 Kb/s的传输速率;如果当前RSSI值在RSSI_500K的门限和RSSI_1M门限之间,则选择500 Kb/s的传输速率;如果当前RSSI值在RSSI_1M的门限和RSSI_2M门限之间,则选择1 Mb/s的传输速率;如果当前RSSI值在RSSI_2M的门限之上,则选择2 Mb/s的传输速率,同时进行设备之间的功率控制。功率控制的门限为-55 dBm,此时设备进行发射功率调整,只要能够维持吞吐量极限即可。从图中还可以看出,最高的吞吐量可达318 Kb/s。
图6 速率自适应算法下 RSSI和吞吐量的关系
通过测试数据可知,本文提出的速率自适应算法能够在RSSI变化的情况下,动态选择最优的速率进行通信,以此保证通信的吞吐量最大。
3 结 语
本文在目前传统单一速率通信的基础上,提出一种基于RSSI门限的BLE速率自适应算法,通过RSSI门限动态选择BLE的发射功率和速率,自适应地选择最优速率进行通信,从而提高系统的吞吐量。同时在高吞吐量区域使用功率控制,能够降低BLE的功耗;并且通过nRF52840芯片进行实际测试。通过测试数据来看,算法能够达到预期效果,在-40 dBm情况下保持318 Kb/s的吞吐量。