Пакет встраиваемого ПО STM32CubeWB  для серии беспроводных МК  STM32WB

Пакет STM32CubeTM  был создан компанией STMicroelectronics с целью упростить жизнь разработчиков за счет сокращения усилий, времени и материальных затрат на проектирование
1569
В избранное

Пакет STM32CubeTM был создан компанией STMicroelectronics с целью упростить жизнь разработчиков за счет сокращения усилий, времени и материальных затрат на проектирование.

STM32CubeTM охватывает весь спектр микроконтроллеров STM32 и включает в себя:

  • STM32CubeMX (Рис. 1) - графический инструмент, позволяющий генерировать C код для инициализации STM32 и встроенной в него периферии, используя графический помощник (Wizard)
  • Комплексную платформу встраиваемого программного обеспечения, поставляемого для каждой серии (например, STM32CubeWB (Рис. 2) для серии STM32WB) и включающую в себя:
    • STM32Cube™ HAL, встраиваемое программное обеспечение уровня аппаратной абстракции, обеспечивающее максимальную переносимость кода по всему спектру микроконтроллеров STM32. HAL доступен для всех периферийных устройств.
    • Низкоуровневые (LL) API (Application Programming Interface), предлагающие быстрый и легкий, экспертно-ориентированный уровень, который ближе к аппаратному обеспечению, чем HAL. LL API доступны только для набора периферийных устройств.
    • Набор компонентов промежуточного программного обеспечения (middleware), таких как USB Device, STMTouch (библиотека сенсорного ввода STM32), STM32_WPAN (Bluetooth® Low Energy 5.0, OpenThread, 802-15-4 MAC), FatFS и FreeRTOS.
    • Все встраиваемые программные утилиты поставляются с полным набором примеров.

Пакет STM32CubeMX

Рис. 1. Пакет STM32CubeMX

(1) Набор компонентов промежуточного программного обеспечения зависит от серии продукта.

Пакет STM32CubeWB

Рис. 2. Пакет STM32CubeWB

Ключевые характеристики: 

  • Совместимое и полное встраиваемое программное обеспечение освобождает пользователя от ряда проблем
  • Максимальная переносимость между всеми сериями STM32 поддержана STM32Cube™
  • Сотни примеров для легкого понимания
  • Высокое качество HAL с использованием инструмента статического анализа CodeSonar®
  • Высококачественные низкоуровневые (LL) API, использующие инструмент статического анализа CodeSonar®
  • Специфическое STM32WB промежуточное программное обеспечение: USB Device, STMTouch (библиотеки датчиков прикосновения STM32), STM32_WPAN (профили и сервисы Bluetooth® 5, сервисы OpenThread, сервисы 802-15-4 MAC), FatFS и FreeRTOS ™
  • STM32WB Bluetooth® 5 и HCI стеки
  • Стек OpenThread
  • 15.4 MAC
  • Бесплатная удобная лицензия
  • Механизм обновления с возможностью уведомления о новом релизе

1. Основные функции STM32CubeWB

STM32CubeWB работает на 32-битных микроконтроллерах STM32 с ядром ARM Cortex-M и объединяет в одном пакете все общие встраиваемые программные компоненты, необходимые для разработки приложений на STM32WB. В соответствии с концепцией STM32Cube™ этот набор компонентов обладает высокой переносимостью не только для серии STM32WB, но и для других серий STM32.

STM32CubeWB полностью совместим с STM32CubeMX, что и позволяет генерировать код инициализации.

Пакет включает в себя LL и HAL API, которые охватывают аппаратное обеспечение микроконтроллера, а также обширный набор примеров, работающих на платах STMicroelectronics.

Для удобства пользователей API HAL и LL доступны с лицензией BSD.

Пакет MCU STM32CubeWB содержит набор компонентов промежуточного программного обеспечения с соответствующими примерами. Они поставляются с бесплатной лицензией:

  • Решение с открытым исходным кодом FreeRTOS ™ реализовано с интерфейсом CMSIS-RTOS
  • Стек USB Device, поддерживающий множество классов: аудио, HID, MSC, CDC и DFU
  • STMTouch, решение для сенсорной библиотеки
  • STM32_WPAN, промежуточное программное обеспечение беспроводной персональной сети, разработанное в рамках среды STM32WB для поддержки Bluetooth® Low Energy (BLE) 5.0, сертифицированные стеки 802.15.4 OpenThread и слой 802-15-4 MAC
  • Файловая система FAT на основе решения FatFS с открытым исходным кодом

