Оценка коэффициента доставки пакетов в сети Bluetooth Mesh

Этот пример моделирует многомодовую симуляцию дискретных событий сети Bluetooth ® mesh (DES) с помощью библиотеки Communications Toolbox™ для протокола Bluetooth ®. DES является процессом симуляции поведения системы как упорядоченного и дискретного ряда четко определенных событий, происходящих во временном интервале. DES позволяет вам моделировать события в системе, которые происходят в микросекундной гранулярности. Кроме того, DES также приводит к снижению времени симуляции, что делает его жизнеспособным для поддержки крупномасштабных симуляций уровня системы. Многоузловой mesh, моделируемая в этом примере, моделирует полный стек mesh Bluetooth поверх рекламного носителя. Пример направлен на то, чтобы точно смоделировать асинхронные передачи при помощи DES. Результаты симуляции включают коэффициент доставки пакетов (PDR), статистику, связанную с узлом, и график, отображающий визуальное представление mesh.

Mesh Bluetooth

Спецификация ядра Bluetooth [1] включает версию с низким энергопотреблением для низкоскоростных беспроводных персональных сетей, называемую Bluetooth low energy (BLE) или Bluetooth Smart. Стек BLE состоит из: типового профиля атрибута (GATT), протокола атрибута (ATT), протокола менеджера безопасности (SMP), протокола управления логической ссылкой и адаптации (L2CAP), канального слоя (LL) и физического слоя (PHY). BLE был добавлен к стандарту для низкоэнергетических устройств, генерирующих небольшие объемы данных, таких как уведомления, используемые в таких приложениях, как домашняя автоматизация, здравоохранение, фитнес и Интернет вещей (IoT).

Профиль сетки Bluetooth Mesh [2] определяет основные требования к реализации сетевых решений mesh для BLE. Mesh stack расположен поверх спецификации Bluetooth Core и состоит из слоя: model, слоя foundation model, слоя доступа, верхнего транспортного уровня, нижнего транспортного уровня, слоя сети и слоя носителя. Bluetooth mesh networking позволяет сквозную связь в крупномасштабных сетях поддерживать такие приложения, как интеллектуальные подсветки, промышленная автоматизация, сенсорная сеть, отслеживание активов и многие другие решения для Интернета вещей.

Сетчатый стек

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

  • Слой модели: Этот слой определяет модели, сообщения и состояния, необходимые для создания пользовательских сценариев. Например, чтобы изменить состояние света на On или Off, используйте сообщение 'Generic onOff set' из модели 'Generic onOff'.

  • Слой модели фундамента: Этот слой задает модели, сообщения и состояния, необходимые для настройки и управления mesh. Этот слой конфигурирует элемент, адрес публикации и адрес подписки узла.

  • Слой доступа: Этот слой определяет интерфейс к верхнему транспортному уровню и формат данных приложения. Этот слой также управляет шифрованием и расшифровкой данных приложения на верхнем транспортном слое.

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

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

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

  • Слой-носитель: Этот слой является интерфейсом между стеком mesh Bluetooth и стеком ядра BLE. Этот слой также отвечает за создание mesh сети путем конфигурирования устройств. Здесь конфигурирование подразумевает аутентификацию и предоставление базовой информации устройству. Устройство должно быть сконфигурировано, чтобы стать узлом. Этот пример предполагает, что все узлы уже сконфигурированы в сети mesh. Двумя типами носителей, поддерживаемыми mesh Bluetooth, являются носитель рекламы и носитель GATT. Этот пример использует только носитель рекламы.

Стек BLE

Этот пример моделирует эти слои ядра BLE стека:

  • Типовой профиль доступа: Этот профиль определяет типы рекламных данных (AD) для переноса сетчатых сообщений через рекламный носитель. Этот пример поддерживает тип AD 'Mesh message', который используется для обмена сообщениями слоя сети между узлами mesh.

  • Ссылка слой: Этот слой определяет роли Broadcaster и Observer для обмена сообщениями между узлами в сети mesh Bluetooth. В роли Broadcaster узел всегда рекламирует. В то время как в роли Observer узел всегда сканирует рекламодателей. Каждый узел в mesh переключается между этими двумя ролями, чтобы служить узлом mesh Bluetooth.

  • Физический слой: Этот слой передает и принимает формы волны для обмена сообщениями между узлами в сети mesh Bluetooth. Этот слой моделирует нарушения канала, такие как потери при распространении в свободном пространстве, потери распространения области значений и помехи.

