Wi-Fi RTT (IEEE 802.11mc)

Funkcja Wi-Fi Round Trip Time (RTT) w systemie Android 9 umożliwia obsługującym urządzeniom mierzenie odległości do innych obsługujących urządzeń: niezależnie od tego, czy są to punkty dostępowe (AP), czy urządzenia równorzędne Wi-Fi Aware (jeśli Wi-Fi Aware jest obsługiwane w systemie urządzenie). Ta funkcja, oparta na protokole IEEE 802.11mc, umożliwia aplikacjom korzystanie z większej dokładności i świadomości lokalizacji.

Przykłady i źródło

Aby skorzystać z tej funkcji, zaimplementuj interfejs HAL dostawcy. W Androidzie 14 i nowszych interfejs HAL dostawcy jest definiowany przy użyciu AIDL. W systemie Android 13 i starszych interfejs HAL dostawcy jest definiowany przy użyciu języka HIDL. W systemie Android 8.0 język HIDL zastąpił poprzednią strukturę warstwy abstrakcji sprzętu (HAL) używaną do usprawnienia implementacji poprzez określenie typów i wywołań metod zebranych w interfejsach i pakietach.

Postępuj zgodnie z interfejsem Wi-Fi, aby skorzystać z funkcji Wi-Fi RTT. W zależności od tego, który interfejs jest zaimplementowany, jest to:

  • AIDL: hardware/interfaces/wifi/aidl
  • HIDL: hardware/interfaces/wifi/1.0 lub nowszy.

Możesz zapoznać się ze starszą wersją HAL Wi-Fi, aby zobaczyć, jak koreluje ona z interfejsami AIDL i HIDL: hardware/libhardware_legacy/+/main/include/hardware_legacy/rtt.h .

Realizacja

Aby zaimplementować Wi-Fi RTT, musisz zapewnić obsługę zarówno frameworku, jak i HAL/oprogramowania sprzętowego:

  • Struktura:

    • Kod AOSP
    • Włącz Wi-Fi RTT: wymaga flagi funkcji
  • Obsługa Wi-Fi RTT (IEEE 802.11mc) HAL (co oznacza obsługę oprogramowania sprzętowego)

Aby zaimplementować tę funkcję, zaimplementuj interfejs Wi-Fi AIDL lub HIDL i włącz flagę funkcji:

  • W device.mk znajdującym się w device/<oem>/<device> zmodyfikuj zmienną środowiskową PRODUCT_COPY_FILES , aby uwzględnić obsługę funkcji 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
    

W przeciwnym razie wszystko, co jest wymagane dla tej funkcji, jest zawarte w AOSP.

Randomizacja MAC

Aby zwiększyć prywatność, adres MAC używany podczas transakcji Wi-Fi RTT musi być losowy, tj. nie może odpowiadać natywnemu adresowi MAC interfejsu Wi-Fi. Jednakże w drodze wyjątku, gdy urządzenie jest powiązane z punktem dostępowym, może ono używać adresu MAC, z którym jest powiązane do wszelkich transakcji RTT z tym punktem dostępowym lub z innymi punktami dostępowymi.

Walidacja

Dla tej funkcji istnieją testy pakietu testów zgodności systemu Android (CTS). CTS wykrywa, kiedy funkcja jest włączona i automatycznie uwzględnia powiązane testy. Tę funkcję można również przetestować za pomocą pakietu Vendor Test Suite (VTS) i Acts/sl4a , zestawu testów, który przeprowadza obszerne testy integracyjne.

Testy jednostkowe

Testy pakietu Wi-Fi RTT są wykonywane przy użyciu:

Testy serwisowe:

atest com.android.server.wifi.rtt

Testy menadżerskie:

atest android.net.wifi.rtt

Testy integracyjne (ACTS).

Zestaw testów acts/sl4a, opisany w /tools/test/connectivity/acts_tests/tests/google/wifi/rtt/README.md , zapewnia testy funkcjonalne, wydajnościowe i obciążeniowe.

CTS

Dla tej funkcji istnieją testy pakietu testów zgodności systemu Android (CTS). CTS wykrywa, kiedy funkcja jest włączona i automatycznie uwzględnia powiązane testy. Punkt dostępu obsługujący Wi-Fi RTT (IEEE 802.11mc) musi znajdować się w zasięgu testowanego urządzenia.

Testy CTS można wywołać za pomocą:

atest WifiRttTest

Kalibrowanie

Aby Wi-Fi RTT działało dobrze, zakresy zwracane w protokole 802.11mc są idealnie dokładne w ramach kluczowego wskaźnika wydajności (KPI). W przypadku błędu CDF 90%, przy podanych szerokościach pasma, oczekuje się, że zalecany KPI dla oszacowania zakresu będzie miał następujące tolerancje:

  • 80 MHz: 2 metry
  • 40 MHz: 4 metry
  • 20 MHz: 8 metrów

Aby mieć pewność, że implementacja tej funkcji działa prawidłowo, konieczne są testy kalibracyjne.

Można to osiągnąć poprzez porównanie rzeczywistego zasięgu z szacunkowym zasięgiem RTT przy rosnących odległościach. Aby uzyskać podstawową zgodność, należy sprawdzić swoje rozwiązanie na urządzeniu kalibrowanym RTT. Kalibrację zakresu należy testować w następujących warunkach:

  1. Duże otwarte laboratorium lub korytarz, w którym nie ma zbyt wielu metalowych przedmiotów, co może powodować niezwykle częste występowanie wielościeżek.
  2. Przynajmniej tor/ścieżka w zasięgu wzroku (LOS) rozciągająca się na długość 25 m.
  3. Znaczniki co 0,5 metra od jednego końca toru do drugiego.
  4. Miejsce do zabezpieczenia punktu dostępu obsługującego RTT na jednym końcu toru, zamontowanego 20 cm nad podłogą oraz ruchomy uchwyt na telefon z systemem Android (lub inne testowane urządzenie mobilne z systemem Android), który można przesuwać wzdłuż toru i dopasowywać do Znaczniki 0,5 m, również 20 cm nad podłogą. Uwaga: to powtarzalne zadanie może wykonać mały robot, ale operator-człowiek też sobie poradzi.
  5. Przy każdym znaczniku należy zapisać 50 wyników pomiaru odległości wraz z odległością od punktu dostępu. Dla każdej pozycji znacznika należy obliczyć statystyki, takie jak średnia zakresu i wariancja.

Na podstawie wyników uzyskanych w kroku 5 można narysować wykres prawdy podstawowej (oś x) w porównaniu z szacowanym zakresem (oś y) i oszacowaną linią regresji według najlepszego dopasowania. Idealna kalibracja urządzenia spowoduje powstanie linii o nachyleniu 1,0 z przesunięciem 0,0 m na osi Y. Odchylenia od tych wartości są dopuszczalne, jeśli mieszczą się w KPI dla odpowiedniej przepustowości. Jeśli wyniki wykraczają poza KPI, należy ponownie skalibrować funkcję urządzenia, aby wyniki mieściły się w specyfikacji KPI.