Bluetooth Low Energy: Подробное Руководство Для Новичков. Bluetooth-Сетка

Это пятая и последняя часть перевода книги Мохаммеда Афане.

«Введение в Bluetooth с низким энергопотреблением».

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

Наиболее полно возможности Bluetooth Mesh можно раскрыть, например, при создании ценников с E-Ink-дисплеями для торгового зала.

Использование ценников в качестве маломощных узлов и хаба типа Friendly Node позволяет не только сохранять актуальность ценников в течение нескольких лет с минимальными затратами без их замены и привлечения персонала, но и проводить кратковременные «счастливые часы» путем быстрое изменение информации на дисплее.

Предыдущие части перевода:

  • Об архитектуре BLE
  • О типах устройств, рекламе и сканировании
  • О подключениях и услугах
  • О Bluetooth 5 и безопасности


9. Введение в Bluetooth Mesh.

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

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

Ситуация изменилась в июле 2017 года, когда Bluetooth SIG выпустила стандарт Bluetooth-сетка .

В этой главе мы рассмотрим наиболее важные базовые концепции, которые помогут вам начать работу с Bluetooth Mesh.

9.1 Основы Bluetooth Mesh

Целью Bluetooth Mesh является увеличение дальности связи сетей BLE и добавление поддержки промышленных приложений с использованием технологии BLE. До выпуска Bluetooth Mesh BLE поддерживал только две топологии сети:
  • Точка-точка: когда два устройства подключены друг к другу.

  • Точка-многоточка: когда устройства остаются в рекламном состоянии, например маяки.

В Bluetooth Mesh для сетей BLE была добавлена новая топология: устройства теперь могут работать в ячеистой топологии «многие ко многим».



Bluetooth Low Energy: подробное руководство для новичков.
</p><p>
 Bluetooth-сетка

Рис.

25: Топологии BLE Топология ячеистой сети обеспечивает два важных преимущества:

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

  • Способность к самовосстановлению Если один из элементов сети выйдет из строя, остальные сохранят работоспособность и смогут передавать друг другу сообщения.

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

    Мы рассмотрим их позже в этой главе.

Несколько важных замечаний относительно Bluetooth Mesh:
  • Bluetooth Mesh поддерживает все версии BLE (начиная с 4.0) и не требует каких-либо аппаратных изменений.

    Единственное, что для этого требуется, — это обновления программного обеспечения для уже выпущенных устройств для обеспечения совместимости со стандартом.

  • Bluetooth Mesh — это отдельный стандарт с отдельной спецификацией, которая находится Здесь .

  • Bluetooth Mesh версии 1.0 не поддерживает ни одну из функций Bluetooth 5, таких как рекламные расширения или закодированный PHY. Скорее всего, ситуация изменится в будущих версиях.



9.2 Mesh-архитектура Bluetooth

Bluetooth Mesh — это дополнение к BLE. Он особым образом использует рекламное состояние устройств BLE. Устройства в сети Bluetooth Mesh не подключаются к другим так, как это делают классические устройства BLE. Вместо этого они используют состояния рекламы и сканирования для ретрансляции сообщений с одного устройства на другое.

Из этого правила есть только одно исключение — прокси-устройство, которое может быть частью ячеистой сети (мы рассмотрим это в разделе «Типы устройств»).



Bluetooth Low Energy: подробное руководство для новичков.
</p><p>
 Bluetooth-сетка

Рисунок 26. Ячеистая архитектура Bluetooth Ниже приведено описание каждого уровня архитектуры Bluetooth Mesh в порядке возрастания:

  1. Bluetooth с низким уровнем энергии Как мы упоминали ранее, Bluetooth Mesh представляет собой слой поверх BLE и, следовательно, требует, чтобы на устройстве работал полный стек BLE. Он использует состояния сканирования и объявления для отправки и получения сообщений между устройствами в ячеистой сети.

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

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

    В Bluetooth Mesh существует два типа средств передачи:

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

    2. Передача через ГАТТ : используется подключенное состояние устройств.

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

      Этот режим используется в прокси-устройствах.

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

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

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

  6. Уровень фундаментальных моделей Этот уровень решает проблему конфигурации сети и модели управления сетью.

  7. Уровень сетевой модели Этот уровень занимается реализацией модели , включая их поведение, сообщения, состояния и привязки состояний.



