КАТАЛОГ ЭЛЕКТРОННЫХ КОМПОНЕНТОВ
Паccивные элементы
Варисторы
Конденсаторы
Конденсаторы SMD
Конденсаторы керамические SMD
Конденсаторы электролитические SMD
Конденсаторы танталовые SMD
Конденсаторы выводные
Электролитические конденсаторы купить в Киеве, Украина
Конденсаторы пленочные
Конденсаторы высоковольтные
Конденсаторы танталовые
Ионисторы
Индуктивности и дроссели
Индуктивности SMD
Индуктивности выводные (дросcели)
Кварц. резонаторы
Кварцевые резонаторы выводные
Кварцевые резонаторы SMD
Резисторы
Резисторы SMD
резисторы 0603
резисторы 0805
резисторы 1206
резисторы 1210
резисторы 2010
резисторы 2512
резисторы SMD
Резисторы выводные
Резисторы выводные аксиальные
Резисторы подстроечные
Резисторы мощные >20Вт
Резисторы керамические
Резисторы разные
Диоди и стабилитроны
Выпрямительные диоды купить Киев
Диоды защитные
Диодные модули
Стабилитроны
Транзисторы
Транзисторы
Транзисторы биполярные
Транзисторы полевые
Транзисторы IGBT
Транзисторы СВЧ
Тиристоры
Оптоэлектроника
Оптические приборы
Оптопары
Оптические трансиверы
Светодиоды
Светодиоды выводные
Светодиоды SMD
Светодиодные ленты
Светодиодные блоки
Светодиодные модули
Светодиодные кластеры
Светодиоды ИК
Фотодиоды
Фотоприёмники
Индикаторы и дисплеи
Индикаторы
Дисплеи LCD
Дисплеи TFT
Панели оператора
Микросхемы
Микросхемы
Микросхемы акселерометры
Микросхемы АЦП
Микросхемы ЦАП
Микросхемы измерительные
Микросхемы генераторы-синтезаторы частоты
Микросхемы генераторы частоты
Микросхемы драйверы
Микросхемы ИОН
Микросхемы зарядные для аккумуляторов
Микросхемы интерфейса
Микросхемы интегральные
Микросхемы изоляторы сигналов
Микросхемы изоляторы цифрового сигнала
Микросхемы ключи
Микросхемы интеллектуальные ключи
Коммутаторы
Микросхемы коммутаторы аналоговых сигналов
Микросхемы коммутаторы
Микроконтроллеры купить Киев
Микросхемы контроллеры
Микроконтроллеры разные
Микросхемы микроконтроллеры
Микросхемы микроконтроллеры разные
Операционные усилители
Компараторы
Микросхемы стабилизаторы
Микросхемы напряжения
Микросхемы регуляторы линейные
Линейные регуляторы
Микросхемы регуляторы разные
Микросхемы импульса
Микросхемы логики разные
Микросхемы логические
Микросхемы логики
Микросхемы логики еще
Микросхемы логические программируемые
Микросхемы памяти
Микросхемы усилители
Микросхемы усилительные
Микросхемы приёмо-передатчики
Микросхемы приёмо-передатчики разные
Микросхемы DC интеллектуальные ключи
Микросхемы датчики температуры
Микросхемы AD
Микросхемы ПЛИС та ПАИС
Микросхемы времени
Модули ЦПУ
Микропроцессоры
Преобразователи
Преобразователи модульные
Преобразователи интегральные
Преобразователи AC/DC модульные
Преобразователи DC/DC модульные
Преобразователи частотные
Микросхемы преобразователи
Преобразователи разные
Элементы питания
Аккумуляторы
Батарейки
Предохранители
Предохранители
Держатели предохранителя
Предохранители самовостанавливающиеся
Звукоизлучатели
Силовые модули и блоки
Силовие модули
Силовые блоки разные
Силовые выключатели
Приёмо-передатчики
Реле, кнопки, переключатели
Реле
Реле твердотельные
Реле времени
Кнопки
Разъёмы, клемники, соединители
Разъёмы
Разъёмы другие
Контакторы
Клеммники
Соединители
Коннекторы SIM
Корпусы, вентиляторы, радиаторы
Корпусы
Вентиляторы
Радиаторы
Трансформаторы
Антенны
Антенны
Антенные переходники
Датчики, энкодеры, измерители
Энкодеры
Датчики влажности
Датчики индуктивные
Датчики положения
Датчики положения оптические
Датчики температуры
Датчики давления
Датчики тока
Датчики разные
Измерители-регуляторы температуры и физ.величин
Расходомеры
Средства для разработки
Средства для разработчика
Наборы (киты)
Программаторы
Ферриты
Разное

Запускаем передачу голоса через BLE на STM32WB55

06.05.2020

st_ble_stm32wb55_800x340

 

 

 

Для расширения возможностей двухъядерного беспроводного микроконтроллера STM32WB55 компания STMicroelectronics предлагает FP-AUD-BVLINKWB1 – пакет ПО, выполняющий потоковую передачу голоса по BLE в полнодуплексной конфигурации с использованием расширенного алгоритма сжатия Opus.

