Определение расстояния: спецификация внеполосной связи версии 3

В Android 16 появился модуль определения расстояния. Этот протокол и спецификация полезной нагрузки определяют последовательность сообщений и полезную нагрузку для внеполосной связи, используемой для обмена конфигурациями определения расстояния, а также для запуска и остановки определения расстояния между инициатором и устройством-ответчиком, которые участвуют в определении расстояния. В Android 17 представлена третья версия этой спецификации.

На этой странице описано, как поставщики устройств, не работающих на Android, могут реализовать эту спецификацию, чтобы их устройства были совместимы с устройствами Android.

Реализация этой спецификации на языке описания пакетов (PDL) от Google доступна на GitHub. На основе этой реализации компилятор PDL может сгенерировать код сериализации и десериализации для сообщений, определенных в этой спецификации. Эта спецификация поддерживает различные целевые языки, включая C++, Rust и Java.

Что нового в версии 3

В версии 3 спецификации OOB внесены следующие изменения:

  • Уведомление о движении. Сообщение, которое устройство рекламодателя использует, чтобы уведомить инициирующее устройство об изменении движения.
  • Конфигурация диапазона. Включает новое поле Motion support, чтобы инициатор уведомлял ответчика о любых изменениях в движении периферийного устройства от ответчика.
  • Добавлена поддержка новой технологии Wi-Fi PD в Ranging Capability и Ranging Configuration.
  • Удалены поля Supported Bandwidth и Supported number of Receive chains в Wi-Fi NAN RTT Ranging Capability.

Порядок байтов

Если не указано иное, все многобайтовые числовые поля в сообщениях имеют порядок байтов от младшего к старшему.

Сообщения и их последовательность

В этом разделе описываются сообщения и последовательность обмена ими.

В таблице ниже перечислены все сообщения, которые присутствуют в обмене OOB:

Сообщение Идентификатор сообщения
Ranging Capability Request 0x0
Ranging Capability Response 0x1
Ranging Configuration 0x2
Ranging Configuration Response (необязательно) 0x3
Stop Ranging 0x6
Stop Ranging Response (необязательно) 0x7
Motion Notification 0x8

Обмен сообщениями начинается с того, что устройство-инициатор отправляет устройству-ответчику сообщение Ranging Capability Request. Устройство, отвечающее на запрос, отправляет ответ в виде массива Ranging Capability Response, как показано на рисунке 1:

Схема канала связи

Рисунок 1. Обмен сообщениями OOB с использованием канала связи на основе подключения.

Устройство-ответчик начинает измерение расстояния сразу после получения сообщения Ranging Configuration. Устройство-ответчик прекращает измерение расстояния после получения или обнаружения сообщения Stop Ranging.

Устройство, отвечающее на запрос, заполняет возможности только тех технологий определения расстояния, которые были запрошены в сообщении Ranging Capability Request.

Устройство-инициатор ожидает получить только один ответ на любой отправленный им запрос. Устройство, отвечающее на запрос, не должно делать никаких предположений, чтобы иметь возможность отвечать на запросы в любом порядке. Это позволяет проверить, может ли отвечающее устройство отвечать на несколько последовательных сообщений Ranging Capability Request или любые другие сообщения от инициирующего устройства, отправленные не по порядку.

Переход на новые технологии

Версия OOB позволяет устройствам динамически переключаться между разными технологиями определения расстояния во время сеанса. Для этого инициатор может:

  • Отправьте несколько сообщений Ranging Configuration, чтобы запустить новые технологии.
  • Отправьте несколько сообщений Stop Ranging, чтобы остановить активные технологии.

Порядок этих сообщений зависит от схемы перехода, поддерживаемой ответчиком:

  • Разрыв перед подключением. Инициатор может перейти на новую технологию, только остановив первую с помощью сообщения Stop Ranging, а затем запустив вторую с помощью сообщения Ranging Configuration.
  • Подключение до отключения. Инициатор может начать использовать новую технологию, отправив сообщение Ranging Configuration, прежде чем прекратить использовать существующие технологии, отправив сообщение Stop Ranging.

