Blue Gecko

Программные и аппаратные средства разработки для семейства микросхем EFR32 Blue Gecko компании Silicon Labs

№ 1’2017
PDF версия
В [1] читателям было представлено новое семейство мультипротокольных микроконтроллеров EFR32 Blue Gecko компании Silicon Labs, поддерживающее как стандарт Bluetooth Smart, так и проприетарные протоколы в диапазонах 2,4 ГГц и <1 ГГц. Микросхемы выполнены на базе процессорного ядра ARM Cortex-M4 с набором DSP-инструкций и арифметическим сопроцессором (FPU). Варианты исполнения EFR32 Blue Gecko со встроенным усилителем обеспечивают выходную мощность радиосигнала до 19,5 дБм, что, вместе с высокой чувствительностью приемника, позволяет передавать данные на расстояние до 375 м. Другими важными преимуществами этих микросхем являются низкое энергопотребление и минимальное время перехода в полнофункциональный режим. Такой набор технических характеристик позволяет применять их для создания миниатюрных устройств с батарейным питанием. Однако для успешной разработки важны не только параметры собственно компонентов, но и наличие встраиваемых библиотек, а также набор программных и аппаратных отладочных средств. Обзору всего комплекса таких средств от компании Silicon Labs, предназначенных для Bluetooth-микросхем EFR32 Blue Gecko, посвящена данная статья.

Платформа Simplicity Studio

Программная платформа Simplicity Studio предназначена для работы как с беспроводными компонентами Silicon Labs, так и с 32- и восьмиразрядными микроконтроллерами. Она представляет собой агрегатор всех инструментов, которые могут понадобиться разработчику, использующему компоненты Silicon Labs. Платформа включает в себя интегрированную среду разработки, специальную утилиту для профилирования энергопотребления Energy Profiler, графический конфигуратор периферии и линий ввода/вывода, анализатор сетевого трафика Network Analyzer, программатор и всю документацию на подключенную отладочную плату и соответствующий компонент (модуль, микросхему или микроконтроллер).

Рассмотрим процесс начала работы с Simplicity Studio более подробно. В первую очередь необходимо загрузить с сайта производителя [2] дистрибутив самой платформы и выполнить ее установку. Simplicity Studio полностью бесплатна и доступна для операционных систем Windows, Linux Ubuntu и Mac OSX. Все программные компоненты и документация при установке размещаются локально на компьютере, в дальнейшем Simplicity Studio будет следить за обновлениями всех своих компонентов и автоматически обновлять их до последней доступной версии.

Затем следует добавить к Simplicity Studio необходимые наборы средств для разработки ПО (Software Development Kit, SDK). Например, для работы с микросхемами EFR32 Blue Gecko потребуются Bluetooth Smart C-SDK и Silicon Labs RAIL Framework, а для микросхем EFR32 Mighty Gecko — наборы EmberZNet PRO ZigBee или Silicon Labs Thread stack (в зависимости от используемой технологии беспроводной передачи данных). После загрузки SDK с сайта Silicon Labs и его распаковки нужно открыть окно настроек Simplicity Studio (рис. 1), выбрать в нем пункт Simplicity Studio -> SDKs, нажать кнопку Add и указать путь к целевому каталогу.

Добавление Software Development Kit к платформе Simplicity Studio

Рис. 1. Добавление Software Development Kit к платформе Simplicity Studio

Основное окно Simplicity Studio состоит из верхней, боковой и главной панелей. На верхней панели расположены кнопки регистрации в системе Silicon Labs, настроек, обновлений, поиска, установки компонентов, а также кнопки переключения перспектив. На боковой панели располагается список всех физически или логически подключенных в текущий момент к компьютеру отладочных плат и устройств. При выборе любого устройства из этого списка на главной панели отображаются все имеющиеся для него SDK, готовые прошивки, примеры проектов и инструкции по применению (рис. 2).

Главное окно Simplicity Studio при подключении отладочной платы

Рис. 2. Главное окно Simplicity Studio при подключении отладочной платы