Недавняя новинка от STMicroelectronics – STM32WB55 – представляет собой двухъядерное решение для беспроводных сетей диапазона 2,4 ГГц. Отличительной чертой данной беспроводной системы-на-кристалле (СнК) является разделение прикладных и сетевых задач между аппаратными ядрами. В STM32WB одно из ядер работает с нижними уровнями выбранного стека сетевых протоколов, включая управление радиотрактом, а второе ядро выполняет функции верхних уровней и прикладные задачи. За счет технологических и схемотехнических решений достигнуто низкое потребление и при работе в составе сетей, и при выполнении прикладных задач. СнК STM32WB55 поддерживает протоколы Bluetooth Low Energy 5.0, ZigBee, Thread, возможна также реализация проприетарных протоколов на базе стандарта 802.15.4.

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

На текущий момент в экосистему разработчика, позволяющую в короткие сроки приступить к работе над программными и аппаратными проектами на базе STM32WB, входят инструментарий STM32Cube и отладочный набор STM32WB55 Nucleo pack.

Программный пакет STM32CubeWB для STM32Cube включает в себя драйверы периферийных устройств уровней HAL и LL, полный набор промежуточного программного обеспечения и сетевых стеков (Bluetooth 5.0, OpenThread и ZigBee 3.0), а также предварительно сконфигурированные примеры программных проектов для наиболее популярных IDE.

Кроме этого, для STM32Cube компания STMicroelectronics предлагает ряд интересных пакетов-расширений, среди которых можно выделить программный продукт FP-AUD-BVLINKWB1. Данный программный пакет позволяет организовать двухстороннюю дуплексную голосовую связь через BLE на STM32WB55.

Программный пакет FP-AUD-BVLINKWB1

FP-AUD-BVLINKWB1 — это пакет ПО, который выполняет потоковую передачу голоса по BLE в полнодуплексной конфигурации с использованием расширенного алгоритма сжатия Opus (рисунок 1).

ris_1-9

Рис. 1. Структура программного пакета FP-AUD-BVLINKWB1

Алгоритм сжатия Opus позволяет достичь высокого качества голоса даже при малых битовых скоростях.

Основные особенности пакета FP-AUD-BVLINKWB1:

  • законченный проект для реализации полнодуплексной потоковой передачи аудио по Bluetooth0 с использованием кодека Opus для кодирования и декодирования;
  • индивидуальный профиль BlueVoiceOPUS для аудио по BLE, включая простой в применении набор API для использования расширенной функциональности Opus (доступен исходный код);
  • прием и обработка цифрового аудиосигнала;
  • совместимость с приложением ST BLE Sensor (v2.0 или выше) для Android с целью потокового воспроизведения звука с частотой дискретизации 16 КГц и преобразования речи в текст.

Демонстрационное приложение рассчитано на работу с парой отладочных плат P-NUCLEO-WB55 с подключенными платами расширения X-NUCLEO-CCA02M1 (рисунок 2).

ris_2-10

 

 

 

 

 

 

 

 

 

 

Рис. 2. Плата расширения X-NUCLEO-CCA02M1

На плате расширения X-NUCLEO-CCA02M1 установлены два цифровых MEMS-микрофона MP34DT01-M, генератор тактовой частоты 8 МГц (необходимый при отсутствии внешнего) и стабилизатор питания (в случае питания от USB-разъема платы расширения).

При работе с демонстрационным приложением тактовая частота для микрофонов генерируется STM32WB на выводе 30 (порт PB13/PB3) отладочной платы P-NUCLEO-WB55, цифровые PCM-входы (выходные сигналы MEMS-микрофонов) – выводы 15 и 26 (порты PA7 и PB5/PB15/PA9).

Встраиваемое программное обеспечение представлено в версиях для популярных сред разработки – IAR Embedded Workbench v8.32.3, MDK-ARM Professional Version: 5.27, Open System Workbench toolchain Version 2.9. Возможно также легкое автоматическое конвертирование в проекты свободно распространяемой STMicroelectronics среды STM32CubeIDE – File>Import>Import Atollic TrueSTUDIO Project и переход на место установки пакета FP-AUD-BVLINKWB1. Например, путь к проекту периферийного модуля может быть таким: C:\Users\1111\STM32Cube\Repository\STM32CubeFunctionPack_

BVLINKWB1_V1.0.0\Projects\STM32WB55RG-Nucleo\Applications\BVLPeripheral – при установке пакета в пути по умолчанию для текущего пользователя (в данном случае – 1111).

Программный проект включает в себя две части – центральное устройство BVLCentral  и периферийное устройство BVLPeripheral, которые совместно демонстрируют полнодуплексную передачу звука через BLE.

