Соедините Машину Состояния слоя для Устройств BLE с помощью Stateflow

В этом примере показано, как смоделировать машину состояния слоя ссылки, чтобы установить связь между Bluetooth® низкая энергия (BLE) устройства, пользующиеся Библиотекой Communications Toolbox™ для Протокола Bluetooth и Stateflow®. Рабочий механизм слоя ссылки описан в терминах конечного автомата, состоящего из этих пяти состояний: Резервное устройство, Реклама, Сканирование, Инициирование и Связь. На основе этих состояний bluetooth-устройствами могут или быть Рекламодатели, Сканеры, Инициаторы, Ведущее устройство или Ведомое устройство. Этот пример представляет модель, чтобы продемонстрировать процесс установления связи между Ведущим устройством и Ведомым устройством посредством переходов между различными состояниями машины состояния слоя ссылки. Результаты симуляции отображают время, потраченное, чтобы установить связь между Ведущим устройством и Ведомым устройством. Кроме того, этот пример также предоставляет графики, показывающие изменение во время установления связи как функция параметров конфигурации, такие как рекламный интервал и интерференция.

Стек BLE

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

BLE действует в 2.4 полосах GHz ISM на уровне 2400 - 2483.5 МГц. Это использует 40 каналов РФ, и каждый канал 2 МГц шириной.

BLE классифицирует эти 40 каналов РФ в три рекламных канала (индексы канала: 37, 38, 39) и 37 каналов данных (индексы канала: 0 - 36). Каналы рекламы в основном используются в создании связи между устройствами BLE путем передачи рекламных пакетов, сканируют пакеты запроса/ответа и пакеты индикации связи. Каналы данных в основном используются после установления связи в обмене пакетами данных.

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

BLE соединяют модель машины состояния слоя

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

Соедините состояния слоя

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

Слой ссылки обеспечивает конечный автомат, состоящий из этих пяти состояний:

  1. Резервное устройство: Это - состояние по умолчанию в слое ссылки. Устройство не отправляет или получает пакеты в этом состоянии. Это может оставить Резервное состояние, чтобы ввести одну из Рекламы, Сканирования или Инициирования состояний.

  2. Реклама: В этом состоянии, передачи устройства рекламные пакеты в периодических интервалах, названных рекламными событиями. Эти устройства называются рекламодателями.

  3. Сканирование: В этом состоянии устройство прислушивается к рекламодателям на рекламных каналах и транзитах к Резервному состоянию для выбора рекламодателя, чтобы инициировать связь.

  4. Инициирующий: В этом состоянии устройство прислушивается к определенному рекламодателю и инициирует связь с ним. Устройство переместится в состояние Связи после получения рекламного пакета из выбранного рекламодателя. Эти устройства называются инициаторами.

  5. Связь: В этом состоянии устройство передает пакеты данных в названных событиях связи периодических интервалов.

После того, как связь устанавливается, инициатор становится Основным (Центральным) устройством, и рекламодатель становится Ведомым (Периферийным) устройством.

Соедините События слоя

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

Подключенное устройство превращается в новый канал данных для каждого события связи. Событие связи является периодом времени для обмена последовательностью пакетов данных между двумя подключенными устройствами, которая повторяется равномерно. Все пакеты в событии связи передаются на том же канале данных. Новое событие связи использует новый канал данных. Два альтернативных алгоритма выбора канала заданы спецификацией ядра Bluetooth (отошлите Раздел 4.5.8, Часть-B, Vol-6 [1]). Эти алгоритмы используются, чтобы выбрать канал данных для каждого события связи.

Этот рисунок иллюстрирует процесс установления связи между двумя устройствами BLE с помощью событий слоя ссылки:

Настройка модели

Модель машины состояния слоя ссылки, продемонстрированная в этом примере, использует эти два библиотечных блока: Устройство и Беспроводной Носитель.

Можно обновить конфигурацию устройства через параметры маски блока Device в модели. На основе выбранной роли GAP (Центральное Периферийное устройство/), маска будет обновлена с соответствующими свойствами.

Можно также сконфигурировать интерференцию статистически для каждого рекламного канала (37, 38 и 39) в блоке Wireless Medium.

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

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

  • Время установления связи:

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

  • Последовательность быстрого переключения каналов:

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

  • Пакетный обмен между устройствами

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

  • Диагностический журнал для работы устройства

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

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

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

  • Результаты симуляции без интерференции:

Этот график показывает, как время установления связи меняется в зависимости от рекламного интервала. Здесь, отсканируйте окно, 10 миллисекунд с интервалом сканирования 100 миллисекунд т.е. 10% активного периода в сканировании.

Запустите helperBLEPlotConnectionTimeWithoutInterference скрипт (симуляция длительного периода) для генерации вышеупомянутых результатов.

  • Результаты симуляции с интерференцией:

Этот график показывает, как среднее время установления связи меняется в зависимости от разных уровней интерференции. График также показывает изменение для нескольких значений рекламных интервалов. Здесь, отсканируйте окно, 100 миллисекунд с интервалом сканирования 100 миллисекунд т.е. 100% активного периода в сканировании. Эти временные стоимости установления связи усреднены более чем 100 запусков симуляции для различных значений рекламных интервалов и интерференционных уровней.

Запустите helperBLEPlotConnectionTimeWithInterference скрипт (симуляция длительного периода) для генерации вышеупомянутых результатов.

Кроме рекламного интервала, время установления связи варьируется относительно нескольких параметров, таких как интервал сканирования, окно сканирования, длительность сканирования, рекламная длительность и интерференция. Можно далее исследовать путем варьирования любого из этих параметров. И вышеупомянутые симуляции запущены со сканированием и рекламной длительностью 1 и 10 секунд соответственно.

Заключение

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

Приложение

Функции, использованные в этом примере:

  • bleLLAdvertisingChannelPDU: Сгенерируйте LL, рекламирующий PDU канала

  • bleLLAdvertisingChannelPDUDecode: Декодируйте LL, рекламирующий PDU канала

  • bleLLAdvertisingChannelPDUConfig: Создайте объект настройки для генерации и декодирования LL, рекламирующего PDU канала

  • bleLLDataChannelPDU: Сгенерируйте PDU канала данных LL

  • bleLLDataChannelPDUDecode: Декодируйте PDU канала данных LL

  • bleLLDataChannelPDUConfig: Создайте объект настройки для генерации и декодирования PDU канала данных LL

  • bleLLControlPDUConfig: Создайте объект поднастройки, используемый в генерации и декодировании PDU канала данных

  • bleGAPDataBlock: Сгенерируйте рекламу GAP и отсканируйте данные об ответе

  • bleGAPDataBlockDecode: Декодируйте рекламу GAP и отсканируйте данные об ответе

  • bleGAPDataBlockConfig: Создайте объект настройки для генерации и декодирования блока данных GAP

  • bleChannelSelection: Создайте Системный объект, используемый в выборе нового канала данных, чтобы передать пакет данных

Помощники, используемые в этом примере:

Выбранная библиография

  1. Специальная группа (SIG) Bluetooth. "Спецификация Ядра Bluetooth". Версия 5.0. https://www.bluetooth.com /

Для просмотра документации необходимо авторизоваться на сайте