Wi-Fi RTT (IEEE 802.11mc)

El Tiempo de ida y vuelta (RTT) de Wi-Fi de Android 9 permite que los dispositivos compatibles medir una distancia a otros dispositivos compatibles: si son puntos de acceso (PA) o pares de Wi-Fi Aware (si Wi-Fi Aware) es compatible con el dispositivo). Esta función, compilada según el estándar IEEE 802.11mc permite que las apps usen el reconocimiento y la precisión de la ubicación.

Ejemplos y fuente

Para usar esta función, implementa la interfaz de la HAL del proveedor. En Android 14 y versiones posteriores, la interfaz de la HAL del proveedor se define con el AIDL. En Android 13 y versiones anteriores, la interfaz de la HAL del proveedor se define con el HIDL. En Android 8.0, el uso de HIDL reemplazó la estructura anterior de la capa de abstracción de hardware (HAL) que se usaba para para optimizar las implementaciones especificando los tipos y las llamadas de método que se recopilan interfaces y paquetes.

Sigue la interfaz Wi-Fi para emplear la función Wi-Fi RTT. Según la interfaz que se implemente, sucederá lo siguiente:

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

Puedes consultar la HAL de Wi-Fi heredada para ver cómo se correlaciona con la Interfaces de AIDL y HIDL: hardware/libhardware_legacy/+/main/include/hardware_legacy/rtt.h.

Implementación

Para implementar Wi-Fi RTT, debes proporcionar el framework y la HAL/firmware soporte:

  • Marco de trabajo:

    • Código del AOSP
    • Habilitar Wi-Fi RTT: Requiere una marca de función.
  • Compatibilidad con HAL de Wi-Fi RTT (IEEE 802.11mc), lo que implica compatibilidad con firmware

Para implementar esta función, implementa la interfaz Wi-Fi AIDL o HIDL. y habilita la marca de función:

  • En device.mk, ubicado en device/<oem>/<device>, modifica el Variable de entorno PRODUCT_COPY_FILES para incluir compatibilidad con Wi-Fi Función de 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 se incluye en el AOSP.

Aleatorización de MAC

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

Validación

Existen pruebas del Conjunto de pruebas de compatibilidad (CTS) de Android para esta función. El CTS detecta Cuando se habilita la función y se incluyen automáticamente las pruebas asociadas. Esta función también se puede probar con Conjunto de pruebas de proveedores (VTS).

Pruebas de unidades

Las pruebas del paquete Wi-Fi RTT se ejecutan con lo siguiente:

Pruebas de servicio:

atest com.android.server.wifi.rtt

Pruebas del administrador:

atest android.net.wifi.rtt

CTS

Existen pruebas del Conjunto de pruebas de compatibilidad (CTS) de Android para esta función. El CTS detecta Cuando se habilita la función y se incluyen automáticamente las pruebas asociadas. Los El punto de acceso compatible con Wi-Fi RTT (IEEE 802.11mc) debe estar dentro del rango de el dispositivo que está a prueba.

Las pruebas del CTS se pueden activar usando lo siguiente:

atest WifiRttTest

Calibración

Para que Wi-Fi RTT tenga un buen rendimiento, los rangos devueltos por el protocolo 802.11mc son idealmente precisas dentro del indicador clave de rendimiento (KPI). Para el 90% de CDF en los anchos de banda indicados, el KPI recomendado para una estimación de rango es debe tener las siguientes tolerancias:

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

Para garantizar que la implementación de la función se realice correctamente, la calibración se necesitan pruebas.

Esto se puede lograr comparando un rango de verdad fundamental con el RTT estimado a distancias crecientes. Para un cumplimiento básico, debes validar tu en un dispositivo calibrado con RTT. La calibración de rango debe probarse en las siguientes condiciones:

  1. Un laboratorio abierto grande o un pasillo que no tiene mucho metal que pueden generar casos inusualmente altos de rutas múltiples.
  2. Al menos una ruta de línea de visión (LOS) o una ruta de 25 m de extensión.
  3. Marcadores con incrementos de 0,5 metros de un extremo de la pista al otro
  4. Un lugar para asegurar un punto de acceso capaz de RTT en un extremo de la pista montado a 20 cm del suelo y un soporte móvil para un teléfono Android (u otro dispositivo móvil Android sometido a prueba) que se pueda mover a lo largo del y alineado con los marcadores de 0.5 m, también a 20 cm de altura hasta el piso.

  5. Se deben registrar 50 resultados de rango en cada marcador, junto con el distancia desde el punto de acceso. Las estadísticas, como la media y la varianza del rango, para cada posición del marcador.

A partir de los resultados del paso 5, se puede dibujar un gráfico de la verdad fundamental (eje x) con el rango estimado (eje Y) y la línea de regresión de mejor ajuste estimado. Ideales la calibración del dispositivo generará una línea de gradiente de 1.0, con un desplazamiento de 0.0m activado el eje Y. Se aceptan desviaciones de estos valores si se encuentran dentro del KPI para el ancho de banda correspondiente. Si los resultados están fuera del KPI, se debe recalibrar la función del dispositivo para que los resultados estén dentro del KPI especificación.