Платформа Simplicity Studio включает в себя множество необходимых в процессе разработки программных компонентов. Во-первых, интегрированную среду разработки на базе Eclipse, содержащую редактор, компилятор и компоновщик. В случае необходимости можно подключать к данной IDE внешние компиляторы (например, IAR, Keil, GCC).

Чтобы начать работу, достаточно подключить отладочную плату к компьютеру по интерфейсу USB. Все отладочные комплекты Silicon Labs для Bluetooth-микросхем и модулей выполнены на основе базовой платы BRD4001A. На данной плате имеется переключатель выбора источника питания, который для работы с Simplicity Studio следует установить в положение «AEM» (Advanced Energy Monitoring). Simplicity Studio автоматически определяет факт подключения отладочной платы: мы увидим в левом меню ее название, а в правой части — все инструменты, доступные для подключенной платы.

Среди таких инструментов следует отметить утилиту Energy Profiler, представляющую собой уникальное средство для профилирования энергопотребления. Для использования Energy Profiler следует запустить проект на фирменной отладочной плате от компании Silicon Labs. Измерение энергопотребления происходит при помощи установленного на платах специального измерительного блока AEM. Блок включен в цепь питания микроконтроллера; результаты измерений вместе со значениями встроенного в блок таймера передаются по интерфейсу USB на компьютер, где обрабатываются средствами утилиты Energy Profiler. Профилирование можно выполнять и для разрабатываемой платы; отладочная плата в этом случае будет служить измерительным модулем. Целевая плата должна быть присоединена по линиям питания, земли и SWO (значение счетчика команд).

Чтобы начать профилирование собственного проекта, в него необходимо добавить функцию настройки трассировки BSP_TraceProfilerSetup(void) и вызвать ее в функции инициализации микроконтроллера. Исходный код функции доступен в документации, а также в примерах приложений, встроенных в Simplicity Studio.

Одновременно с запуском программы на выполнение начинается измерение энерго­потребления кристалла. Строится график зависимости потребляемого тока от времени; график строится одновременно с исполнением программы на плате (рис. 3). Уровень тока может отображаться по выбору на логарифмической или на линейной шкале. Для каждой выбранной точки показываются точные значения измеряемых параметров: ток, напряжение, значение счетчика команд и время с начала измерения.

Утилита Energy Profiler

Рис. 3. Утилита Energy Profiler

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

Использование Energy Profiler позволяет определить участки программы, нуждающиеся в оптимизации, а также оценить с точки зрения энергозатрат все приложение в целом.

Другим важным компонентом Simplicity Studio является утилита Hardware Configurator. Она позволяет настраивать периферийные устройства кристалла (вкладка Peripherals) и конфигурировать порты ввода/вывода (вкладка Port I/O). Результатом работы конфигуратора является заготовка проекта для встроенной в Simplicity Studio среды разработки, то есть исходный код программы, который может быть доработан инженером.

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

На вкладке Port I/O видно распиновку кристалла, а в окне справа — меню для настройки связей внутренней периферии с внешними выводами (рис. 4). Конфигурация выводов, соответствующих выбранному периферийному модулю, может быть выбрана из стандартных вариантов. В случае обнаружения конфликтов в процессе назначения выводов они подсвечиваются красным цветом и могут быть разрешены автоматически или в ручном режиме. В нижнем окне отображаются подсказки по настройке конфигурации кристалла. Можно задать режимы работы линий в соответствии с их назначением. По окончании всех описанных настроек должен быть сгенерирован исходный код. Для этого следует щелкнуть правой кнопкой в главном окне конфигуратора и выбрать во всплывающем меню пункт Generate Source.

Утилита Hardware Configurator

Рис. 4. Утилита Hardware Configurator

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

Утилита Flash Programmer дает возможность записывать исполняемый код в память микросхемы, а также выполнять стирание, устанавливать и снимать защиту от записи для выбранного диапазона адресов.

 

Набор средств для разработки Bluetooth Smart C-SDK

