BLE взамен RS-232: SPP-профиль на устройствах Bluetooth Low Energy

27 декабря 2016

телекоммуникацииинтернет вещейSTMicroelectronicsстатьяBLEBluetooth

В классической беспроводной технологии Bluetooth профиль последовательного порта (SPP) обеспечивает возможность замены проводного интерфейса RS-232 беспроводным соединением между двумя устройствами. В устройствах, работающих на новом Bluetooth-стандарте BLE, структура стека для соединения через последовательный порт – иная. Как же организовать на них замену проводного интерфейса беспроводным соединением?

Изначально созданная для высокоскоростной передачи данных в сетях малого радиуса действия беспроводная технология Bluetooth с течением времени развивалась и совершенствовалась. Последнее существенное изменение произошло с появлением версии 4.0, известной также как Bluetooth Low Energy (BLE). Новейшая принятая спецификация имеет версию 4.2. Для BLE используется также и другое название – Bluetooth Smart.

В Bluetooth при создании соединения между двумя устройствами одно из них, инициирующее соединение, выступает в роли ведущего (Master), а другое будет находиться в роли ведомого (Slave). При этом оба устройства могут действовать как индивидуально (топология Point to Point), так и находясь в составе сети со структурой типа «звезда» (топология Star) (рисунок 1). В этом случае один узел функционирует как центральный и действует в роли ведущего, в то время как все остальные узлы функционируют в роли ведомых.

Рис. 1. Две топологии соединений в Bluetooth

Рис. 1. Две топологии соединений в Bluetooth

В классическом варианте Bluetooth соединение между двумя точками поддерживается, даже если нет подлежащих передаче данных, что приводит к повышенному расходу энергии от автономного источника питания. Лишь при переходе в спящий режим удается несколько сократить потребляемый от батареи ток. В результате на основе классического Bluetooth практически невозможно реализовать компактные устройства длительного пользования с батарейным питанием. Значительно более экономичный в отношении потребляемого тока стандарт Bluetooth Low Energy позволяет создавать конечные устройства с питанием от батареек пуговичного типа, которые способны работать в течение нескольких месяцев и даже лет.

BLE можно рассматривать как расширение базовой технологии Bluetooth Classic, ориентированное в основном на передачу небольших объемов данных, которое оптимально подходит для Интернета вещей. Сравнение основных характеристик BLE и обычного Bluetooth приведено в таблице 1.

Таблица 1. Сравнение Bluetooth с Bluetooth Low Energy

Параметр Классический Bluetooth Bluetooth Low Energy
Потребляемый ток, мА 1…30 0,001…15
Скорость передачи, Мбит/c 1…3 1
Радиус действия, м 1…100 50
Макс. мощность передатчика, дБм +20 (класс 1) +10
+4 (класс 2)
Число каналов 79 40
Длительность сеанса связи, мс 100 3
Макс. размер пакета 2875 мкс = 1021 байт 328 мкс = 27 байт
Шифрование Safer+ AES-128

BLE, как и обычный Bluetooth, работает в нелицензируемом частотном диапазоне 2,4 ГГц, используя 40 каналов вместо 79 в классическом варианте и довольствуясь сокращенным по длительности до 3 мс сеансом связи. При этом максимальный размер передаваемого пакета составляет 27 байт.

BLE использует меньше каналов, но с расширенной полосой пропускания. Как показано на рисунке 2, ширина каждого из 40 каналов Bluetooth Smart составляет 2 МГц. Для передачи служебных сигналов (Advertising) выделены три канала, разнесенные в пределах частотного спектра, чтобы минимизировать влияние помех. В течение сеанса связи используется скачкообразный алгоритм выбора частоты канала.

Рис. 2. Частотные каналы Bluetooth Smart (BLE)

Рис. 2. Частотные каналы Bluetooth Smart (BLE)

Стек ПО Bluetooth Smart (BLE) для последовательного порта

Спецификация Bluetooth определяет структурные элементы, на базе которых разработчик создает совместимые друг с другом устройства. Архитектура программного обеспечения для устройств BLE имеет послойно упорядоченную структуру, обычно называемую стеком. Наборы протоколов и профили позволяют отдельным устройствам соединяться друг с другом и обмениваться данными определенного типа.

В новых версиях Bluetooth, начиная с 4.0, вводятся два типа устройств: однорежимные и двурежимные. Однорежимные устройства работают лишь с поддержкой спецификации BLE, тогда как двурежимные способны также работать и в режиме классического Bluetooth BR/EDR (с базовой/повышенной скоростью).