Ответчик должен реализовать поддержку одной из этих схем перехода в соответствии со значением поля supported technology transitioning в своем Ranging Capability Response.

Идентификаторы технологий определения расстояния

Идентификаторы технологий определения расстояния перечислены в таблице ниже.

Технология определения расстояния ID
СШП 0x0
CS 0x1
Wi-Fi NAN RTT 0x2
RSSI 0x3
Wi-Fi PD 0x4
RFU 0x5–0xFF

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

Например, у RSSI идентификатор равен 3. Если RSSI включен в битовое поле технологии определения расстояния, то бит с позицией идентификатора (3) должен быть включен (первый бит находится в позиции 0), что дает результирующее значение битового поля 0x8. Если в данных есть и UWB, и RSSI, то значение битового поля – 0x0A (включены биты 0 и 3).

Формат сообщений

Каждое сообщение состоит из заголовка и полезной нагрузки.

Формат сообщений

Рисунок 3. Формат сообщения.

Размер: 2 байта.

Описание. Заголовок – это первая часть сообщения, которая есть во всех письмах. Заголовок содержит версию и идентификатор типа сообщения. В поле версии указывается версия спецификации, которой соответствует содержимое сообщения. Подробнее о том, как работает управление версиями на устройствах с разными версиями… Заголовок сохраняет обратную совместимость с разными версиями, поэтому вариант использования всегда может обработать его, чтобы определить версию и идентификатор сообщения.

Заголовок описан в таблице ниже.

Октет Тип данных Описание Значение
0 uint8 Версия
  • 0x1 – V1
  • 0x2 – V2
  • 0x3 – V3
1 uint8 Идентификатор сообщения
  • 0x0 – сообщение Ranging Capability Request
  • 0x1 – Ranging Capability Response сообщение
  • 0x2 – сообщение Ranging Configuration
  • 0x3 – сообщение Ranging Configuration Response (необязательно).
  • 0x6 – сообщение Stop Ranging
  • 0x7 – сообщение Stop Ranging Response (необязательно)
  • 0x8 – сообщение Motion Notification
  • 0x4–0x5, 0x9 – 0xFF RFU

Payload

Размер: зависит от типа сообщения.

Описание. Полезная нагрузка – это последняя часть сообщения, которая следует за заголовком. Полезная нагрузка зависит от типа сообщения. Формат полезной нагрузки для каждого типа сообщений описан в разделах ниже.

Полезная нагрузка сообщения запроса возможности определения расстояния

Размер (без учета размера заголовка): 2 байта.

Описание. Отправляется устройством-инициатором для начала обмена сообщениями.

Полезная нагрузка сообщения Ranging Capability Request описана в таблице ниже.

Октет Тип данных Описание Значение
0 uint8*2 Битовое поле запрошенных технологий определения дальности
  • 0x01 – СШП
  • 0x02 – зондирование канала BLE
  • 0x04 – Wi-Fi NAN RTT
  • 0x08 – BLE RSSI
  • 0x10 – поиск поблизости через Wi-Fi
  • RFU

Полезная нагрузка ответного сообщения о возможностях определения расстояния

Размер (без учета размера заголовка): варьируется (общая часть – 2 байта плюс размер каждой включенной технологии определения расстояния в байтах).

Описание. Отправляется ответчиком в ответ на сообщение Ranging Capability Request. Полезная нагрузка сообщения состоит из общей части и частей, относящихся к определенным технологиям (BLE CS, Wi-Fi NAN RTT, BLE RSSI), как показано в таблицах ниже. Каждый раздел, относящийся к определенной технологии определения расстояния, должен быть добавлен только в том случае, если эта технология поддерживается устройством-ответчиком и запрашивается в сообщении Ranging Capability Request.

Ниже приведена сводная информация о полезной нагрузке сообщения Ranging Capability Response.

Октет Тип данных Описание Значение
0 uint8*2 Битовое поле поддерживаемых технологий определения расстояния. Указывает набор возможностей технологий определения расстояния, которые следуют в остальной части полезной нагрузки.
  • 0x01 – СШП
  • 0x02 – зондирование канала BLE
  • 0x04 – Wi-Fi NAN RTT
  • 0x08 – BLE RSSI
  • 0x10 – Wi-Fi PD;
  • RFU
