Wi-Fi RTT (IEEE 802.11mc)

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

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

Чтобы использовать эту функцию, внедрите язык проектирования аппаратного интерфейса Wi-Fi (HIDL), предоставленный в проекте Android с открытым исходным кодом (AOSP). В Android 8.0 HIDL заменяет предыдущую структуру аппаратного уровня абстракции (HAL), используемую для упрощения реализации путем указания типов и вызовов методов, собранных в интерфейсы и пакеты.

Следуйте Wi-Fi HIDL, чтобы использовать функцию Wi-Fi RTT: hardware/interfaces/wifi/1.0 или более поздняя версия.

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

Реализация

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

  • Рамки:

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

Чтобы реализовать эту функцию, внедрите Wi-Fi 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) и act/sl4a , набора тестов, который проводит обширное интеграционное тестирование.

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

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

Сервисные тесты:

atest com.android.server.wifi.rtt

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

atest android.net.wifi.rtt

Интеграционные (ACTS) тесты

Набор тестов act/sl4a, описанный в /tools/test/connectivity/acts_tests/tests/google/wifi/rtt/README.md , обеспечивает функциональные тесты, тесты производительности и стресс-тесты.

КТС

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

Тесты CTS могут быть запущены с помощью:

atest WifiRttTest

Калибровка

Чтобы Wi-Fi RTT работал хорошо, диапазоны, возвращаемые в протоколе 802.11mc, идеально точны в пределах ключевого показателя эффективности (KPI). Ожидается, что для 90-процентной ошибки CDF при указанных полосах пропускания рекомендуемый KPI для оценки диапазона будет иметь следующие допуски:

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

Чтобы убедиться, что реализация функции работает правильно, необходимо выполнить калибровочное тестирование.

Этого можно достичь, сравнивая наземную истинную дальность с расчетной дальностью 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.