Несколько приложений и демонстрационных примеров, реализующих все эти компоненты промежуточного программного обеспечения, также представлены в пакете MCU STM32CubeWB.

2. Обзор архитектуры STM32CubeWB

Решение STM32CubeWB построено  на основе трех независимых уровней, которые легко взаимодействуют между собой как показано на Рис. 3.

Трехуровневая структура пакета STM32CubeWB и взаимодействия между уровнями

Рис. 3. Трехуровневая структура пакета STM32CubeWB и взаимодействия между уровнями

 2.1. Уровень 0

Этот уровень разделен на три подслоя:

  • Пакет поддержки платформы (BSP)
  • Уровень аппаратной абстракции (HAL):
    • HAL периферийные драйверы
    • Низкоуровневые драйверы
  • Основные примеры использования периферийных устройств
2.1.1. Пакет поддержки платформы (BSP) 

Этот уровень предлагает набор API-интерфейсов для аппаратных компонентов на платах (таких как драйверы LCD, Audio, microSD ™ и MEMS).

Он состоит из двух частей:

  • Компонент - Это драйвер, связанный с внешним устройством платы, а не с STM32. Драйвер компонента предоставляет специальные API для драйвера BSP внешних компонентов и может быть портирован на любую другую плату.
  • BSP драйвер позволяет связать драйвер компонента с конкретной платой и предоставляет набор удобных для пользователя API. Правило присвоения имени API: BSP_FUNCT_Action ().

    Пример: BSP_LED_Init (), BSP_LED_On ().

    BSP основан на модульной архитектуре, позволяющей легко переносить данные на любое оборудование, выполняя  низкоуровневые процедуры.
2.1.2. Слой аппаратной абстракции (HAL) и низкоуровневый слой (LL) 

STM32CubeWB HAL и LL дополняют друг друга и охватывают широкий спектр требований приложений:

  • Драйверы HAL предлагают высокоуровневые функционально ориентированные высокопереносимые API. Они скрывают от конечного пользователя сложность MCU и периферии.
    Драйверы HAL предоставляют универсальные разнообразные API-интерфейсы, ориентированные на функции, которые упрощают реализацию пользовательских приложений, предоставляя готовый к использованию процесс. Например, для коммуникационных периферийных устройств (I2S, UART и других) он предоставляет API-интерфейсы, позволяющие инициализировать и конфигурировать периферийные устройства, управлять передачей данных на основе опроса, обработки прерывания или прямого доступа к памяти и обработки ошибок, которые могут возникнуть во время коммуникаций. API драйвера HAL делятся на две категории: 
    • Универсальные API, которые предоставляют общие и универсальные функции для всех серий STM32
    • API расширения, которые предоставляют специфические и настраиваемые функции для конкретного семейства или определенного парт намбера.
  • Низкоуровневые API предоставляются на уровне регистра с лучшей оптимизацией, но меньшей переносимостью. Они требуют глубокого знания MCU и спецификаций периферии.
    В отличие от HAL, LL API не предоставляются для периферийных устройств, где оптимизированный доступ не является ключевой функцией, или для тех устройств, которые требуют тяжелой программной конфигурации и/или сложного стека верхнего уровня.
    • Набор для инициализации основных функций периферийных устройств в соответствии с параметрами, указанными в структурах данных
    • Набор функций, используемых для заполнения структур данных инициализации значениями сброса, соответствующими каждому полю
    • Функция для деинициализации периферии (периферийные регистры восстанавливаются до значений по умолчанию)
    • Набор встроенных функций для прямого и атомарного доступа к регистру
    • Полная независимость от HAL и возможность использования в автономном режиме (без драйверов HAL)
    • Полный охват поддерживаемых периферийных функций
2.1.3. Базовые примеры использования периферии

Этот слой содержит примеры сборки периферии на STM32, используя  только HAL и BSP ресурсы

2.2. Уровень 1 

Этот уровень разделен на два подуровня:

  • Компоненты промежуточного программного обеспечения
  • Примеры на основе компонентов промежуточного программного обеспечения
2.2.1. Компоненты промежуточного программного обеспечения

