Wi-Fi RTT (IEEE 802.11mc)

The Wi-Fi Round Trip Time (RTT) feature in Android 9 enables supporting devices to measure a distance to other supporting devices: whether they are Access Points (APs) or Wi-Fi Aware peers (if Wi-Fi Aware is supported on the裝置).此功能基於 IEEE 802.11mc 協議構建,使應用程式能夠使用增強的位置準確性和感知能力。

範例和來源

若要使用此功能,請實作供應商 HAL 介面。在 Android 14 及更高版本中,Vendor HAL 介面是使用 AIDL 定義的。在 Android 13 及更低版本中,Vendor HAL 介面是使用 HIDL 定義的。在 Android 8.0 中,HIDL 取代了先前的硬體抽象層 (HAL) 結構,該結構用於透過指定收集到介面和套件中的類型和方法呼叫來簡化實作。

依照 Wi-Fi 介面使用 Wi-Fi RTT 功能。根據實現的接口,這是:

  • AIDL: hardware/interfaces/wifi/aidl
  • HIDL: hardware/interfaces/wifi/1.0或更高版本。

您可以參考舊版 Wi-Fi HAL,以了解它與 AIDL 和 HIDL 介面的關聯方式: hardware/libhardware_legacy/+/main/include/hardware_legacy/rtt.h

執行

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

  • 框架:

    • AOSP程式碼
    • 啟用 Wi-Fi RTT:需要功能標誌
  • Wi-Fi RTT (IEEE 802.11mc) HAL 支援(這意味著韌體支援)

若要實現此功能,請實現 Wi-Fi AIDL 或 HIDL 接口,並啟用功能標誌:

  • 在位於device/<oem>/<device>device.mk中,修改PRODUCT_COPY_FILES環境變數以包含對 Wi-Fi 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隨機化

為了增強隱私性,Wi-Fi RTT 事務期間使用的 MAC 位址必須是隨機的,也就是它不能與 Wi-Fi 介面的本機 MAC 位址相符。然而,作為例外,當設備與 AP 關聯時,它可以使用與其關聯的 MAC 位址來與該 AP 或其他 AP 進行任何 RTT 事務。

驗證

此功能有 Android 相容性測試套件 (CTS) 測試。 CTS 偵測何時啟用該功能並自動包含相關測試。此功能還可以使用供應商測試套件 (VTS)actions/sl4a (一個進行廣泛整合測試的測試套件)進行測試。

單元測試

Wi-Fi RTT 套件測試使用下列指令執行:

服務測試:

atest com.android.server.wifi.rtt

經理測試:

atest android.net.wifi.rtt

整合(ACTS)測試

/tools/test/connectivity/acts_tests/tests/google/wifi/rtt/README.md中所述的 Acts/sl4a 測試套件提供功能、效能和壓力測試。

CTS

此功能有 Android 相容性測試套件 (CTS) 測試。 CTS 偵測何時啟用該功能並自動包含相關測試。支援 Wi-Fi RTT (IEEE 802.11mc) 的存取點必須位於被測設備的範圍內。

可以使用以下方式觸發 CTS 測試:

atest WifiRttTest

校準

為了使 Wi-Fi RTT 表現良好,802.11mc 協定中傳回的範圍在關鍵效能指標 (KPI) 內非常準確。對於 90% CDF 誤差,在列出的頻寬下,範圍估計的建議 KPI 預計具有以下容差:

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

為了確保該功能的實現正常工作,校準測試是必要的。

這可以透過在距離增加時將地面實況範圍與 RTT 估計範圍進行比較來實現。為了實現基本一致性,您應該針對已知經過 RTT 校準的裝置驗證您的解決方案。量程校準應在以下條件下進行測試:

  1. 大型開放實驗室,或沒有大量金屬物體的走廊,可能會導致多徑發生率異常高。
  2. 至少一條延伸 25m 的視距 (LOS) 軌道/路徑。
  3. 從軌道一端到另一端的增量為 0.5 公尺的標記。
  4. 在軌道一端固定支援 RTT 的存取點(安裝在離地 20 公分處),以及一個用於 Android 手機(或其他正在測試的 Android 行動裝置)的可移動支架,可沿軌道移動並與軌道對齊0.5 m 標記,同樣位於離地面20cm 處。注意:這種重複性任務可以由小型機器人來完成,但人類操作員也可以。
  5. 應在每個標記處記錄 50 個測距結果以及與存取點的距離。應計算每個標記位置的統計數據,例如範圍平均值和變異數。

根據步驟 5 的結果,可以根據估計範圍(y 軸)和估計的最佳擬合迴歸線繪製地面實況(x 軸)圖表。理想的設備校準將產生一條梯度為 1.0 的線,y 軸上的偏移量為 0.0m。如果這些值的偏差在相應頻寬的 KPI 範圍內,則這些值的偏差是可以接受的。如果結果超出 KPI,則應重新校準設備功能以使結果符合 KPI 規範。