Главной составной частью набора программных средств Bluetooth Smart C-SDK является стек протоколов Bluetooth (рис. 5). Данный стек включает в себя реализацию протоколов канального уровня, профилей общих атрибутов (GATT) и общего доступа (GAP). Также в его состав входят программный модуль защиты от несанкционированного доступа Security Manager, диспетчерская программа-супервизор, обеспечивающая возможность обновления прошивки через эфир, и набор специальных аппаратно-зависимых библиотек, предназначенных для работы с конкретной моделью микросхемы [3].

Варианты взаимодействия пользовательского приложения с Bluetooth-стеком

Рис. 5. Варианты взаимодействия пользовательского приложения с Bluetooth-стеком

Взаимодействие приложения пользователя с Bluetooth-стеком осуществляется посредством программного интерфейса приложения (API). Этот интерфейс позволяет выполнять следующие операции:

  • обновлять встроенное ПО микросхемы;
  • работать с flash-памятью;
  • взаимодействовать с профилями общего доступа и общих атрибутов;
  • устанавливать Bluetooth-соединение;
  • управлять аппаратными средствами (таймерами, АЦП, вводами/выводами микросхемы);
  • управлять диспетчером безопасности;
  • тестировать работу приемника и передатчика;
  • устанавливать излучаемую мощность передатчика, выполнять сброс устройства и т. д.

Отправка любой команды от пользовательского приложения микросхеме может быть выполнена тремя следующими способами [4].

Протокол BGAPI

BGAPI представляет собой двоичный протокол, обеспечивающий возможность обмена информацией между внешним микроконтроллером и микросхемой EFR32 Blue Gecko по интерфейсу UART. BGAPI позволяет отправлять команды и данные Bluetooth-микросхеме, а также принимать от нее данные, ответы и сообщения о событиях.

Библиотека BGLIB

Эта библиотека реализует протокол BGAPI в виде высокоуровневых функций языка C, что значительно упрощает разработку пользовательского приложения. BGLIB может быть легко портирована на любые платформы — от бюджетных микроконтроллеров до операционных систем Linux, Windows и Mac OSX. Данный вариант позволяет управлять микросхемой как со стороны внешнего микроконтроллера, так и исполнять пользовательское приложение на встроенном микропроцессорном ядре ARM Cortex-M4F.

Язык программирования BGScript

BGScript представляет собой простой, схожий с BASIC язык программирования, позволяющий реализовать пользовательское приложение непосредственно на микросхеме EFR32 Blue Gecko.

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

Запрос списка сохраненных Bluetooth-соединений

Рис. 6. Запрос списка сохраненных Bluetooth-соединений

Также в состав Bluetooth Smart C-SDK входят следующие демонстрационные прошивки и примеры проектов в исходных кодах, реализующие основные варианты применения микросхем Bluetooth Smart [5].

В проекте Health Thermometer («датчик температуры») реализована передача по беспроводному интерфейсу данных, полученных от подключенного к микросхеме датчика. В данном случае микросхема EFR32 Blue Gecko выступает в роли сервера, к которому подключается некое удаленное устройство (клиент). На основе данного проекта можно легко реализовать считывание информации с сети беспроводных датчиков при помощи смартфона или планшета. Режим демонстрирует способ передачи информации от сервера клиенту с установлением соединения (рис. 7а).

Проект Beaconing обеспечивает отправку данных («маячков») всем находящимся в пределах досягаемости мобильным устройствам, в результате чего можно оценить расстояние до этих устройств. По умолчанию структура передаваемого пакета соответствует формату Apple iBeacon, при необходимости ее можно легко адаптировать под требования стандартов AltBeacon или EddyStone. Режим демонстрирует способ передачи информации от сервера клиенту без установления соединения (рис. 7б).

В проекте Key Fobs («брелок») микросхема принимает предупредительные сигналы, сообщающие об удалении/приближении некоего мобильного устройства (клиента). Оценка расстояния между устройствами в данном случае, как и в проекте iBeacon, происходит на основе уровня принимаемого сигнала (RSSI). По результатам проведенных экспериментов погрешность при таком способе измерения составила 10–15 м в условиях прямой видимости и отсутствия помех. Режим демонстрирует способ передачи информации от клиента серверу (рис. 7в).

