Программирование ARM Bluetooth Low Energy GAP Mon, September 27 2021  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Bluetooth Low Energy GAP Печать
Добавил(а) microsin   

Аббревиатура GAP обозначает профиль доступа (Generic Access Profile) к устройству Bluetooth. В этот профиль управляет соединениями и анонсом (advertising) устройства в сети Bluetooth. GAP делает Ваше устройство видимым по радио, и определяет, как два устройства Bluetooth могут (или не могут) взаимодействовать друг с другом.

Примечание: непонятные термины и аббревиатуры см. в Словарике [3].

[Роли устройств Bluetooth]

GAP определяет различные роли для устройств, однако следует иметь в виду две ключевые концепции сети Bluetooth - центральное устройство и периферийное устройство.

Периферийное устройство. Обычно это маленькое, экономящее энергию устройство с ограниченными ресурсами, которое может быть подключено к более мощному центральному устройству. В качестве периферийного устройства можно привести пример монитор сердцебиения (heart rate monitor), метка доступа BLE (proximity tag), и т. п.

Центральное устройство. К таким устройствам относят мобильные телефоны или планшеты, у которых намного больше вычислительной мощности и памяти.

Более подробно про BLE, роли устройств и топологию радиосети Bluetooth см. [2].

[Анонс устройства, сканирование данных ответа]

Существует 2 способа отправки анонса устройства с помощью GAP - предоставление полезной нагрузки данных анонса (Advertising Data payload) и сканирование полезной нагрузки данных ответа (Scan Response payload).

Обе этих полезных нагрузки идентичны, и содержат в себе до 31 байт данных, однако обязательна только advertising data payload, поскольку эта полезная нагрузка будет постоянно передаваться от периферийного устройства, чтобы позволить центральным устройствам, находящихся в радиусе прохождения радиосигнала, узнать о том, что это периферийное устройство существует и готово к подключению. Scan response payload это опциональная вторичная полезная нагрузка, которую может запросить центральное устройство, и это позволяет разработчикам периферийного устройства добавить больше информации об устройстве, например строки для имени устройства, и т. п.

Advertising Process. Следующая диаграмма должна иллюстрировать процесс объявления о себе (advertising process) устройств Bluetooth, и работают как полезные нагрузки объявления (advertising payload) и сканирования ответа (scan response payload).

Периферийное устройство установит специальный интервал оповещения (advertising interval), и всякий раз по истечении этого интервала будет повторно передавать основной пакет оповещения (main advertising packet). Чем больше интервал оповещения, тем больше экономится энергия источника питания, однако устройство будет труднее найти в сети, если оно будет оповещать о себе каждые 2 секунды по сравнению с оповещением о себе каждые 20 миллисекунд.

Если прослушивающее устройство заинтересовано в scan response payload (и если это доступно в периферийном устройстве), то оно может опционально запросить scan response payload, и периферийное устройство ответить на этот запрос дополнительными данными.

BLE advertising

[Широковещательная топология сети]

Хотя большинство периферийных устройств оповещают о себе таким образом, что соединение может быть установлено, и могут быть использованы сервисы и характеристики GATT [2] (что позволяет отправить больше данных в обоих направлениях), существуют ситуации, когда Вы хотите использовать только данные advertise.

Основной пример такого использования - когда Вы хотите, чтобы периферийное устройство посылало данные одновременно больше чем одному устройству. Это возможно только в том случае, когда используется advertising packet, поскольку данные, которые передаются и принимаются в режиме соединения, могут быть видны только двум участникам обмена (устройствам, которые из стадии оповещения перешли в стадию соединения).

Путем добавления небольшой порции пользовательских данных в полезную нагрузку 31-байтного advertising или полезную нагрузку scan response, Вы можете использовать недорогое периферийное устройство BLE для отправки данных в одном направлении на любые устройства, находящиеся в радиусе доступа, как показано на следующей иллюстрации. Такая техника передачи в BLE называется широковещанием (Broadcasting).

Например, это используется устройством iBeacon компании Apple, которое добавляет пользовательскую полезную нагрузку (custom payload) в main advertising packet, используя поле специфических данных производителя (Manufacturer Specific Data).

BLE broadcast topology

Как только произошло соединение между Вашим периферийным устройством и центральным устройством, процесс широковещания останавливается, и больше нельзя будет посылать advertising пакеты. После этого Вы будете использовать сервисы и характеристики GATT [2], чтобы обмениваться данными с устройством в обоих направлениях.

Подробнее о том, что такое периферийное устройство, центральное устройство, и как ведут себя устройства в сети BLE см. статью [2].

[Ссылки]

1. Bluetooth Low Energy GAP site:learn.adafruit.com.
2. Bluetooth Low Energy GATT.
3. nRFxx: аббревиатуры и термины.

 

Добавить комментарий


Защитный код
Обновить

Top of Page