Wi‑Fi RTT (IEEE 802.11mc, IEEE 802.11az)

Mit der Funktion Wi‑Fi Round Trip Time (RTT) in Android 9 können unterstützte Geräte die Entfernung zu anderen unterstützten Geräten messen, unabhängig davon, ob es sich um Zugangspunkte (APs) oder Wi‑Fi Aware-Peers handelt (sofern Wi‑Fi Aware auf dem Gerät unterstützt wird). Diese Funktion basiert auf den Protokollen IEEE 802.11mc und IEEE 802.11az (verfügbar ab Android 15) und ermöglicht Apps eine verbesserte Standortgenauigkeit und -erkennung.

Beispiele und Quelle

Wenn Sie diese Funktion verwenden möchten, müssen Sie die HAL-Schnittstelle des Anbieters implementieren. In Android 14 und höher wird die HAL-Schnittstelle des Anbieters mit AIDL definiert. In Android 13 und niedriger wird die HAL-Schnittstelle des Anbieters mit HIDL definiert. In Android 8.0 wurde HIDL anstelle der vorherigen HAL-Struktur (Hardware Abstraction Layer) verwendet, um Implementierungen zu optimieren, indem Typen und Methodenaufrufe in Schnittstellen und Pakete aufgenommen wurden.

Folgen Sie der WLAN-Benutzeroberfläche, um die WLAN-RTT-Funktion zu verwenden. Je nach implementierter Schnittstelle ist das:

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

In der alten Wi‑Fi HAL können Sie nachsehen, wie sie mit den AIDL- und HIDL-Schnittstellen korreliert: hardware/libhardware_legacy/+/main/include/hardware_legacy/rtt.h.

Implementierung

Wenn Sie Wi‑Fi RTT implementieren möchten, müssen Sie sowohl Framework- als auch HAL-/Firmware-Unterstützung bereitstellen:

  • Framework:

    • AOSP-Code
    • WLAN-RTT aktivieren: Erfordert ein Funktions-Flag
  • HAL-Unterstützung für Wi‑Fi RTT (IEEE 802.11mc oder IEEE 802.11az) (impliziert Firmware-Unterstützung)

Implementieren Sie dazu die Wi‑Fi AIDL- oder HIDL-Schnittstelle und aktivieren Sie das Feature-Flag:

  • Ändern Sie in device.mk unter device/<oem>/<device> die Umgebungsvariable PRODUCT_COPY_FILES so, dass die Unterstützung für die Wi‑Fi-RTT-Funktion enthalten ist:

    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.

MAC-Adressrandomisierung

Um den Datenschutz zu verbessern, muss die MAC-Adresse, die bei Wi‑Fi-RTT-Transaktionen verwendet wird, zufällig sein. Das bedeutet, dass sie nicht mit der nativen MAC-Adresse der WLAN-Schnittstelle übereinstimmen darf. Als Ausnahme kann ein Gerät, das mit einem ZP verknüpft ist, die MAC-Adresse, die ihm zugewiesen ist, für alle RTT-Transaktionen mit diesem ZP oder anderen ZPs verwenden.

Zertifizierungsstufe

Für diese Funktion gibt es CTS-Tests (Compatibility Test Suite). CTS erkennt, wenn die Funktion aktiviert ist, und schließt die zugehörigen Tests automatisch ein. Diese Funktion kann auch mit der Vendor Test Suite (VTS) getestet werden.

Einheitentests

Die Wi‑Fi-RTT-Pakettests werden mit folgenden Tools ausgeführt:

Diensttests:

atest com.android.server.wifi.rtt

Manager tests:

atest android.net.wifi.rtt

CTS

Für diese Funktion gibt es CTS-Tests (Compatibility Test Suite). CTS erkennt, wenn die Funktion aktiviert ist, und schließt die zugehörigen Tests automatisch ein. Ein Zugangspunkt, der Wi‑Fi RTT (IEEE 802.11mc) unterstützt, muss sich in Reichweite des zu testenden Geräts befinden.

