СЕТЬ BLUETOOTH MESH
А знаете ли вы, что прошло уже 20 лет с тех пор, как была запущена первая версия стандарта беспроводной связи ближнего действия Bluetooth. За это время он приобрел большую популярность – используют его при подключении к наушникам, периферийным устройствам, ноутбукам, смартфонам, другой носимой электронике.
Энергосберегающая версия Bluetooth – BLE (Bluetooth Low Energy), изначально поддерживаемая различными операционными системами, включая мобильные устройства (Android, iOS), укрепляет свои позиции и в таких устройствах как Интернет вещей, сенсорные сети, умные города или домашняя автоматизация. Но создатели спецификации Bluetooth не останавливаются на достигнутом и продолжают развивать её, адаптируясь к текущим и прогнозируемым потребностям пользователей в будущем. Итак, встречайте один из последних результатов их работы – версию Bluetooth Mesh.
Bluetooth Mesh – это расширение Bluetooth Low Energy, которое обеспечивает альтернативу сетям с очень большим количеством узлов. Это связано с тем, что в данной версии устранено существенное ограничение стандарта Bluetooth, заключающееся в том, что основным типом топологии в нем выступает соединение точка-точка, при котором обмениваются данными только два устройства.
Ограничения Bluetooth
В дополнение к этому режиму существует также возможность связи между большим количеством узлов в пикосети, состоящей из одного главного узла и максимум 7 подчиненных узлов, которые, в свою очередь, могут образовывать большие сети scatternet. Последние возникают, когда узел данной пикосети типа ведущий или ведомый подключается к другой пикосети в качестве ведомого узла. Находясь в обеих сетях он может передавать данные между их узлами. Правда пикосети, или сети scatternet, из-за высокого уровня сложности их реализации на практике редко используются при организации сетей, состоящих из сотен узлов, особенно с тысячами точек.
В таких случаях разработчики до сих пор были вынуждены использовать другие стандарты беспроводной связи, таких как ZigBee, Th read или Wi-Fi, которые поддерживают топологию ячеистой сети. Но с появлением новой версии к этому списку присоединился Bluetooth.
Что отличает топологию сети
В ячеистой топологии разрешена связь «многие ко многим». Это возможно, потому что отдельные узлы могут действовать как повторители, шлюзы или маршрутизаторы, которые позволяют подключаться к внешним локальным сетям или даже Интернету.
На практике это означает что они общаются на небольших расстояниях с ближайшими узлами, а те в свою очередь, со своими соседями. В результате данные могут передаваться между очень удаленными точками сети по радио-релейному типу. Более того, в случае отказа одного узла, сообщения могут перемещаться по нескольким альтернативным путям. Таким образом сеть является самовосстанавливающейся.
Этот тип связи выполняется в Bluetooth Mesh на прикладном уровне. Топология сети имеет несколько преимуществ и наиболее важными из них являются надежность и масштабируемость.
Преимущества топологии сети
Что касается первой из этих функций, в связи с тем что все узлы в Bluetooth Mesh обмениваются данными напрямую друг с другом, а не через общий для всех шлюз или маршрутизатор, в нем нет единой критической точки, сбой который приведет к отключению всей сети. Кроме того, в последней версии стандарта Bluetooth используется специальное решение – управляемая ретрансляция сообщений, которое обеспечивает действительно многопутевую связь.
- Bluetooth Mesh позволяет создавать очень большие сети, насчитывающие до 32000 узлов. Их можно легко добавить или исключить по мере необходимости, сделать предоставление узлу ключа шифрования.
- Bluetooth Mesh также гарантирует безопасность, благодаря реализованным механизмам шифрования и аутентификации, а также совместимость, а это означает что продукты разных производителей должны работать вместе без проблем.
Типы узлов в Bluetooth Mesh
В стандарте Bluetooth Mesh предусмотрено несколько типов узлов. Они характеризуются функцией которую данная точка выполняет в сети. Это: реле, узлы LPN (узел с низким энергопотреблением) и точки типа: друг, прокси и провайдер. Стоит отметить, что один узел может одновременно выполнять несколько функций.
Узлы ретрансляции могут пересылать полученные сообщения. Обычно эту функцию должны выполнять только точки, которые получают питание от электросети, потому что постоянное прослушивание частот, а затем повторная передача пакетов другим узлам – довольно энергоемкие задачи. Примерами устройств которые могут работать в релейном режиме в системах домашней автоматизации, являются умные лампочки или выключатели. С другой стороны, узлы с батареечным питанием не должны действовать как передатчики, потому что если их приемник был постоянно включен, а передатчик работает часто, батарея разрядилась бы очень быстро.
Прокси-узел – это точка входа в сеть для тех устройств, которые напрямую не поддерживают Bluetooth Mesh. Они несут ответственность за обработку процесса добавления нового узла в сеть.
LPN и дружественные узлы
Возможность работы в режиме LPN – одна из важнейших функций предусмотренных новым стандартом. В отличие от точек ретрансляции, узлы LPN не работают непрерывно и большую часть времени остаются в режиме пониженного энергопотребления.
В это время дружественные узлы получают сообщения от их имени. LPN периодически включаются и запрашивают дружественные узлы чтобы узнать, ожидают ли их какие-либо сообщения. Затем возвращаются в спящий режим. Данная функция предназначена только для узлов с батареечным питанием. Поэтому маловероятно что узлы LPN будут работать в других режимах.
Дружественные узлы прослушивают сообщения передаваемые в сети, из которых они обращают особое внимание на сообщения, направленные на связанные с ними LPN. Эти типы сообщений принимаются и сохраняются в их памяти, чтобы затем пересылаться адресатам. Следовательно раз дружественные узлы хранят данные, обычно предназначенные для более чем одного LPN, они должны иметь достаточный объем памяти.
Стоит отметить, что согласно спецификации Bluetooth Mesh, реализация всех этих функций узлов не обязательна. Это означает что данное устройство, которое может работать только в выбранных режимах, также будет описано как совместимое с этим стандартом. Поэтому рекомендуется заранее проверить его характеристики. Например, если режимы «друг» и LPN недоступны, будет сложнее реализовать устройства с автономным питанием.
Связь в сети Bluetooth
Bluetooth Mesh использует специальное решение (управляемая ретрансляция сообщений лавинной рассылки) для передачи сообщений между узлами. Его отличительной особенностью является способность обеспечивать истинную многопутевую связь и, следовательно, избыточность, повышающую вероятность того, что сообщения достигнут адресатов.
Сообщение отправляется этим узлам в пределах диапазона отправителя. Они, в свою очередь, пересылают сообщение в следующие точки в пределах своего диапазона, пока сообщение не будет получено соответствующим узлом (адресатом).
Обычно в подобных решениях узлы безоговорочно пересылают любую информацию, которая доходит до них. Но в Bluetooth Mesh использовался другой подход, при котором не разрешается пересылать ранее полученные сообщения, занесенные в специальный список. Таким образом, если узел получает сообщение, этот список проверяется первым и в случае если данное сообщение уже есть в нем – игнорируется.
Кроме того, каждому сообщению присваивается значение TTL (не путать с электронным термином, тут это время жизни). Оно определяет максимальное количество раз, которое может быть отправлено данное сообщение. Каждый раз, когда сообщение принимается и затем пересылается любым устройством (до 126 раз), значение TTL уменьшается на 1. И узлы ретрансляции пересылают только сообщения TTL которых больше единицы.
Периодически узлы могут отправлять специальное сообщение, информирующее другие точки в сети о том что они все еще активны. Это сообщение позволяет проверить насколько далеко каждый узел находится от других с точки зрения количества переходов, необходимых для его достижения. Это позволяет оптимизировать TTL, установив его не больше, чем необходимо.
Модель публикации / подписки
Отправка и получение сообщений в сетях Bluetooth Mesh осуществляется по принципу публикации / подписки. Это было реализовано в этом стандарте для предотвращения нежелательного взаимного влияния различных подгрупп устройств работающих в одной сети. Благодаря этому они могут сосуществовать в нем, не отвлекаясь от сообщений предназначенных не для них, а для других узлов.
Задачи, составляющие суть модели, – публикация и подписка на новости. Первый включает отправку сообщений от одного узла к одной или нескольким точкам. Отправитель отправляет сообщения только узлам, которые на него подписаны. Вторая задача – настроить узел таким образом, чтобы он мог получать сообщения из определенных точек. В этом отношении он полагается на список с адресами, на которые подписан, фильтруя получаемые сообщения.
Примером использования модели публикации / подписки в домашней автоматизации является назначение управляемых элементов, таких как лампы, вентиляция, обогреватели, выбранным группам контроллеров – в данном случае выключатели света, контроллеры охлаждения и отопления, в зависимости от комнаты. Благодаря этому, например, лампы в коридоре будут игнорировать управляющие сигналы из ванной.
Элементы и модели
Вот ещё важные понятия, которые присутствуют в Bluetooth Mesh: элементы и модели. Первые определяют функциональность узла. Каждая точка в сети должна иметь хотя бы один первичный элемент. В случае таких управляемых устройств, как лампочка или нагреватель, элементом является функция включения / выключения и регулировки яркости / температуры. В обычной лампочке первая, как правило, единственная. Когда рассматриваемое устройство представляет собой комбинацию контролируемого объекта с датчиком (например датчиком присутствия), оно состоит из двух элементов. Базовая – это управляемая функция, например включение / выключение в лампочке. Каждый элемент в узле имеет уникальный адрес. Это позволяет адресовать отдельные элементы узла независимо от остальных.
Можно сказать, что элементы характеризуют фактическую функциональность узлов, а модели описывают их роль в сети. Последние бывают трех типов: клиент, сервер и элемент управления, который объединяет функции клиента и сервера в рамках одной модели.
- Сервер может иметь одно или несколько состояний, включающих один или несколько элементов. Модель сервера показывает состояние элементов устройства которые могут быть прочитаны или проверены клиентским узлом. Например в случае лампочки, ее статус включения / выключения будет опубликован и изменен. В случае датчика присутствия его состояние в виде результатов измерений будет доступно только для считывания.
- Клиентская модель позволяет узлам отправлять сообщения для чтения или изменения состояния узла сервера. Примером может служить переключатель, который в качестве клиента запрашивает у сервера текущее состояние данного устройства или отправляет ему сообщение о его изменении, например в случае лампочки – с включенного на выключенное состояние.
В большинстве случаев серверную и клиентскую модели следует выполнять одновременно. А какой из них будет использоваться в любой момент времени, будет зависеть от ситуации.
Стоит добавить что модели Bluetooth Mesh могут расширять функциональность других моделей. Это позволяет управлять узлами с разными функциями с помощью одного и того же сообщения.
Чтобы стать узлом сети Bluetooth Mesh, данное устройство должно быть подключено к нему и получить необходимые данные конфигурации. Это адрес публикации, список подписок, ключи сети и устройства.
Последние два используются для шифрования сообщений. Сетевой ключ гарантирует конфиденциальность связи в сети Bluetooth Mesh. Ключ приложения используется чтобы правильная функция соответствующего узла была активирована, например чтобы предотвратить ситуацию, в которой отправленная команда на включение лампочки выключает что-то.
Таким образом процесс добавления узла в сеть упрощает добавление или обновление данных в его базе. Узел обеспечения – единственная точка в сети, которая имеет информацию об оставшихся узлах. Кроме того, только этот узел может настраивать остальные, ни один из которых не знает структуру всей сети.
Хотя узел типа провайдера не требуется для работы сети, он всё-же необходим для того чтобы новые устройства можно было добавлять в него или удалять. Благодаря этому нет критического элемента, который мог бы привести к отказу всей сети Bluetooth Mesh. Но если узел инициатора будет поврежден или утерян, информация обо всей сети будет потеряна вместе с ним. Это потребует повторной инициализации всех узлов другим устройством с этим статусом.