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

Функция Wi-Fi Round Trip Time (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, чтобы использовать функцию Wi-Fi RTT. В зависимости от того, какой интерфейс реализован, это:

  • AIDL: hardware/interfaces/wifi/aidl
  • HIDL: hardware/interfaces/wifi/1.0 или более поздняя версия.

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

Выполнение

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

  • Рамки:

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

Чтобы реализовать эту функцию, реализуйте интерфейс 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-адрес, используемый во время транзакций Wi-Fi RTT, должен быть рандомизирован, то есть он не должен совпадать с собственным MAC-адресом интерфейса Wi-Fi. Однако, в качестве исключения, когда устройство связано с точкой доступа, оно может использовать MAC-адрес, с которым оно связано, для любых транзакций RTT с этой точкой доступа или с другими точками доступа.

Проверка

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

Тесты модулей

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

Сервисные испытания:

atest com.android.server.wifi.rtt

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

atest android.net.wifi.rtt

КТС

Для этой функции существуют тесты 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.