Функция Wi-Fi Round Trip Time (RTT) в Android 9 позволяет поддерживающим устройствам измерять расстояние до других поддерживающих устройств: являются ли они точками доступа (AP) или узлами Wi-Fi Aware (если Wi-Fi Aware поддерживается на устройство). Эта функция, основанная на протоколах IEEE 802.11mc и IEEE 802.11az (доступна с Android 15), позволяет приложениям использовать повышенную точность определения местоположения и осведомленность.
Примеры и источник
Чтобы использовать эту функцию, реализуйте интерфейс HAL поставщика. В Android 14 и более поздних версиях интерфейс HAL поставщика определяется с помощью AIDL. В Android 13 и более ранних версиях интерфейс HAL поставщика определяется с использованием HIDL. В Android 8.0 HIDL заменил предыдущую структуру уровня аппаратной абстракции (HAL), которая использовалась для оптимизации реализации путем указания типов и вызовов методов, собранных в интерфейсах и пакетах.
Следуйте указаниям интерфейса Wi-Fi, чтобы использовать функцию Wi-Fi RTT. В зависимости от того, какой интерфейс реализован, это:
- AIDL:
hardware/interfaces/wifi/aidl
- HIDL:
hardware/interfaces/wifi/1.0
или более поздняя версия.
Вы можете обратиться к устаревшему HAL Wi-Fi, чтобы увидеть, как он коррелирует с интерфейсами AIDL и HIDL: hardware/libhardware_legacy/+/main/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 (CTS). CTS определяет, когда эта функция включена, и автоматически включает соответствующие тесты. Эту функцию также можно протестировать с помощью Vendor Test Suite (VTS) .
Модульные тесты
Тесты пакета Wi-Fi RTT выполняются с использованием:
Сервисные тесты:
atest com.android.server.wifi.rtt
Менеджер тестирует:
atest android.net.wifi.rtt
КТС
Для этой функции существуют тесты пакета тестов совместимости Android (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) влияют на точность. При использовании обычного мобильного телефона (с двумя антеннами) и точки доступа (4 антенны) система имеет конфигурацию MIMO 2x4. Для такой конфигурации, использующей коэффициент повторения LTF, равный двум, и при указанной полосе пропускания (160 МГц, 80 МГц, 40 МГц, 20 МГц), ожидается, что KPI для оценки дальности достигнет следующей точности при 90-м процентиле ошибки.
- 160 МГц: 0,5 метра
- 80 МГц: 1 метр
- 40 МГц: 2 метра
- 20 МГц: 4 метра
Чтобы убедиться, что реализация функции работает правильно, необходимо провести калибровочное тестирование.
Этого можно достичь путем сравнения наземной дальности с расчетной дальностью RTT на возрастающих расстояниях. Для обеспечения базового соответствия вам следует проверить свое решение на устройстве, откалиброванном по протоколу RTT. Калибровку диапазона следует проверять при следующих условиях:
- Большая открытая лаборатория или коридор, в котором мало металлических предметов, что может привести к необычно частому возникновению многолучевого распространения.
- По крайней мере, линия прямой видимости (LOS) длиной 25 м.
- Маркеры с шагом 0,5 метра от одного конца дорожки до другого.
Место для крепления точки доступа с поддержкой RTT на одном конце направляющей, установленной на высоте 20 см над полом, а также подвижное крепление для телефона Android (или другого тестируемого мобильного устройства Android), которое можно перемещать вдоль направляющей и выравнивать по маркеры высотой 0,5 м, также на высоте 20 см от пола.
На каждом маркере следует записать 50 результатов измерения дальности, а также расстояние от точки доступа. Статистические данные, такие как среднее значение диапазона и дисперсия, должны рассчитываться для каждой позиции маркера.
По результатам шага 5 можно построить диаграмму истинности (ось X) в зависимости от предполагаемого диапазона (ось Y) и оцененной линии регрессии наилучшего соответствия. Идеальная калибровка устройства приведет к получению линии градиента 1,0 со смещением 0,0 м по оси Y. Отклонения от этих значений допустимы, если они находятся в пределах KPI для соответствующей полосы пропускания. Если результаты выходят за пределы KPI, функцию устройства следует повторно откалибровать, чтобы результаты соответствовали спецификации KPI.