孫中杰
(南京矽力微電子技術有限公司,江蘇 南京 210042)
近幾十年,隨著互聯網應用的爆炸式增長,新興的小型化互聯網設備也越來越多。這些小型化互聯網設備,大多具備云端通信、語音識別、自組網等功能,進一步提高了人們的生活質量。物聯網應用需要多種通信技術,其中低功耗藍牙(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的功耗。
在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門限選擇的基礎之上,添加了功率控制的算法,即在設備之間距離較近時,此時設備通信的吞吐量基本趨于極限。此時可以適當降低設備的發射功率,只要能夠維持吞吐量極限即可。通過降低設備的發射功率,能夠降低設備的功耗,同時也能降低對周圍設備的干擾。
本文選用nRF52840芯片作為實驗芯片,nRF52840符合BLE 5.0標準,能夠完成PHY Update Procedure等多個流程的實施。表1給出了實驗時nRF52840的基本參數配置。

表1 nRF52840實驗參數一覽表
圖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變化的情況下,動態選擇最優的速率進行通信,以此保證通信的吞吐量最大。
本文在目前傳統單一速率通信的基礎上,提出一種基于RSSI門限的BLE速率自適應算法,通過RSSI門限動態選擇BLE的發射功率和速率,自適應地選擇最優速率進行通信,從而提高系統的吞吐量。同時在高吞吐量區域使用功率控制,能夠降低BLE的功耗;并且通過nRF52840芯片進行實際測試。通過測試數據來看,算法能夠達到預期效果,在-40 dBm情況下保持318 Kb/s的吞吐量。