Bluetooth-модуль четвертого поколения – как разработать свое первое приложение?

25 февраля 2014

blue_giga_logo

Миниатюрный. Со сниженной потребляемой мощностью. С гибким распределением сигналов периферии по отдельным выводам. Может работать как в качестве независимого контроллера, так и под управлением хост-контроллера. Предназначен для встраиваемых беспроводных систем и отдельных датчиков, работающих в стандарте Bluetooth Low Energy. Все это – новый модуль BLE113 от Bluegiga Technologies.

 

Технология Bluetooth Low Energy (BLE) – Bluetooth 4.0 является технологией беспроводной связи для ближних коммуникаций, разработанной группой Bluetooth Special Interest Group (SIG). Стандарт BLE изначально ориентирован на применение в системах сбора данных, мониторинга с автономным питанием. Основные топологии сетей, поддерживаемых Bluetooth Low Energy – «точка-точка» и «звезда», как правило, это т.н. сети Personal Area Network (PAN). Основными областями применения BLE являются устройства обеспечения безопасности, управления электроприборами и отображения показаний, датчики с батарейным питанием, домашние медицинские приборы, спортивные тренажеры [1-3].

Финская компания Bluegiga Technologies одной из первых начала внедрять технологию Bluetooth Low Energy в своих устройствах [4,5]. Однорежимные устройства (single-mode) выпускаются с 2010 года, а с 2011 года – двухрежимные (dual-mode).

На данный момент Bluegiga предлагает несколько серий BLE-устройств – модуль BT111 Bluetooth Smart Ready HCI Module, USB-устройство BLED112 Bluetooth low energy dongle, модуль BLE112 Bluetooth low energy module, а также новый модуль семейства Bluetooth Smart – BLE113 [6]. По сравнению с предшествующей моделью семейства (BLE112) у BLE113 на 30% снижена пиковая потребляемая мощность, и размер также уменьшен на 30%.

 

Модуль BlueGiga BLE113

BlueGiga BLE113 предназначен для использования в связке с маломощными сенсорами и периферией. BLE113 может выступать в качестве хост-узла для пользовательских приложений, не требуя наличия дополнительного внешнего микроконтроллера [4,6]. В качестве элемента питания модуля может использоваться обычная батарейка-монета с напряжением 3 В или пара батареек типа AAA. Широкий диапазон напряжений питания позволяет работать даже при достаточно сильно разряженном источнике автономного питания. Реализовано несколько режимов пониженного энергопотребления. В режиме сна модуль потребляет всего 500 нА, время пробуждения составляет несколько сотен микросекунд.

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

Структурная схема модуля представлена на рисунке 1.

Структурная схема модуля BLE113

Рис. 1. Структурная схема модуля BLE113

В основе BLE113 – однокристальная система СС2541 от Texas Instruments. На модуле интегрированы 32 МГц и 32.678 кГц кварцевые резонаторы, согласующий антенный фильтр и фильтр нижних частот.

Модуль соответствует спецификации Bluetooth 4.0, поддерживает режимы ведущего и ведомого, до восьми соединений, GAP, GATT, L2CAP и SMP. Передатчик BLE113 характеризуется мощностью от 0 до -23 дБм, приемник — чувствительностью -93 дБм. В режиме передачи потребляемый ток составляет 18,2 мА (0 дБм), приема — 14,3 мА. В спящем режиме потребляемый ток падает до 0,4 мкА. Список периферийных блоков, которыми оснащен модуль, включает UART, SPI, I2C, PWM и GPIO, а также 12-разрядный АЦП. Габариты модуля равны 9,15×15,75×1,9 мм.

Основные технические характеристики:

  • приемопередатчик с поддержкой технологиии Bluetooth 4.0 low energy radio (частоты 2402…2480 МГц, GFSK модуляция);
  • выходная мощность: до +0 дБм (1 мВт);
  • чувствительность приемника: -93 дБм;
  • встроенная керамическая чип-антенна;
  • максимальный ток при передаче: 18,2 мА (при вых. мощности 0 дБм);
  • энергопотребление в режиме сна: 0,4 мкА;
  • микроконтроллер на базе высокопроизводительного однотактного ядра 8051;
  • 8 Кбайт RAM (доступно порядка 3…4 Кбайт);
  • 128 Кбайт флэш-памяти (не считая стека протоколов, для пользовательских приложений доступно порядка 40…50 Кбайт);
  • напряжение питания: 2,0…3,6 В
  • рабочая температура: -40…85°C
  • размеры: 15,75×9,15×2,1 мм.