2 массив байтов Байты возможностей технологии определения расстояния. Повторяющиеся блоки структур, определенные для каждой технологии.
разный uint8 Указывает на поддержку перехода на новые технологии.
  • 0x00 – поддерживается режим "сначала разорвать, потом установить".
  • 0x01 – поддерживается переключение с разрывом соединения. Устройство может одновременно определять расстояние с помощью нескольких технологий.
разный uint16 Указывает тип устройства, которое отвечает на запрос.
  • 0x00 – неизвестно.
  • 0x01 – телефон.
  • 0x02 – планшет.
  • 0x03 – тег
  • 0x04 – носимое устройство;
  • 0x05 – наушники
  • RFU

Полезная нагрузка сообщения UWB Ranging Capability Response описана в таблице ниже.

Октет Тип данных Описание Значение
0 uint8 Идентификатор технологии определения расстояния 0x0 – СШП
1 uint8 Размер Размер возможностей UWB в байтах (включая поля Technology ID и Size).
2 uint8*2 Адрес СШП Двухбайтовый адрес СШП устройства.
4 uint8*4 Битовая маска поддерживаемых каналов Битовое поле поддерживаемых каналов. Если бит равен 0, функция не поддерживается, а если 1 – поддерживается. Бит 0 соответствует каналу 0.
LSB == channel 0
MSB == channel 31
8 uint8*4 Поддерживаемое битовое поле индекса преамбулы Битовое поле поддерживаемых индексов преамбулы. Бит, установленный на 0, указывает на то, что функция не поддерживается, а на 1 – что поддерживается. Бит 0 соответствует индексу преамбулы 1.
LSB == preamble index 1
MSB == preamble index 32
12 uint8*4 Битовое поле поддерживаемых идентификаторов конфигурации Битовое поле поддерживаемых идентификаторов конфигурации UWB. Если бит равен 0, функция не поддерживается, а если 1 – поддерживается.
LSB == config Id 0
MSB == config Id 31
16 uint8*2 Минимальный поддерживаемый интервал определения расстояния Указывает самый быстрый поддерживаемый интервал определения расстояния в миллисекундах. Допустимые значения (в миллисекундах):
  • 96
  • 120
  • 240
  • 600
18 uint8 Минимальная поддерживаемая продолжительность временного интервала Указывает минимальную поддерживаемую продолжительность рекламного места в миллисекундах. Например, если устройство возвращает 1 мс, предполагается, что оно также поддерживает длительность слота 2 мс или выше. Допустимые значения (в миллисекундах):
  • 1
  • 2
19 uint8 Битовое поле поддерживаемых ролей устройств СШП Битовое поле поддерживаемых ролей СШП. Например, если поддерживаются оба, значение поля будет 0x3.
  • 0x1 – поддерживается роль инициатора.
  • 0x2 – роль ответственного лица поддерживается.

Полезная нагрузка сообщения BLE CS Ranging Capability Response описана в таблице ниже.

Октет Тип данных Описание Значение
0 uint8 Идентификатор технологии определения расстояния 0x1 – BLE CS
1 uint8 Размер Размер в байтах возможностей BLE CS (включая поля Technology ID и Size).
2 uint8 Поддерживаемое битовое поле типа безопасности Битовое поле поддерживаемых типов безопасности для BLE CS.
  • 0x01 – CS_SECURITY_LEVEL_UNKNOWN
  • 0x02 – CS_SECURITY_LEVEL_ONE
  • 0x04 – CS_SECURITY_LEVEL_TWO
  • 0x08 – CS_SECURITY_LEVEL_THREE
  • 0x10 – CS_SECURITY_LEVEL_FOUR
3 uint8*6 Адрес устройства Адрес устройства, используемого для BLE CS, в порядке от старшего к младшему.

Полезная нагрузка сообщения Wi-Fi NAN RTT Ranging Capability Response описана в таблице ниже.

