Wi-Fi-RTT (IEEE 802.11mc)

Die WLAN Round Trip Time (RTT) in Android 9 können Geräte, Entfernung zu anderen unterstützenden Geräten messen: ob es sich um Zugangspunkte handelt (ZPs) oder mit ähnlichen WLANs (bei Verwendung von Wi-Fi Aware) auf dem Gerät unterstützt wird). Diese Funktion basiert auf dem IEEE 802.11mc -Protokolls verwenden, können Apps bessere Standortgenauigkeit und -erkennung nutzen.

Beispiele und Quelle

Implementieren Sie zur Verwendung dieser Funktion die HAL-Schnittstelle des Anbieters. Unter Android 14 und höher Die HAL-Schnittstelle des Anbieters wird mithilfe von AIDL definiert. Unter Android 13 und niedriger Die HAL-Schnittstelle des Anbieters wird mithilfe von HIDL definiert. In Android 8.0: HIDL die vorherige HAL-Struktur (Hardware Abstraktionsschicht) ersetzt hat, Implementierungen optimieren, indem Sie Typen und Methodenaufrufe angeben, Schnittstellen und Pakete.

Folgen Sie der WLAN-Benutzeroberfläche, um die WLAN-RTT-Funktion zu verwenden. Je nachdem, welche Schnittstelle implementiert ist, geschieht Folgendes:

  • AIDL: hardware/interfaces/wifi/aidl
  • HIDL: hardware/interfaces/wifi/1.0 oder höher.

Sie können dem alten WLAN-HAL entnehmen, wie er mit dem AIDL- und HIDL-Schnittstellen: hardware/libhardware_legacy/+/main/include/hardware_legacy/rtt.h

Implementierung

Zur Implementierung von Wi-Fi-RTT müssen Sie sowohl das Framework als auch HAL/Firmware bereitstellen. Support:

  • Rahmenwerk:

    • AOSP-Code
    • WLAN-RTT aktivieren: Funktions-Flag erforderlich
  • Wi-Fi RTT (IEEE 802.11mc) HAL-Unterstützung (was Firmware-Unterstützung impliziert)

Implementieren Sie zur Implementierung dieser Funktion die Wi-Fi AIDL- oder HIDL-Schnittstelle. und aktivieren Sie das Funktions-Flag:

  • Ändern Sie in device.mk in device/<oem>/<device> die PRODUCT_COPY_FILES-Umgebungsvariable zur Unterstützung von WLAN RTT-Funktion:

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

Andernfalls ist alles, was für diese Funktion erforderlich ist, in AOSP enthalten.

Randomisierung bei MAC

Um den Datenschutz zu verbessern, muss die bei WLAN-RTT-Transaktionen verwendete MAC-Adresse lauten: zufällig angeordnet, d. h., sie darf nicht mit der nativen MAC-Adresse des WLANs übereinstimmen. . Wenn ein Gerät jedoch mit einem ZP verknüpft ist, kann die MAC-Adresse verwenden, mit der es für alle RTT-Transaktionen verknüpft ist. mit diesem oder anderen ZPs.

Zertifizierungsstufe

Für diese Funktion gibt es CTS-Tests (Android Compatibility Test Suite). CTS erkennt wenn die Funktion aktiviert ist. Die zugehörigen Tests werden automatisch eingeschlossen. Diese Funktion kann auch mit dem Vendor Test Suite (VTS):

Einheitentests

Die Tests des WLAN-RTT-Pakets werden folgendermaßen ausgeführt:

Diensttests:

atest com.android.server.wifi.rtt

Tests für Manager:

atest android.net.wifi.rtt

Logo: CTS

Für diese Funktion gibt es CTS-Tests (Android Compatibility Test Suite). CTS erkennt wenn die Funktion aktiviert ist. Die zugehörigen Tests werden automatisch eingeschlossen. Eine Zugangspunkt, der Wi-Fi RTT (IEEE 802.11mc) unterstützt, muss sich in Reichweite das zu testende Gerät.

Die CTS-Tests können folgendermaßen ausgelöst werden:

atest WifiRttTest

Kalibrierung

Damit die WLAN-RTT eine gute Leistung erzielt, sind die im 802.11mc-Protokoll zurückgegebenen Bereiche idealerweise innerhalb des Leistungsindikators (Key Performance Indicator, KPI) genau. Für die 90% CDF wird bei den aufgeführten Bandbreiten der empfohlene KPI für eine Bereichsschätzung sollten folgende Toleranzen aufweisen:

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

Um sicherzustellen, dass die Funktion korrekt implementiert wird, Tests erforderlich sind.

Dazu wird ein Ground-Truth-Bereich mit dem geschätzten RTT-Wert verglichen. bei immer größer werdenden Entfernungen. Für die grundlegende Konformität sollten Sie für ein Gerät, das bekanntermaßen RTT-kalibriert ist. Bereichskalibrierung sollte unter folgenden Bedingungen getestet werden:

  1. Ein großes offenes Labor oder ein Korridor, in dem nicht viel Metall vorhanden ist -Objekten, die zu ungewöhnlich vielen Mehrpfaden führen können.
  2. Mindestens eine Sichtverbindung oder ein Pfad mit einer Länge von 25 m
  3. Markierungen in 0,5-Meter-Schritten von einem Ende des Tracks zum anderen.
  4. Einen Ort zum Sichern eines RTT-fähigen Zugriffspunkts an einem Ende des Tracks 20 cm über dem Boden montiert und eine bewegliche Halterung für ein Android-Smartphone (oder einem anderen zu testenden Android-Mobilgerät), das entlang der und an den 0, 5-m-Markierungen ausgerichtet, ebenfalls 20 cm darüber auf dem Boden.

  5. Für jede Markierung sollten 50 Entfernungsergebnisse aufgezeichnet werden, zusammen mit der Abstand zum Zugangspunkt. Statistiken, wie z. B. Bereichsmittelwert und Varianz, für jede Markierungsposition berechnet werden sollte.

Aus den Ergebnissen in Schritt 5 kann ein Diagramm mit Grundwahrheit erstellt werden (x-Achse). mit dem geschätzten Bereich (y-Achse) und einer geschätzten Regressionsgerade am besten anpassen. Optimal Bei der Gerätekalibrierung erscheint eine Linie mit einem Farbverlauf von 1,0 mit einem Offset von 0,0 m. auf der Y-Achse. Abweichungen von diesen Werten sind akzeptabel, wenn sie innerhalb der KPI für die entsprechende Bandbreite. Wenn die Ergebnisse außerhalb des KPI liegen, Gerätefunktion neu kalibriert werden, damit die Ergebnisse dem KPI entsprechen Spezifikation zu ändern.