Определение дальности: спецификация внеполосного доступа, версия 2.

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

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

An implementation of this specification in Google's Packet Description Language (PDL) is available on GitHub . From this implementation, the PDL compiler can generate serialization and deserialization code for the messages defined in this specification. It supports a variety of target languages including C++, Rust, and Java.

Что нового в версии 2?

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

  • Технологический переход : Позволяет динамически переключаться между технологиями измерения расстояния во время активной сессии без прерывания потока данных.
  • Реагирование на изменение дальности действия
    • Включает новое поле Supported technology transitioning , для указания поддержки первоочередных технологических переходов.
    • Включает новое поле Device type , которое инициатор может использовать для оптимизации энергопотребления между устройствами.

Эндианность

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

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

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

В следующей таблице показаны все сообщения, присутствующие в обмене данными внеполосным способом (OOB):

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

Как показано на рисунках 1 и 2, способ запуска обмена сообщениями зависит от канала связи.

В каналах связи, основанных на установлении соединения, таких как BLE GATT, обмен сообщениями начинается с того, что устройство-инициатор отправляет Ranging Capability Request устройству-ответчику (Registered Device). Устройство-ответчик отвечает, отправляя ответ на Ranging Capability Response ), как показано на рисунке 1:

Поток коммуникационных каналов на основе соединений

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

For advertisement-based communication channels, the responder device starts by advertising Ranging Capability . In this case, Ranging Capability Request isn't sent from the initiating device. Instead, after detecting the advertisement, when the initiating (initial scanner) device is ready, it responds by advertising Ranging Configuration as its first message, as shown in Figure 2:

Поток коммуникационных каналов на основе рекламы

Рисунок 2. Обмен сообщениями вне системы с использованием рекламной коммуникации.

The rest of the message exchange is the same in both cases. The responder device starts ranging immediately after receiving the Ranging Configuration message. The responder device stops ranging after it receives or detects the Stop Ranging message.

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

The initiator device assumes it will receive only one response to any request message it sends. The responder device must not make any such assumption so that it can respond to any request in any order. This verifies that the responder device can respond to multiple consecutive Ranging Capability Request messages, or any other out of order messages, from the initiator device.

Технологический переход

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

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

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

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

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

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

Идентификаторы технологий измерения расстояний приведены в следующей таблице:

Технология определения дальности ИДЕНТИФИКАТОР
UWB 0x0
КС 0x1
Wi-Fi NAN RTT 0x2
РССИ 0x3
РФУ 0x4 - 0xFF

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

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

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

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

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

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

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

Описание: Заголовок, общий для всех сообщений, является первой частью сообщения. Заголовок содержит версию и идентификатор типа сообщения. Поле версии указывает версию данной спецификации, которой соответствует содержимое сообщения. Текущая версия данной спецификации — 2 Дополнительную информацию об использовании версионирования между устройствами разных версий см. в разделе «Версионирование» . Заголовок сохраняет обратную совместимость между различными версиями, что означает, что в сценарии использования его всегда можно проанализировать, чтобы определить версию и идентификатор сообщения.

Заголовок представлен в следующей таблице:

Октет Тип данных Описание Ценить
0 uint8 Версия
  • 0x1 - V1
  • 0x2 - Текущая версия
1 блок8 Идентификатор сообщения
  • 0x0 - Сообщение Ranging Capability Request
  • 0x1 - Сообщение Ranging Capability Response
  • 0x2 - Сообщение Ranging Configuration
  • 0x3Ranging Configuration Response (необязательно)
  • 0x6 - Сообщение Stop Ranging
  • 0x7 — Сообщение Stop Ranging Response (необязательно)
  • 0x4-0x5, 0x8 - 0xFF RFU

Полезная нагрузка

Размер: Варьируется (зависит от типа сообщения)

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

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

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

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

В следующей таблице приведена сводная информация о содержимом сообщения Ranging Capability Request :

Октет Тип данных Описание Ценить
0 uint8*2 Запрашиваемые технологии определения диапазона битового поля
  • 0x01 - UWB
  • 0x02 - Зондирование канала BLE
  • 0x04 - Wi-Fi NAN RTT
  • 0x08 - BLE RSSI
  • РФУ

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

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

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

В следующей таблице приведена сводная информация о стандартном содержимом сообщения Ranging Capability Response :