Октет Тип данных Описание Значение
0 uint8 Идентификатор технологии определения расстояния 0x2 – Wi-Fi NAN RTT
1 uint8 Размер Размер возможностей Wi-Fi NAN RTT в байтах (включая поля Technology ID и Size).
2 uint8 Поле битов поддерживаемых функций Битовое поле поддерживаемых функций.
  • 0x01 – поддерживает 11mc.
  • 0x02 – поддерживает 11az
3 uint8 Поддержка периодического ранжирования
  • 0x0 – периодическое измерение расстояния не поддерживается.
  • 0x1 – периодическое измерение расстояния поддерживается.
4 uint8 Поддерживаемая пропускная способность УСТАРЕЛО. Эта информация помогает определить достижимую точность определения расстояния с помощью Wi-Fi NAN и позволяет приложениям решить, использовать ли UWB, BLE CS, BLE RSSI или Wi-Fi NAN для определения расстояния.
  • 0x00 – 20 МГц;
  • 0x01 – 40 МГц;
  • 0x02 – 80 МГц
  • 0x03 – 160 МГц
  • 0x04 – 80 + 80 МГц;
  • 0x05 – 320 МГц
  • RFU
5 uint8 Поддерживаемое количество цепочек приема УСТАРЕЛО. Эта информация помогает определить достижимую точность определения расстояния с помощью Wi-Fi NAN и позволяет приложениям решить, использовать ли UWB, BLE CS, BLE RSSI или Wi-Fi NAN для определения расстояния.
  • 0x00 – не определено.
  • 0x01 – 1 цепочка RX
  • 0x02 – две цепочки RX.
  • 0x03 – 3 цепочки RX;
  • 0x04 – 4 цепочки RX.

Полезная нагрузка сообщения BLE RSSI Ranging Capability Response представлена в таблице ниже.

Октет Тип данных Описание Значение
0 uint8 Идентификатор технологии определения расстояния 0x3 – BLE RSSI
1 uint8 Размер Размер возможностей BLE RSSI в байтах (включая поля Technology ID и Size).
2 uint8*6 Адрес устройства Адрес устройства, используемого для BLE RSSI; в порядке от старшего к младшему

Полезная нагрузка сообщения Wi-Fi PD Ranging Capability Response представлена в таблице ниже.

Октет Тип данных Описание Значение
0 uint8 Идентификатор технологии определения расстояния 0x4 – Wi-Fi PD
1 uint8 Размер Размер возможностей Wi-Fi PD в байтах (включая поля Идентификатор технологии и Размер).
2 uint8 Поддерживаемые функции Растровое изображение
  • b0 – 11mc capable
  • b1 – поддерживает 11az
3 uint8 Режим PASN Bitmap
  • b0 – режим PASN без аутентификации.
  • b1 – режим аутентифицированного PASN
4 uint8*6 Адрес устройства Адрес устройства, используемого для Wi-Fi PD; в порядке от старшего к младшему.
10 uint8*2 Минимальный интервал определения местоположения 802.11mc Минимальный интервал определения расстояния, поддерживаемый в формате big-endian для 11mc
12 uint8*2 Минимальный интервал определения местоположения 802.11az Минимальный интервал определения расстояния, поддерживаемый в формате big-endian для 11az
14 uint8 Тип максимальной преамбулы
  • 0 – PREAMBLE_LEGACY
  • 1 – PREAMBLE_HT
  • 2 - PREAMBLE_VHT
  • 3 - PREAMBLE_HE
  • 4 – PREAMBLE_EHT

Предполагается, что поддерживаются все типы преамбулы более низкого уровня.
15 uint8 Максимальная ширина канала
  • 0 – CHANNEL_WIDTH_20MHZ
  • 1 – CHANNEL_WIDTH_40MHZ
  • 2 - CHANNEL_WIDTH_80MHZ
  • 3 – CHANNEL_WIDTH_160MHZ
  • 4 – CHANNEL_WIDTH_80MHZ_PLUS_MHZ
  • 5 – CHANNEL_WIDTH_320MHZ

При этом предполагается, что поддерживаются все более низкие значения ширины канала.
16 uint8*2 Частота поддерживаемых каналов
  • b0 – канал 1
  • b1 – канал 11.
  • b2 – канал 36
  • b3 – канал 40
  • b4 – канал 44;
  • b5 – канал 48
  • b6 – канал 153
  • b7 – канал 157
  • b8 – канал 161
  • b9 – канал 165
  • b10-b15 – RFU

