Vega ble в блютуз что такое

Протокол Bluetooth Low Energy: поддержка устройствами и специфика работы

Vega ble в блютуз что такое. image002 5. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-image002 5. картинка Vega ble в блютуз что такое. картинка image002 5

Способов трансляции данных «по воздуху» создано и используется довольно много. Популярностью обзавелся протокол BLE, который внедрен в электронику различного типа и успешно используется и по сей день. Что из себя представляет данный протокол и в каких сферах применим — рассмотрено в этой статье.

Зачем разработали BLE

Vega ble в блютуз что такое. BlueTooth Low Energy. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-BlueTooth Low Energy. картинка Vega ble в блютуз что такое. картинка BlueTooth Low Energy

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

Если у приемника и передатчика имеется батарейное питание, то наблюдаются проблемы со связью при разрыве постоянной передачи связи для экономии энергии, которые решили с новым протоколом передачи данных BlueTooth Low Energy (BLE).

BLE – это режим низкого энергопотребления, способствующий экономии заряда аккумулятора у сопряженных устройств.

Протокол стал частью Bluetooth 4.0. Операционная система Android поддерживает BLE с версии 4.3. В качестве пары, работающей с BLE, берется телефон с современной ОС, совместно с батарейной малой техникой (например, гарнитура). Но не исключены и взаимодействия иных гаджетов.

Чтобы принимать и передавать данные в необходимом объеме беспроводным способом, в стандарт Bluetooth LE включена скорость передачи информации, равная 1 Мбит/сек. Постоянный обмен данными затрачивает энергию, тем самым расходуя ее запасы. Поэтому протокол подразумевает разрыв постоянного эфира для экономии. Поэтому в протоколе не только важна скорость, а и то, что гаджеты умеют синхронизироваться друг с другом тогда, когда это необходимо.

Около 99% всего времени гаджеты спят и экономят энергию. Потом просыпаются на короткий период для обмена данными и снова засыпают. Но чтобы пребывать в данном режиме, устройства сперва между собой необходимо синхронизировать. Этот режим и называется advertising.

В каких сферах применяется

Vega ble в блютуз что такое. image004 1 1. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-image004 1 1. картинка Vega ble в блютуз что такое. картинка image004 1 1

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

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

Устойчивая работа и низкое энергопотребление протокола BLE позволяют рассматривать его в качестве замены NFC, а именно RFID-меток. Но вариант совмещенной работы BLE + NFC выглядит более привлекательно. BLE дает большой радиус, сопряженный с устойчивой работой, второй отвечает за логическое сопряжение пары, плюс обеспечивает надежную защиту за счет малого радиуса действия.

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

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

Поддерживаемые устройства

Определение поддержки

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

Вопросы безопасности BLE

Защита канала передачи данных между парой устройств в протоколе BLE обусловлена двумя режимами LE Секьюрити мод 1 и LE Секьюрити мод 2. Первый режим работает на Data Link layer (DLL), второй на AT&T.

На DLL в протоколе Bluetooth LE присутствует шифрование и аутентификация с помощью технологии построения аутентификационного кода сообщения из блочного алгоритма шифрования (CCM) и шифра AES-128. При работе CCM и AES-128, добавляется к ним Protocol Data Unit и дополнительное сообщение для идентификации целостности, размером 4-байта, после которого PDU и сообщение шифруются.

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

Vega ble в блютуз что такое. image010 4. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-image010 4. картинка Vega ble в блютуз что такое. картинка image010 4

Различия протоколов Bluetooth

Vega ble в блютуз что такое. image011 2. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-image011 2. картинка Vega ble в блютуз что такое. картинка image011 2

Так как Блютуз с низким энергопотреблением вошел в спецификацию Bluetooth 4.0, то технические сравнения проведены с классической версией.

Классический Блютуз

Bluetooth Low Energy

Частота радиосигнала

Дальность действия

Количество ведомых устройств

Опция зависит от реализации

128-бит AES + Counter Mode

Общее время передачи информации (минимум)

Различия между BR / EDR и BLE-модулями в том, что первый делит полосу пропускания на 79 каналов с разносом в 1 МГц, а второй работает с передатчиком и приемником для разделения полосы на 40 каналов, с разбросом в 2 МГц.

Заключение

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

Источник

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Что такое Bluetooth Low Energy (BLE) и как его взламывают

Чтобы вы не ушли пока читаете скучную теорию — в этой статье я буду взламывать свою зубную щётку…

