Этот пример демонстрирует мультиузел дискретная симуляция события (DES) сети mesh Bluetooth® при помощи Библиотеки Communications Toolbox™ для Протокола Bluetooth®. DES является процессом симуляции поведения системы как упорядоченный и дискретный ряд четко определенных событий, происходящих во временном интервале. DES позволяет вам событиям модели в системе, которые происходят в гранулярности микросекунды. Кроме того, DES также приводит к низкому времени симуляции, таким образом делающему его жизнеспособный, чтобы поддержать крупномасштабные симуляции уровня системы. Сеть mesh мультиузла, симулированная в этом примере, моделирует полный стек mesh Bluetooth по рекламной несущей. Пример стремится точно демонстрировать асинхронные передачи при помощи DES. Результаты симуляции включают пакетное отношение доставки (PDR), связанную с узлом статистику и график, отображающий визуальное представление сети mesh.
Спецификация [1] Ядра Bluetooth включает низкую энергетическую версию для беспроводных персональных сетей области с низкой ставкой, отнесенных как Bluetooth низкая энергия (BLE) или Умный Bluetooth. Стек BLE состоит из: типовой профиль атрибута (GATT), припишите протокол (ATT), протокол менеджера безопасности (SMP), управление логической ссылкой и протокол (L2CAP) адаптации, слой ссылки (LL) и физический уровень (PHY). BLE был добавлен к стандарту для низких энергетических устройств, генерирующих небольшие количества данных, такие как предупреждения уведомления, используемые в приложениях как домашняя автоматизация, здравоохранение, фитнес и Интернет вещей (IoT).
Профиль Mesh Bluetooth [2] задает основные требования, чтобы реализовать сетевые решения mesh для BLE. Стек mesh расположен сверху Спецификации Ядра Bluetooth и состоит из: слой модели, слой модели основы, слой доступа, верхний транспортный уровень, понижает транспортный уровень, слой сети и слой несущей. Организация сети mesh Bluetooth позволяет сквозной коммуникации в крупномасштабных сетях поддержать приложения как умная подсветка, промышленная автоматизация, организация сети датчика, отслеживание актива и много других решений IoT.
Поймайте в сети стек
Этот рисунок показывает стек mesh Bluetooth по рекламной несущей.
Слой модели: Этот слой задает модели, сообщения, и утверждает требуемый создать пользовательские сценарии. Например, чтобы изменить состояние света к На или Прочь, используйте 'Типовой релейный набор' сообщение из модели 'Generic onOff'.
Слой модели Foundation: Этот слой задает модели, сообщения, и утверждает требуемый сконфигурировать и управлять сетью mesh. Этот слой конфигурирует элемент, публиковать и адреса подписки узла.
Слой Access: Этот слой задает интерфейс к верхнему транспортному уровню и формату данных приложения. Этот слой также управляет шифрованием и дешифрованием данных приложения в верхнем транспортном уровне.
Верхний транспортный уровень: функциональность верхнего транспортного уровня включает шифрование, дешифрование и аутентификацию данных приложения и обеспечивает конфиденциальность сообщений доступа. Этот слой также генерирует сообщения транспортного контроля (Дружба и Heartbeat) и передает их коллеге верхний транспортный уровень.
Более низкий транспортный уровень: функциональность более низкого транспортного уровня включает сегментацию и повторную сборку верхних сообщений транспортного уровня в несколько более низких сообщений транспортного уровня. Этот слой помогает передать большие верхние сообщения транспортного уровня к другим узлам в сети. Это также задает Друга очередь, используемая Другом узел, чтобы хранить более низкие сообщения транспортного уровня для узла Малой мощности.
Слой сети: Этот слой задает шифрование, дешифрование и аутентификацию более низких сообщений транспортного уровня. Это передает более низкие сообщения транспортного уровня по слою несущей и передает сообщения mesh, когда 'Релейная' опция активирована. Это также задает кэш сообщения, содержащий все недавно замеченные сетевые сообщения. Если полученное сообщение находится в кэше, то это отбрасывается. Кэш сообщения используется релейными узлами (узлы, в которых 'Релейная' опция активирована).
Слой Bearer: Этот слой является интерфейсом между стеком mesh Bluetooth и базовым стеком BLE. Этот слой также ответственен за создание сети mesh путем настройки устройств. Здесь, настройка подразумевает аутентификацию и предоставление основной информации к устройству. Устройство должно быть настроено, чтобы стать узлом. Этот пример принимает, что все узлы уже настраиваются в сеть mesh. Два типа несущих, поддержанных mesh Bluetooth, рекламируют несущая GATT и несущая. Этот пример использует только рекламную несущую.
Стек ядра BLE
Этот пример демонстрирует эти слои базового стека BLE:
Типовой профиль доступа: Этот профиль задает типы рекламных данных (AD) для переноса сообщений mesh по рекламной несущей. Этот пример поддерживает 'Тип AD' сообщения Mesh, который используется для обмена сообщениями слоя сети между узлами mesh.
Слой Link: Этот слой задает роли Вещательной компании и Наблюдателя для обмена сообщениями между узлами в сети mesh Bluetooth. В роли Вещательной компании всегда дает объявление узел. Принимая во внимание, что в роли Наблюдателя, узел всегда сканирует для рекламодателей. Каждый узел в сети 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 с 21 узлом. Выходные параметры PDR модели сети наряду с различной статистикой, такие как количество переданных, полученных, и пропущенных пакетов в физическом, ссылке, и слоях сети, и также графике, визуализирующем сетевой сценарий. Моделирование включает:
Несколько узлов, где каждый узел содержит пакетный генератор mesh Bluetooth и приемник (пакет mesh включает модель, доступ, и кодирование транспортного уровня и декодирование), слой сети, слой ссылки и физический уровень
Разделяемый канал, который симулирован с этими опциями нарушения канала: потеря распространения области значений, потеря пути свободного пространства и интерференция
Пакеты передаются по разделяемому каналу
Средство выделения положения узла (NPA), которое конфигурирует положение узлов в сети. Линейные поддержки NPA, сетка и стратегии выделения списка
visualizer, который визуализирует сценарий сети mesh
Чтобы сконфигурировать определенный сценарий, сделайте один из них:
Обновите параметры конфигурации по умолчанию для каждого узла в предыдущей модели
Задайте настройку как вход к helperBLEMeshCreateNetworkModel для создания сетевой модели mesh
Узел Bluetooth
Каждый узел моделируется как подсистема с сетевым стеком, который включает пакетный генератор mesh Bluetooth и приемник, слой сети, LL и PHY.
Прикладной уровень генерирует пакеты при помощи блока Entity Generator (SimEvents)
Блок MATLAB Discrete-Event System (SimEvents) используется, чтобы смоделировать слой сети, LL и PHY
В каждом узле разделяемый канал моделируется в получить пути
Прикладной уровень
Прикладной уровень реализован, чтобы сгенерировать и получить трафик приложения. Это разделено на два подблока:
Пакетный генератор mesh Bluetooth Этот блок использует блок SimEvents Entity Generator, чтобы сгенерировать более низкий транспортный модуль данных о протоколе (PDU) данных. Сгенерированный PDU содержит сообщение слоя модели типа 'Типовой релейный набор, неподтвержденный' добавленный с более высокими заголовками слоя. Этот PDU передается слою сети. Можно сконфигурировать состояние приложения (Вкл\выкл), имя целевого узла, исходный уровень (в пакетах/секунда), и максимальное количество пакетов, которые могут быть переданы от источника до места назначения при помощи этого блока. Блок прекращает генерировать пакеты, если он сгенерировал максимальное количество сконфигурированных пакетов.
Пакетный приемник mesh Bluetooth Этот блок использует блок SimEvents Entity Terminator, чтобы получить выход от слоя сети
Слой сети
Слой сети моделируется как блок DES. Этот блок ответственен за передачу более низких сообщений транспортного уровня по рекламной несущей и передаче сообщений mesh, когда 'Релейная' опция активирована. Когда сеть PDU получена, этот блок декодирует полученный PDU. Если PDU декодируется успешно, то декодируемая информация передается более низкому транспортному уровню.
Можно сконфигурировать релейную функцию, сетевой интервал передачи, сетевое количество передачи, реле ретранслируют интервал, и реле ретранслирует количество при помощи параметров маски блока Слоя сети.
Слой Link
Слой ссылки моделируется как блок DES. Этот блок обеспечивает конечный автомат для ролей Вещательной компании и Наблюдателя LL. Этот блок ответственен за передачу и получение mesh рекламные пакеты при помощи bleLLAdvertisingChannelPDU
и bleLLAdvertisingChannelPDUDecode
функции.
Можно сконфигурировать скан и рекламные интервалы при помощи параметров маски блока слоя Link.
Физический уровень
Функциональность 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.
Присвоения средства выделения положения узла (NPA) местоположение узлов в сети mesh. Этот блок линейные поддержки, сетка и стратегии выделения положения списка.
Узлы Мест выделения линейного положения однородно в прямой линии на 2D сетке
Узлы Мест выделения положения сетки в формате сетки заданы свойствами сетки
Перечислите положения узла Присвоений выделения положения из списка [[x1, y1, z1] [x2, y2, z2]... [xn, yn, цинк]] таким образом, который (xk, yk, zk) положение k-ого узла для всего k в (1, 2..., n)
Visualizer Этот блок используется, чтобы визуализировать сценарий сети mesh в симуляции. Можно сконфигурировать этот блок, чтобы визуализировать заданную настройку. Можно включить или отключить визуализацию при помощи параметров маски этого блока.
Результаты, полученные в этой симуляции:
Пакетное отношение доставки (PDR)
PDR является отношением количества полученных пакетов в месте назначения к количеству пакетов, переданных источником, и дан:
Этот выходные параметры PDR модели для этой сети mesh мультиузла и сохранено в переменную базового рабочего пространства под названием PDR
.
Статистика в каждом узле
Эта выходная статистика модели каждого узла в переменной statisticsAtEachNode
рабочей области. Статистические данные, полученные в каждом узле:
Количество переданных и полученных сообщений в PHY
Количество переданных и полученных сообщений в LL
Количество сообщений получено с отказами CRC
Количество переданных, полученных, и пропущенных сообщений в слое сети
Количество сообщений передается в слое сети
Количество полученных сообщений приложения в слое сети
Сетевая визуализация
График с визуальным представлением сценария сети mesh показывают в симуляции. Вы видите статистику каждого узла путем установки курсора на него.
В этом примере показано, как сконфигурировать и симулировать мультиузел сеть mesh Bluetooth при помощи DES. Сетевая модель mesh в этом примере выходные параметры PDR как переменная рабочей области с визуальным представлением сети mesh.
Чтобы наблюдать изменение сети PDR, можно варьироваться параметры конфигурации в пакетном генераторе mesh, слое сети, LL и PHY. В этих результатах симуляции вы видите удар повторений слоя сети (NLR) в сети PDR.
NLR включает повторения и сетевых сообщений и переданных сообщений. Принцип работы основанных на лавинной рассылке сетей гарантирует, что сообщение достигает целевого узла. Поэтому важно ретранслировать сеть и релейные сообщения. Количество NLR зависит от конфигурации сети данной сетевой топологии. Увеличение числа NLR гарантирует, что вероятность сообщений, достигающих желаемого целевого узла, высока. Однако определение высокого значения NLR может оказать неблагоприятные влияния на параметры производительности сети, такие как издержки, потребление энергии и рабочий цикл. В результате важно настроить значение NLR для данной сетевой топологии и достигнуть эффективного компромисса между PDR и производительностью сети.
На предыдущем рисунке вы видите, что PDR увеличивается с NLR и уменьшениями с количеством исходных узлов в сети. Для определенного значения NLR значение PDR достигает 1, и после этого это стабилизировалось. Это определенное значение NLR может варьироваться на основе параметров конфигурации сети, таких как общее количество узлов, местоположение узлов, количество исходных узлов, количество релейных узлов, и так далее. Можно запустить helperBLEMeshDESPDRCalculation, чтобы воспроизвести эти результаты при помощи трех исходных узлов. Определите номер исходных узлов к два и пять, чтобы получить соответствующие результаты. Можно запустить симуляции для любого пользовательского сетевого сценария и получить оптимальное значение NLR.
Кроме NLR, PDR варьируется относительно нескольких параметров конфигурации, утвердил в helperBLEMeshDESPDRCalculation. Можно далее исследовать сетевую модель mesh путем варьирования любого из этих параметров.
Пример использует эти функции:
bleLLAdvertisingChannelPDUConfig
: Создайте объект настройки для Слоя Ссылки BLE, рекламируя PDU канала
bleLLAdvertisingChannelPDU
: Сгенерируйте Слой Ссылки BLE, рекламируя PDU канала
bleLLAdvertisingChannelPDUDecode
: Декодируйте Слой Ссылки BLE, рекламируя PDU канала
bleWaveformGenerator
: Сгенерируйте форму волны BLE
Пример использует этих помощников:
helperBLEMeshAppGenericPDU: Сгенерируйте типовой PDU mesh Bluetooth
helperBLEMeshAccessPDU: Сгенерируйте PDU доступа к mesh Bluetooth
helperBLEMeshTransportDataMessage: Сгенерируйте транспортное сообщение данных о mesh Bluetooth
helperBLEMeshNetworkLayer: Создайте объект для функциональности слоя сети mesh Bluetooth
helperBLEMeshNetworkLayerDES: Модель слой сети mesh Bluetooth
helperBLEMeshNetworkPDU: Сгенерируйте сеть PDU mesh Bluetooth
helperBLEMeshNetworkPDUDecode: Декодируйте сеть PDU mesh Bluetooth
helperBLEMeshLLGAPBearer: Создайте объект для BLE LL рекламная функциональность несущей
helperBLEMeshLinkLayerDES: Модель mesh Bluetooth соединяет слой
helperBLEMeshGAPDataBlock: Сгенерируйте рекламные данные с сетью PDU mesh Bluetooth
helperBLEMeshGAPDataBlockDecode: Декодируйте рекламные данные с сетью PDU mesh Bluetooth
helperBLEPHYTransmitter: Создайте объект для передатчика BLE PHY
helperBLEPHYTxDES: Сгенерируйте и передайте форму волны BLE
helperBLEChannel: Создайте объект для модели канала BLE
helperBLEChannelDES: Примените модель канала на полученную форму волны BLE
helperBLEPHYReceiver: Создайте объект для приемника BLE PHY
helperBLEPHYRxDES: Получите и декодируйте форму волны BLE
helperBLEPracticalReceiver: Демодулируйте и декодируйте полученный сигнал
helperBluetoothQueue: Создайте объект для функциональности очереди Bluetooth
helperBLEMeshRetransmissions: Создайте объект для повторных передач в mesh Bluetooth
helperBLEMeshVicinityNodes: Получите узлы близости данного узла
helperBLEMeshGraphCursorCallback: Отобразитесь статистические данные узла по мыши наводят действие
helperBLEMeshVisualizeNetwork: Создайте объект для mesh Bluetooth сетевая визуализация
helperBLEMeshAssignNodeIDs: идентификаторы узла Присвоений ко всем узлам в модели
helperBLEMeshGetNodeNamesList: Получите список узлов в модели
helperBLEMeshCreateNetworkModel: Создайте сеть mesh Bluetooth с данной настройкой
helperBLEMeshUpdateStatistics: Создайте и обновите статистику в mesh Bluetooth сетевая симуляция
Специальная группа (SIG) Bluetooth. "Спецификация Ядра Bluetooth". Версия 5.0. https://www.bluetooth.com/.
Специальная группа (SIG) Bluetooth. "Профиль Mesh Bluetooth". Версия 1.0. https://www.bluetooth.com/.