BLE113 обладает богатым набором периферийных устройств:

  • хост-интерфейс UART;
  • интерфейсы для подключения периферийных устройств – SPI, I2C, до четырех ШИМ-каналов, UART (до 1 бит/с), GPIO (до 11 линий, в зависимости от задействованных периферийных устройств);
  • семь АЦП с настраиваемой разрядностью от 7 до 12 бит (производительность АЦП от 4 до 30 тысяч выборок в секунду), встроенный датчик температуры, монитор разряда батареи.

Типовая схема включения BLE113 представлена на рисунке 2.

Типовая схема включения модуля BLE113

Рис. 2. Типовая схема включения модуля BLE113

Линии ввода-вывода могут работать в качестве входных с подтягиванием к уровню нуля или питания (кроме линий 0 и 1 порта 1), в качестве выходов с нагрузочной способностью до 4 мА. Также линиям портов ввода-вывода могут быть назначены альтернативные функции периферийных устройств. Сигналы периферийных устройств могут быть отображены на линии портов ввода-вывода (см. таблицу 1).

Таблица 1. Способы отображения сигналов периферийных устройств на выходные порты модуля BLE113
Периферийное
устройство
Порт P0 Порт P1 Порт P2
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 2 1 0
АЦП A7 A6 A5 A4 A3 A2 A1 A0
SPI0 в.1 C SS MO MI
в.2 MO MI C SS
UART0 в.1 RT CT TX RX
в.2 TX RX RT CT
SPI1 в.1 MI MO C SS
в.2 MI MO C SS
UART1 в.1 RX TX RT CT
в.2 RX TX RT CT
Timer 1 в.1 4 3 2 1 0
в.2 3 4 0 1 2
Timer 3 в.1 1 0
в.2 1 0
Timer 4 в.1 1 0
в.2 0
DEBUG DC DD
OBSSEL 5 4 3 2 1 0

 

Отладка программ и прошивка флеш-памяти осуществляется по двухпроводному последовательному интерфейсу.

Каждый чип CC2541 имеет собственный уникальный 48-битный адрес, который может быть использован в качестве Bluetooth-адреса устройства. Контроллер прерываний обрабатывает до 18 источников прерываний. При этом прерывания от линий ввода-вывода и sleep-таймера обслуживаются даже в режимах пониженного энергопотребления (режимы 1 и 2), переводя CC2145 в активный режим.

Эффективность встроенной антенны в зависимости от конкретных особенностей печатной платы, на которой она установлена, достигает 25…35%. Максимальное усиление 0,5 dBi. Диаграмма направленности антенны представлена на рисунке 3.

Диаграмма направленности антенны модуля BLE113 в плоскости установки

Рис. 3. Диаграмма направленности антенны модуля BLE113 в плоскости установки

Волновое сопротивление антенны оптимизировано для применения с текстолитовыми платами толщиной от 1 до 2 мм.

Поддерживаемые особенности Bluetooth:

  • поддержка Bluetooth Smart (low energy);
  • L2CAP, ATT, GATT, GAP и Security Manager;
  • профили Bluetooth Smart;
  • режимы Client и Master;
  • поддержка до восьми соединений в режиме Master;
  • скорость передачи данных более 100 Кбайт/с;
  • обновление прошивки «по воздуху».

К другим достоинствам модуля BLE113 относится возможность выполнения написанных для него приложений (для создания приложений используется язык скриптов Bluegiga BGScript и набор разработчика ПО Bluegiga Bluetooth Smart SDK) [4]. Кроме того, с помощью набора Bluegiga Profile Toolkit можно создавать профили Bluetooth Smart.

BlueGiga предоставляет ряд инструментов и сред для разработки BLE-приложений, а также для настройки модулей и отладки встроенного программного обеспечения.

Bluetooth Smart Software от Bluegiga позволяет разрабатывать приложения без глубокого знания технологии Bluetooth Smart.

Программное обеспечение включает в себя следующие части:

  • встроенный стек Bluegiga Bluetooth Smart;
  • Bluetooth Smart SDK:
    • хост-протокол BGAPI;
    • средства Bluegiga Profile Toolkit для разработки – Bluetooth Smart profiles.