Симуляция дискретных событий

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

  • Его гибкость в обработке времени для подавления или расширения, что позволяет симуляции ускорить или замедлить исследуемые явления. Это свойство DES используется для моделирования асинхронных передач в сети Bluetooth с мультиузлами, что приводит к точному моделированию столкновений.

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

Проверка на установку пакета поддержки

% Check if the 'Communications Toolbox Library for the Bluetooth Protocol'
% support package is installed or not.
commSupportPackageCheck('BLUETOOTH');

Многоузловая модель сетевого Mesh Bluetooth

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

  • Несколько узлов, где каждый узел содержит генератор пакета сетки Bluetooth и приемник (mesh пакет включает в себя кодирование и декодирование модели, доступа и транспортного слоя), слой сети, канальный слой и физический слой

  • Общий канал, который моделируется с этими опциями обесценения канала: потеря распространения области значений, потери при распространении в свободном пространстве и интерференция

  • Пакеты, переданные по общему каналу

  • Выделитель положения узла (NPA), который конфигурирует положение узлов в сети. NPA поддерживает линейные, сетчатые и списковые стратегии распределения

  • Визуализатор, который визуализирует сценарий сетки mesh

Чтобы сконфигурировать определенный сценарий, выполните одно из следующих действий:

  • Обновите параметры конфигурации по умолчанию для каждого узла в предыдущей модели

Узел Bluetooth

Каждый узел моделируется как подсистема с сетевым стеком, который включает генератор и приемник пакетов mesh Bluetooth, слой сети, LL и PHY.

  • Прикладной слой генерирует пакеты с помощью блока Entity Generator (SimEvents)

  • Блок MATLAB Discrete-Event System (SimEvents) используется для моделирования слоя сети, LL и PHY

  • В каждом узле общий канал моделируется в пути приема

Прикладной слой

Прикладной слой реализован, чтобы генерировать и принимать трафик приложения. Она разделена на два подблока:

  • Mesh Bluetooth Этот блок использует блок SimEvents Entity Generator, чтобы сгенерировать более низкий модуль данных протокола транспортных данных (PDU). Сгенерированный PDU содержит сообщение слоя модели типа 'Generic onOff set unacknated', добавленное заголовками более высокого слоя. Этот PDU передается на слой сети. Можно настроить состояние приложения (On/Off), имя узла назначения, скорость источника (в пакетах/секунду) и максимальное количество пакетов, которые могут быть переданы из источника в пункт назначения при помощи этого блока. Блок прекращает генерировать пакеты, когда он сгенерировал максимальное количество сконфигурированных пакетов.

  • Bluetooth mesh packet receiver Этот блок использует блок SimEvents Entity Terminator, чтобы получить выход с слоя сети

Слой сети

Слой сети моделируется как блок DES. Этот блок отвечает за передачу сообщений нижнего транспортного слоя по рекламному носителю и ретрансляцию сообщений сетки, когда включена функция 'Relay'. Когда принимается сетевой PDU, этот блок декодирует принятый PDU. Если PDU декодирован успешно, декодированная информация передается на нижний транспортный слой.

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

Канальный слой

Ссылка моделируется как блок DES. Этот блок поддерживает конечный автомат для ролей LL Broadcaster и Observer. Этот блок отвечает за передачу и прием mesh-рекламных пакетов при помощи bleLLAdvertisingChannelPDU и bleLLAdvertisingChannelPDUDecode функций.

Можно настроить сканы и рекламы с помощью параметров маски блока слоя ссылка.

Физический слой

Функциональность PHY включает в себя:

  • Передающая цепь

LL инициирует передачу пакета путем отправки пакета LL и индикации Tx в блок PHY Tx. Этот блок генерирует форму волны для полученного пакета LL при помощи bleWaveformGenerator функция. Он также масштабирует выборки формы сигнала BLE с сконфигурированной степенью Tx (при условии, что коэффициент усиления Tx равен 0). Сгенерированный сигнал BLE передается через общий канал. Общий канал моделируется с помощью очереди многоадресной передачи SimEvents.

