RTT WiFi (IEEE 802.11mc)

La función Tiempo de ida y vuelta (RTT) de Wi-Fi en Android 9 permite que los dispositivos compatibles midan la distancia con respecto a otros dispositivos compatibles: ya sean puntos de acceso (AP) o pares con reconocimiento de Wi-Fi (si el reconocimiento de Wi-Fi es compatible con el dispositivo). Esta función, basada en el protocolo IEEE 802.11mc, permite que las aplicaciones utilicen una mayor precisión y conocimiento de la ubicación.

Ejemplos y fuente

Para usar esta función, implemente el Lenguaje de diseño de interfaz de hardware Wi-Fi (HIDL) proporcionado en el Proyecto de código abierto de Android (AOSP). En Android 8.0, HIDL reemplaza la estructura anterior de capa de abstracción de hardware (HAL) que se usaba para simplificar las implementaciones mediante la especificación de tipos y llamadas a métodos recopilados en interfaces y paquetes.

Siga Wi-Fi HIDL para emplear la función Wi-Fi RTT: hardware/interfaces/wifi/1.0 o posterior.

Puede consultar la HAL Wi-Fi heredada para ver cómo se correlaciona con la nueva interfaz HIDL: hardware/libhardware_legacy/+/master/include/hardware_legacy/rtt.h .

Implementación

Para implementar Wi-Fi RTT, debe proporcionar marco y compatibilidad con HAL/firmware:

  • Marco de referencia:

    • código AOSP
    • Habilitar Wi-Fi RTT: requiere un indicador de función
  • Wi-Fi RTT (IEEE 802.11mc) Soporte HAL (lo que implica soporte de firmware)

Para implementar esta función, implemente Wi-Fi HIDL y habilite el indicador de función:

  • En device.mk ubicado en device/<oem>/<device> , modifique la variable de entorno PRODUCT_COPY_FILES para incluir compatibilidad con la función 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
    

De lo contrario, todo lo necesario para esta función está incluido en AOSP.

Aleatorización MAC

Para mejorar la privacidad, la dirección MAC utilizada durante las transacciones RTT Wi-Fi debe ser aleatoria, es decir, no debe coincidir con la dirección MAC nativa de la interfaz Wi-Fi. Sin embargo, como excepción, cuando un dispositivo está asociado con un AP, puede usar la dirección MAC con la que está asociado para cualquier transacción RTT con ese AP o con otros AP.

Validación

Existen pruebas de Android Compatibility Test Suite (CTS) para esta función. CTS detecta cuando la función está habilitada e incluye automáticamente las pruebas asociadas. Esta función también se puede probar con Vendor Test Suite (VTS) y acts/sl4a , un conjunto de pruebas que realiza pruebas de integración exhaustivas.

Pruebas unitarias

Las pruebas del paquete Wi-Fi RTT se ejecutan usando:

Pruebas de servicio:

atest com.android.server.wifi.rtt

Pruebas de gerente:

atest android.net.wifi.rtt

Pruebas de integración (ACTS)

El conjunto de pruebas acts/sl4a, descrito en /tools/test/connectivity/acts_tests/tests/google/wifi/rtt/README.md , proporciona pruebas funcionales, de rendimiento y de estrés.

CTS

Existen pruebas de Android Compatibility Test Suite (CTS) para esta característica. CTS detecta cuando la función está habilitada e incluye automáticamente las pruebas asociadas. Un punto de acceso compatible con Wi-Fi RTT (IEEE 802.11mc) debe estar dentro del alcance del dispositivo bajo prueba.

Las pruebas CTS se pueden activar usando:

atest WifiRttTest

Calibración

Para que Wi-Fi RTT funcione bien, los rangos devueltos en el protocolo 802.11mc son idealmente precisos dentro del Indicador clave de rendimiento (KPI). Para el error CDF del 90 %, en los anchos de banda enumerados, se espera que el KPI recomendado para una estimación de rango tenga las siguientes tolerancias:

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

Para garantizar que la implementación de la función funcione correctamente, es necesario realizar una prueba de calibración.

Esto se puede lograr comparando un rango real en tierra con el rango estimado de RTT a distancias crecientes. Para una conformidad básica, debe validar su solución con un dispositivo que se sepa que está calibrado para RTT. La calibración del rango debe probarse bajo las siguientes condiciones:

  1. Un gran laboratorio abierto, o un pasillo que no tiene muchos objetos metálicos que pueden dar lugar a casos inusualmente altos de rutas múltiples.
  2. Al menos una pista/camino de línea de visión (LOS) que se extienda por 25 m.
  3. Marcadores de incrementos de 0,5 metros de un extremo a otro de la pista.
  4. Un lugar para asegurar un punto de acceso compatible con RTT en un extremo de la pista montado a 20 cm por encima del suelo, y un soporte móvil para un teléfono Android (u otro dispositivo móvil Android bajo prueba) que se puede mover a lo largo de la pista y alinear con el Marcadores de 0,5 m, también a 20 cm del suelo. Nota: esta tarea repetitiva puede realizarla un robot pequeño, pero un operador humano también está bien.
  5. Se deben registrar 50 resultados de alcance en cada marcador, junto con la distancia desde el punto de acceso. Las estadísticas, como la media del rango y la varianza, deben calcularse para cada posición del marcador.

A partir de los resultados del paso 5, se puede dibujar un gráfico para la realidad del terreno (eje x) contra el rango estimado (eje y) y se estima una línea de regresión de mejor ajuste. La calibración ideal del dispositivo dará como resultado una línea de pendiente 1,0, con un desplazamiento de 0,0 m en el eje y. Las desviaciones de estos valores son aceptables si están dentro del KPI para el ancho de banda correspondiente. Si los resultados están fuera del KPI, la función del dispositivo debe recalibrarse para que los resultados estén dentro de la especificación del KPI.