9.3 Основные понятия и термины

Давайте рассмотрим основные понятия и термины Bluetooth Mesh.

9.3.1 Узлы

Устройства, являющиеся частью ячеистой сети, называются узлами.

Устройства, еще не являющиеся частью сети, называются неопознанный устройства.

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

ее морской узел .



9.3.2 элементы

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

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

Эти части одного узла называются его элементы .



Bluetooth Low Energy: подробное руководство для новичков.
</p><p>
 Bluetooth-сетка

Рис.

27. Элементы узлов в сети Bluetooth.

9.3.3 Состояния

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

Например, «включено» и «выключено» — это состояния лампочки.

Переход из одного состояния в другое называется изменение состояния.

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

Изменение состояния часто приводит к изменению поведения элемента.

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

Два или более состояний могут быть связаны друг с другом.

В качестве примера возьмем диммер: он может иметь состояние уровня и состояние включения/выключения.

Если текущее значение уровня станет нулевым, это приведет к изменению состояния включения/выключения на «выключено».

Если значение уровня больше не равно нулю, это приведет к изменению состояния с «выключено» на «включено».



9.3.4 Свойства

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

Например, значение температуры может иметь свойства «внутри» и «на улице».

Существует два типа недвижимости:

  • Указано производителем: предоставить только права на чтение.

  • Определяется администратором: предоставить права чтения и записи.



9.3.5 Сообщения

Bluetooth Mesh — это сеть, построенная на концепции сообщений, в которой узлы отправляют сообщения для управления состояниями или передают информацию другим узлам в сети.

Сообщения — это механизм, который заставляет узлы сети выполнять операции.

Если узлу необходимо сообщить о своем статусе, он отправляет его с помощью сообщения.

Тип сообщения отображает операции над состоянием или набором нескольких значений состояния.

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

  • Сообщение запроса (GET): сообщение, запрашивающее статус одного или нескольких узлов.

  • Сообщение настройки (SET): инструкция по изменению значения параметра.

  • Сообщение о состоянии (СТАТУС): Сообщение о состоянии используется в нескольких ситуациях:
    • Отправляется в ответ на сообщение-запрос и содержит значение требуемого параметра.

    • Отправляется как подтверждение получения сообщения об установке.

    • Отправляется независимо от каких-либо сообщений для отображения статуса элемента.

      Например, отправка такого сообщения может быть инициирована таймером, работающим на устройстве.

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

  • Передача данных, относящихся к полученному сообщению.

Если ответ на сообщение не получен отправителем или получен неправильный ответ, отправитель может повторно отправить сообщение.

Получение нескольких сообщений с подтверждением не нарушает работу получателя (данная ситуация расценивается как получение одного сообщения с подтверждением).



9.3.6. Адреса

Сообщения в ячеистой сети должны быть адресованы.

Существует три типа адресов:

  • Индивидуальный адрес: однозначно определяет конкретный узел, которому этот адрес был присвоен при формировании сети (кратко рассмотрим чуть позже).

  • Адрес группы: используется при доступе к группе узлов.

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

    Групповой адрес может быть:

    • Определяется Bluetooth SIG и используется при доступе ко всем без исключения устройствам, принадлежащим к одному типу: прокси-узлам, дружественным устройствам, ретрансляторам или ко всем устройствам независимо от их типа.

    • Адрес динамической группы, определенный пользователем в процессе настройки сети.

  • Виртуальные адреса: Адреса, которые могут быть назначены одному или нескольким элементам и могут охватывать один или несколько узлов.

    Этот адрес действует как метка и принимает форму 128-битного UUID, с которым может быть связан любой элемент. Обычно виртуальные адреса настраиваются во время производства устройства.



9.3.7 «Издатель-Подписчик»

Сообщения передаются в сети Bluetooth Mesh в соответствии с шаблоном проектирования «издатель-подписчик».

Суть шаблона хорошо описана в Википедия :