Можно сконфигурировать степень Tx (dBm) с помощью масочных параметров блока PHY Tx.

  • Моделирование нарушений канала

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

Можно сконфигурировать нарушения канала при помощи масочных параметров блока канала BLE.

  • Получение цепи

Этот блок применяет тепловой шум и помехи к принятой форме волны BLE (принимая, что коэффициент усиления Rx равен 0). Тепловой шум моделируется при помощи comm.ThermalNoise функция с сконфигурированным значением шумового рисунка. Интерференция моделируется путем добавления выборок IQ как интерференционных, так и фактических сигналов. После применения теплового шума и интерференции, блок PHY Rx декодирует полученную форму волны. Если пакет LL декодирован успешно, то он передается в LL.

Можно сконфигурировать шумовой рисунок (в дБ), используя маскирующие параметры блока PHY Rx.

Node position allocator (NPA) Назначает местоположение узлов в mesh. Этот блок поддерживает линейные, сетчатые и перечисленные стратегии распределения позиций.

  • Линейное распределение положения Размещает узлы равномерно в прямой линии на 2D сетке

  • Размещение сетки Размещение узлов в формате сетки, заданном свойствами сетки

  • Список распределения позиций Присваивает позиции узлов из списка [[x1, y1, z1] [x2, y2, z2]... [xn, yn, zn]] таким образом, что (xk, yk, zk) является положением k-го узла для всех k в (1, 2,..., n)

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

Результаты симуляции

Результаты, полученные в этой симуляции:

  • Коэффициент доставки пакетов (PDR)

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

Эта модель выходов PDR для этого мультиузла mesh сети и сохраняется в переменном базовом рабочем пространстве с именем PDR.

  • Статистика на каждом узле

Эта модель выводит статистику каждого узла в переменной рабочей области statisticsAtEachNode. Статистические данные, полученные на каждом узле:

  • Количество переданных и принятых сообщений в PHY

  • Количество переданных и принятых сообщений в LL

  • Количество сообщений, полученных с отказами CRC

  • Количество переданных, принятых и сброшенных сообщений на слое сети

  • Количество сообщений, передаваемых на слое сети

  • Количество полученных сообщений приложений на слое сети

  • Визуализация сети

График с визуальным представлением сценария сетки mesh показан в симуляции. Вы можете увидеть статистику каждого узла, поместив курсор на него.

В этом примере показов, как сконфигурировать и симулировать мультиузел сеть Bluetooth mesh с помощью DES. Модель mesh сети в этом примере выходов PDR как переменную рабочей области с визуальным представлением mesh сети.

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

Чтобы наблюдать изменения в сетевом PDR, можно варьировать параметры конфигурации на генераторе mesh-пакетов, слое сети, LL и PHY. В этих результатах симуляции можно увидеть влияние повторов слоя сети (NLR) на PDR сети.

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

На предыдущем рисунке можно увидеть, что PDR увеличивается с NLR и уменьшается с количеством исходных узлов в сети. Для определенного значения NLR значение PDR достигает 1, а затем стабилизируется. Это конкретное значение NLR может варьироваться в зависимости от параметров конфигурации сети, таких как общее число узлов, местоположение узлов, количество исходных узлов, количество узлов ретрансляции и так далее. Можно запустить helperBLEMeshDESDRCalculation, чтобы воспроизвести эти результаты с помощью трех исходных узлов. Установите количество исходных узлов в два и пять, чтобы получить соответствующие результаты. Можно запустить симуляции для любого пользовательского сетевого сценария и получить оптимальное значение NLR.

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

Приложение

В примере используются следующие функции:

В примере используются следующие помощники:

Ссылки

  1. Bluetooth Special Interest Group (SIG). Bluetooth Core Спецификации. Версия 5.0. https://www.bluetooth.com/.

  2. Bluetooth Special Interest Group (SIG). «Профиль Mesh Bluetooth». Версия 1.0. https://www.bluetooth.com/.

Похожие темы