Октет Тип данных Описание Ценить
0 uint8*2 Поддерживаемые технологии определения расстояния (битовое поле). Указывает набор возможностей технологий определения расстояния, используемых в остальной части полезной нагрузки.
  • 0x01 - UWB
  • 0x02 - Зондирование канала BLE
  • 0x04 - Wi-Fi NAN RTT
  • 0x08 - BLE RSSI
  • РФУ
2 массив байтов Байты возможностей технологии определения дальности. Повторяющиеся блоки структур, определенные для каждой технологии.
Различный uint8 Выражает поддержку переходу на новые технологии .
  • 0x00 — Поддерживается прерывание до замыкания соединения.
  • 0x01 — Поддерживается принцип «сделать до разрыва». Ответчик способен одновременно использовать несколько технологий.
Различный uint16 Указывает тип устройства реагирования.
  • 0x00 - Неизвестно
  • 0x01 - Телефон
  • 0x02 - Планшет
  • 0x03 - Метка
  • 0x04 - Носимое устройство
  • 0x05 - Слышимый
  • РФУ

В следующей таблице приведена сводная информация о содержимом сообщения UWB Ranging Capability Response :

Октет Тип данных Описание Ценить
0 uint8 Идентификатор технологии определения дальности 0x0 - UWB
1 uint8 Размер Размер параметров UWB в байтах (включая поля «Идентификатор технологии» и «Размер» ).
2 uint8*2 UWB-адрес 2-байтовый UWB-адрес устройства.
4 uint8*4 Поддерживаемые каналы bitfield Битовое поле поддерживаемых каналов. Бит, установленный в 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 Поддерживаемые идентификаторы конфигурации bitfield Битовое поле с поддерживаемыми идентификаторами конфигурации 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 Поддерживаемые битовые поля роли устройств UWB Битовое поле поддерживаемых ролей UWB. Например, если поддерживаются обе роли, итоговое значение поля будет равно 0x3.
  • 0x1 - поддерживается роль инициатора
  • 0x2 - поддерживается роль ответчика

В следующей таблице приведена сводная информация о содержимом сообщения BLE CS Ranging Capability Response :

Октет Тип данных Описание Ценить
0 uint8 Идентификатор технологии определения дальности 0x1 - BLE CS
1 uint8 Размер Размер параметров возможностей BLE CS в байтах (включая поля «Идентификатор технологии» и «Размер »)
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; в порядке байтов big-endian.

В следующей таблице приведена сводная информация о содержимом сообщения Wi-Fi NAN RTT Ranging Capability Response :

Октет Тип данных Описание Ценить
0 uint8 Идентификатор технологии определения дальности 0x2 - Wi-Fi NAN RTT
1 uint8 Размер Размер параметров BLE RSSI в байтах (включая поля Technology ID и Size ).
2 uint8 Поддерживаемые функции bitfield Битовое поле поддерживаемых функций.
  • 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 МГц
  • РФУ
5 uint8 Поддерживаемое количество цепочек приема Эта информация помогает определить достижимую точность измерения расстояния с использованием Wi-Fi NAN и может помочь приложениям определить, следует ли использовать UWB, BLE CS, BLE RSSI или Wi-Fi NAN для измерения расстояния.
  • 0x00 - Не определено
  • 0x01 - 1 RX цепочка
  • 0x02 - 2 цепочки 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; в порядке байтов big-endian.

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

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

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

В следующей таблице приведена сводная информация о стандартном содержимом сообщения Ranging Configuration :

Октет Тип данных Описание Ценить
0 uint8*2 Битовое поле набора настроек технологий определения дальности Битовое поле технологий определения расстояния, для которых данное сообщение содержит данные конфигурации и для которых необходимо установить параметры конфигурации.
  • 0x01 - UWB
  • 0x02 - Зондирование канала BLE
  • 0x04 - Wi-Fi NAN RTT
  • 0x08 - BLE RSSI
  • РФУ
2 uint8*2 Битфилд RFU. Должен иметь то же значение, что и поле битового поля набора параметров конфигурации технологий определения дальности .
4 массив байтов Конфигурации технологий определения дальности (байты) Повторяющиеся блоки структур, определенные для каждой технологии.

В следующей таблице приведена сводная информация о Ranging Configuration UWB:

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

В следующей таблице приведена сводная информация о содержимом сообщения Ranging Configuration BLE CS:

Октет Тип данных Описание Ценить
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; в порядке байтов big-endian.