В проекте Cable Replacement реализована «прозрачная» передача данных между двумя устройствами Bluetooth Smart, аналогично профилю последовательного порта для устройств Bluetooth Classic (рис. 7г).

Варианты применения микросхем EFR32 Blue Gecko

Рис. 7. Варианты применения микросхем EFR32 Blue Gecko

Кроме того, производитель предоставляет пример приложения для мобильных устройств, реализующий взаимодействие с микросхемами EFR32 Blue Gecko по каналу Bluetooth. Приложение доступно в исходных кодах для операционных систем iOS и Android.

 

Аппаратные средства разработки

Отладочный комплект SLWSTK6020A (рис. 8) предназначен для тестирования и отладки приложений с использованием микросхем EFR32 Blue Gecko. В состав комплекта входят базовая плата BRD4001A, радиоплата SLWRB4100A с распаянной микросхемой EFR32BG1P232F256GM48, а также плата расширения с разъемами для подключения отладчика [6]. На базовой плате имеются ЖК-дисплей разрешением 128×128 пикс., разъемы Ethernet и USB для подключения к ПК, датчик температуры и влажности Si7021, тестовые кнопки и светодиоды. Излучаемая мощность входящей в состав отладочного комплекта радиоплаты SLWRB4100A составляет 10,5 дБм. Если требуется большая мощность передатчика, то можно использовать совместимые по выводам радиоплаты SLWRB4150A или SLWRB4151A, на которых установлены микросхемы семейства Mighty Gecko с максимальной излучаемой мощностью 13 и 19,5 дБм соответственно.

Отладочный комплект SLWSTK6020A

Рис. 8. Отладочный комплект SLWSTK6020A

Отладочный комплект SLWSTK6020A поставляется с прошивкой, позволяющей работать в любом из следующих режимов: Health Thermometer, Beaconing, Key Fobs. При этом микросхема EFR32 Blue Gecko выступает в роли сервера, клиентом может быть, например, смартфон с установленным приложением Blue Gecko app. Приложение доступно для загрузки в Google Play и App Store.

Для тех случаев, когда разработку предпочтительнее выполнять не на базе микросхем, а с использованием законченных модулей, Silicon Labs предлагает компактный модуль BGM121, аналогичный по функциональности и программному обеспечению микросхемам EFR32 Blue Gecko. BGM121 объединяет в одном миниатюрном корпусе с размерами 6,5×6,5×1,4 мм микропроцессорное ядро ARM Cortex-M4, приемопередатчик, все необходимые пассивные компоненты и керамическую чип-антенну (рис. 9).

Миниатюрный Bluetooth-модуль BGM121 со встроенной антенной

Рис. 9. Миниатюрный Bluetooth-модуль BGM121 со встроенной антенной

 

Заключение

Компания Silicon Labs предоставляет для своих беспроводных микроконтроллеров EFR32 Blue Gecko полный набор как програм­мных, так и аппаратных средств разработки. Входящие в состав платформы Simplicity Studio демонстрационные примеры, реализующие основные варианты применения микросхем Bluetooth Smart, позволяют существенно сократить затраты на написание собственного программного обеспечения и уменьшить время вывода на рынок конечного изделия.

Литература
  1. Бренёв А., Кривченко Т. Мультипротокольные микроконтроллеры Wireless Gecko компании Silicon Labs, или Новый взгляд на решение проблем совместимости // Беспроводные технологии. 2016. № 4.
  2. www.silabs.com
  3. Silicon Labs Bluetooth C Application Developer’s Guide. Silicon Laboratories Inc. 2016.
  4. Bluetooth Smart Software API Reference Manual. Silicon Laboratories Inc. 2016.
  5. Silicon Labs AppBuilder-Based Bluetooth Smart C-SDK Quick-Start Guide. Silicon Laboratories Inc. 2016.
  6. EFR32BG Bluetooth Smart Starter Kit, Silicon Laboratories Inc., 2016.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *