- Особенности разработки электроники с применением BLE (Bluetooth Low Energy)
- Зачем нужен BLE?
- Отличия BLE от стандартного BlueTooth
- BLE (Bluetooth Low Energy) — основные понятия
- Принцип работы BLE (Bluetooth Low Energy)
- BLE Notify и Indicate различия
- BLE задержки в передачи данных
- BLE энергопотребление
- BLE дальность работы
- Протокол Bluetooth Low Energy: поддержка устройствами и специфика работы
- Зачем разработали BLE
- В каких сферах применяется
- Поддерживаемые устройства
- Определение поддержки
- Вопросы безопасности BLE
Особенности разработки электроники с применением BLE (Bluetooth Low Energy)
В этой статье постараемся максимально простым языком разобрать особенности BLE, а также варианты его практического применения. Проверим его энергопотребление в различных режимах, а также задержки.
Зачем нужен BLE?
Раньше при разработке различных устройств мы использовали обычный Bluetooth. По-сути, обычный Bluetooth это беспроводной UART. То есть у нас есть поток принимаемых данных и поток отправляемых данных. Какие плюсы? Плюс в простоте разработки, команды или информация принимаются по UART, дальше происходит простой парсинг. Какие минусы? Минус в том, что по умолчанию передача идет все время. Самый популярный Bluetooth пердатчик типа HC-05, HC-06 потребляет в таком режиме десятки миллиампер постоянно, если самостоятельно не принимать меры по отключению модуля, включению, установке соединения. А что если, например, второе устройство хочет отправить сообщение о каком-то наступившим событии, а второй модуль спит? Тогда второй модуль получит это сообщение только когда проснется. Но что если мы хотим с одной стороны иметь очень низкое энергопотребление, а с другой стороны быть в рабочем режиме только когда идет какая-то передача данных? А что если нужно соединить не два, а три и больше устройств? Тут на помощь как раз и приходит BLE.
Отличия BLE от стандартного BlueTooth
В BLE модуль потребляет лишь в моменты передачи данных, в остальное время он находится в глубоком сне. Благодаря этому можно существенно снизить энергопотребление. Однако, чем чаще планируется передача данных, тем больше будет энергопотребление. И при очень частой передачи данных энергоффективность BLE будет несильно отличаться от обычного Bluetooth.
Также BLE позволяет подключаться сразу к нескольким устройствам. Если классический Bluetooth поддерживает топологию типа «Точка-Точка», то BLE поддерживает «Вещание» и «Ячеистую сеть».
Вещание — периферийное устройство передает данные нескольким центральным.
Ячеистая сеть — устройства подключены друг к другу. То есть в сети несколько устройств и у каждого по несколько подключений.
BLE (Bluetooth Low Energy) — основные понятия
В BLE весьма запутанные названия.
CENTRAL, он же CLIENT, он же GATT CLIENT, он же MASTER — это устройство, которое подключается к периферийным.
PERIPHERAL, он же SERVER, он же GATT SERVER, он же SLAVE
GATT — это спецификация для отправки и получения коротких фрагментов данных (атрибутов), она определяет иерархию данных, то есть то, по каким правилам устройства обмениваются сообщениями.
У каждого устройства BLE есть профиль. Он может иметь 1 и более сервисов, у сервиса должна быть минимум одна характеристика. Характеристика всегда долдна иметь минимум два атрибута: объявление характеристики и значение характеристики.
Я предпочитаю использовать названия CENTRAL (Центральное) и PERIPHERAL (Периферийное), далее будем использовать их.
Принцип работы BLE (Bluetooth Low Energy)
Центральное устройство сканирует Advertising пакеты, а периферийное их отсылает. После того, как центральное устройство находит искомое периферийное устройство, они переходят на канал передачи данных.
В BLE для передачи используется 3 канала для Advertising пакетов и 37 каналов для передачи данных.
BLE Notify и Indicate различия
У многих может возникнуть вопрос, в чем разница между свойством Notify и Indicate. По сути — оба выполняют одну функцию оповещения. Отличие оповещения от чтения в том, что вам не нужно каждый раз делать запрос на чтение значения у устройства. Вы получаете значение асинхронно, по факту, и не тратите энергию на ненужные запросы. Как правило такой режим используется, когда нужно узнать, что у устройства обновились данные (например произошло чтение с датчика температуры). Также если, обновления данных апериодичны, то периодический опрос будет пустой тратой энергии. Кроме того, такой опрос требует двусторонней связи, так сначала мы отправляем запрос на чтение, а потом нам приходит ответ. Notification это односторонний вид связи, поэтому происходит экономия на времени передачи данных, а также и на энергопотреблении. Однако, Notify это передача без подтверждений, это ненадежный канал передачи данных. А что если хочется иметь с одной стороны асинхронную передачу данных без лишних опросов устройства, а также иметь надежную передачу данных с подтверждением? Здесь на помощь приходит Indicate. Здесь необходимо, чтобы клиент отправил подтвердение о получении. Однако, такая надежность требует большего времени не передачу.
BLE задержки в передачи данных
Измерение проводилось для передачи типа INDICATE. Как говорилось выше — это асинхронная передача данных с подтверждением. Отсчет времени начинался с момента вызова функции indicate на Peripheral устройстве и заканичвался в момент вызова коллбэка об изменении характеристики на периферийном устройстве и чтении ее на Central устройстве. Диапазон задержек составил от 5 до 50 мс. Это нужно учитывать в устройствах, которые привязаны к реальному масштабу времени. Среднее значение задержки BLE составляло примерно 10 мс. Среднеквадратическое отклонение не считали.
BLE энергопотребление
При редких отправках данных можно добиться среднего энергопотребления, измеряемого в микроамперах, однако при частых передачах данных энергопотребление будет достигать десятков миллиампер.
BLE дальность работы
Тестирование проводилось в условиях прямой видимости на двух модулях NRF52832. Сигнал был потерян на расстоянии 9 метров. На расстоянии 5 метров передача была стабильной, ни одного пакета NOTIFY в течение 24 часов потеряно не было.
Протокол Bluetooth Low Energy: поддержка устройствами и специфика работы
Способов трансляции данных «по воздуху» создано и используется довольно много. Популярностью обзавелся протокол BLE, который внедрен в электронику различного типа и успешно используется и по сей день. Что из себя представляет данный протокол и в каких сферах применим — рассмотрено в этой статье.
Зачем разработали BLE
После изучения и успешного применения передачи информации без проводов, появилась потребность передавать данные, используя устройства с автономными источниками питания. Проблема состоит в том, что с этим устройством должно работать еще одно, которое постоянно передает данные либо слушает эфир.
Если у приемника и передатчика имеется батарейное питание, то наблюдаются проблемы со связью при разрыве постоянной передачи связи для экономии энергии, которые решили с новым протоколом передачи данных BlueTooth Low Energy (BLE).
BLE – это режим низкого энергопотребления, способствующий экономии заряда аккумулятора у сопряженных устройств.
Протокол стал частью Bluetooth 4.0. Операционная система Android поддерживает BLE с версии 4.3. В качестве пары, работающей с BLE, берется телефон с современной ОС, совместно с батарейной малой техникой (например, гарнитура). Но не исключены и взаимодействия иных гаджетов.
Чтобы принимать и передавать данные в необходимом объеме беспроводным способом, в стандарт Bluetooth LE включена скорость передачи информации, равная 1 Мбит/сек. Постоянный обмен данными затрачивает энергию, тем самым расходуя ее запасы. Поэтому протокол подразумевает разрыв постоянного эфира для экономии. Поэтому в протоколе не только важна скорость, а и то, что гаджеты умеют синхронизироваться друг с другом тогда, когда это необходимо.
Около 99% всего времени гаджеты спят и экономят энергию. Потом просыпаются на короткий период для обмена данными и снова засыпают. Но чтобы пребывать в данном режиме, устройства сперва между собой необходимо синхронизировать. Этот режим и называется advertising.
В каких сферах применяется
Протокол BLE используется по сценарию: редко передавать данные и обрабатывать долгое время. В частности, возможно использование двухрежимных гаджетов BLE в смартфонах, планшетных ПК, ноутбуках. Однорежимные могут использоваться во множестве сфер деятельности. Под эти сферы попадают устройства из разделов здоровья, автоматизации, анализа, управления.
Множество задач могут решаться, когда в радиусе двухуровневого модуля определяются иные одноуровневые BLE-приборы. К этим приборам относятся приборы-сигнализаторы, что уведомляют владельца об удалении от сумки, барсетки, кошелька, переносной тары и иных персональных вещей, оснащенных BLE-модулем. Отличное применение данным брелкам с BLE находят в качестве маячков для ребенка, чтобы не потерять его в достаточно людных местах.
Устойчивая работа и низкое энергопотребление протокола BLE позволяют рассматривать его в качестве замены NFC, а именно RFID-меток. Но вариант совмещенной работы BLE + NFC выглядит более привлекательно. BLE дает большой радиус, сопряженный с устойчивой работой, второй отвечает за логическое сопряжение пары, плюс обеспечивает надежную защиту за счет малого радиуса действия.
Не обходят стороной данную спецификацию в системах умных домов. Работа приборов через блютуз с низким энергопотреблением позволяет открывать удаленно двери, ворота и приводить в действие прочие механизмы с большого расстояния, подолгу не меняя аккумулятор в беспроводном и компактном органе управления.
Кроме того, внедрение в смартфон, который всегда под рукой, BLE-модуля позволит на приличном удалении через сопряженные каналы управлять любыми приборами и аксессуарами умного дома. Или подключаться к сенсорной панели для удаленного управления с другой комнаты.
Поддерживаемые устройства
Протокол BLE содержится в модулях со встроенным программным обеспечением. Модулями оснащаются конечные устройства. В качестве модулей можно выделить:
- BT111 – создан для приложений, где нужна работа со стандартными протоколами Bluetooth и BLE.
- BLE112 – однорежимный BLE-модуль для сенсорных систем и прочих аксессуаров с батарейным питанием.
- USB BLED112 – аналогичный однорежимный BLE-модуль со всеми свойствами BLE112, но выполнен в форм факторе USB-флешки.
- Спортивные аксессуары по типу шагомеров, пульсометров, ритмометров, которые имеют форму часов для руки или браслета.
- Различные сенсоры для определения движения, температуры, влажности.
- Системы чтения и отображения информации с автономным источником питания.
- Бытовая медтехника по типу измерителей глюкозы, тонометров, температурных измерителей.
- Гаджеты для удаленного вызова, по типу радио-няня.
- Приборы бытовой электроники, по типу беспроводной периферии (клавиатуры, мышки), панелей и пультов.
- Устройства для автоматизации в жилом доме по типу шлюзов между соединенной к Smart House сенсорной сетью и смартфонами с Блютуз.
- Устройства безопасности, по типу тревожных кнопок, бесконтактных ключей и прочее.
Определение поддержки
Множество таких «определителей» находится в 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 и сообщение шифруются.
В некоторых случаях аутентификацию можно провести поверх нешифрованного соединения на канальном уровне. Но в таком случае на AT&T -уровне к PDU плюсуется двенадцати байтная сигнатура.
Режимы безопасности включают в себя несколько уровней, используемых в зависимости от типа соединения.
- Первый – на канальном уровне два модуля обмениваются информацией о доступных возможностях ввода-вывода, а после принимают решение, по какому из обнаруженных произойдет взаимодействие.
- Второй – создание ключа для третьего этапа, который называется «временный ключ краткосрочного значения». Он послужит для надежной передачи данных о временном ключе. Ключ может быть передан тремя способами: с использованием альтернативного канала NFC, с введением шестизначного кода, вводимого пользователем, или без проверки аутентификации, если первый и второй способ организовать невозможно.
- Третий – конечные точки соединения обмениваются тремя 128 битными ключами и, если нарушений не замечено, пара успешно синхронизируется.