Полезная нагрузка сообщения о конфигурации определения расстояния

Размер (без учета размера заголовка): варьируется (общая часть – 4 байта плюс размер каждого включенного байта технологии определения расстояния).

Описание. Это сообщение отправляется инициатором и содержит конфигурации, с которыми каждая технология может начать измерение расстояния. При получении этого сообщения устройство-ответчик должно попытаться начать определение расстояния с помощью каждой указанной технологии. Полезная нагрузка этого сообщения состоит из общей части и частей, относящихся к конкретной технологии определения расстояния (UWB, BLE CS, Wi-Fi NAN RTT, BLE RSSI), как показано в таблицах ниже.

Ниже приведена сводная информация о полезной нагрузке сообщения Ranging Configuration.

Октет Тип данных Описание Значение
0 uint8*2 Набор битов конфигурации технологий определения расстояния Битовое поле технологий определения расстояния, для которых это сообщение содержит данные конфигурации и для которых должны быть заданы параметры конфигурации.
  • 0x01 – СШП.
  • 0x02 – зондирование канала BLE
  • 0x04 – Wi-Fi NAN RTT
  • 0x08 – BLE RSSI
  • 0x10 – Wi-Fi PD;
  • RFU
2 uint8*2 Битовое поле RFU. Значение должно быть таким же, как в поле Ranging technologies configuration set bitfield (Битовое поле набора конфигурации технологий определения расстояния).
4 массив байтов Байты конфигураций технологий определения расстояния Повторяющиеся блоки структур, определенные для каждой технологии
разный uint8 Поддержка съемки в движении Motion Notification запросил
  • 0x0 – указывает, что устройству-инициатору не требуются данные о движении.
  • 0x1 – указывает, что инициирующее устройство требует данные о движении от другого устройства.

Полезная нагрузка сообщения UWB Ranging Configuration описана в таблице ниже.

Октет Тип данных Описание Значение
0 uint8 Идентификатор технологии определения расстояния 0x0 – СШП
1 uint8 Размер Размер конфигурации UWB (включая поля Technology ID и Size) в байтах.
2 uint8*2 Адрес СШП 2-байтовый адрес устройства UWB
4 uint8*4 Идентификатор сеанса Сгенерирован идентификатор сеанса. Идентификатор сеанса – это уникальный идентификатор сеанса определения расстояния между телефоном и периферийным устройством.
8 uint8 Выбранный идентификатор конфигурации Выбранный идентификатор конфигурации в виде целого числа. Идентификатор конфигурации определяет параметры времени и тип защиты, которые должны использоваться для сеанса измерения расстояния с помощью СШП.
9 uint8 Выбранный канал Выбранный канал для сеанса определения расстояния с помощью сверхширокополосной связи
10 uint8 Индекс выбранных вводных инструкций Выбранный индекс преамбулы для сеанса измерения расстояния с помощью СШП
11 uint8*2 Выбранный интервал определения расстояния Выбранный интервал измерения расстояния в миллисекундах. Допустимые значения (в миллисекундах):
  • 96
  • 120
  • 240
  • 600
13 uint8 Выбранная длительность интервала Длительность выбранного интервала в миллисекундах. Допустимые значения (в миллисекундах):
  • 1
  • 2
14 uint8 Длина сеансового ключа Длина сеансового ключа в байтах.
15 массив байтов Сеансовый ключ Сеансовый ключ. Если используется S-STS, то первые два байта – это идентификатор поставщика, а следующие шесть байтов – статический вектор инициализации STS. Если используется P-STS, это 16- или 32-байтовый сеансовый ключ. Тип безопасности определяется идентификатором конфигурации.
varies uint8*2 Код страны Двухбуквенный код страны в формате ISO 3166-1 alpha-2, представленный двумя символами ASCII.
varies uint8 Выбранная роль устройства
  • 0x01 – инициатор.
  • 0x02 – ответчик.
