В этом примере показано, как смоделировать конечный автомат слоя для установления соединения между устройствами с низким энергопотреблением (BLE) Bluetooth ® с помощью библиотеки Communications Toolbox™ для протокола Bluetooth и Stateflow ®. Рабочий механизм ссылки слоя описан в терминах конечного автомата, состоящего из этих пяти состояний: Standby, Advertising, Scanning, Initiating и Connection. Основываясь на этих состояниях, устройства Bluetooth могут быть рекламодателями, сканерами, инициаторами, мастером или ведомым. Этот пример представляет модель, чтобы продемонстрировать процесс установления соединения между Мастером и Ведомым посредством переходов между различными состояниями ссылкой слоя конечного автомата. В результаты симуляции отображается время, необходимое для установления соединения между Мастером и Рабом. Кроме того, этот пример также предоставляет графики, показывающие изменение во времени установления соединения как функцию параметров конфигурации, таких как интервал рекламы и помехи.
Спецификация ядра Bluetooth [1] включает версию с низким энергопотреблением (LE) для низкоскоростных беспроводных персональных вычислительных сетей, называемых BLE или Bluetooth Smart. Стек BLE состоит из: профиля типовых атрибутов (GATT), протокола атрибутов (ATT), протокола диспетчера безопасности (SMP), протокола логического управления Ссылки и адаптации (L2CAP), Ссылки Слоя (LL) и физического слоя (PHY). BLE был добавлен в стандарт Bluetooth Special Interest Group (SIG) [1] для устройств с низким энергопотреблением, генерирующих небольшое количество данных, таких как оповещения об уведомлениях, используемые в приложениях, таких как домашняя автоматизация, здравоохранение, фитнес и Интернет вещей (IoT).
BLE работает в полосе ISM 2,4 ГГц на частоте 2400 - 2483,5 МГц. Он использует 40 каналов RF и каждый канал имеет ширину 2 МГц.
BLE классифицирует эти 40 каналов РФ по трем рекламным каналам (индексы каналов: 37, 38, 39) и 37 каналам данных (индексы каналов: 0 - 36). Рекламные каналы в основном используются для создания соединения между устройствами BLE путем передачи рекламных пакетов, пакетов запроса/ответа сканирования и пакетов индикации соединения. Каналы данных в основном используются после установления соединения для обмена пакетами данных.
Модель в этом примере демонстрирует процесс установления соединения между двумя устройствами BLE, где одно устройство выступает в качестве ведущего, а другое - в качестве ведомого. Устройство Master начинает сканирование рекламных пакетов на рекламных каналах. Устройство Slave начинает отправлять рекламные пакеты по рекламным каналам. После выбора рекламодателя Мастер инициирует соединение с ним с помощью пакета 'Connection indication'. Соединение устанавливается, когда ведомый сервер получает этот пакет. После этого ведущие и ведомые устройства могут обмениваться пакетами данных.
Конечный автомат слоя реализован с использованием Stateflow ®, как показано ниже.
Слой ссылки поддерживает конечный автомат, состоящий из этих пяти состояний:
Standby: Это состояние по умолчанию на ссылку слое. Устройство не отправляет и не получает пакеты в этом состоянии. Это может покинуть состояние ожидания, чтобы войти в одно из состояний рекламы, сканирования или инициирования.
Реклама: В таком состоянии устройство передает рекламные пакеты в периодических интервалах, называемых рекламными событиями. Эти устройства называются рекламодателями.
Сканирование: В этом состоянии устройство прослушивает рекламодателей по каналам рекламы и переходит в состояние ожидания для выбора рекламодателя для инициирования подключения.
Инициирование: В этом состоянии устройство прослушивает конкретный рекламодатель и инициирует соединение с ним. Устройство перейдет в состояние Connection после получения рекламного пакета от выбранного рекламодателя. Эти устройства называются инициаторами.
Связь: В этом состоянии устройство передает пакеты данных в периодических интервалах называемых событиями соединения.
После установления соединения инициатор становится главным (центральным) устройством, а рекламодатель - ведомым (периферийным) устройством.
Рекламное устройство передает рекламные пакеты по трем рекламным каналам циклически (начиная с индекса 37 канала). Каждый цикл рекламы называется рекламным событием. Та же процедура используется сканированием или инициирующим устройством, которое слушает три рекламных канала циклически, называемым событием скана.
Подключенное устройство изменяется на новый канал данных для каждого события подключения. Событие соединения является временным системой координат для обмена последовательностью пакетов данных между двумя подключенными устройствами, которое повторяется с регулярными интервалами. Все пакеты в пределах события соединения передаются по одному и тому же каналу данных. Новое событие подключения использует новый канал данных. Два альтернативных алгоритма выбора канала заданы спецификацией ядра Bluetooth (см. Раздел 4.5.8, Часть B, Vol-6 из [1]). Эти алгоритмы используются, чтобы выбрать канал данных для каждого события соединения.
Этот рисунок иллюстрирует процесс установления соединения между двумя устройствами BLE, использующими ссылку слоя события:
В модели конечного автомата канального слоя, продемонстрированной в этом примере, используются эти два библиотечных блоков: Device и Wireless Medium.
Вы можете обновить строение устройства через маскирующие параметры блока 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, а именно: Master и Slave. Эта модель дает подробную информацию о различных ссылках слоя состояниях и событиях. Диаграммы переходов состояний, представленные в этом примере, четко объясняют процесс установления связи между Мастером и Рабом. Полученные результаты симуляции отображают время, необходимое для установления соединения между устройствами BLE. Кроме того, полученные графики также показывают, что время установления соединения изменяется с параметрами конфигурации, такими как интервал рекламы и помехи.
В примере используются следующие функции:
bleLLAdvertisingChannelPDU
: Сгенерируйте канал LL рекламы PDU
bleLLAdvertisingChannelPDUDecode
: Декодируйте канал рекламы LL PDU
bleLLAdvertisingChannelPDUConfig
: Создайте объект строения для генерации и декодирования LL рекламного канала PDU
bleLLDataChannelPDU
: Сгенерируйте канал данных LL PDU
bleLLDataChannelPDUDecode
: Декодируйте канал данных LL PDU
bleLLDataChannelPDUConfig
: Создайте объект строения для генерации и декодирования PDU канала данных LL
bleLLControlPDUConfig
: Создайте объект подстроения, используемый в генерации и декодировании PDU канала данных
bleGAPDataBlock
: Сгенерируйте GAP рекламные и сканированные данные отклика
bleGAPDataBlockDecode
: Декодируйте GAP рекламные и сканирующие данные отклика
bleGAPDataBlockConfig
: Создайте объект строения для генерации и декодирования блока данных GAP
bleChannelSelection
: Создайте Системный объект, используемый для выбора нового канала данных для передачи пакета данных
blePCAPWriter
: Создайте BLE PCAP или PCAPNG файл средства записи объект
В примере используются следующие помощники:
helperBLELLConnectionEvent: создайте объект для событий соединения BLE LL
helperBLELLConnectionEventStatus: перечисление для указания состояния событий LL-соединения BLE
helperBLELLStateMachineEnumeration: перечисление для указания строк, используемых в модели конечного автомата BLE LL
helperBLEGenerateRandomDeviceAddress: Сгенерируйте адрес случайного устройства для устройства Bluetooth
helperBLEGetDurationInSteps: Вычислите количество шагов, необходимых для параметров синхронизации в модели, на основе stepunit
helperBLEPlotConnectionTimeWithoutInterference: Выполняйте несколько симуляций, изменяющих интервал рекламы без помех
helperBLEPlotConnectionTimeWithInterference: Выполняйте несколько симуляций, изменяющих интервал рекламы с интерференцией
Веб-сайт Bluetooth ® Technology. Bluetooth Technology Website | Официальный сайт Bluetooth Technology. Доступ к 8 июля 2020 года. https://www.bluetooth.com/.
«Разработка/LibpcapFileFormat - Wireshark Wiki». Доступ к 8 июля 2020 года. https://wiki.wireshark.org/Development/LibpcapFileFormat.