«Издатель-подписчик ( Английский издатель-подписчик или Английский паб/саб ) — поведенческий шаблон проектирования передача сообщений, при которой отправители сообщений называются издателями ( Английский издатели ), не привязаны напрямую к программному коду отправки сообщений подписчикам ( Английский подписчики ).

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

Аналогичным образом подписчики имеют дело с одним или несколькими классами сообщений, абстрагированными от конкретных издателей».

Публикация здесь это процесс отправки сообщения.

Подписка — это конфигурация, позволяющая отправлять определенные сообщения на определенные адреса для обработки.

Обычно сообщения адресуются группам или виртуальным адресам.

На рисунке ниже показан пример домашней ячеистой сети, состоящей из 6 коммутаторов и 9 ламп.

В сети используется шаблон «издатель-подписчик», позволяющий узлам отправлять сообщения друг другу.



Bluetooth Low Energy: подробное руководство для новичков.
</p><p>
 Bluetooth-сетка

Рис.

28: Пример шаблона «издатель-подписчик» (Источник: «Bluetooth Mesh Networks — введение для разработчиков») Узлы могут подписываться на несколько адресов.

В данном примере светильник №3 подписан на групповые адреса «кухня» и «столовая».

Кроме того, несколько узлов могут публиковать сообщения на один адрес, как коммутаторы №5 и №6 в этом примере.

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

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



9.3.8 Контролируемый поток

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

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

Bluetooth Mesh использует компромиссный подход, называемый контролируемый поток .

Управляемый поток означает широковещательную рассылку сообщений всем узлам в пределах видимости отправителя с несколькими оптимизациями:

  • Сообщениям назначено «время жизни» (TTL, «время жизни») Каждое сообщение может передаваться между узлами ограниченное количество раз, ограниченное его «временем жизни».

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

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

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

    Значение TTL, равное единице, означает, что сообщение может быть повторно передано только один раз.

  • Сообщения кэшируются Кэширование сообщений является обязательным для всех узлов.

    Требуется гарантировать, что один узел не ретранслирует одно и то же сообщение несколько раз.

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

  • Дружба Дружба — это концепция, которая применяется к отношениям между двумя узлами.

    Эти узлы имеют следующие типы:

    • Маломощный узел , что экономит энергию и не позволяет постоянно получать сообщения.

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

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

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

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



9.3.9 Модели

Еще одним важным термином, определенным в Bluetooth Mesh, является концепция модели .

Модель определяет функциональность устройства или его части.

Есть три категории моделей:

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

  • Модель клиента: не определяет никаких состояний.

    Вместо этого он определяет только тип сообщений (GET, SET, STATUS), отправляемых узлу с серверной моделью.

  • Модель управления: содержит как серверную, так и клиентскую модель, взаимодействуя с другими моделями сервера и клиента.

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

Модель, которая не является расширенной, называется корневой моделью.



9.3.10. Сцены

Последнее понятие, которое мы хотели бы рассмотреть, — это понятие сцены в Mesh-сети Bluetooth. Сцена — это сохраненный набор состояний, который идентифицируется 16-битным числом, уникальным в этой сети.

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

Их можно выполнять по требованию или с интервалами.

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



9.4. Типы узлов

Все типы узлов могут получать и передавать сообщения.

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

Ниже представлены различные типы узлов с их дополнительными возможностями:

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

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



9.4.1 Релейные узлы

Релейный узел Это тот, который поддерживает функцию реле.

Это означает, что он может ретранслировать сообщения, отправленные другими узлами.

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



9.4.2 Прокси-узлы

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

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

В этом случае используется прокси-протокол , предназначенный для связи с устройством, имеющим возможность установить соединение (с использованием GATT).

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

Прокси-узел предпринимает необходимые шаги для согласования формата пакета.

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

Bluetooth Low Energy: подробное руководство для новичков.
</p><p>
 Bluetooth-сетка

Рис.

29: Прокси-узел

9.4.3 Дружественные и маломощные узлы

Дружественные и маломощные узлы тесно связаны друг с другом.

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

Ниже приведен принцип их взаимодействия:

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

  • Узлы с низким энергопотреблением отправляют сообщения чаще, чем получают их.

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

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

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

    Чтобы датчик не потерял это сообщение, его необходимо постоянно включать, тем самым потребляя большое количество энергии.

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

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

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

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

  • Отношения между дружественным узлом и узлом с низким энергопотреблением называются «дружбой».

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