varies uint8 Выбран режим устройства
  • 0x01 – контроллер;
  • 0x02 – управляемый объект

Полезная нагрузка сообщения BLE CS Ranging Configuration описана в таблице ниже.

Октет Тип данных Описание Значение
0 uint8 Идентификатор технологии определения расстояния 0x1 – BLE CS
1 uint8 Размер Размер конфигурации BLE CS (включая поля Technology ID и Size) в байтах.
2 uint8 Выбранный тип безопасности Выбранный тип защиты. Допустимые значения:
  • 0x0 – CS_SECURITY_LEVEL_UNKNOWN
  • 0x1 – CS_SECURITY_LEVEL_ONE
  • 0x2 – CS_SECURITY_LEVEL_TWO
  • 0x3 – CS_SECURITY_LEVEL_THREE
  • 0x4 – CS_SECURITY_LEVEL_FOUR
3 uint8*6 Адрес устройства Адрес устройства, используемого для BLE CS, в порядке от старшего к младшему.

Полезная нагрузка сообщения Wi-Fi NAN RTT Ranging Configuration описана в таблице ниже.

Октет Тип данных Описание Значение
0 uint8 Идентификатор технологии определения расстояния 0x2 – Wi-Fi NAN RTT
1 uint8 Размер Размер конфигурации Wi-Fi NAN RTT (включая поля Technology ID и Size) в байтах.
2 uint8 Длина названия сервиса Длина поля "Название сервиса" в байтах. См. раздел 1.3.3 "Таблица 1" спецификации Wi-Fi Aware версии 4.0. Определения.
3 массив байтов Название сервиса Название сервиса. См. раздел 1.3.3 "Таблица 1" спецификации Wi-Fi Aware версии 4.0. Определения.
varies uint8 Роль устройства
  • 0x0 – респондент (издатель сервиса NAN)
  • 0x1 – инициатор (подписчик сервиса NAN).
varies uint8 Использовать периодическое определение расстояния
  • 0x0 – периодическое определение расстояния отключено.
  • 0x1 – периодическое определение расстояния включено.

Полезная нагрузка сообщения BLE RSSI Ranging Configuration описана в таблице ниже.

Октет Тип данных Описание Значение
0 uint8 Идентификатор технологии определения расстояния 0x3 – BLE RSSI
1 uint8 Размер Размер конфигурации RSSI BLE (включая поля Technology ID и Size) в байтах.
2 uint8*6 Адрес устройства Адрес устройства, используемого для BLE RSSI, в порядке от старшего к младшему.

Полезная нагрузка сообщения Wi-Fi PD Ranging Configuration приведена в таблице ниже.

Октет Тип данных Описание Значение
0 uint8 Идентификатор технологии определения расстояния 0x4 – Wi-Fi PD
1 uint8 Размер Размер конфигурации PD Wi-Fi (включая поля Technology ID и Size) в байтах.
2 uint8 Функция
  • 0x01 – 11mc.
  • 0x02 – 11az
3 uint8*6 MAC-адрес MAC-адрес инициатора
9 uint8*2 Интервал определения расстояния Интервал определения расстояния в миллисекундах
11 uint8 Выбранная преамбула
  • 0 – PREAMBLE_LEGACY
  • 1 – PREAMBLE_HT
  • 2 - PREAMBLE_VHT
  • 3 - PREAMBLE_HE
  • 4 – PREAMBLE_EHT
12 uint8 Ширина выбранного канала
  • 0 – CHANNEL_WIDTH_20MHZ
  • 1 – CHANNEL_WIDTH_40MHZ
  • 2 - CHANNEL_WIDTH_80MHZ
  • 3 – CHANNEL_WIDTH_160MHZ
  • 4 – CHANNEL_WIDTH_80MHZ_PLUS_MHZ
  • 5 – CHANNEL_WIDTH_320MHZ
13 uint8 Выбранный канал
  • 0 – канал 1.
  • 1 – канал 11
  • 2 – канал 36
  • 3 – канал 40
  • 4 – Channel 44
  • 5 – канал 48
  • 6 – канал 153
  • 7 - Channel 157
  • 8 – канал 161
  • 9 – канал 165