Bluetooth Smart SDK поддерживает несколько моделей разработки приложений – она позволяет создавать приложения для управляющих внешних хост-контроллеров и для исполнения непосредственно на BLE-модулях. Также в состав среды входит техническая документация, средства для компиляции прошивки модуля и ее загрузки и несколько примеров, которые могут служить шаблонами для разработки собственных приложений.

Общая архитектура программного обеспечения модулей BLE113 представлена на рисунке 4.

Структурная схема программного обеспечения BlueGiga

Рис. 4. Структурная схема программного обеспечения BlueGiga

Программный интерфейс BGAPI™ совместно с библиотекой BGLib™ C-library позволяет внешнему хост-контроллеру достаточно легко и эффективно использовать ресурсы модулей BlueGiga. Как правило, протокол BGAPI применяется для управления модулем BLE113 с помощью внешнего контроллера, характеризуется низкими требованиями к памяти и вычислительным ресурсам контроллера.

BGLib является переносимой библиотекой на языке С, реализующей протокол управления модулями BGAPI. Существуют варианты библиотеки для архитектур ARM Cortex, PIC и ряда других.

Программный пакет Profile Toolkit™ позволяет производить разработку и отладку пользовательских приложений для BLE-модулей.

BGScript™ предназначен для быстрой разработки приложений без глубоких знаний особенностей работы стека протоколов, для отладки и тестирования логики работы приложений. Приложения на BGScript™ могут разрабатываться и для хост-контроллера, и для самих модулей.

BGScript™ представляет собой простой BASIC-подобный скриптовый язык, позволяющий создавать приложения, исполняющиеся непосредственно на модулях BLE11х без применения внешнего контроллера.

Обычно приложения Bluetooth Low Energy имеют архитектуру либо клиента, либо сервера. Сервер в данном случае предоставляет один или несколько сервисов подключенным к нему клиентам – например, предоставляет информацию с некоторых датчиков. Сервер может предоставлять один или более сервисов, а сами сервисы предоставляют данные в виде характеристик.

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

Профили устройств [8] описывают определенные классы устройств, наборы сервисов и форматы данных. Сервис в свою очередь может включать в себя несколько сервисов. К примеру, спецификация сервиса измерителя сердечного пульса требует реализации сервисов:

  • Heart Rate Service – измеритель пульса;
  • Device Information Service – сервис информации об устройстве.

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

Сервисы [9] описывают, какие данные и каким образом запрашиваются или получаются от устройства. Сами данные описываются через т.н. характеристики. В сервисе могут присутствовать несколько характеристик данных, часть из которых могут быть обязательными по стандарту, а часть только рекомендуемыми.

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

Вторичный сервис является сервисом, подчиненным другому вторичному сервису или первичному сервису. Вторичный сервис доступен только посредством первичного сервиса.

Характеристики [10] используются для описания данных и являются величиной, ассоциированной с определенным типом данных (UINT8, UINT16, UTF-8 и пр.). Как и профили, и сервисы, характеристики имеют уникальный идентификатор (UUID).

Взаимосвязь между профилями, сервисами и характеристиками представлена на рисунке 5.

Взаимосвязь между профилями, сервисами и характеристиками в BLE

Рис. 5. Взаимосвязь между профилями, сервисами и характеристиками в BLE

Один из самых простых способов создания приложения для BLE-устройств Bluegiga – это создание его на скриптовом языке BGScript. Обычно приложения на BGScript содержат всего от десятка до пары сотен строк кода, просты для разработки и реализации и содержат много примеров.

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

Реализация приложения на BGScript состоит из нескольких этапов:

  1. установка инструментария (если еще не был установлен);
  2. создание проекта;
  3. определение и описание аппаратной конфигурации;
  4. описание базы данных GATT сервиса при помощи инструментария описания профилей;
  5. описание функциональности проекта на BGScript;
  6. компилирование GATT базы данных и BGScript проекта в двоичный вид и формирование образа прошивки;
  7. установка прошивки в конечное устройство;
  8. тестирование приложения.

Установка инструментария мало чем отличается от установки любой другой программы для Windows. Создание проекта начинается с создания основного файла проекта, который является простым XML-документом и описывает все файлы, входящие в проект:

<?xml version=”1.0” encoding=”UTF-8”?>

<project>

<gatt in=”gatt.xml”/>

<hardware in=”hardware.xml”/>