Bluetooth, как мы знаем, является одной из самых популярных и широко используемых беспроводных технологий в современном мире. В связи с быстрым ростом IoT, ускоряющим развитие технологии Bluetooth, Специальная группа по интересам Bluetooth (Bluetooth Special Interest Group (SIG)) предпринимает постоянные усилия по увеличению скорости передачи с максимальным акцентом на маяки, развлечения, сферу здравоохранения и фитнес.

Bluetooth Low Energy (BLE) является частью спецификации Bluetooth 4.0, которая также включает протоколы классического Bluetooth и протокол высокоскоростного Bluetooth (Classic Bluetooth and Bluetooth High Speed Protocols). По сравнению с классическим Bluetooth, BLE предназначен для использования меньшей мощности при сохранении аналогичного диапазона связи. BLE — это технология, которая всегда отключена и передаёт только короткие объёмы данных, когда это необходимо. Это значительно снижает энергопотребление, что делает его идеальным для использования в случаях, когда требуется постоянное долговременное соединение с низкой скоростью передачи данных. BLE идеально подходит для пульта дистанционного управления телевизором, но не для беспроводного устройства потоковой передачи мультимедиа, которому для передачи требуется большой объем данных.

Изначально Nokia разработала BLE для собственного проекта под названием «WIBREE», который впоследствии был передан Bluetooth SIG. BLE был задуман с акцентом на лучшую скорость сопряжения и энергоэффективность.

Что выделяет BLE?

На бумаге BLE выглядит хорошо, а как на практике?

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

В то время как все устройства Bluetooth с низким энергопотреблением были разработаны с основной целью улучшения взаимодействия с пользователем, безопасность заняла последнее место во время процесса?

Давайте посмотрим на три основные уязвимости, которым BLE могут подвергать своих пользователей:

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

Основные понятия в BLE

В BLE есть два основных понятия.

Общий профиль доступа (GAP)

Он ответственен за подключение и распространения информации о наличии устройства BLE. GAP отвечает за видимость устройства во внешнем мире, а также играет важную роль в определении того, как устройство взаимодействует с другими устройствами.

Следующие две концепции являются неотъемлемой частью GAP:

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

Центральные устройства: в основном это мобильные телефоны или гаджеты с увеличенной памятью и вычислительной мощностью.

Advertising process (обеспечение видимости устройства)

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

Периферийное устройство будет отправлять «рекламные» данные каждые 2 секунды. Если центральное устройство готово прослушать рекламные пакеты, оно ответит запросом сканирования. В ответ на этот запрос периферийное устройство отправит данные ответа сканирования. Таким образом, центральное и периферийное устройства узнают друг о друге и связывается друг с другом.

Протокол общих атрибутов (GATT)

Используя общий протокол данных, известный как протокол атрибутов, GATT определяет, как два устройства BLE обмениваются данными друг с другом, используя понятия — сервис (service) и характеристика (characteristic). Этот протокол сохраняет все сервисы и характеристики в справочной таблице с использованием 16-битных идентификаторов, как указано в Bluetooth SIG. Важно отметить, что GATT инициируется только после того, как Advertising процесс, регулируемый GAP, завершён.

Две основные концепции, которые образуют GATT

Сервисы

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

Характеристики

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

Вот спецификации SIG для характеристик и сервисов для устройств BLE. Любое устройство BLE, которое официально приняло UUID от SIG, должно использовать идентификатор, указанный ими в своих приложениях.

Например, официальный UUID мощности передачи (TX power) в соответствии с мандатом SIG равен 0x1804.

Чтобы было наглядно, посмотрите на этот пример сервисов и характеристик конкретного устройства:

Vega ble в блютуз что такое. ble. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-ble. картинка Vega ble в блютуз что такое. картинка ble

Ещё один 16-битный сервис это «Generic Attribute (1801)», он содержит только одну 16-битную характеристику: Service Changed (2a05).

Далее идут три 128-битные сервиса, первый из них «a0f0fff050474d5382084f72616c2d42», содержит четыре 128-битных характеристики:

Имеется проблема в идентификации сервисов и характеристик. Для 16-битных сервисов и характеристик всё просто, ссылки на их значения даны выше. Что касается 128-битных сервисов и характеристик, то они у каждого производителя могут быть свои. То есть нужно приложит некоторые усилия, чтобы, к примеру, сопоставить что-то вроде d0611e78-bbb4-4591-a5f8-487910ae4366 с чем-то вроде Apple Continuity Service. Для сопоставления можно использовать как минимум два подхода:

Как взломать Bluetooth Low Energy

Суть процесса взлома Bluetooth Low Energy можно описать следующими стадиями:

Четвёртый этап является творческим и самым сложным. Иногда роль характеристик можно найти в документации разработчиков для данного устройства. Иногда приходится перебирать значения и смотреть, что поменялось в устройстве. Самый сложный вариант — это обратная инженерия перехваченного Bluetooth трафика или приложения для управление устройством.

Я покажу пример изменения BLE параметров на устройстве с помощью bettercap.

Вводим команду для включения модуля по обнаружению BLE устройств:

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

Vega ble в блютуз что такое. ble bettercap. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-ble bettercap. картинка Vega ble в блютуз что такое. картинка ble bettercap

Чтобы вывести устройства, которые в данный момент в пределах досягаемости, выполните команду:

Vega ble в блютуз что такое. ble bettercap 2. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-ble bettercap 2. картинка Vega ble в блютуз что такое. картинка ble bettercap 2

Для показа характеристик конкретного устройства, запустите команду следующего вида, где вместо MAC укажите MAC-адрес устройства:

К примеру, меня интересует устройство C8:DF:84:1A:9F:26:

Vega ble в блютуз что такое. ble. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-ble. картинка Vega ble в блютуз что такое. картинка ble

В столбце Properties вы увидите свойства данной характеристики, они могут быть:

В колонке Data присутствует текущее значение характеристики, либо дополнительная информация, например:

Для записи данных HEX_DATA в BLE устройство с указанным MAC адресом, в характеристику с идентификатором UUID:

Vega ble в блютуз что такое. ble bettercap 3. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-ble bettercap 3. картинка Vega ble в блютуз что такое. картинка ble bettercap 3

Чтобы знать, что именно записывать, нужно понимать, за что отвечают характеристики. Вот пример значений для моего устройства — это электрическая зубная щётка Oral-B Genius 9000 (кстати, рекомендую). Значение характеристик я нашёл в Интернете.

Исследование и взлом Bluetooth Low Energy (BLE) с телефона

Поскольку на всех современных телефонах имеется Bluetooth, то вы можете использовать приложения для работы с Bluetooth Low Energy (BLE) окружающих устройств на телефоне.

Vega ble в блютуз что такое. Screenshot 20190830 145655 nRF Connect. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-Screenshot 20190830 145655 nRF Connect. картинка Vega ble в блютуз что такое. картинка Screenshot 20190830 145655 nRF Connect

Пример такого приложения — nRF Connect — бесплатная программа программа для Android, которая умеет сканировать для поиска BLE устройств, подключаться к ним и менять значение характеристик. Программа поддерживает макросы и другие продвинутые функции.

Просмотр сервисов устройства:

Vega ble в блютуз что такое. Screenshot 20190830 145700 nRF Connect. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-Screenshot 20190830 145700 nRF Connect. картинка Vega ble в блютуз что такое. картинка Screenshot 20190830 145700 nRF Connect

Просмотр свойств характеристик:

Vega ble в блютуз что такое. Screenshot 20190830 145722 nRF Connect. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-Screenshot 20190830 145722 nRF Connect. картинка Vega ble в блютуз что такое. картинка Screenshot 20190830 145722 nRF Connect

Редактирование значений характеристик:

Vega ble в блютуз что такое. Screenshot 20190830 145905 nRF Connect. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-Screenshot 20190830 145905 nRF Connect. картинка Vega ble в блютуз что такое. картинка Screenshot 20190830 145905 nRF Connect

Работа с Bluetooth Low Energy (BLE) в Linux

Конечно, в Linux можно работать с устройствами, поддерживающими BLE, напрямую, без таких программ как Bettercap.

К сожалению, этот аспект довольно запутанный. В Debian и производных программы для работы с Bluetooth Low Energy собраны в пакете bluez. В Arch Linux и производных, пакет bluez также имеется, но утилиты, которые нас интересуют, помещены в пакет bluez-utils. Но не это самая большая проблема.

После очередного обновления утилит bluez, авторы вдруг признали многие важные программы «устаревшими», а именно устаревшими объявлены:

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

Была составлена такая таблица замены:

Устаревший инструментСамая подходящая замена
gatttoolbtgatt-client, D-Bus Gatt API
hciattachbtattach
hciconfigbtmgmt (и bluetoothctl?)
hcidumpbtmon (и btsnoop)
hcitoolотсутствует, доступно в D-Bus Device API
rfcommотсутствует, реализовано в D-Bus Profile1 API?
ciptool
sdptoolотсутствует, кажется, что функциональность разбросана по разным объектам D-Bus: Profile, Advertising, и массивы UUIDs в device и adapter.

Слова «отсутствует» не вселяют уверенности. По этой причине для Debian и производных этот пакет компилируется с ключом —enable-deprecated, а на Arch Linux в дополнении к пакету bluez-utils, доступному в стандартных репозиториях, в AUR имеется пакет bluez-utils-compat, в котором тоже включены устаревшие инструменты.

В относительно свежих инструкциях, для взаимодействия с Bluetooth Low Energy используются утилиты:

Поскольку они устарели и однажды всё-таки будут удалены окончательно, рассмотрим несколько простых вариантов использования их замен для поиска BLE устройств и получения с них данных.

Если запустить программу btmgmt:

И в ней выполнить команду:

То она выведет список обнаруженных устройств:

Vega ble в блютуз что такое. btmgmt. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-btmgmt. картинка Vega ble в блютуз что такое. картинка btmgmt

Будут выведены как BLE, так и обычные Bluetooth устройства.

Также умеет искать BLE устройства, если ввести:

С помощью команды connect можно подключиться к устройству, для этого нужно указать его MAC-адрес:

Информация по устройству:

Vega ble в блютуз что такое. info. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-info. картинка Vega ble в блютуз что такое. картинка info

Если перейти в меню GATT:

То можно получить список характеристик:

Vega ble в блютуз что такое. list attributes. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-list attributes. картинка Vega ble в блютуз что такое. картинка list attributes

А также перезаписать характеристики устройства.

Для получения информации по отдельным характеристикам:

Vega ble в блютуз что такое. attribute info. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-attribute info. картинка Vega ble в блютуз что такое. картинка attribute info

Ещё одна программа, которая выведет сразу все характеристики устройства — btgatt-client. Например, выполним подключение и посмотрим характеристики устройства с MAC C8:DF:84:1A:9F:26:

Vega ble в блютуз что такое. btgatt client. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-btgatt client. картинка Vega ble в блютуз что такое. картинка btgatt client

В дополнении к рассмотренным программам, в отдельной консоли можно запустить Bluetooth monitor:

Как и полагается программе-монитору, она будет выводить множество информации о происходящем с Bluetooth и об обнаруженных устройствах.

Vega ble в блютуз что такое. btmon. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-btmon. картинка Vega ble в блютуз что такое. картинка btmon

Заключение

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

Также с помощью них можно реализовать сканеры BLE и Bluetooth устройств и/или написать или приспособить фаззеры для исследования назначения характеристик BLE устройств. Поэтому вполне возможно, что в одной из следующих статей будут более подробно рассмотрены программы для работы с BLE.

Источник

Bluetooth Low Energy: подробный гайд для начинающих. Часть 2

Это вторая часть перевода книги Мохаммада Афане “Intro to Bluetooth Low Energy”. В представленных главах мы поговорим о типах устройств и об адвертайзинге, методе, с помощью которого периферийные устройства сообщают о своем присутствии. Первая часть – здесь.

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

Vega ble в блютуз что такое. image loader. Vega ble в блютуз что такое фото. Vega ble в блютуз что такое-image loader. картинка Vega ble в блютуз что такое. картинка image loader

2. Периферийные и центральные устройства BLE

Существуют несколько важных определений, с которыми вы будете постоянно сталкиваться при изучении BLE. Два наиболее важных касаются ролей устройства: BLE central и BLE peripheral.

Рассмотрим их более детально.

2.1 Периферийные устройства

Периферийное устройство – устройство, которое объявляет о своем присутствии путем адвертайзинга, т.е. рассылки широковещательных пакетов, и принимает запросы на соединение от центральных устройств.

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

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

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

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

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

2.2 Центральные устройства

Центральное устройство – устройство, которое обнаруживает периферийные устройства и считывает передаваемую ими информацию. Оно также может устанавливать соединение с одним или несколькими устройствами одновременно.

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

2.3 Сравнение типов устройств

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

Передатчик

Периферийное устройство

Наблюдатель

Центральное устройство

Не требует наличия приемника

Требует наличия как приемника, так и передатчика

