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

Этот пример показывает, как смоделировать машину состояния слоя ссылки, чтобы создать связь между Bluetooth® Low Energy (BLE) устройства, пользующиеся Библиотекой Communications Toolbox™ для Протокола Bluetooth и Stateflow®.

Фон

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

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

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

Образцовый обзор

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

Следующие разделы объясняют состояния слоя ссылки и события, смоделированные в этом примере.

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

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

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

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

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

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

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

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

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

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

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

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

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

Библиотека Communications Toolbox™ для Bluetooth® Protocol Features Used в модели

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

  • функция bleLLAdvertisingChannelPDU используется для генерации рекламного канала PDUs.

  • функция bleLLAdvertisingChannelPDUDecode используется для декодирования рекламного канала PDUs.

  • объект настройки bleLLAdvertisingChannelPDUConfig используется в генерации и декодировании рекламы канала PDUs.

  • функция bleLLDataChannelPDU используется для генерации канала данных PDUs.

  • функция bleLLDataChannelPDUDecode используется для декодирования канала данных PDUs.

  • объект настройки bleLLDataChannelPDUConfig используется в генерации и декодировании канала данных PDUs.

  • объект поднастройки bleLLControlPDUConfig используется в генерации и декодировании канала данных PDUs.

  • функция bleGAPDataBlock используется для генерации рекламы и данных об ответе сканирования.

  • функция bleGAPDataBlockDecode используется для декодирования рекламы и данных об ответе сканирования.

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

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

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

Эта модель использует два блока библиотеки: Устройство и Беспроводной Носитель.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

  1. Этот пример обеспечил эталонную модель для возможности соединения BLE LL, пользующейся Библиотекой Communications Toolbox™ для Протокола Bluetooth и Stateflow®.

  2. Пользователь может исследовать модель, чтобы анализировать функциональное поведение BLE.

Приложение

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

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

  1. SIG Bluetooth, спецификация v5.0 ядра Bluetooth: https://www.bluetooth.com/