<script in=”bgdemo.bgs”/>

<usb_main in=”cdc.xml”/>

<image out=”BLE113.hex”/>

<device type=”ble113”/>

<boot fw=”bootuart”/>

</project>

В данном простом примере конфигурация проекта описывается в пределах тегов <project>:

  • <gatt> – тэги, описывающие XML файл, содержащих базу данных GATT;
  • <hardware> – описание конфигурации аппаратного обеспечения;
  • <script> – BGS-файл, содержащий BGScript код;
  • <usb_main> – тэг описания наличия USB интерфейса;
  • <image> – определение имени выходного файла для бинарного образа проекта;
  • <device type> – целевой модуль;
  • <boot fw> – тип интерфейса для обновления прошивки – в случае с BLE113 это UART.

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

Конфигурация аппаратного обеспечения описывается в XML-файле hardware.xml.

<?xml version=”1.0” encoding=”UTF-8”?>

<hardware>

<sleeposc ppm=”30” enable=”true”/>

<usb enable=”false”/>

<txpower bias=”5” power=”15”/>

<script enable=”true”/>

<pmux regulator_pin=”7”/>

</hardware>

  • <sleeposc> – разрешает переход модуля в режим пониженного энергопотребления. Значение ppm определяет точность осциллятора и не должно изменяться.
  • <usb> – разрешает или запрещает работу USB интерфейса (BLE113 не имеет USB).
  • <txpower> – определяет уровень выходной мощности, всего доступно 15 различных уровней. Значение 15 соответствует максимальному уровню.
  • <script enable> – указывает на наличие скрипта для исполнения.
  • <slow clock> – разрешает понижать рабочую частоту контроллера при работе приемопередатчика для уменьшения суммарного энергопотребления.
  • <pmux regulator_pin> – определяет вывод, который будет использован для управления внешним DC/DC-преобразователем.

В файле gatt.xml описываются сервисы, предоставляемые устройством, и характеристики данных, используемые данными сервисами.

 

<?xml version=”1.0” encoding=”UTF-8”?>

<configuration>

<service uuid=”1800”>

<description>Generic Access Profile</description>

<characteristic uuid=”2a00”>

<properties read=”true” const=”true”/>

<value>Bluegiga Demo Device</value>

</characteristic>

<characteristic uuid=”2a01”>

<properties read=”true” const=”true”/>

<value type=”hex”>0832</value>

</characteristic>

</service>

….

</configuration>

 

Описываются сервис профиля устройства – GAP, сервис идентификации устройства Device ID, специфические для данного устройства сервисы.

Основная функциональность приложения описывается в скрипте на языке BGscript. Базовый подход к программированию при этом – событийно-ориентированное программирование. Приложение в данном случае строится как набор обработчиков определенных событий, связанных с работой стека протоколов и состоянием устройства в сети Bluetooth. Возможности BGScript были расширены способностью определять и вызывать собственные функции. Разработчик определяет набор call-back-процедур, которые будет обрабатывать приложение:

 

dim addr(6)

#Boot Event listener

event system_boot(major,minor,patch,build,ll_version,protocol_version,hw)

#Get local BT address

call system_address_get()(addr(0:6))

#Write BT address to DI service serial number string

call attributes_write(xgatt_dis_2a25,0,6,addr(0:5))

#set to advertising mode

call gap_set_mode(gap_general_discoverable,gap_undirected_connectable)

#set bondable mode

call sm_set_bondable_mode(1)

end

#Disconnection event listener

event connection_disconnected(handle,result)

#connection disconnected, continue advertising

call gap_set_mode(gap_general_discoverable,gap_undirected_connectable)

end

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

В данном случае после инициализации модуль получает сетевой адрес, записывает его в оперативную память, переходит в режим готовности к соединению и становится видимым (доступным) для других устройств Bluetooth-сети. При разрыве соединения устройство возвращается в состояние ожидания соединения.

Функции BGScript и обрабатываемые события подробно описаны в документе Bluetooth Smart Software API Reference.

 

Заключение

Bluetooth Smart-модуль BLE113 производства Bluegiga Technologies представляет собой компактный модуль для встраиваемых беспроводных систем и отдельных датчиков, работающих по технологии Bluetooth Low Energy. Сигналы периферийных устройств самого модуля могут быть гибко распределены по его внешним выводам, что упрощает разводку печатной платы изделия. Модули BLE113 могут работать как независимые контроллеры, самостоятельно выполняющие определенные действия и работающие с периферийными устройствами, так и в качестве ведомых устройств под управлением хост-контроллера.