На рисунке 3 изображены варианты реализации коммуникационного стека Bluetooth. Имеющийся в обычном Bluetooth профиль последовательного порта (SPP) обеспечивает возможность замены проводного интерфейса RS-232 беспроводным соединением между двумя устройствами.

Рис. 3. Структура коммуникационного стека Bluetooth

Рис. 3. Структура коммуникационного стека Bluetooth

Профиль SPP включает протоколы RFCOMM, L2CAP, Link Manager и базовый протокол радиосвязи. RFCOMM (Radio Frequency Communications), создает виртуальный последовательный поток данных и эмулирует управляющие сигналы RS-232.

Далее в дело вступает пакетный протокол L2CAP (Logical Link Control and Adaptation Protocol). Он передает пакеты данных между хостом и подсистемой контроллера Bluetooth через интерфейс HCI (Host to Controller Interface) или напрямую в Link Layer, например, как в BlueNRG (рисунок 4).

Рис. 4. Структура стека BlueNRG

Рис. 4. Структура стека BlueNRG

В устройствах BLE используется несколько измененная структура стека для соединения через последовательный порт. Вместо SPP имеется профиль атрибутов, а вместо протоколов RFCOMM – протокол атрибутов, оптимизированный для используемых в BLE пакетов данных небольшого размера. Протокол L2CAP остается неизмененным, Link Manager заменен на Link Layer, который определяет для пакетов структуру/каналы, процедуры подключения и отправляемые/получаемые данные.

Последовательный канал связи для устройств BLE

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

В комплекте c оценочными платами производства компании STMicro­electronics имеется пакет ПО для разработки новых устройств, включающий в себя встроенное программное обеспечение, примеры реализации различных сценариев и документацию.

Рассмотрим пример создания канала связи между двумя компьютерами с использованием микросхем BlueNRG-MS или BlueNRG-1, которые являются однорежимными чипами с поддержкой требований BLE из спецификации Bluetooth v4.0. BlueNRG взаимодействуют с микроконтроллером внешнего хоста, используя линии SPI и набор API, состоящий из команд стандартного Application Command Interface (ACI) и определенных производителем команд Host Controller Interface (HCI) (рисунок 4).

Для решения поставленной задачи можно использовать, например, модуль SPBTLE-RF с сетевым процессором BlueNRG-MS (рисунок 5) или другие устройства на основе приемопередатчиков BlueNRG-1. В случае использования BlueNRG-1 расширенные возможности аппаратной платформы позволяют ему в отдельных случаях выполнять также функции приложения и полностью реализовать стек протоколов в одном чипе.

Рис. 5. Модуль ST SPBTLE-RF

Рис. 5. Модуль ST SPBTLE-RF

Образец программной реализации, которая демонстрирует простое двухполосное соединение между двумя устройствами BlueNRG-MS, доступен в комплекте для разработки ПО (SDK) BlueNRG-MS. Проект называется “BLE Chat”, он размещен в папке “Projects\Projects_STD_Library\BLE_Chat\EWARM_BlueNRG-MS” внутри ПО для оценочного комплекта STEVAL- IDB005V1 или STEVAL-IDB006V1 (рисунок 6).

Рис. 6. Модуль STEVAL-IDB006V1

Рис. 6. Модуль STEVAL-IDB006V1

Те, кто работает с оценочными платами NucleoL152RE и X-NUCLEO-IDB05A1, могут найти этот проект в папке “Projects\Projects_Cube\BLE_Chat\EWARM_BlueNRG-MS”.

Примечание: если работать с BlueNRG-1 в составе оценочной платы STEVAL-IDB007V1, проект можно найти в SDK BlueNRG-1, в папке “\BLE_Examples\BLE_Chat”. Имеется поддержка IAR Embedded Workbench, Keil Microcontroller Development Kit и Atollic TrueSTUDIO.

При работе с этим проектом доступны четыре конфигурации:

  • “Client” – роль клиента;
  • “Server” – роль сервера;
  • “Client throughput” – тестирование пропускной способности для режима клиент;
  • “Server throughput” – тестирование пропускной способности для режима сервер.

В процессе реализации чата BLE выполняются следующие действия:

  • клиент подключается к сервису “Chat” в режиме «ведущий»;
  • сервер предоставляет определенный производителем сервис BLE под названием “Chat” и действует как ведомый. С сервисом Chat ассоциирован 128-битный универсальный уникальный идентификатор (UUID), значение которого равно 0xD973F2E0-B19E-11E2-9E96 – 0800200C9A66.