Bluetooth Low Energy: подробное руководство для новичков.
</p><p>
 Bluetooth-сетка

Рис.

30: Дружественный и маломощный узел

9.5. Процесс подготовки сети

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

Устройство, добавленное в сеть, называется узлом, а устройство, добавившее его, — провайдером (обычно это планшет, смартфон или ПК).

Процесс предоставления происходит в 5 этапов, описанных ниже.



9.5.1 Шаг 1. Отправка маяков

Шаг 1 включает в себя так называемую передачу маяков, когда незащищенное устройство объявляет о своей готовности к предоставлению, отправляя ячеистые маяки в рекламных пакетах.

Это новый тип рекламных данных, представленный в стандарте Bluetooth Mesh. Обычно этот процесс инициируется определенной последовательностью нажатий кнопок на незащищенном устройстве.



9.5.2 Шаг 2: Приглашение

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

На этом этапе используется новый тип пакетов, встроенный в Bluetooth Mesh и называемый пригласительные пакеты для предоставления .

Незащищенное устройство затем отвечает пакет возможностей поддержки , который содержит информацию о возможностях устройства, в том числе:

  • Количество элементов, поддерживаемых устройством.

  • Набор поддерживаемых алгоритмов безопасности.

  • Возможность передачи открытого ключа по технологии OOB (внеполосная, передача вне основной полосы).

  • Способность этого устройства выдавать пользователю любые значения.

  • Способность этого устройства принимать некоторые значения от пользователя.



Bluetooth Low Energy: подробное руководство для новичков.
</p><p>
 Bluetooth-сетка

Рис.

31: Этап приглашения в процессе подготовки.



9.5.3. Шаг 3. Обмен открытыми ключами

Безопасность в Bluetooth Mesh основана на использовании комбинации симметричных и асимметричных ключей, как в алгоритме эллиптического ключа Диффи-Хеллмана (ECDH).

В ECDH происходит обмен открытыми ключами между обеспечивающим и подготовленным устройствами.

Обмен может происходить как по Bluetooth, так и по другим каналам (например NFC).



Bluetooth Low Energy: подробное руководство для новичков.
</p><p>
 Bluetooth-сетка

Рис.

32: Обмен открытыми ключами на этапе подготовки

9.5.4. Шаг 4: Аутентификация

Следующим шагом является аутентификация незащищенного устройства.

Обычно для этого требуется взаимодействие пользователя с поставщиком и незащищенным устройством.

Способ аутентификации зависит от возможностей обоих устройств.

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

Затем этот номер вводится в предоставляющее устройство.

Другой метод называется внеполосный вход , где номер генерируется провайдером и вводится в незащищенное устройство.

Есть и другие способы, которые мы не будем рассматривать.

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



9.5.5. Шаг 5: Распределение залоговых данных

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

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

После этого шага незащищенное устройство становится сетевой узел .



9.6. Безопасность в Bluetooth Mesh

Первое важное замечание, касающееся безопасности в Bluetooth Mesh, заключается в том, что безопасность обязательна для всех элементов сети, в отличие от BLE, где решение о необходимости безопасности принимает разработчик.

Ниже приведены основы безопасности Bluetooth Mesh:

  • Все сообщения внутри сети шифруются и аутентифицируются.

  • Сетевая безопасность, безопасность приложений и безопасность устройств поддерживаются независимо друг от друга.

  • Ключи безопасности могут меняться в течение срока службы сети.

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

    узлом).

    Из сетевого ключа извлекаются два других ключа: ключ шифрования сети и ключ конфиденциальности.

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

  • Ключ приложения Это ключ, который обычно распространяется внутри набора узлов ячеистой сети, выполняющих общую задачу.

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

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

  • Ключ устройства Это ключ, принадлежащий конкретному устройству.

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



9.6.1. Удаление узла

Один из Теги: #Производство и разработка электроники #Беспроводные технологии #Разработки для Интернета вещей #Электроника для начинающих #BLE #стандарты связи #Mesh #bluetooth low Energy #wireless #wireless #Bluetooth LE
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.