Структура проектов достаточно сложна и включает в себя целую иерархию конфигурационных файлов, определений функций и обработчиков событий:

  • Core/inc/stm32wbxx_hal_conf.h – файл конфигурации HAL-уровня;
  • Core/inc/stm32wbxx_it.h – заголовочный файл обработчиков прерываний;
  • Core/inc/main.h – заголовочный файл основной функции;
  • Core/inc/hw_conf.h – конфигурационный файл периферийных устройств;
  • Core/inc/utilities_conf.h – конфигурационный файл внешних утилит;
  • Core/inc/app_common.h – общие определения и шаблоны функций;
  • Core/inc/app_conf.h – конфигурационный файл приложения;
  • Core/inc/app_entry.h – конфигурационный файл приложения;
  • Core/usbd_audio_if.h – заголовочный файл обработчика вывода аудиопотока на USB (usbd_audio_if.c);
  • Core/usbd_conf.h – низкоуровневая конфигурация USB-драйвера;
  • Core/usbd_desc.h – заголовочный файл USB- дескрипторов (usbd_desc.c);
  • STM32_WPAN/app/ble_conf.h – конфигурация BLE-сервисов;
  • STM32_WPAN/app/ble_dbg_conf.h – конфигурация BLE-сервисов;
  • STM32_WPAN/app/bvopus_cen_app.h – определения и шаблоны функций для bvopus_cen_app.c;
  • STM32_WPAN/app/app_ble.h – заголовочный файл модуля app_ble.c;
  • Core/src/stm32wbxx_it.c – обработчики прерываний;
  • Core/src/main.c – центральный файл проекта;
  • Core/src/system_stm32wbxx.c – системная конфигурация stm32wbxx;
  • Core/src/app_entry.c – процедуры инициализации приложения;
  • Core/src/hw_lpm.c – диспетчер режимов пониженного потребления;
  • Core/src/hw_timerserver.c – временной сервер на базе таймера часов реального времени;
  • Core/src/hw_uart.c – драйвер UART;
  • Core/usbd_audio_if.c – интерфейсный функции USB Device Audio;
  • Core/usbd_conf_f4.c – callback-функции библиотеки USB Device для MSP for STM32F4;
  • Core/usbd_desc.c – дескрипторы и форматы строк для USBD;
  • STM32_WPAN/app/bvopus_cen_app.c – BlueVoiceOpus приложение, полнодуплексный вариант;
  • STM32_WPAN/target/hw_ipcc.c – драйвер IPCC;
  • STM32_WPAN/app/app_ble.c – реализация профиля

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

ris_3-9

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

Когда модуль находится в состоянии «Потоковое» (Streaming), приложение отвечает за получение аудио (через цифровые MEMS-микрофоны на плате X-NUCLEO-CCA02M1, сжатие аудио, пакетирование сжатого аудио для потоковой передачи по BLE согласно спецификации BlueVoiceOPUS). И наоборот, если модуль находится в состоянии «Прием», приложение отвечает за распаковку аудиоданных Opus, полученных через BLE, и для потоковой передачи на USB декодированных образцов аудиосэмплов (PCM). После фазы установления соединения активное направление передачи контролируется кнопкой USER или двойным нажатием кнопки одновременно на двух модулях (рисунок 4).

ris_4-7 (1)

Рис. 4. Передача звука между парой комплектов P-NUCLEO-WB55 + X-NUCLEO-CCA02M1

Протестировать приложение можно и при наличии одного комплекта P-NUCLEO-WB55 + X-NUCLEO-CCA02M1, в который необходимо прошить проект, отвечающий за периферийный модуль. В качестве центрального модуля будет выступать смартфон с установленным приложением ST BLE Sensor (для смартфонов под управлением Android оно доступно в Playmarket), как показано на рисунке 5.

ris_5-7

Рис. 5. Передача звука между смартфоном и связкой P-NUCLEO-WB55 + X-NUCLEO-CCA02M1

Передача звука возможна также в двух направлениях. По умолчанию после подключения к периферийному голосовому модулю данный модуль работает в режиме передачи звука. Процесс работы с приложением ST BLE Sensor представлен на рисунке 6.

ris_6-4 (2)

Рис. 6. Процесс работы с приложением ST BLE Sensor

В пределах жилого помещения связь достаточно устойчива в пределах 10…15 метров и одной-двух некапитальных стен.

Следует отметить еще пару интересных возможностей приложения ST BLE Sensor:

  • преобразование речи в текст (Speech-to-text);
  • передачу звуковых данных в облако.

Опция преобразования речи в текст требует наличия доступа к провайдеру сервиса распознавания речи и, соответственно, ключа для доступа к соответствующим API (рисунок 7).

ris_7-3 (1)

Рис. 7. Выбор опции «Преобразование речи в текст»

Аналогично действует опция сохранения речевого лога в облако: ей также необходим выбор облака и, естественно, логин + пароль (рисунок 8).

 

ris_8-4 (1)

Рис. 8. Выбор опции «Логгирование в облаке»

Заключение

В целом, программный пакет FP-AUD-BVLINKWB1 весьма интересен и прост с точки зрения пользователя и применения в несложных проектах, даже в конфигурации «из коробки», то есть без модифицирования программного кода.

Для прикладного программиста на начальном этапе работы с пакетом, безусловно, придется начинать с опорных проектов BVLPeripheral и BVLCentral, поскольку пакет FP-AUD-BVLINKWB1 многофункционален и обладает множеством опций и настроек, что сказывается и на структуре приложения.

 

© 2000-2020 ООО "Ричел". All rights reserved.

.