Не требует наличия передатчика

Требует наличия как приемника, так и передатчика

Не поддерживает двунаправленный обмен данными

Поддерживает двунаправленный обмен данными

Не поддерживает двунаправленный обмен данными

Поддерживает двунаправленный обмен данными

Упрощенная схема, уменьшенный размер программного стека BLE

Требует полного программного стека BLE

Упрощенная схема, уменьшенный размер программного стека BLE

Требует полного программного стека BLE

Табл. 1: Сравнение типов устройств

2.4 Энергопотребление и требования к вычислительной мощности

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

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

Центральное устройство может быть подключено к нескольким периферийным одновременно. Характерный пример – смартфон, подключенный к умным часам, термостату умного дома и фитнес-трекеру одновременно.

2.5 Многоролевые устройства BLE

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

Рис. 1: Смартфон в качестве многоролевого устройства

2.6 Роль смартфонов в BLE

Одним из наиболее значимых преимуществ BLE перед другими похожими малопотребляющими технологиями, такими как ZigBee, Z-Wave, Thread и др.,) является его наличие в большинстве смартфонов, представленных на рынке. Практически все смартфоны уже имели на борту Bluetooth Classic с самых ранних дней, и большинство производителей чипсетов Bluetooth теперь внедряют в свои чипы поддержку и BLE, и Bluetooth Classic. В результате в настоящее время подавляющее большинство смартфонов поддерживает BLE.

Для смартфона возможность взаимодействовать с устройствами BLE дает пару существенных преимуществ:

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

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

Сложности, связанные с BLE на смартфонах

В настоящий момент существуют две основные мобильные операционные системы: Android и iOS. Android представил встроенную поддержку BLE API в версии Android 4.3 (выпущена в июле 2012 года), в то время как iOS сделал то же самое немного раньше – в октябре 2011 года.

Важно отметить, что многое зависит от возможностей аппаратного обеспечения операционной системы. В случае с iOS, поддержку BLE имеют все устройства, начиная с iPhone 4s. Ситуация с Android гораздо сложнее. Эта операционная система работает на устройствах разных производителей с разной аппаратной конфигурацией, поэтому нет простого способа определить, какие устройства первыми начали поддерживать BLE. Эта проблема фрагментации Android представляет большую проблему при разработке приложений, использующих BLE, которые должны работать одинаково на всех существующих Android-устройствах.

3. Рассылка и сканирование пакетов адвертайзинга

3.1 Общий профиль доступа (GAP)

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

Режимы и роли устройств;

Обнаружение устройств: рассылка пакетов адвертайзинга, сканирование, параметры рассылки и сканирования, содержимое пакетов;

Установка соединения: инициация, подтверждение, параметры соединения;

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

Мы кратко осветили состояния сканирования и рассылки пакетов адвертайзинга BLE-устройств и упомянули, что периферийное устройство всегда запускается в состоянии рассылки пакетов адвертайзинга, даже если оно предназначено для работы в подключенном состоянии большую часть времени. Чтобы два устройства могли обнаружить друг друга, одно из них должно рассылать пакеты адвертайзинга, а другое – сканировать первичные широковещательные каналы (радиоканалы 37, 38, 39) в поисках пакетов адвертайзинга, отправленных периферийным устройством.

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

3.2 Рассылка пакетов адвертайзинга

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

В BLE существуют 40 радиоканалов, разнесенных на 2 МГц (от центра до центра), как показано на рисунке ниже. Три канала называются каналами первичного адвертайзинга, в то время как оставшиеся 37 каналов используются для вторичного адвертайзинга, а также для передачи пакетов данных во время соединения.

Рис. 8: Радиоканалы в BLE

Замечание: Так как устройство посылает пакеты адвертайзинга на одном из этих каналов и, как правило, постоянно переключается между ними, они (каналы) разнесены далеко по спектру друг от друга для того, чтобы избежать перекрестных помех между устройствами, вещающими на разных каналах. Также, расположение этих каналов на спектре выбрано таким, чтобы избежать помех от наиболее часто используемых Wi-Fi каналов.

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

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

Примечание: длина первичного пакета адвертайзинга ограничена 31 байтами. Длина вторичного пакета адвертайзинга может составлять до 254 байт.

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

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

Рис. 9: Устройства, имеющие и не имеющие возможность подключения

3.3 Состояние сканирования

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

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

Рис. 10: Пассивное и активное сканирование