Сервис Chat содержит две определенные производителем характеристики:

  • характеристика TX: клиент может включить уведомления по этой характеристике. Когда сервер имеет данные для отправки, он будет посылать уведомления, которые содержат значение характеристики TX. Значение ассоциированного с характеристикой TX 128-битного UUID – 0xD973F2E1-B19E-11E2-9E96-0800200C9A66;
  • характеристика RX – это записываемая характеристика. Когда клиент имеет данные для отправки на сервер, он записывает значение в эту характеристику. Значение ассоциированного с характеристикой RX 128-битного UUID – 0xD973F2E2-B19E-11E2-9E96-0800200C9A66.

Максимальная длина значения характеристики – 20 байт.

Чтобы установить соединение между двумя устройствами BlueNRG-MS (двумя оценочными платами BlueNRG), необходимо на одном из них реализовать режим «ведущий», а на втором должен быть установлен режим «ведомый». Как только соединение установлено – две точки могут начать передачу данных по каналу связи, используя эти две характеристики.

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

  • скорость передачи: 115200;
  • стоповые биты: 1;
  • проверка на четность: нет;
  • количество бит данных на символ: 8;
  • контроль потока: нет.

Проектные конфигурации “Client throughput” и “Server throughput” позволяют пользователю тестировать пропускную способность (определенный идентификатор препроцессора “THROUGHPUT_TEST” будет представлен в обеих проектных конфигурациях).

Тест на пропускную способность включает следующие этапы:

  • Задать режим Client на одной из платформ BlueNRG-MS и сбросить ее. Платформа появится как виртуальный COM-порт на ПК. Открыть порт COM в терминальном эмуляторе. Клиент запустится через 4 секунды после сброса.
  • Задать режим Server на второй платформе BlueNRG-MS и сбросить ее. После этого две платформы попытаются установить соединение. Как только им удастся это сделать, ведомый будет постоянно отправлять клиенту уведомления, состоящие из 20 байт.
  • После каждых 500 пакетов, полученных от клиента, текущая пропускная способность приложения будет отображаться на эмуляторе клиентского терминала.

Примечание: при работе с BlueNRG-1 в составе оценочной платы STEVAL-IDB007V1 контроллер STM32L1 выполняет роль моста между USB и последовательным портом BlueNRG-1, что позволяет непосредственно проверить пропускную способность от ПК к BlueNRG-1. Прошивка представлена в двоичной форме в SDK BlueNRG-1. Приложение BLE Chat запускается на устройстве BlueNRG-1 и сохраняется во Flash-памяти.

Заключение

Производимые STMicroelectronics приемопередатчики BlueNRG стандарта Bluetooth Low Energy подходят для использования в самом широком спектре устройств персонального назначения, в системах сбора и учета данных, находят широкое применение в промышленной и домашней автоматике.

Встроенное ПО BlueNRG обеспечивает эффективное решение стоящих перед разработчиком задач и не требует от него углубленных познаний в радиочастотной технике и спецификации Bluetooth. Имеющийся в комплекте с SDK набор демонстрационных приложений позволяет использовать некоторые типичные рабочие сценарии BLE.

Постоянно расширяемый набор библиотек ПО, предоставляемые производителем оценочные платы и SDK обеспечивают быстрое начало работ и позволяют в кратчайшие сроки создать законченное устройство с поддержкой Bluetooth Low Energy.

Литература

  1. Вячеслав Гавриков. BLE-устройство с МЭМС-датчиками? – легко, с программным пакетом BLUEMICROSYSTEM1. Новости электроники №7/2016.
  2. Salvo Bonia. How to replace a low-speed wired connection using a BLE link. ST. August 2016.

Получение технической информации, заказ образцов, заказ и доставка.

•••

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

О компании STMicroelectronics

Компания STMicroelectronics является №1 производителем электроники в Европе. Компоненты ST широко представлены в окружающих нас потребительских товарах – от iPhone до автомобилей разных марок. Лидеры индустриального рынка выбирают компоненты ST за их надежность и выдающиеся технические параметры. В компании ST работает 48 000 сотрудников в 35 странах. Производственные мощности расположены в 12 странах мира. Более 11 тысяч сотрудников заняты исследованиями и разработками – инновационное лидерство ...читать далее