Понимание процессов рекламы и сканирования Bluetooth для эффективного обнаружения устройств

Bluetooth Low Energy (BLE) стал доминирующим стандартом для беспроводной связи ближнего действия в Интернете вещей (IoT), носимых технологий и современных сервисов на основе местоположения. Вся экосистема зависит от простого, но очень тонкого рукопожатия: рекламы и сканирования. Рекламодатель транслирует свое присутствие, а сканер слушает. Пока стек Bluetooth абстрагирует большую часть этой сложности, разработчики и инженеры, которые осваивают эти процессы, могут создавать системы, которые значительно более энергоэффективны, отзывчивы и надежны. Эта статья обеспечивает техническое глубокое погружение в механику рекламы и сканирования Bluetooth, предлагая действенные стратегии для оптимизации обнаружения устройств в производственных средах.

Основы бесконтактной коммуникации

Реклама и сканирование Bluetooth формируют асимметричную модель связи. Рекламодатель передает пакеты данных через регулярные промежутки времени, в то время как сканер слушает эти пакеты по определенным радиоканалам. Критически, это первоначальное рукопожатие не имеет соединения — рекламодатель не знает, кто слушает, и сканер не подключается, пока не решит, на основе полученных данных. Эта основа позволяет использовать варианты, начиная от простого обнаружения близости (iBeacon, Eddystone) до сложных приложений, ориентированных на соединение, таких как беспроводные наушники.

Анатомия рекламного пакета Bluetooth

Понимание того, что находится внутри рекламного пакета, является первым шагом к оптимизации. Унаследованный блок данных рекламного протокола (PDU) состоит из четырех основных частей:

Для разработчиков поле AdvData является наиболее важным компонентом. Он структурирован как последовательность структур AD (Рекламных данных), каждая из которых содержит байт длины, байт типа AD и фактические данные. Общие типы AD включают:

  • FLT:0 Флаги: FLT:1 Указывает на LE Limited Discoverable Mode, LE General Discoverable Mode и поддержку BR/EDR.
  • Местное имя: Сокращенное или полное название устройства.
  • Сервисные UUID: Список 16-битных, 32-битных или 128-битных UUID, идентифицирующих поддерживаемые сервисы.
  • Конкретные данные производителя: Пользовательские данные, используемые производителем (например, iBeacon от Apple или Eddystone от Google).

Основные рекламные каналы

Чтобы гарантировать надежное обнаружение, несмотря на помехи Wi-Fi, BLE требует, чтобы рекламные пакеты передавались по трем основным каналам: 37 (2402 МГц), 38 (2426 МГц) и 39 (2480 МГц). Эти каналы тщательно отбираются для размещения в промежутках между центральными частотами наиболее распространенных каналов Wi-Fi (1, 6 и 11). Сканер слушает по всем трем каналам последовательность, обеспечивая высокую вероятность приема даже в перегруженных средах.

Рекламные режимы и типы

Спецификация Bluetooth Core определяет несколько типов рекламы PDU, каждый из которых предназначен для конкретных случаев использования. Выбор правильного типа имеет основополагающее значение для оптимизации питания и поведения обнаружения.

  • ADV IND (Connectable Undirected Advertising): Наиболее распространенный режим. Рекламодатель доступен для обнаружения и принимает запросы на подключение от любого сканера. Используется для общего обнаружения устройства (например, сопряжение смартфона).
  • ADV DIRECT IND (Connectable Directed Advertising): Нацеленный на конкретное устройство. Пакет содержит адрес рекламодателя и адрес цели. Этот режим имеет очень низкую задержку для повторного подключения и обычно используется, когда соединение временно потеряно.
  • ADV NONCONN IND (Неподключенная ненаправленная реклама): Устройство является чисто вещательным и не может принимать соединения. Используется широко для маяков и датчиков вещания, так как потребляет меньше энергии за счет устранения накладных расходов на подключение.
  • ADV SCAN IND (Scannable Undirected Advertising): Устройство можно обнаружить, но не подключить. Оно может отвечать на запросы сканирования, позволяя сканерам собирать дополнительные данные без установления полного соединения.

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

Глубокий погружение в процесс сканирования Bluetooth

Сканирование — это активное или пассивное прослушивание рекламных пакетов. Графики сканера получают окна на основных рекламных каналах. Успех обнаружения полностью зависит от перекрытия между графиком передачи рекламодателя и графиком прослушивания сканера.

Пассивное сканирование: подслушивание для эффективности

При пассивном сканировании сканер просто открывает окно приема и слушает рекламные ПДУ. Он не передает никаких запросов. Это режим сканирования с наименьшей мощностью, поскольку радио проводит минимальное время в режиме передачи (который обычно составляет 10-20 мА). Пассивное сканирование идеально подходит для приложений, которым нужно только считывать данные, уже присутствующие в рекламном пакете, например, маяковый приемник, отображающий URL-адрес или температурное считывание.

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

Активное сканирование: получение более богатого контекста

Когда сканеру требуется больше информации, чем то, что предусмотрено в начальной 31-байтовой рекламной полезной нагрузке, он выполняет активное сканирование. При получении рекламного пакета (в частности, ADV IND или ADV SCAN IND) сканер передает PDU SCAN REQ. Рекламодатель отвечает PDU SCAN RSP, который может содержать до 31 дополнительного байта данных.

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

  • Увеличение потребления энергии: Сканер должен питать свой передатчик для SCAN REQ.
  • Увеличение воздушного движения: Обмен SCAN REQ/SCAN RSP увеличивает накладные расходы, потенциально увеличивая вероятность столкновения в плотных средах.
  • Следствия конфиденциальности: Активное сканирование показывает присутствие сканера и MAC-адрес рекламодателя.

Для пассивных маяков, которым не нужно выставлять свое полное имя, пока пользователь не нажмет на них, подходит активное сканирование. Для простого обнаружения присутствия пассивное сканирование превосходит.

Сканирующие фильтры и двойное обнаружение

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

Оптимизация рекламной и сканирующей экосистемы

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

Настройка рекламных параметров

Наиболее эффектным параметром является рекламный интервал . Он определяется как кратное 0,625 мс, варьирующееся от 20 мс до 10,24 с. К каждому интервалу добавляется случайная задержка в 0-10 мс для предотвращения постоянных столкновений.

Быстрая и медленная реклама

Bluetooth Core Specification рекомендует два высокоуровневых цикла работы для рекламодателей:

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

Параметры сканирования

Поведение сканера регулируется двумя параметрами: окно сканирования и интервал сканирования .

  • Окно сканирования: Продолжительность одного периода прослушивания на конкретном канале.
  • Интервал сканирования: Общее время между двумя окнами сканирования.

Соотношение определяет рабочий цикл сканирования. 100% рабочий цикл означает, что сканер постоянно слушает = . Это обеспечивает самое быстрое обнаружение, но быстро истощает батарею. 10% рабочий цикл означает, что сканер слушает только 10% времени, экономя мощность, но потенциально пропуская пакеты.

Современные мобильные операционные системы предоставляют предварительно определенные профили сканирования для управления этим компромиссом:

  • SCAN MODE LOW POWER (Android): ~10% рабочий цикл, интервал 0,5s.
  • SCAN MODE BALANCED (Android): ~25% рабочего цикла.
  • SCAN MODE LOW LATENCY (Android): ~100% рабочий цикл, 2-й интервал.

Для iOS система управляет параметрами сканирования динамически на основе состояния приложения (форум против фона). Циклы фонового сканирования намного дольше для экономии батареи.

Расширенная фильтрация и структуры данных

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

  • Сервисные UUID: По возможности используйте 16-битные UUID, назначенные Bluetooth SIG, вместо 128-битных пользовательских UUID. Они более эффективно вписываются в пакет.
  • Конкретные данные производителя: Используйте первые 2 байта для идентификатора компании (как назначено Bluetooth SIG), а остальные байты для пользовательских данных. Это позволяет сканерам сразу классифицировать пакет.
  • Eddystone и iBeacon: Это хорошо известные типы кадров, использующие поле Manufacturer Specific Data. Сканеры специально ищут эти типы кадров, позволяющие осуществлять крайне целенаправленную фильтрацию на уровне радио.

Продвинутая реклама с Bluetooth 5.x и Auracast

Bluetooth 5.0 значительно расширил возможности рекламы, вытеснив 31-байтовые каналы.

Расширенная реклама