3.4 События адвертайзинга

Событие адвертайзинга состоит из нескольких пакетов, отправленных по всем или нескольким из трех каналов первичного адвертайзинга (37, 38 и 39). Существует семь типов событий адвертайзинга (их можно рассматривать как различные типы пакетов):

Подключаемое и сканируемое ненаправленное событие.

Этот тип позволяет другим устройствам принимать пакеты, посылать запросы сканирования отправителю и устанавливать с ним соединение.

Подключаемое ненаправленное событие.

Позволяет другим устройствам принимать пакеты и устанавливать соединение с их отправителем.

Подключаемое направленное событие.

Позволяет определенному устройству принимать пакеты и устанавливать соединение с отправителем

Неподключаемое и несканируемое ненаправленное событие.

Позволяет всем устройствам принимать пакеты. В то же время отклоняет все запросы сканирования и попытки установить соединение.

Неподключаемое и несканируемое направленное событие.

Позволяет определенному устройству принимать пакеты без возможности установить соединение или послать запрос сканирования.

Сканируемое ненаправленное событие.

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

Сканируемое направленное событие.

Позволяет определенному устройству посылать запросы сканирования отправителю пакета адвертайзинга для получения дополнительного пакета данных.

3.5 Параметры адвертайзинга

Под параметрами адвертайзинга понимают:

Интервал адвертайзинга.

Наиболее важный параметр из относящихся к адвертайзингу – это интервал адвертайзинга. Значение этого параметра может дискретно изменяться в пределах от 20 миллисекунд до 10.24 секунд, с шагом в 625 микросекунд. Интервал адвертайзинга оказывает большое влияние на продолжительность работы от батареи, поэтому выбору его значения следует уделить самое пристальное внимание. Рекомендуется выбирать наибольший интервал адвертайзинга, позволяющий соблюсти баланс между скоростью обнаружения и энергопотреблением.

Данные адвертайзинга и ответа на сканирование.

Давайте посмотрим на формат пакета адвертайзинга и составляющие его поля. Стоит отметить, что пакет ответа на сканирование использует такой же формат.

Рис. 11: Формат пакета адвертайзинга (из спецификации стандарта Bluetooth 5)

Данные адвертайзинга используют формат, аналогичный формату TLV (Type-Length-Value, Тип-Длина-Значение), используемому для передачи данных. Отличие состоит в том, что в пакетах адвертайзинга длина данных следует перед их типом. Данные адвертайзинга входят в состав протокольных данных (PDU, Protocol Data Unit) BLE-пакета и включает в себя:

Длину: длину данных, которые следуют за самим значением длины, включая тип данных и непосредственно данные.

Тип данных адвертайзинга: тип данных адвертайзинга, содержащихся в этой структуре TLV.

Данные адвертайзинга: непосредственно данные.

Типы данных адвертайзинга определены в дополнении спецификации Bluetooth (не в основном документе).

Ниже приведены одни из наиболее часто встречающихся типов данных:

Local Name: имя устройства, считываемое при его обнаружении другими устройствами, производящими процедуру сканирования.

Tx Power Level: Мощность передачи, измеряемая в дБм.

Flags: множество однобитных логических флагов (переменные, которые могут принимать одно из двух значений, истина [1] или ложь [0], включающее в себя:

Limited Discoverable Mode (ограниченный режим обнаружения);

General Discoverable Mode (общий режим обнаружения);

BR/EDR Not Supported (возможность поддержки классического протокола Bluetooth);

Возможность одновременной поддержки классического и Low Energy Bluetooth на одном устройстве со стороны контроллера;

Возможность одновременной поддержки классического и Low Energy Bluetooth на одном устройстве со стороны хоста.

Примечание: понятия BR (Basic Rate, базовая пропускная способность) и EDR (Enhanced Data Rate, расширенная пропускная способность) относятся к Bluetooth Classic.

Service Solicitation: список из одного или нескольких UUID, показывающий, какие сервисы поддерживаются и представлены GATT-сервером устройства. Это помогает центральному устройству узнать о поддерживаемых периферийным устройством сервисах до установления соединения.

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

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

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

Существует три основных параметра сканирования:

Scan Type (тип сканирования): пассивное или активное.

Scan Window (окно сканирования): определяет, длительность сканирования.

Scan Interval (интервал сканирования): определяет частоту повторения сканирования.

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

Рис. 12: Параметры сканирования

__________________________________

А что дальше?

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

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *