1. 程式人生 > >WLAN RTT (IEEE 802.11mc)

WLAN RTT (IEEE 802.11mc)

WLAN RTT (IEEE 802.11mc)

Android 9 中的 WLAN 往返時間 (RTT) 功能允許裝置測量與其他支援裝置的距離:無論它們是接入點 (AP) 還是 WLAN 感知對等裝置(如果裝置支援 WLAN 感知)。此功能基於 IEEE 802.11mc 協議,使應用能夠使用準確性更高的定位功能和增強的感知功能。

示例和來源

要使用此功能,請採用在 Android 開源專案 (AOSP) 中提供的 WLAN 硬體介面設計語言 (HIDL)。在 Android 8.0 中,HIDL 取代了之前使用的硬體抽象層 (HAL) 結構,以便通過指定收集到介面和軟體包的型別和方法呼叫來簡化實現流程。

藉助 WLAN HIDL 使用 WLAN RTT 功能:hardware/interfaces/wifi/1.0 或更高版本。

您可以參考舊版 WLAN HAL 來了解它與新 HIDL 介面之間的關係:hardware/libhardware_legacy/+/master/include/hardware_legacy/rtt.h

實現

要實現 WLAN RTT,您必須提供框架和 HAL/韌體支援:

  • 框架:

    • AOSP 程式碼
    • 啟用 WLAN RTT:需要功能標記
  • WLAN RTT (IEEE 802.11mc) HAL 支援(意味著韌體支援)

要實現此功能,請採用 WLAN HIDL,另外還要啟用功能標記:

  • 在位於 device/<oem>/<device> 的 device.mk 中,修改 PRODUCT_COPY_FILES 環境變數,以便支援 WLAN RTT 功能:

    PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml
     

除此以外,實現此功能所需的所有內容都會包含在 AOSP 中。

隨機分配 MAC 地址

為加強隱私保護,在 WLAN RTT 事務期間使用的 MAC 地址必須是隨機分配的地址,即不得與 WLAN 介面的原生 MAC 地址一致。不過,有一種例外情況:如果某個裝置與 AP 相關聯,則此裝置可能會使用與其相關聯的 MAC 地址來處理與此 AP 或其他 AP 之間的任何 RTT 事務。

驗證

這項功能有適用的 Android 相容性測試套件 (CTS) 測試。CTS 會檢測何時啟用了這項功能,並會自動包含相關測試。您也可以使用供應商測試套件 (VTS) 和 acts/sl4a(用於執行擴充套件程式整合測試的測試套件)來測試此功能。

單元測試

使用以下測試執行 WLAN RTT 軟體包測試:

服務測試:

% ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh -e package
com.android.server.wifi.rtt
 

Manager 測試:

% ./frameworks/base/wifi/tests/runtests.sh -e package android.net.wifi.rtt
 

整合 (ACTS) 測試

acts/sl4a 測試套件(在 /tools/test/connectivity/acts/tests/google/wifi/rtt/README.md 中有相應說明)提供了功能測試、效能測試和壓力測試。

CTS

這項功能有適用的 Android 相容性測試套件 (CTS) 測試。CTS 會檢測何時啟用了這項功能,並會自動包含相關測試。支援 WLAN RTT (IEEE 802.11mc) 的接入點必須位於被測裝置的覆蓋範圍內。

您可以使用以下命令觸發 CTS 測試:

% atest WifiRttTest
 

校準

為了確保 WLAN RTT 能夠正常執行,802.11mc 協議中返回的距離的精確度應在關鍵績效指標 (KPI) 範圍內(理想情況下)。對於所列頻寬出現的 90% 的 CDF 錯誤,針對距離估算值建議的 KPI 具有以下容差:

  • 80MHz:2 米
  • 40MHz:4 米
  • 20MHz:8 米

為確保正確實現功能,您必須進行校準測試。

您可以通過以下方式來實現這項測試:通過不斷增加距離,比較地面真實距離和 RTT 估算距離。如果真實距離和 RTT 估算距離基本一致,則您應該針對已知已進行 RTT 校準的裝置驗證解決方案。距離校準應在下列條件下進行測試:

  1. 大型開放實驗室或沒有大量金屬物體(金屬物體可能會導致多路徑異常高發)的走廊。
  2. 視線 (LOS) 路線/路徑至少要延長 25 米。
  3. 從路線一端到另一端以每次增加 0.5 米的方式標記。
  4. 選擇一個位於路線一端的位置來安裝支援 RTT 的接入點(位於地面以上 20 釐米處);一個可移動支架(也位於地面上方 20 釐米處),用於沿路線移動 Android 手機(或接受測試的其他 Android 移動裝置),可移動支架應與每隔 0.5 米出現的標記對齊。注意:這項重複性任務可由小型機器人來完成,也可以由人工操作員來完成。
  5. 每個標記處應記錄 50 個距離結果,同時應記錄相應標記距離接入點的距離。應在每個標記位置處計算統計資訊(例如距離均值和方差)。

您可以根據第 5 步中的結果繪製一個圖表,其中 X 軸為地面真實距離,Y 軸為估算距離,以及一條估算出的最合適的迴歸路線。理想的裝置校準會產生一條梯度為 1.0 的線,且 Y 軸的偏差為 0.0 米。如果這些值的偏差落在相應頻寬的 KPI 範圍內,則這些偏差是可接受的。如果結果超過 KPI 範圍,則應該重新校準裝置功能,以使結果符合 KPI 規範。