KW45 RSSI 值的獲取方法

    首先簡單介紹一下 RSSI,英文全稱是 Received Signal Strength Indication,中文釋義為接收的信號強度指示,RSSI 的基本屬性是一種定位技術,通過接收到的信號強弱測定信號點與接收點的距離,進而根據相應數據進行定位計算,RSSI 值的計量單位是 dBm,是一個表示功率絕對值的單位,其計算公式為 10lg(功率值/1mw),所以 RSSI值一般為負數,最大值為理想狀態下的 0dBm。對 RSSI 的基本概念有了一個了解之後,我們再通過 NXP KW45 去嘗試獲取這個 RSSI 值看看。

  • 硬體環境:KW45B41Z_EVK 板

  • 軟體環境:kw45b41zevk_wireless_uart_freertos         

  • 代碼內容:

1. 將 gUseControllerNotifications_c 宏置 1,使能 Controller 下的 adv/scan/connection 通知。
/* Enable/Disable Controller Adv/Scan/Connection Notifications */
#ifndef gUseControllerNotifications_c
#define gUseControllerNotifications_c 1
#endif


2.  RSSI 獲取接口,通過 RX event types 下的 rssi 接口,可以獲取到 RSSI 值。


3. 在 BleApp_HandleControllerNotification 函數中,通過 gNotifConnRxPdu_c 通知事件,就可以一直獲取連接狀態下非空數據包的 RSSI 值。


4. 之後我們可以使用手機上的 NXP IoT Toolbox app 中的 WirelessUART 與 KW45_EVK 板進行 BLE 連接,連接成功後,串口會一直列印實時的 RSSI 值,因為這裡給出來的是無符號 uint 類型的 RSSI 值,而實際的 RSSI 值都是負數值,所以需要將該值取補碼才是我們標準的 rssi_value(dBm)。




    以上就是對 KW45 RSSI 值獲取的一個介紹,通常來說, RSSI 值是比較不穩定的,因為受環境因素的影響較大,所以如果用來做定位的時候,需要對其進行濾波後才能保證定位更加精準。


參考資料:
  • Bluetooth Low Energy Application Developer's Guide

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論