В этом примере показано, как использовать автономную диаграмму Stateflow ® для моделирования конечного автомата на канальном уровне Bluetooth ® с низким энергопотреблением (BLE).
Технология Bluetooth - беспроводной интерфейс, предназначенный для замены кабелей, соединяющих портативное и стационарное электронное оборудование. Отраслевой консорциум Bluetooth Special Interest Group определяет две группы стандартов для этой технологии: Bluetooth низкой энергии (BLE) и Bluetooth базовой скорости/повышенной скорости передачи данных (BR/EDR). Устройства BLE отличаются низким энергопотреблением и низкой стоимостью. Эти устройства имеют рабочую радиочастоту в диапазоне от 2,4000 ГГц до 2,4835 ГГц. Рабочая полоса разделена на 40 каналов, каждый с полосой пропускания 2 МГц. Пакеты данных пользователя передаются с использованием каналов в диапазоне от 0 до 36. Рекламные пакеты данных передаются по каналам 37, 38 и 39.
Функциональные возможности стека протоколов BLE разделены на три основных уровня:
Уровень контроллера включает в себя физический уровень низкой энергии (PHY), канальный уровень (LL) и интерфейс главного контроллера на стороне контроллера (HCI). Конечный автомат, смоделированный этим примером, является частью канального уровня в этой части стека протоколов BLE.
Уровень хоста включает в себя HCI на стороне хоста, протокол управления логическими каналами и адаптации (L2CAP), протокол атрибутов (ATT), профиль общих атрибутов (GATT), протокол диспетчера безопасности (SMP) и профиль общего доступа (GAP). Этот уровень также содержит сетчатый стек BLE, который состоит из рекламных носителей, сети, нижнего транспорта, верхнего транспорта, доступа, базовой модели и уровней модели.
Уровень профилей приложений и служб (APP) - это пользовательский интерфейс, определяющий профили использования и обеспечивающий совместимость между приложениями Bluetooth.

Дополнительные сведения см. в разделе Что такое Bluetooth? (Communications Toolbox), Bluetooth Protocol Stack (Communications Toolbox) и Bluetooth Mesh Networking (Communications Toolbox).
В стеке протоколов BLE канальный уровень управляет состоянием радиосвязи для определения роли устройства как рекламодателя или сканера. Этот уровень взаимодействует непосредственно с PHY-уровнем, который использует три рекламных канала (37, 38 и 39) для передачи и приема пакетов данных.
В этом примере автономная диаграмма Stateflow sf_bluetooth.sfx определяет режимы работы канального уровня. Диаграмма имеет три состояния: Standby, Advertising, и Scanning. Первоначально, Standby состояние является активным, указывая, что устройство находится в состоянии ожидания. На следующем временном шаге диаграмма переходит к Advertising или Scanning состояние, в зависимости от значения локальных данных TxData. Это значение указывает, имеются ли данные от рекламного носителя на уровне хоста, доступные для передачи.

При наличии доступных данных диаграмма переходит к Advertising состояние. Когда это состояние активно, устройство циклически проходит через три рекламных канала и передает один и тот же пакет данных в каждом канале. Диаграмма остается в Advertising состояние для рекламного интервала, прежде чем он вернется в Standby состояние. Рекламный интервал разделен на три метки времени контрольных точек, которые соответствуют трем рекламным каналам. В этом примере рекламный интервал состоит минимум из 20 миллисекунд, с временными метками контрольных точек в 1 миллисекунду (для канала 37), 9 миллисекунд (для канала 38) и 17 миллисекунд (для канала 39).
Если данные отсутствуют, диаграмма переходит к Scanning состояние. Когда это состояние активно, PHY-уровень пассивно сканирует один из рекламных каналов на наличие новых данных. Если PHY-уровень принимает пакет данных, то канальный уровень передает его на уровень рекламного носителя. Диаграмма остается в Scanning состояние для интервала сканирования, прежде чем он вернется в Standby состояние. В этот момент, если данные все еще отсутствуют, диаграмма выбирает новый рекламный канал и начинает другой интервал сканирования. В этом примере интервал сканирования составляет 50 миллисекунд.
Сценарий sf_bluetooth_demo.m создает объект канального уровня BLE bleLinkLayer и имитирует 10 секунд ячеистой связи по рекламному носителю. Объект канального уровня опирается на автономную диаграмму sf_bluetooth.sfx для логики управления и для объекта очереди канального уровня bleQueue для хранения данных с носителя рекламы.
Моделирование состоит из 10000 временных шагов. Каждый шаг времени представляет выполнение объекта канального уровня (что соответствует 1 миллисекунде времени моделирования) и обычно состоит из следующих шагов:
Если очередь канального уровня не пуста, считывайте пакет данных. Данные в очереди представляют пакеты рекламных данных, которые канальный уровень получает от уровня рекламного носителя.
Установка значения данных диаграммы TxData и выполните автономную диаграмму. На этом этапе диаграмма определяет, действует ли устройство как рекламодатель или сканер.
Если диаграмма находится в Advertising.Transmit генерируют блок протокольных данных (PDU) канального уровня BLE с использованием данных, считанных из очереди канального уровня. PDU представляет передачу посредством PHY-уровня. Для получения дополнительной информации о создании и конфигурировании PDU рекламного канала см. bleLLAdvertisingChannelPDU (Коммуникационный инструментарий) и bleLLAdvertisingChannelPDUConfig (Коммуникационный инструментарий).
Существуют два исключительных случая:
Каждые 1000 шагов времени сценарий передает данные в очередь канального уровня перед выполнением объекта канального уровня. Эти данные представляют пакеты рекламных данных, которые канальный уровень получает от уровня рекламного носителя.
Каждые 2500 временных шагов сценарий генерирует PDU канала рекламы канального уровня BLE, который представляет пакет рекламных данных, принятый PHY-уровнем. Затем сценарий выполняет объект канального уровня. Если диаграмма находится в Scanning объект канального уровня пытается декодировать PDU и, если декодирование успешно, передает PDU на уровень рекламного носителя. Для получения дополнительной информации о декодировании PDU см. bleLLAdvertisingChannelPDUDecode (Коммуникационный инструментарий).
Когда моделирование завершено, сценарий печатает сводку, которая перечисляет количество пакетов данных и байтов, переданных и принятых канальным уровнем.
Number of PDUs transmitted from link layer: 27 Number of bytes transmitted from link layer: 702 Number of PDUs received at link layer: 4 Number of bytes received at link layer: 112
Во время моделирования анимация диаграммы обеспечивает визуальную индикацию поведения алгоритма во время выполнения. Обратите внимание, что анимация диаграммы снижает производительность. Чтобы сократить время выполнения примера, закройте диаграмму перед выполнением сценария.
bleLLAdvertisingChannelPDU (Коммуникационный инструментарий) | bleLLAdvertisingChannelPDUConfig (Коммуникационный инструментарий) | bleLLAdvertisingChannelPDUDecode(Панель средств связи)