14 uint8 Выбран режим PASN
  • 0x01 – режим PASN без аутентификации.
  • 0x02 – режим аутентифицированного PASN
Примечание. Это поле является концом пакета для неаутентифицированного режима PASN.
15 массив байтов Ключ идентификации устройства Фиксированный массив из 16 байт.
Примечание. Это поле действительно только для режима PASN с аутентификацией и не должно задаваться для режима PASN без аутентификации.
31 uint8 Длина пароля Длина пароля.
Примечание. Это поле действительно только для режима PASN с аутентификацией. В режиме PASN без аутентификации его задавать нельзя.
varies массив байтов Пароль Пароль в виде массива байтов.
Примечание. Это поле действительно только для режима PASN с аутентификацией. В режиме PASN без аутентификации его задавать нельзя.

Полезная нагрузка ответа на конфигурацию измерения расстояния

Размер (без учета размера заголовка): 2 байта

Описание. Это сообщение отправляется в ответ на сообщение Ranging Configuration. Это сообщение необязательно. Оно требуется только в том случае, если используемый канал связи требует явного ответа на каждый запрос.

Полезная нагрузка сообщения Ranging Configuration Response описана в таблице ниже.

Октет Тип данных Описание Значение
0 uint8*2 Поле битов "Конфигурация технологий определения расстояния задана успешно" Битовое поле успешно настроенных технологий определения расстояния. Если технология была запрошена и успешно задана, битовое поле устанавливает бит технологии определения расстояния в значение 1, в противном случае – в значение 0.
  • 0x01 – СШП
  • 0x02 – зондирование канала BLE
  • 0x04 – Wi-Fi NAN RTT
  • 0x08 – BLE RSSI
  • 0x10 – Wi-Fi PD;
  • RFU

Полезная нагрузка сообщения Stop Ranging

Размер (без учета размера заголовка): 2 байта.

Описание. Это сообщение отправляется устройством-инициатором, когда нужно прекратить определение расстояния с помощью указанной технологии.

Полезная нагрузка сообщения Stop Ranging описана в таблице ниже.

Октет Тип данных Описание Значение
0 uint8*2 Технологии для остановки битового поля Битовое поле технологий определения местоположения, которые должны прекратить работу. Если бит равен 1, технология определения расстояния должна прекратить работу. Если бит равен 0, технология определения расстояния либо не работала изначально, либо должна продолжить работу, если она уже была запущена. Для некоторых технологий определения расстояния (например, CS) это действие не имеет смысла, поскольку определение расстояния запускается и останавливается только на стороне инициатора.
  • 0x01 – СШП
  • 0x02 – зондирование канала BLE
  • 0x04 – Wi-Fi NAN RTT
  • 0x08 – BLE RSSI
  • 0x10 – Wi-Fi PD;
  • RFU

Полезная нагрузка сообщения Stop Ranging Response

Размер (без учета размера заголовка): 2 байта.

Описание. Это сообщение отправляется в ответ на сообщение Stop Ranging. Это сообщение необязательно. Оно требуется только в том случае, если используемый канал связи требует явного ответа на каждый запрос.

Полезная нагрузка сообщения Stop Ranging Response описана в таблице ниже.

Октет Тип данных Описание Значение
0 uint8*2 Битовое поле успешной остановки технологий определения расстояния Битовое поле технологий определения расстояния, которые успешно прекратили определение расстояния. Если технология была запрошена для остановки и успешно остановлена, битовое поле устанавливает бит технологии определения расстояния в значение 1, в противном случае – в значение 0.
  • 0x01 – СШП.
  • 0x02 – зондирование канала BLE
  • 0x04 – Wi-Fi NAN RTT
  • 0x08 – BLE RSSI
  • 0x10 – Wi-Fi PD;
  • RFU

Полезная нагрузка уведомления о движении

Размер (без учета размера заголовка): 1 байт.

Описание. Устройство-ответчик отправляет это сообщение, чтобы сообщить устройству-инициатору об изменении статуса движения.

Октет Тип данных Описание Значение
0 uint8 Анимация
  • 0x0 – не обнаружено.
  • 0x1 – небольшое движение.
  • 0x2 – умеренное движение
  • 0x3 – значительное перемещение.
  • RFU