В следующей таблице приведена сводная информация о содержимом сообщения 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.
варьируется uint8 роль устройства
  • 0x0 - Ответчик (издатель службы NAN)
  • 0x1 - Инициатор (абонент службы NAN)
варьируется uint8 Используйте периодический диапазон измерений.
  • 0x0 - Периодическое измерение расстояния отключено
  • 0x1 - Периодическое измерение расстояния включено

В следующей таблице приведена сводная информация о Ranging Configuration BLE RSSI:

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

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

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

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

В следующей таблице приведена сводная информация о содержимом сообщения Ranging Configuration Response :

Октет Тип данных Описание Ценить
0 uint8*2 Конфигурация технологий определения дальности успешно установлена ​​в битовом поле. Битовое поле, отображающее успешно установленные технологии измерения расстояний. В этом битовом поле бит технологии измерения расстояний устанавливается в 1, если технология была запрошена и успешно установлена, и в 0 в противном случае.
  • 0x01 - UWB
  • 0x02 - Зондирование канала BLE
  • 0x04 - Wi-Fi NAN RTT
  • 0x08 - BLE RSSI
  • РФУ

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

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

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

В следующей таблице приведена сводная информация о содержимом сообщения Stop Ranging :

Октет Тип данных Описание Ценить
0 uint8*2 Различные технологии для предотвращения битового поля Битовое поле технологий измерения расстояния, указывающее на необходимость прекращения измерения. Бит, установленный в 1, означает, что технология измерения расстояния должна прекратить измерение, а 0 означает, что технология измерения расстояния либо вообще не проводила измерение, либо должна продолжить измерение, если оно уже проводилось. Для некоторых технологий измерения расстояния (например, CS) это не оказывает никакого воздействия, поскольку измерение инициируется и останавливается только на стороне инициатора.
  • 0x01 - UWB
  • 0x02 - Зондирование канала BLE
  • 0x04 - Wi-Fi NAN RTT
  • 0x08 - BLE RSSI
  • РФУ

Полезная нагрузка сообщения ответа на запрос определения дальности (Stop Ranging Response message payload)

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

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

В следующей таблице приведена сводная информация о содержимом сообщения Stop Ranging Response :

Октет Тип данных Описание Ценить
0 uint8*2 Технологии определения дальности успешно остановили битовое поле Битовое поле, отображающее технологии измерения расстояния, которые успешно остановили измерение. Битовое поле устанавливает бит технологии измерения расстояния в 1, если была запрошена остановка технологии и если она успешно завершилась, и в 0 в противном случае.
  • 0x01 - UWB
  • 0x02 - Зондирование канала BLE
  • 0x04 - Wi-Fi NAN RTT
  • 0x08 - BLE RSSI
  • РФУ

Версионирование

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

Вариант 1: Канал связи на основе установления соединения.

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

Вариант 1.a: Инициатор поддерживает более новую версию, ответчик поддерживает более старую версию спецификации.

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

Вариант 1.b: Инициатор поддерживает более старую версию, отвечающий поддерживает более новую версию спецификации.

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

Пример 2: Коммуникационный канал на основе рекламы

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

Вариант 2.a: Инициатор поддерживает более новую версию, ответчик поддерживает более старую версию спецификации.

Для остальной части сообщения используется более старая версия, установленная в рекламном объявлении Ranging Capability Response .

Вариант 2.b: Инициатор поддерживает более старую версию, отвечающий поддерживает более новую версию спецификации.

Более новая версия рекламного сообщения Ranging Capability Response должна быть обратно совместима, чтобы устройство-инициатор могло прочитать сообщение, даже если оно использует более новую версию. Затем устройство-инициатор отправляет сообщение Ranging Configuration , используя более старую версию, которую оно поддерживает. Именно эта версия используется для всей дальнейшей связи.

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

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

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

Специфика технологий определения дальности

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

Характеристики сверхширокополосной связи (UWB)

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

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

Внешние конфигурационные данные, передаваемые для UWB, не содержат полного набора доступных настраиваемых параметров, необходимых для начала сеанса измерения расстояния UWB. Это связано с тем, что некоторые параметры выбираются неявно в зависимости от выбранного идентификатора конфигурации.

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

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

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

Специфика зондирования канала BLE (CS)

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

Необходимо обеспечить соединение между устройствами.

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

Действия, необходимые со стороны службы реагирования для CS

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