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

La funzionalità Wi-Fi Round Trip Time (RTT) in Android 9 consente ai dispositivi supportati di misurare la distanza da altri dispositivi supportati: che si tratti di punti di accesso (AP) o peer Wi-Fi Aware (se Wi-Fi Aware è supportato sul dispositivo). Questa funzionalità, basata sui protocolli IEEE 802.11mc e IEEE 802.11az (disponibili da Android 15), consente alle app di utilizzare una precisione e una consapevolezza della posizione migliorate.

Esempi e origine

Per utilizzare questa funzionalità, implementa l'interfaccia HAL del fornitore. In Android 14 e versioni successive, l'interfaccia HAL del fornitore è definita utilizzando AIDL. In Android 13 e versioni precedenti, l'interfaccia HAL del fornitore è definita utilizzando HIDL. In Android 8.0, HIDL ha sostituito la precedente struttura Hardware Abstraction Layer (HAL) utilizzata per semplificare le implementazioni specificando tipi e chiamate di metodi raccolti in interfacce e pacchetti.

Segui l'interfaccia Wi-Fi per utilizzare la funzionalità Wi-Fi RTT. A seconda dell'interfaccia implementata, si tratta di:

  • AIDL: hardware/interfaces/wifi/aidl
  • HIDL: hardware/interfaces/wifi/1.0 o versioni successive.

Puoi fare riferimento all'HAL Wi-Fi legacy per vedere la correlazione con le interfacce AIDL e HIDL: hardware/libhardware_legacy/+/android16-release/include/hardware_legacy/rtt.h.

Implementazione

Per implementare Wi-Fi RTT, devi fornire il supporto sia per il framework sia per HAL/firmware:

  • Framework:

    • Codice AOSP
    • Attiva Wi-Fi RTT: richiede un flag funzionalità
  • Supporto HAL Wi-Fi RTT (IEEE 802.11mc o IEEE 802.11az) (che implica il supporto del firmware)

Per implementare questa funzionalità, implementa l'interfaccia AIDL o HIDL Wi-Fi e attiva il flag della funzionalità:

  • In device.mk, che si trova in device/<oem>/<device>, modifica la variabile di ambiente PRODUCT_COPY_FILES in modo da includere il supporto della funzionalità 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
    

In caso contrario, tutto ciò che è necessario per questa funzionalità è incluso in AOSP.

Randomizzazione dell'indirizzo MAC

Per migliorare la privacy, l'indirizzo MAC utilizzato durante le transazioni Wi-Fi RTT deve essere casualizzato, ovvero non deve corrispondere all'indirizzo MAC nativo dell'interfaccia Wi-Fi. Tuttavia, in via eccezionale, quando un dispositivo è associato a un punto di accesso, può utilizzare l'indirizzo MAC a cui è associato per qualsiasi transazione RTT con quel punto di accesso o con altri punti di accesso.

Convalida

Esistono test della suite di test di compatibilità (CTS) Android per questa funzionalità. CTS rileva quando la funzionalità è attivata e include automaticamente i test associati. Questa funzionalità può essere testata anche utilizzando la Vendor Test Suite (VTS).

Test delle unità

I test del pacchetto Wi-Fi RTT vengono eseguiti utilizzando:

Test del servizio:

atest com.android.server.wifi.rtt

Test del gestore:

atest android.net.wifi.rtt

CTS

Esistono test della suite di test di compatibilità (CTS) Android per questa funzionalità. CTS rileva quando la funzionalità è attivata e include automaticamente i test associati. Un punto di accesso che supporta Wi-Fi RTT (IEEE 802.11mc) deve trovarsi nel raggio d'azione del dispositivo in fase di test.

I test CTS possono essere attivati utilizzando:

atest WifiRttTest

Calibrazione

Per un buon rendimento del Wi-Fi RTT, gli intervalli restituiti nei protocolli 802.11mc o 802.11az devono essere precisi entro gli indicatori chiave di prestazione (KPI) come descritto in questa sezione.

Per il protocollo 11mc, alle larghezze di banda elencate (80 MHz, 40 MHz, 20 MHz) e con una dimensione del burst di 8, il KPI per una stima dell'intervallo dovrebbe raggiungere la seguente precisione al 90° percentile di errore.

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

Per il protocollo 11az, la configurazione MIMO dell'antenna e la ripetizione del campo di addestramento lungo (LTF) influiscono sulla precisione. Con un tipico cellulare (che utilizza 2 antenne) e un punto di accesso (4 antenne), il sistema ha una configurazione MIMO 2x4. Per una configurazione di questo tipo che utilizza un fattore di ripetizione LTF pari a 2 e alle larghezze di banda elencate (160 MHz, 80 MHz, 40 MHz, 20 MHz), il KPI per una stima dell'intervallo dovrebbe raggiungere la seguente precisione al 90° percentile di errore.

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

Per assicurarti che l'implementazione della funzionalità funzioni correttamente, è necessario testare la calibrazione.

Ciò può essere ottenuto confrontando un intervallo di dati di riferimento con l'intervallo RTT stimato a distanze crescenti. Per la conformità di base, devi convalidare la tua soluzione rispetto a un dispositivo noto per essere calibrato per RTT. La calibrazione del raggio deve essere testata nelle seguenti condizioni:

  1. Un grande laboratorio aperto o un corridoio con pochi oggetti metallici che potrebbero causare un numero insolitamente elevato di percorsi multipli.
  2. Almeno una traccia o un percorso in linea di vista che si estenda per 25 metri.
  3. Indicatori con incrementi di 0,5 metri da un'estremità della traccia all'altra.
  4. Un punto in cui fissare un punto di accesso compatibile con RTT a un'estremità della guida montato a 20 cm dal pavimento e un supporto mobile per uno smartphone Android (o un altro dispositivo mobile Android in fase di test) che può essere spostato lungo la guida e allineato ai segni di 0,5 m, anch'essi a 20 cm dal pavimento.

  5. A ogni marcatore devono essere registrati 50 risultati di misurazione, insieme alla distanza dal punto di accesso. Le statistiche, come la media e la varianza dell'intervallo, devono essere calcolate per ogni posizione del marcatore.

Dai risultati del passaggio 5, è possibile tracciare un grafico per i dati di riferimento (asse x) rispetto all'intervallo stimato (asse y) e stimare una retta di regressione di migliore adattamento. La calibrazione ideale del dispositivo genera una retta con pendenza 1,0 e offset 0,0 m sull'asse y. Sono accettabili deviazioni da questi valori se rientrano nel KPI per la larghezza di banda corrispondente. Se i risultati non rientrano nell'KPI, la funzionalità del dispositivo deve essere ricalibrata per riportare i risultati all'interno della specifica del KPI.