Порог движения должен быть настроен так, чтобы обнаруживать изменение ориентации на ±X° по любым двум осям аксессуара.
  • Не обнаружено: < 5°
  • Небольшое движение: 5–7°.
  • Умеренное движение: 7–10°.
  • Большое движение: > 10°

Управление версиями

Версия спецификации указана в заголовке каждого письма. В этом разделе описано, как осуществляется связь, если на одном из устройств (инициаторе или получателе) установлена более старая версия, чем на другом. Ranging Capability Request – первое сообщение, отправленное устройством инициатора.

Инициатор поддерживает более новую версию спецификации, а ответчик – более старую

Устройство-инициатор отправляет сообщение Ranging Capability Request с более новой версией. Устройство, на которое отправляется запрос, поддерживает только более раннюю версию, поэтому оно отвечает, используя ее. В результате для обмена сообщениями используется более ранняя версия. Это означает, что сообщение Ranging Capability Request должно быть обратно совместимым.

Инициатор поддерживает более раннюю версию спецификации, а ответчик – более новую

Устройство-ответчик видит, что устройство-инициатор не поддерживает новую версию, поэтому отправляет сообщения, используя только более старую версию, запрошенную устройством-инициатором.

Чтобы обеспечить обратную совместимость сообщений, все новые поля, добавленные в следующую версию спецификации, должны быть присоединены к концу полезной нагрузки, а существующие поля не должны быть изменены. Если при анализе конфигурации указанный размер превышает ожидаемый, дополнительные поля должны игнорироваться любым устройством, которое поддерживает только более старую версию спецификации.

Фрагментация

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

Ranging-technology-specifics

В этом разделе приведена информация, относящаяся к технологии определения расстояния.

Особенности сверхширокополосной связи (СШП)

В этом разделе описаны особенности сверхширокополосной связи.

Идентификаторы конфигураций

Данные конфигурации OOB, которыми обмениваются устройства с поддержкой СШП, не содержат полного набора доступных настраиваемых параметров, необходимых для запуска сеанса определения расстояния с помощью СШП. Это связано с тем, что некоторые параметры неявно выбираются выбранным идентификатором конфигурации.

Каждый идентификатор конфигурации – это набор предопределенных параметров конфигурации СШП, описанных в UwbRangingParams. Устройство-ответчик отправляет список всех поддерживаемых идентификаторов конфигурации в ответном сообщении о возможностях, а инициатор выбирает один из поддерживаемых идентификаторов конфигурации, который будет использоваться. Это позволяет обмениваться меньшим набором параметров конфигурации во время OOB. Он также ограничивает количество возможных комбинаций параметров, которые можно использовать для определения расстояния с помощью СШП, что позволяет тестировать только разрешенные комбинации параметров.

Запрос возможностей после каждого сеанса UWB

После завершения текущего сеанса UWB и перед началом нового устройство-инициатор должно запросить возможности устройства-ответчика и снова задать параметры конфигурации, поскольку UWB-адрес может измениться сразу после завершения текущего сеанса определения расстояния.

Особенности зондирования канала BLE (CS)

В этом разделе описаны особенности зондирования каналов.

Обязательное шифрование связи между устройствами

Для определения расстояния с помощью зондирования канала требуется существующее подключение между инициатором и устройством, отвечающим на запрос. Эта спецификация не предусматривает возможности установления связи между устройствами. При использовании Ranging API необходимо установить связь между устройствами.

Требуется действие от получателя запроса для CS

В UWB оба устройства должны явно вызывать API start ranging и stop ranging. В отличие от этого, для CS достаточно, чтобы устройство-инициатор запустило определение расстояния, вызвав стек Bluetooth. Остальная часть инициализации на стороне отвечающего устройства выполняется в рамках Bluetooth. Это означает, что после получения сообщения Ranging Configuration или Stop Ranging для CS отвечающему устройству не нужно ничего делать, если Bluetooth включен. Устройство-ответчик может использовать эти сообщения в качестве триггера для обновления интерфейса или, например, мигания светодиодов.