Разработчику предоставляются средства разработки, позволяющие создавать приложения для BLE113 с использованием собственного языка BGScript, а также с использованием языка С.

При создании приложения для Bluetooth Smart-модулей достаточно описать аппаратную конфигурацию, сервисы устройства, а также реакцию устройства на внешние события и события Bluetooth-стека протоколов.

 

Литература

  1. Bluetooth® low energy technology >>>
  2. Carles Gomez, Joaquim Oller and Josep Paradells. Overview and Evaluation of Bluetooth Low Energy: An Emerging Low-Power Wireless Technology >>>
  3. Flavia Martelli. Bluetooth® low energy >>>
  4. Bluegiga – Bluetooth_Modules >>>
  5. Виктор Алексеев. Новые модули Bluetooth 4.0 серии BLE производства Bluegiga.//Беспроводные технологии. 2011. №2. С. 16 – 22.
  6. BLE113-A-v1 Bluegiga Technologies — Приемо-передатчик общего назначения >>>
  7. 2.4GHz Bluetooth® low energy System-on-Chip >>>
  8. Profiles Bluetooth Development Portal >>>
  9. Services Bluetooth Development Portal >>>
  10. Characteristics Bluetooth Development Portal >>>.

Получение технической информации, заказ образцов, поставка – e-mail: wireless.vesti@compel.ru

Сover_4

СС2541 – малопотребляющий трансивер Bluetooth Smart для периферийных устройств

Сетевые процессоры CC2541F128­RHAT и CC2541F256RHAT от компании Texas Instruments предназначены для создания периферийных устройств Bluetooth Smart, способных годами работать от одного дискового элемента питания. Приложение пользователя может быть загружено непосредственно в микросхему либо выполняться на внешнем микроконтроллере. На сетевом процессоре можно реализовать два радиоканала – при необходимости передачи данных с большими скоростями, чем предусмотрено стандартом Bluetooth Low Energy, можно воспользоваться дополнительным фирменным режимом передачи со скоростью до 2 Мб/с.

Для разработки приложений Texas Instruments предлагает бесплатный стек Bluetooth Low Energy с большим количеством примеров приложений и готовых профилей. Стек оптимизирован под пониженное энергопотребление и включает ПО уровней controller и host. В стеке реализованы роли всех возможных устройств: центральное, периферийное, объявитель и наблюдатель. На базе стека TI возможно создание как клиента, так и сервера на уровне GATT. Менеджер безопасности включает криптографию по методу AES 128 бит.

В качестве аппаратной платформы разработчика можно использовать универсальное устройство CC2541DK-SENSOR. Оно представляет собой законченный беспроводной датчик, включающий в себя сетевой процессор СС2541F256RHAT и шесть сенсоров – акселерометр, температурный датчик, магнетометр, датчик влажности, гироскоп и датчик давления. CC2541DK-SENSOR позволяет начать работу с Bluetooth Smart в считанные минуты – достаточно загрузить в смартфон бесплатное приложение и наблюдать на экране поступающие по беспроводному каналу данные с сенсоров в реальном времени. Информацию можно отображать в виде шкал, графиков и сохранять в файл для последующей обработки.

•••

Наши информационные каналы

О компании Bluegiga Technologies

Bluegiga Technologies мировой лидер в производстве Bluetooth модулей и серверов доступа на базе Bluetooth. Основанная в 2000 году со штаб-квартирой в Финляндии и офисом продаж в Бостоне, штат Массачусетс, США, компания позиционирует себя, как глобального поставщика Bluetooth решений производителям электроники, операторам и системным интеграторам посредством обширной сети авторизированных дистрибуторов по всему миру. ...читать далее

Товары
Наименование
BLE113-A-v1 (BLUEGIGA)
BLE113-A-v1 (SLAB)
BLE113-A-M256K (SLAB)
BT111-A-HCIC (SLAB)
BT111-A-HCI (BLUEGIGA)
BT111-A-HCI (SLAB)
BLED112-V1 (BLUEGIGA)
BLED112-V1 (SLAB)
BLED112 [BLED112-V1] (BLUEGIGA)
BLE112-A [sample] (BLUEGIGA)