Промежуточное программное обеспечение представляет собой набор библиотек, охватывающих FatFS, FreeRTOS™, USB Device, STMTouch (библиотека сенсорного ввода STM32) и промежуточное программное обеспечение STM32_WPAN. Горизонтальные взаимодействия между компонентами этого уровня осуществляются напрямую путем вызова API функций, тогда как вертикальное взаимодействие с низкоуровневыми драйверами осуществляется с помощью специальных обратных вызовов и статических макросов, реализованных в интерфейсе системных вызовов библиотеки. Например, FatFS реализует драйвер дискового ввода-вывода для доступа к microSD ™ карте.

Основные характеристики каждого компонента промежуточного программного обеспечения:

  • Файловая система FAT:
    • FatFS FAT библиотека с открытым исходным кодом
    • Поддержка длинных имен файлов
    • Динамическая поддержка нескольких дисков
    • RTOS и автономная работа
    • Примеры с microSD™
  • FreeRTOS™
    • Стандарт с открытым исходным кодом
    • Уровень совместимости со CMSIS
    • Бестактовая (tickles) работа* в режиме пониженного энергопотребления
    • Интеграция со всеми модулями промежуточного программного обеспечения STM32Cube™

*Энергосберегающая технология, которая   позволяет избежать периодического опроса CPU внутренним  таймером, когда CPU находится в режиме бездействия.

  • Библиотека USB Device
    • Поддержка нескольких классов USB (Mass-Storage, HID, CDC, DFU, AUDIO и MTP)
    • Поддержка мультипакетной передачи: большой объем данных может быть отправлен без разделения передачи на транзакции пакетов максимального размера
    • Использование файлов конфигурации для изменения ядра и конфигурации библиотеки без изменения read-only кода библиотеки
    • RTOS и автономная работа
    • Связь с драйвером низкого уровня через уровень абстракции с использованием файла конфигурации, чтобы избежать какой-либо зависимости между библиотекой и драйверами низкого уровня
  • STM32 сенсорная библиотека
    Надежное емкостное сенсорное решение STMTouch, поддерживающее датчик приближения, сенсорный ключ, линейный и поворотный сенсорный датчик. Решение основано на проверенном принципе переноса поверхностного заряда.
  • Промежуточное программное обеспечение беспроводной персональной сети STM32 (STM32_WPAN), разработанное в рамках STM32WB
    • Сертифицированные стеки BLE 5.0
    • Стек BLE: канальный уровень, база данных HCI, L2CAP, ATT, SM, GAP и GATT
      (ID декларации D042164  доступен по адресу https://launchstudio.bluetooth.com)
    • Многопрофильная подсистема BLE: полный охват профилей и служб стека программного обеспечения BLE (ID декларации D042214, доступен по адресу https://launchstudio.bluetooth.com)
    • 802.15.4 Thread® v1.1 сертифицированные приложения
    • Стек Thread® предоставляется OpenThread, реализацией сетевого протокола Thread® с открытым исходным кодом (дополнительную информацию об этом стеке см. по адресу https://openthread.io).
      Стек поддерживает две конфигурации:
      • FTD (Full Thread Device), который будет использоваться для ролей Leader, Router и End Device Thread (за исключением Border Router)
      • MTD (Minimal Thread Device), которое будет использоваться для ролей конечного устройства и спящего конечного устройства
    • Слой 802.15.4 MAC
      Этот MAC API основан на последнем официальном документе IEEE Std 802.15.4-2011, доступном по адресу http://grouper.ieee.org 
      Он поддерживает полнофункциональные устройства (Full Function Devices) и может обеспечить роль координатора персональной сети (PAN) и устройств с уменьшенной функциональностью (Reduced Function Devices), которые служат узлом для чрезвычайно простых приложений.
2.2.2. Примеры, основанные на компонентах промежуточного программного обеспечения

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

2.3. Уровень 2

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

Лицензия 

STM32CubeWB поставляется в соответствии с лицензионным соглашением на программное обеспечение Mix Ultimate Liberty + OSS + V1 третьего производителя (SLA0048). Компоненты программного обеспечения, представленные в этом пакете, поставляются с различными схемами лицензирования, как показано в таблице 1. Набор прикладных проектов, реализующих все компоненты промежуточного программного обеспечения, также предоставляется в пакете MCU STM32CubeWB.

Таблица 1. Лицензионные соглашения на программный компонент

Программный компонент

Собственник

Лицензия

Board Support Package (BSP).

STMicroelectronics International N.V

BSD 3-Clause

Cortex®-M CMSIS v4.5.0

Arm®

BSD 3-Clause

FreeRTOS™

Copyright (C) 2017 Amazon.com, Inc. или его филиалы

MIT

STM32WB HAL/LL APIs

STMicroelectronics International N.V

BSD 3-Clause

Application projects

STMicroelectronics International N.V

Ultimate Liberty (source release)

Example projects

STMicroelectronics International N.V

BSD 3-Clause

Demonstration projects

STMicroelectronics International N.V

Ultimate Liberty (source release)

STM32 touch sensing library

STMicroelectronics International N.V

Ultimate Liberty (source release)

STM32 USB Device library

STMicroelectronics International N.V

Ultimate Liberty (source release)

FatFS

STMicroelectronics International N.V

Ultimate Liberty (source release)

Chan

FatFS License(1)

Utilities (CPU - Fonts - Log)

STMicroelectronics International N.V

BSD 3-Clause

STM32WB Bluetooth® HCI

STMicroelectronics International N.V

Ultimate Liberty (source release)

STM32WB Bluetooth® stack

STMicroelectronics International N.V

Ultimate Liberty (source release)

STM32WB 802.15.4 MAC

STMicroelectronics International N.V

Ultimate Liberty (source release)

STM32WB Bluetooth®/Thread® concurrent stack

STMicroelectronics International N.V

Ultimate Liberty (source release)

Copyright (c) 2016, The OpenThread Authors

ST OpenThread binary stack

STMicroelectronics International N.V

Ultimate Liberty (source release)

Copyright (c) 2016, The OpenThread Authors

STM32WB Bluetooth® profiles and services

STMicroelectronics International N.V

Ultimate Liberty (source release)

Open Thread core

STMicroelectronics International N.V

Ultimate Liberty (source release)

Open Thread stack

Copyright (c) 2016, The OpenThread Authors

BSD 3-Clause

(1)Лицензия FatFS - это дружественная к бизнесу и разрешающая лицензия с открытым исходным кодом.

Источник: https://www.st.com/resource/en/user_manual

Производитель: STMicroelectronics
Наименование
Производитель
Описание Корпус/
Изображение
Цена, руб. Наличие
STM32WB55CGU6
STM32WB55CGU6
STMicroelectronics
Арт.: 2701916 ИНФО AN RD DT
Поиск
предложений
MCU, 32BIT, 64MHZ, UFQFPN-EP
STM32WB55CGU6
-
Поиск
предложений
STM32WB55RGV6
STM32WB55RGV6
STMicroelectronics
Арт.: 2702017 ИНФО AN RD
Поиск
предложений
РЧ-системы на кристалле (SoC) Ultra-low-power dual core Arm Cortex-M4 MCU 64 MHz, Cortex-M0 32MHz with 1 Mbyte Flash, BLE, 802.15.4, USB, LCD, AES-256.
STM32WB55RGV6
-
Поиск
предложений
P-NUCLEO-WB55
P-NUCLEO-WB55
STMicroelectronics
Арт.: 3153610 ИНФО PDF AN
Доступно: 71 шт. 4440,00
Новейший отладочный комплект P-NUCLEO-WB55  для беспроводных решений.
P-NUCLEO-WB55 4440,00 от 2 шт. 4280,00 от 4 шт. 4070,00 от 9 шт. 3870,00 от 17 шт. 3850,00
11 шт.
(на складе)
60 шт.
(под заказ)
STM32WB55CEU6
STM32WB55CEU6
STMicroelectronics
Арт.: 3173295 ИНФО AN RD DT
Поиск
предложений
Ultra-low-power dual core Arm Cortex-M4 MCU 64 MHz, Cortex-M0+ 32MHz with 512Kbyte of Flash memory, Bluetooth 5, 802.15.4, USB, LCD, AES-256
STM32WB55CEU6
-
Поиск
предложений
STM32WB55CCU7
STM32WB55CCU7
STMicroelectronics
Арт.: 3255437 ИНФО AN RD DT
Поиск
предложений
Ultra-low-power dual core Arm Cortex-M4 MCU 64 MHz, Cortex-M0+ 32MHz with 256Kbyte of Flash memory, Bluetooth 5, 802.15.4, USB, LCD, AES-256
STM32WB55CCU7
-
Поиск
предложений

Сравнение позиций

  • ()