Создание индивидуального сервиса, и особенно клиента Bluetooth Low Energy, — это грабли с завязанными глазами.
По крайней мере, так было у меня 4 года назад, когда я только начинал работать с BLE-устройствами.
Сейчас почти каждый мой проект предполагает использование этого протокола, поэтому в свое время мне пришлось долго и мучительно в нем разбираться.
Книга Мохаммеда Афане помогла разложить все по полочкам «Введение в Bluetooth с низким энергопотреблением» и серия постов на Новые биты .
Лично для меня эта книга стала настоящим открытием.
Изначально я перевел его на русский язык для своих коллег, не имевших опыта работы с BLE. С согласия автора (большое ему спасибо) я решил опубликовать здесь свою работу.
Надеюсь, перевод будет полезен.
Это первая часть перевода (всего их будет 5), в которой рассказывается, что такое BLE, его возможности и отличия от Bluetooth Classic, а также описывается архитектура протокола.
об авторе
Мохаммад Афане занимается разработкой встроенного программного обеспечения и встроенного ПО с 2006 года.Он работал и консультировал многие крупные компании, включая Allegion (замки Schlage), Motorola, Technicolor, Audiovox и Denon & Marantz Group. За свою карьеру он работал над многими проектами Интернета вещей, в том числе над беспроводными электронными дверными замками, спутниковыми ресиверами, беспроводными дверными замками и т. д. В июле 2015 года он решил перестать работать полный рабочий день, чтобы основать собственную компанию.
Роман Битс, ООО , где он делится своими знаниями и опытом через свой веб-сайт, местные тренинги и электронные книги по разработке приложений Bluetooth Low Energy. Вы можете связаться с Мохаммедом по электронной почте: [email protected] или через его профиль на LinkedIn .
Основы Bluetooth с низким энергопотреблением
1. Что такое Bluetooth с низким энергопотреблением?
Bluetooth был задуман как технология связи ближнего действия, предназначенная для замены проводов в таких устройствах, как компьютерные мыши, клавиатуры или персональные компьютеры.Если у вас есть современный автомобиль или смартфон, то, скорее всего, вы хотя бы раз в жизни пользовались Bluetooth. Он повсюду: в динамиках и колонках, беспроводных наушниках, автомобилях, носимых устройствах и даже в шлепки ! Первую официальную версию стандарта выпустила компания Ericsson в 1994 году.
Разработчики назвали свое изобретение в честь короля Дании Харальда Гормссона по прозвищу «Синезубый», объединившего в X веке враждующие датские племена в единое королевство.
В настоящее время существует два типа устройств с поддержкой Bluetooth:
- Классический Bluetooth (BR/EDR) , используется в беспроводных колонках, автомобильных информационно-развлекательных системах и наушниках;
- Bluetooth с низким энергопотреблением (BLE), те.
Bluetooth Low Energy, который был представлен в версии стандарта Bluetooth 4.0. Чаще всего он используется в приложениях, чувствительных к питанию (например, устройствах с батарейным питанием) или в устройствах, которые передают небольшие объемы данных с большими перерывами между передачами (например, различные датчики окружающей среды или устройства управления, такие как беспроводные переключатели).
.
Устройства с поддержкой Bluetooth Classic не могут напрямую взаимодействовать с устройствами, использующими BLE. По этой причине некоторые устройства, например смартфоны, поддерживают оба типа подключения (называемые Двухрежимные устройства Bluetooth ), что позволяет им обмениваться информацией с обоими типами устройств.
Рисунок 1. Типы устройств Bluetooth Несколько важных замечаний о BLE:
- Официальная спецификация Bluetooth сочетает в себе оба типа Bluetooth (классический и BLE), что иногда затрудняет поиск документации по BLE;
- BLE был представлен в версии 4.0 спецификации стандарта Bluetooth, выпущенной в 2010 году;
- BLE иногда называют Bluetooth Smart, BTLE или Bluetooth 4.0, что является неправильным названием, поскольку эта версия фактически включает оба типа Bluetooth;
- Bluetooth Classic и BLE работают в одном частотном диапазоне — 2,4 ГГц, диапазон ISM.
Большинство улучшений и новых функций, представленных в этой версии, были ориентированы на BLE, а не на Bluetooth Classic. Возможно, вы также слышали о другом термине, связанном с Bluetooth — Bluetooth-сетка .
Bluetooth Mesh был выпущен в июле 2017 года и основан на BLE. Для работы требуется полная куча BLE (программное обеспечение, которое действует как интерфейс для другого программного или аппаратного обеспечения), но оно не является частью базовой спецификации Bluetooth. Подробнее эту технологию мы рассмотрим в отдельной главе.
Подводя итог, давайте посмотрим на диаграмму, показывающую прогресс BLE за годы с момента его создания:
Рис.
2: История BLE
Технические факты о BLE
Некоторые из наиболее важных технических фактов о BLE включают в себя:- Используемый диапазон частот 2,400–2,4835 ГГц.
- Весь частотный диапазон разделен на 40 каналы по 2 МГц каждый.
- Максимальная скорость передачи данных по радиоканалу (начиная с версии Bluetooth 5) 2 Мбит/с.
- Дальность передачи сильно зависит от физической среды, а также от используемого режима передачи.
Например, в режиме передачи на большие расстояния дальность связи будет больше, а скорость передачи будет ниже, чем в высокоскоростном режиме.
Типичный диапазон передачи: 10-30 метров .
- Потребление электроэнергии также может сильно различаться.
Это зависит от реализации устройства, различных параметров протокола и используемого чипсета.
Типичное потребление BLE-трансивера при передаче данных обычно не превышает 15 мА .
- Безопасность не обязательно при обмене данными через BLE и зависит от устройства и реализации приложения разработчиком.
Другими словами, существует несколько уровней безопасности, которые можно реализовать.
- Для всех операций, связанных с шифрованием, BLE использует алгоритм AES-CCM с длиной ключа 128 бит.
- BLE для передача данных по каналу с низкой пропускной способностью.
- Версии Bluetooth (с точки зрения BLE) обратно совместимы.
Однако коммуникационные возможности будут ограничены функциями старой версии.
Например, устройство с поддержкой Bluetooth 5 LE может взаимодействовать с устройством с поддержкой Bluetooth 4.1 LE, но функции, представленные в версии 4.2 и более поздних версиях, будут недоступны.
При этом они смогут подключаться, отправлять и получать широковещательные пакеты, обнаруживать сервисы и характеристики, а также читать и записывать их независимо от версии поддерживаемого ими стандарта, поскольку эти возможности доступны во всех версиях Bluetooth.
Сравнение Bluetooth Classic и BLE
Важно помнить, что существует большая разница между классическим Bluetooth и Bluetooth Low Energy с точки зрения технических характеристик, реализации и типов приложений, для которых они предназначены.Это помимо того, что они несовместимый вместе.
Некоторые из упомянутых различий представлены в этой таблице: Таблица 1 .
Сравнение Bluetooth Classic и BLE
Bluetooth классический | БЛЕ |
Используется для потоковых приложений, таких как потоковое аудио и передача файлов.
| Используется в датчиках, устройствах управления и приложениях, не требующих передачи больших объемов данных.
|
Не оптимизирован для низкого энергопотребления, но поддерживает более высокие скорости передачи (максимум 3 Мбит/с, тогда как BLE 5 имеет максимум 2 Мбит/с) | Предназначен для использования в маломощных устройствах с большими интервалами между передачами данных.
|
Использует 79 радиоканалов.
| Использует 40 радиоканалов.
|
Обнаружение происходит по 32 каналам | Обнаружение происходит по 3 каналам, что приводит к более быстрому обнаружению и установлению соединения по сравнению с Bluetooth Classic. |
Самое важное изменение произошло в декабре 2016 года с появлением Bluetooth 5, который привнес множество важных улучшений в стандартную спецификацию, большинство из которых связано с BLE. Эти улучшения позволили удвоить скорость передачи, увеличить дальность передачи в 4 раза и увеличить размер широковещательного пакета в 8 раз.
Возможности и ограничения BLE
У каждой технологии есть свои ограничения, и BLE не является исключением.Как мы упоминали ранее, BLE лучше всего подходит для приложений с небольшой дальностью передачи и небольшими объемами данных, передаваемыми нечасто.
4.1. Ограничения BLE
Пропускная способность
Пропускная способность BLE ограничена физической пропускной способностью радиоканала, то есть скоростью, с которой данные передаются по радиоканалу.Пропускная способность зависит от используемой версии Bluetooth. Для Bluetooth 4.2 и более ранних версий доступна пропускная способность только 1 Мбит/с.
В Bluetooth 5 и более поздних версиях пропускная способность зависит от выбранного режима.
ФИЗИЧЕСКИЙ (Физический уровень, обсуждается в разделе «Физический уровень»).
Она может составлять 1 Мбит/с, как в более ранних версиях, или 2 Мбит/с при использовании высокоскоростной передачи.
При использовании функции междугородной связи пропускная способность ограничивается 500 или 125 Кбит/с.
Мы обсудим это более подробно в главе Bluetooth 5. Скорость передачи с точки зрения конечного пользователя всегда будет ниже скорости радиопередачи из-за следующих факторов:
- Промежутки между пакетами данных.
Спецификация Bluetooth определяет разрыв в 150 микросекунд между передаваемыми пакетами как требование соответствия спецификации.
В этот период времени передача данных между устройствами невозможна.
- Служебная информация внутри пакета: каждый пакет содержит, помимо полезных данных, заголовок и служебные данные, обрабатываемые на уровнях ниже уровня приложения.
Они учитываются при передаче данных, но не используются вашим приложением.
- Требование передачи служебной информации периферийным устройством: спецификация требует обязательного ответа от ведомого устройства на каждый пакет, передаваемый ведущим.
Если информация, необходимая для передачи, отсутствует, передается пустой пакет.
- Повторная отправка пакетов данных.
В случае потери пакетов или перекрестных помех от соседних устройств потерянные или поврежденные данные пересылаются повторно.
Диапазон передачи
BLE был разработан для применения на небольших расстояниях и поэтому имеет ограниченный радиус действия.Вот некоторые факторы, которые ограничивают дальность передачи при использовании BLE:
- На передачу в диапазоне ISM 2,4 ГГц сильно влияют препятствия вокруг нас, такие как металлические предметы, бетонные стены, вода и человеческие тела.
- Диаграмма направленности и коэффициент усиления антенны.
- Корпус устройства, в котором находится антенна, также ухудшает характеристики антенны.
- Ориентация устройства в пространстве, определяющая ориентацию антенны, например в смартфонах.
Нужен шлюз для подключения к Интернету
Для передачи данных с устройства, поддерживающего только соединение BLE, вам понадобится другое устройство, поддерживающее как соединение BLE, так и IP. Именно он будет получать данные и отправлять их в Интернет.4.2 Преимущества BLE
Даже с учетом ограничений, представленных выше, BLE имеет некоторые существенные преимущества перед другими аналогичными коммуникационными технологиями для Интернета вещей.Вот некоторые из них:
- Меньшее энергопотребление;
Это достигается за счет глубокой оптимизации протокола, отключения передатчика при первой возможности и отправки небольших объемов данных на низкой скорости.
- Свободный доступ к официальным спецификациям;
Стать участником можно за внушительную сумму (от 7500 до 35 000 долларов в год).
В случае BLE спецификации основных версий (4.0, 4.1, 4.2, 5) доступны для скачивания с сайта.
Bluetooth абсолютно бесплатно.
- Низкая цена модулей и чипсетов по сравнению с другими технологиями;
- Последним, но не менее важным фактором является Доступно в большинстве смартфонов на рынке.
Это, пожалуй, самое большое преимущество BLE перед такими технологиями, как ZigBee, Z-Wave и Thread.
4.3 Наиболее подходящие приложения для BLE
Учитывая ограничения и преимущества, указанные выше, существуют случаи использования, в которых BLE используется наиболее полно:- Небольшой объем передаваемых данных;
- Настройка устройств;
Например, некоторые устройства с поддержкой Wi-Fi добавляют BLE в качестве вспомогательного протокола вместо использования таких технологий, как WiFi Direct. Это технология, которая позволяет двум устройствам с поддержкой Wi-Fi подключаться напрямую, минуя маршрутизатор.
Подробнее о ней можно узнать в Википедии или Здесь .
- Использование смартфона в качестве интерфейса;
Сегодня, благодаря широкому распространению смартфонов, BLE может предложить альтернативный, гораздо более информативный и удобный интерфейс для этих устройств.
Еще одним преимуществом смартфона является возможность загрузки данных в облако.
- Персональные и носимые устройства;
- Устройства без подключения.
У этих устройств одна простая задача — транслировать данные через определенные промежутки времени, чтобы другие устройства могли их обнаружить и получить переданные данные.
Есть и другие технологии, которые можно использовать для этих целей.
Однако BLE становится все более популярным, поскольку у большинства людей есть смартфоны, поддерживающие BLE «из коробки».
Все вышеперечисленные сценарии выигрывают от использования BLE. С другой стороны, существуют условия, при которых, как правило, использование BLE невозможно или не дает ощутимой выгоды, такие как:
- Видео трансляция;
- Трансляция высококачественного звука ( примечание: стало возможным в BLE 5.2);
- Передавайте большие объемы данных в течение длительных периодов времени в тех случаях, когда важно снизить энергопотребление.
BLE-архитектура
На рисунке ниже показаны различные уровни, присущие архитектуре BLE. Три основных блока в этой архитектуре: приложение, хост И контроллер.
Рисунок 3: Архитектура BLE В этой книге мы сосредоточимся на верхних уровнях архитектуры, кратко представив в этой главе нижние уровни.
Подробное описание верхних уровней – GAP (общий профиль доступа), GATT (общий профиль атрибута) и диспетчер безопасности – Мы вынесем их в отдельные главы.
Прикладной уровень
Уровень приложения зависит от варианта использования устройства/приложения и представляет собой реализацию профиля общего доступа (GAP) и профиля универсального атрибута (GATT).Он отвечает за то, как ваше приложение обрабатывает данные, полученные от других устройств и отправляемые на них, а также за логику управления.
.
Эта часть представляет собой код, который вы написали для своего приложения, и обычно не является частью стека BLE платформы, для которой вы разрабатываете.
Эта часть не рассматривается в книге, поскольку она зависит от специфики вашего приложения и варианта использования.
Уровень хоста
Хозяин включает в себя следующие уровни:- Общий профиль доступа (GAP, Generic Access Profile);
- Общий профиль атрибутов (GATT);
- Протокол атрибутов (ATT, Протокол атрибутов);
- Менеджер Безопасности (СМ, Менеджер Безопасности);
- Протокол управления логическим каналом и адаптации (L2CAP, протокол управления и адаптации логического канала);
- Host Controller Interface (HCI, Host Controller Interface), зона ответственности хоста.
Контроллер
Контроллер включает следующие уровни:- Физический уровень (PHY, Physical Layer);
- Канальный уровень;
- Режим прямого тестирования (DTM, режим прямого тестирования);
- Host Controller Interface (HCI, Host Controller Interface), зона ответственности контроллера.
Уровни архитектуры BLE
Физический уровень (PHY)
ФИЗИЧЕСКИЙ относится к оборудованию, отвечающему за прием, передачу, модуляцию и демодуляцию сигнала.
BLE работает в диапазоне ISM (2,4 ГГц), который разделен на 40 каналов по 2 МГц, как показано на рисунке ниже:
Рис.
4: Частотный спектр и радиоканалы в BLE Три выделенных канала называются Основные каналы вещания , а остальные 37 используются как Вторичные трансляции и для передачи данных во время соединения.
Подробно принципы их использования мы рассмотрим в разделе «Реклама и сканирование» , но сначала давайте кратко рассмотрим их в этой главе.
Реклама состоит из отправки широковещательные пакеты три Основные рекламные каналы (или их части).
Это позволяет обнаружить вещательное устройство и прочитать его данные на сканирующие устройства.
После этого сканирующее устройство может инициировать сложный, Если транслировать разрешает подключение.
Сканирующее устройство также может отправлять запрос на сканирование, и, если вещательное устройство поддерживает эту функцию, то оно отправит ответ сканирования .
Запросы и ответы на сканирование позволяют передавать дополнительные данные без подключения к устройству.
Вот некоторые другие важные технические подробности, касающиеся физического уровня передачи BLE:
- Он использует расширенный спектр со скачкообразной перестройкой частоты (FHSS), который позволяет двум взаимодействующим устройствам переключаться на случайные, заранее согласованные частоты для обмена данными.
Это значительно повышает надежность и позволяет устройствам избегать перегруженных каналов.
- Мощность передачи может быть:
- В старых версиях Bluetooth (4.0, 4.1 и 4.2) была доступна только одна скорость передачи — 1 Мбит/с.
Радиофизический уровень (PHY) в данном случае называется 1M PHY и является обязательным во всех версиях, включая Bluetooth 5. Bluetooth 5 также представил два новых дополнительных PHY:
- PHY 2 Мбит/с используется для удвоения скорости передачи данных по сравнению с более ранними версиями Bluetooth.
- Закодированный PHY, используемый для связи на большие расстояния.
Канальный уровень передачи данных
Канальный уровень передачи данных отвечает за взаимодействие с физическим уровнем радио и предоставление других уровней абстракции для взаимодействия с радио (через промежуточный уровень интерфейс хост-контроллера , о чем мы вскоре поговорим).Он отвечает за управление состоянием радиосвязи и соблюдение требований по синхронизации, необходимых для соответствия спецификации BLE. Он также отвечает за управление аппаратно-ускоренными операциями, такими как контрольные суммы, генерация случайных чисел и шифрование.
Существует три основных состояния, в которых может находиться устройство BLE:
- Состояние вещания (Реклама);
- Статус сканирования;
- Подключенное состояние.
Если широковещательное устройство разрешает подключения, сканирующее устройство обнаружило его и отправило запрос на подключение, оба они переходят к связанный состояние.
Канальный уровень управляет различными состояниями радиосвязи, показанными на рисунке:
Рисунок 5: Состояния канального уровня
- Поддерживать: Состояние по умолчанию — когда радиостанция не передает и не принимает никаких данных.
- Реклама: состояние, в котором устройство отправляет широковещательные пакеты для обнаружения и чтения другими устройствами.
- Сканирование: состояние, в котором устройство ищет устройства, отправляющие широковещательные пакеты.
- Инициирование: состояние, в котором начинается процесс установления соединения с устройством в рекламном состоянии.
- Связанный: Состояние, при котором одно устройство установило соединение с другим и регулярно обменивается с ним информацией.
В подключенном состоянии устройство, находившееся в состоянии сканирования и инициировавшее соединение, называется ведущим.
Устройство, отправляющее широковещательные пакеты, называется подчиненным.
Адрес Bluetooth: Устройства Bluetooth идентифицируются по 48-битному адресу, аналогичному MAC-адресу.
Существует два основных типа адресов: общественный И случайный.
Публичный адресс: Это фиксированный адрес, запрограммированный на заводе.
Его нельзя изменить, и его необходимо зарегистрировать в IEEE (как и MAC-адреса устройств с поддержкой Wi-Fi или Ethernet).
Случайный адрес: Поскольку производители имеют возможность выбирать, какой тип адреса использовать (публичный или случайный), случайные адреса более распространены, поскольку они не требуют регистрации.
Институт инженеров электротехники и электроники .
Случайный адрес программируется на устройстве или генерируется во время выполнения программы.
Это может быть один из следующих подтипов:
- Статический адрес
- Используется в качестве замены публичного адреса;
- Может быть перегенерирован при загрузке кода или оставаться неизменным на протяжении всего срока службы;
- Невозможно изменить состояние при включении или выключении.
- Частный адрес включает следующие подтипы: – Неразрешенный частный адрес:
- Случайные, генерируемые за определенный период времени;
- Не широко используется.
- Используется в целях безопасности;
- Генерируется с использованием ключа (IRK, Identity Resolve Key) и случайного числа;
- Периодически меняется (даже во время подключения);
- Используется для защиты от отслеживания злоумышленниками;
- Доверенные устройства ( связанный описанный в главе о безопасности) может расшифровать адрес, используя ранее сохраненный ключ.
Режим прямого тестирования
Режим прямого тестирования (DTM) используется исключительно для тестирования радиодеталей во время производства или сертификационных испытаний.Оно не имеет прямого отношения к теме нашей книги, поэтому оставим его без подробного рассмотрения.
Уровень интерфейса хост-контроллера (HCI)
Интерфейс хост-контроллера – — это стандартный протокол, определенный спецификацией Bluetooth, который позволяет уровню хозяин общаться с уровнем контроллер .Эти уровни могут быть реализованы на двух отдельных чипах или существовать на одном.
В этом смысле он также обеспечивает совместимость между чипами, так что разработчик устройства может выбрать два сертифицированных устройства Bluetooth, контроллер и хост, и быть на 100% уверенным, что они совместимы друг с другом с точки зрения связи между хостом.
и уровни контроллера.
В случае, когда хост и контроллер расположены на разных чипах, связь между ними может быть реализована через три официально поддерживаемых физических интерфейса: UART, USB или SDIO (защищенный цифровой вход-выход) .
В случае, когда хост и контроллер находятся на одном чипе, интерфейс хост-контроллера будет логическим интерфейсом.
Задача интерфейса хост-контроллера — передавать команды от хоста к контроллеру и передавать информацию и события от контроллера к хосту.
На рисунке ниже показан пример обмена командами и событиями между уровнями хоста и контроллера.
Рис.
6. Пример пакетов интерфейса хост-контроллера.
Примеры сообщений включают в себя: пакеты команд, конфигурацию контроллера, запрос действия, управление параметрами соединения, пакеты событий, завершение команды и события состояния.
Уровень протокола управления логическим каналом и адаптации (L2CAP)
Протокол L2CAP предоставляет услуги передачи данных с установлением соединения и без установления соединения для протоколов более высокого уровня с возможностями мультиплексирования, сегментации и повторной сборки.Он основан на стандарте Bluetooth Classic и в случае BLE выполняет следующие задачи:
- Берет несколько протоколов верхних уровней и помещает их в стандартные пакеты BLE, которые передаются на нижние уровни ниже него.
- Управляет фрагментацией и рекомбинацией пакетов.
Он берет большие пакеты с верхних этажей и ра
-
Хотите Узнать Подробности О Биометрии?
19 Oct, 24 -
Вход По Лицу
19 Oct, 24 -
Реализация Оператора In В C++
19 Oct, 24