Die CTS-Tests können mit folgenden Methoden ausgelöst werden:

atest WifiRttTest

Kalibrierung

Damit die Leistung von Wi‑Fi RTT hoch ist, sollten die in den 802.11mc- oder 802.11az-Protokollen zurückgegebenen Bereiche innerhalb der in diesem Abschnitt beschriebenen Leistungskennzahlen (KPIs) liegen.

Bei den aufgeführten Bandbreiten (80 MHz, 40 MHz, 20 MHz) und einer Burst-Größe von 8 wird für das 11mc-Protokoll mit der folgenden Genauigkeit gerechnet, wenn der Fehler beim 90. Perzentil liegt.

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

Beim 11az-Protokoll wirken sich die MIMO-Antennenkonfiguration und die Wiederholung des langen Trainingsfeldes (LTF) auf die Genauigkeit aus. Mit einem typischen Smartphone (mit 2 Antennen) und einem Zugangspunkt (4 Antennen) hat das System eine 2x4-MIMO-Konfiguration. Bei einer solchen Konfiguration mit einem LTF-Wiederholfaktor von 2 und den aufgeführten Bandbreiten (160 MHz, 80 MHz, 40 MHz, 20 MHz) wird für die KPI für eine Reichweitenschätzung voraussichtlich die folgende Genauigkeit beim 90. Perzentil des Fehlers erreicht.

  • 160 MHz:0,5 Meter
  • 80 MHz:1 Meter
  • 40 MHz:2 Meter
  • 20 MHz:4 Meter

Um sicherzustellen, dass die Implementierung der Funktion ordnungsgemäß funktioniert, sind Kalibrierungstests erforderlich.

Dazu wird ein Ground Truth-Bereich mit dem geschätzten RTT-Bereich bei zunehmenden Entfernungen verglichen. Für die grundlegende Konformität sollten Sie Ihre Lösung an einem Gerät validieren, das bekanntlich RTT-kalibriert ist. Die Bereichskalibrierung sollte unter den folgenden Bedingungen getestet werden:

  1. Ein großes offenes Labor oder ein Flur ohne viele Metallgegenstände kann zu ungewöhnlich häufigen Mehrwegeeffekten führen.
  2. Mindestens ein Sichtverbindungs-Track oder -Pfad, der sich über 25 m erstreckt.
  3. Markierungen im Abstand von 0,5 Metern von einem Ende der Strecke zum anderen.
  4. Einen Platz zum Befestigen eines RTT-fähigen Zugangspunkts an einem Ende der Schiene, 20 cm über dem Boden, und eine bewegliche Halterung für ein Android-Smartphone (oder ein anderes getestetes Android-Mobilgerät), das entlang der Schiene bewegt und mit den Markierungen von 0,5 m ausgerichtet werden kann, ebenfalls 20 cm über dem Boden.

  5. An jeder Markierung sollten 50 Ergebnisse für die Entfernungsmessung sowie die Entfernung vom Zugangspunkt erfasst werden. Statistiken wie Mittelwert und Varianz des Bereichs sollten für jede Markierungsposition berechnet werden.

Anhand der Ergebnisse aus Schritt 5 kann ein Diagramm für die Grundwahrheit (x-Achse) im Vergleich zum geschätzten Bereich (y-Achse) erstellt und eine Regressionsgerade der besten Anpassung geschätzt werden. Eine ideale Gerätekalibrierung führt zu einer Linie mit einem Steigungswinkel von 1,0 und einem Versatz von 0,0 m auf der y-Achse. Abweichungen von diesen Werten sind zulässig, wenn sie innerhalb des KPI für die entsprechende Bandbreite liegen. Wenn die Ergebnisse nicht den KPI-Anforderungen entsprechen, sollte die Gerätefunktion neu kalibriert werden, damit die Ergebnisse den KPI-Spezifikationen entsprechen.