Wi-Fi RTT (IEEE 802.11mc)

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

La funzione Wi-Fi Round Trip Time (RTT) in Android 9 consente ai dispositivi di supporto di misurare una distanza da altri dispositivi di supporto: siano essi punti di accesso (AP) o peer Wi-Fi Aware (se Wi-Fi Aware è supportato sul dispositivo). Questa funzione, basata sul protocollo IEEE 802.11mc, consente alle app di utilizzare una maggiore precisione e consapevolezza della posizione.

Esempi e fonte

Per utilizzare questa funzione, implementa il Wi-Fi Hardware Interface Design Language (HIDL) fornito nell'Android Open Source Project (AOSP). In Android 8.0, HIDL sostituisce la precedente struttura HAL (Hardware Abstraction Layer) utilizzata per semplificare le implementazioni specificando tipi e chiamate di metodo raccolte in interfacce e pacchetti.

Segui il Wi-Fi HIDL per utilizzare la funzione Wi-Fi RTT: hardware/interfaces/wifi/1.0 o successivo.

Puoi fare riferimento all'HAL Wi-Fi legacy per vedere come si correla con la nuova interfaccia HIDL: hardware/libhardware_legacy/+/master/include/hardware_legacy/rtt.h .

Implementazione

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

  • Struttura:

    • codice ASP
    • Abilita Wi-Fi RTT: richiede un flag di funzionalità
  • Wi-Fi RTT (IEEE 802.11mc) Supporto HAL (che implica il supporto del firmware)

Per implementare questa funzione, implementa il Wi-Fi HIDL e abilita il flag della funzione:

  • In device.mk situato in device/<oem>/<device> , modifica la variabile di ambiente PRODUCT_COPY_FILES per includere il supporto per la funzione 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 funzione è incluso in AOSP.

randomizzazione MAC

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

Convalida

Esistono test di compatibilità Android Test Suite (CTS) per questa funzionalità. CTS rileva quando la funzione è abilitata e include automaticamente i test associati. Questa funzione può anche essere testata utilizzando Vendor Test Suite (VTS) e act/sl4a , una suite di test che esegue test di integrazione estensivi.

Test unitari

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

Prove di servizio:

atest com.android.server.wifi.rtt

Test manager:

atest android.net.wifi.rtt

Test di integrazione (ACTS).

La suite di test act/sl4a, descritta in /tools/test/connectivity/acts_tests/tests/google/wifi/rtt/README.md , fornisce test funzionali, prestazionali e di stress.

CTS

Esistono test di compatibilità Android Test Suite (CTS) per questa funzionalità. CTS rileva quando la funzione è abilitata e include automaticamente i test associati. Un punto di accesso che supporti Wi-Fi RTT (IEEE 802.11mc) deve trovarsi all'interno della portata del dispositivo sottoposto a test.

I test CTS possono essere attivati ​​utilizzando:

atest WifiRttTest

Calibrazione

Affinché Wi-Fi RTT funzioni bene, gli intervalli restituiti nel protocollo 802.11mc sono idealmente accurati all'interno del Key Performance Indicator (KPI). Per l'errore CDF del 90%, alle larghezze di banda elencate, il KPI consigliato per una stima dell'intervallo dovrebbe avere le seguenti tolleranze:

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

Per garantire che l'implementazione della funzione funzioni correttamente, è necessario un test di calibrazione.

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

  1. Un grande laboratorio all'aperto o un corridoio che non ha molti oggetti di metallo che possono comportare un numero insolitamente elevato di percorsi multipli.
  2. Almeno un binario/percorso Line-Of-Sight (LOS) che si estende per 25 m.
  3. Indicatori di incrementi di 0,5 metri da un'estremità all'altra della pista.
  4. Un posto per fissare un punto di accesso compatibile con RTT a un'estremità del binario montato a 20 cm dal pavimento e un supporto mobile per un telefono Android (o altro dispositivo mobile Android in prova) che può essere spostato lungo il binario e allineato con il Indicatori di 0,5 m, anche a 20 cm dal pavimento. Nota: questo compito ripetitivo può essere eseguito da un piccolo robot, ma va bene anche un operatore umano.
  5. 50 risultati di intervallo devono essere registrati su ciascun marker, insieme alla distanza dal punto di accesso. Le statistiche, come la media dell'intervallo e la varianza, devono essere calcolate per ciascuna posizione del marker.

Dai risultati del passaggio 5, è possibile tracciare un grafico per la verità fondamentale (asse x) rispetto all'intervallo stimato (asse y) e stimare una linea di regressione best fit. La calibrazione del dispositivo ideale risulterà in una linea di gradiente 1,0, con offset 0,0 m sull'asse y. Le deviazioni da questi valori sono accettabili se rientrano nel KPI per la larghezza di banda corrispondente. Se i risultati sono al di fuori del KPI, la funzione del dispositivo deve essere ricalibrata per portare i risultati all'interno della specifica KPI.