BLE 5.0 расширил рекламные каналы с оригинальных 3 первичных каналов до 39 каналов (каналы 37-39 плюс 40-47 используются для вторичной рекламы).

  • Более крупные полезные нагрузки: До 255 байт в одном рекламном пакете.
  • Более высокие скорости передачи данных: Использование 2M PHY (2 Мбит/с).
  • Более длинный диапазон: Используя кодированную PHY (125 кбит/с или 500 кбит/с), которая может достигать более километра диапазона в идеальных условиях.
  • Первичные/вторичные каналы: Сканер обнаруживает устройство на первичных каналах (37, 38, 39) и узнает, какой вторичный канал рекламодатель будет использовать для отправки фактических данных. Это позволяет сканеру настраиваться на вторичный канал, экономя мощность.

Расширенная реклама необходима для современных шлюзов IoT и тегов отслеживания активов, которые должны передавать большие объемы данных (например, журналы датчиков или изображения прошивки) без установления полного соединения.

Периодическая реклама (PAwR и PAST)

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

PAwR (Periodic Advertising with Responses) является игровым механизмом для двусторонней связи. Он позволяет шлюзу эффективно общаться с тысячами конечных узлов, определяя конкретные слоты для каждого узла. Это формирует основу для сетей датчиков высокой плотности, таких как электронные ярлыки полки (ESL).

PAST (Periodic Advertising Sync Transfer) позволяет устройству, которое уже синхронизировано с периодическим рекламодателем, делиться этой информацией с другим устройством. Это техническая основа Auracast, нового стандарта аудиотрансляции Bluetooth.

Auracast: Connectionless Audio

Auracast использует периодическую рекламу для трансляции аудиопотоков. Средства слуха, наушники и динамики сканируют потоки Auracast. Сканер (например, телефон или слуховой аппарат) синхронизируется с периодическим поездом и принимает аудиоданные. Это принципиально отличается от классической потоковой передачи A2DP, поскольку позволяет неограниченному количеству приемников слушать одновременно и поддерживает такие функции, как совместное использование аудио с телевизора на несколько пар наушников.

Практические соображения для надежных систем обнаружения

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

Анализ энергопотребления

Радио является наиболее энергоемким компонентом на устройстве BLE. Типичный BLE SoC вытягивает 10-20 мА при активной передаче или приеме. Средняя мощность рассчитывается как:

Avg Power = (TX/RX Current) x Duty Cycle + (Sleep Current) x (1 - Duty Cycle)

При 1-секундных рекламных интервалах рабочий цикл мизерный (примерно 0,5-1 мс радио в секунду = 0,1% рабочего цикла). Это позволяет CR2032 монетной батареи для питания маяка в течение года. Изменение до 100 мс интервал увеличивает рабочий цикл до ~1%, сокращая срок службы батареи до нескольких месяцев. Всегда вычисляйте рабочий цикл перед подключением к источнику батареи.

Ограничения операционной системы и платформы

Мобильные операционные системы накладывают строгие ограничения на сканирование BLE для защиты времени автономной работы и конфиденциальности пользователей.

  • iOS (Apple): В фоновом режиме сканирование Core Bluetooth происходит гораздо реже. опция в значительной степени игнорируется в фоновом режиме. Приложения должны указывать свои фоновые режимы в Info.plist. Кроме того, iOS агрессивно кэширует устройства, и сканирование для конкретных UUID-устройств службы настоятельно рекомендуется для уменьшения разряда батареи.
  • Android (Google): Android 8+ ввел ограничения на фоновое выполнение. Сканирование приложений в фоновом режиме должно использовать службу переднего плана (если нацелено на фоновое сканирование) или использовать с соответствующим . Android 12+ требует разрешения , которое является разрешением на время выполнения, таким как Location. Несоблюдение результатов в сканировании блокируется или замедляется.

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

Управление сосуществованием и вмешательством

Диапазон ISM 2,4 ГГц представляет собой переполненное пространство. Wi-Fi, Zigbee, Thread и даже микроволновые печи мешают BLE. Стек Bluetooth обрабатывает это через Адаптивный частотный скачок (AFH) на каналах данных. Однако три основных рекламных канала (37, 38, 39) не прыгают. Если активность Wi-Fi высока на каналах 1, 6 и 11, рекламные пакеты могут быть потеряны.

Разработчики могут смягчить это путем:

  • Использование расширенной рекламы (FLT:0) (BLE 5.x), которая использует больше каналов для вторичной передачи данных.
  • Обеспечение рекламного интервала достаточно долгое, чтобы избежать постоянного столкновения с Wi-Fi маяками.
  • Ретрансляция или подтверждение уровня программного обеспечения, если критически важные данные передаются.

Оригинальное название: Mastering the Discovery Handshake

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

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

Дальнейшее чтение и ресурсы