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

Функция измерения времени кругового пути Wi-Fi (RTT) в Android 9 позволяет устройствам, поддерживающим эту технологию, измерять расстояние до других устройств, поддерживающих её: будь то точки доступа (AP) или устройства, поддерживающие Wi-Fi Aware (если Wi-Fi Aware поддерживается на устройстве). Эта функция, основанная на протоколах IEEE 802.11mc и IEEE 802.11az (доступных начиная с Android 15), позволяет приложениям использовать повышенную точность и осведомленность о местоположении.

Примеры и источник

Для использования этой функции необходимо реализовать интерфейс Vendor HAL. В Android 14 и выше интерфейс Vendor HAL определяется с помощью AIDL. В Android 13 и ниже интерфейс Vendor HAL определяется с помощью HIDL. В Android 8.0 HIDL заменил предыдущую структуру Hardware Abstraction Layer (HAL), которая использовалась для упрощения реализаций путем указания типов и вызовов методов, собранных в интерфейсы и пакеты.

Для использования функции Wi-Fi RTT следуйте инструкциям в интерфейсе Wi-Fi. В зависимости от используемого интерфейса, это будет выглядеть следующим образом:

  • AIDL: hardware/interfaces/wifi/aidl
  • HIDL: hardware/interfaces/wifi/1.0 or later.

Чтобы увидеть, как он соотносится с интерфейсами AIDL и HIDL, вы можете обратиться к устаревшему HAL Wi-Fi: hardware/libhardware_legacy/+/android17-release/include/hardware_legacy/rtt.h .

Выполнение

Для реализации Wi-Fi RTT необходимо обеспечить поддержку как со стороны фреймворка, так и со стороны HAL/прошивки:

  • Рамки:

    • Код AOSP
    • Включение Wi-Fi RTT: требуется флаг функции.
  • Поддержка HAL для Wi-Fi RTT (IEEE 802.11mc или IEEE 802.11az) (что подразумевает поддержку через прошивку).

Для реализации этой функции необходимо реализовать интерфейс Wi-Fi AIDL или HIDL и включить соответствующий флаг:

  • В device.mk расположенном в device/<oem>/<device> , измените переменную среды PRODUCT_COPY_FILES , чтобы включить поддержку функции 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
    

В остальном, все необходимое для работы этой функции включено в AOSP.

рандомизация MAC

Для повышения конфиденциальности MAC-адрес, используемый во время транзакций RTT по Wi-Fi, должен быть случайным, то есть он не должен совпадать со встроенным MAC-адресом интерфейса Wi-Fi. Однако, в качестве исключения, если устройство подключено к точке доступа, оно может использовать MAC-адрес, с которым оно подключено, для любых транзакций RTT с этой точкой доступа или с другими точками доступа.

Валидация

Для этой функции существуют тесты из набора тестов совместимости Android (CTS). CTS определяет, когда функция включена, и автоматически включает соответствующие тесты. Эту функцию также можно протестировать с помощью набора тестов поставщика (VTS) .

модульные тесты

Тестирование пакета Wi-Fi RTT выполняется с использованием следующих методов:

Тесты сервиса:

atest com.android.server.wifi.rtt

Тесты менеджера:

atest android.net.wifi.rtt

CTS

Для этой функции существуют тесты из набора Android Compatibility Test Suite (CTS). CTS определяет, когда функция включена, и автоматически включает соответствующие тесты. Точка доступа, поддерживающая Wi-Fi RTT (IEEE 802.11mc), должна находиться в зоне действия тестируемого устройства.

Тесты CTS можно запустить с помощью следующих команд:

atest WifiRttTest

Калибровка

Для обеспечения корректной работы Wi-Fi RTT диапазоны, возвращаемые протоколами 802.11mc или 802.11az, должны точно соответствовать ключевым показателям производительности (KPI), описанным в этом разделе.

Для протокола 11mc при указанных полосах пропускания (80 МГц, 40 МГц, 20 МГц) и размере пакета 8 ожидается, что KPI для оценки дальности достигнет следующей точности на 90-м процентиле погрешности.

  • 80 МГц: 2 метра
  • 40 МГц: 4 метра
  • 20 МГц: 8 метров

Для протокола 11az конфигурация MIMO-антенны и частота повторения длинного обучающего поля (LTF) влияют на точность. В типичном мобильном телефоне (с использованием 2 антенн) и точке доступа (с 4 антеннами) система имеет конфигурацию MIMO 2x4. Для такой конфигурации с коэффициентом повторения LTF, равным двум, и при указанных полосах пропускания (160 МГц, 80 МГц, 40 МГц, 20 МГц) ожидается, что KPI для оценки дальности достигнет следующей точности на 90-м процентиле погрешности.

  • 160 МГц: 0,5 метра
  • 80 МГц: 1 метр
  • 40 МГц: 2 метра
  • 20 МГц: 4 метра

Для проверки корректности работы данной функции необходимо провести калибровочное тестирование.

Этого можно достичь, сравнивая истинную дальность с оценочной дальностью RTT на возрастающих расстояниях. Для обеспечения базового соответствия мы рекомендуем проверить ваше решение на устройстве, заведомо откалиброванном по RTT. Мы рекомендуем тестировать калибровку дальности в следующих условиях:

  1. Большая открытая лаборатория или коридор, в котором мало металлических предметов, могут привести к необычно высокой частоте многолучевого распространения.
  2. По крайней мере, имеется прямая видимость (LOS) на протяжении 25 м.
  3. Маркеры с шагом 0,5 метра от одного конца дорожки до другого.
  4. Место для установки точки доступа с поддержкой RTT на одном конце направляющей, на высоте 20 см над полом, и подвижное крепление для телефона Android (или другого тестируемого мобильного устройства Android), которое можно перемещать вдоль направляющей и выравнивать по отметкам 0,5 м, также на высоте 20 см над полом.

  5. Мы рекомендуем записывать 50 результатов измерения расстояния до каждой отметки, а также расстояние от точки доступа. Для каждой позиции отметки следует рассчитать статистические показатели, такие как среднее значение и дисперсия расстояния.

На основе результатов шага 5 можно построить график зависимости истинного значения (ось X) от расчетного диапазона (ось Y) и оценить линию регрессии наилучшего соответствия. Идеальная калибровка устройства приведет к линии с градиентом 1,0 и смещением 0,0 м по оси Y. Отклонения от этих значений допустимы, если они находятся в пределах KPI для соответствующей полосы пропускания. Если результаты выходят за пределы KPI, мы рекомендуем перекалибровать функцию устройства, чтобы привести результаты в соответствие со спецификацией KPI.