Модули с поддержкой BLE от Microchip
Технология BLE
Технология Bluetooth Low Energy (BLE или Bluetooth Smart) начала развиваться как часть спецификации Bluetooth 4.0. Но не правильно представлять Bluetooth Low Energy как меньшую и/или более оптимизированную часть классического Bluetooth, так как BLE имеет другое происхождение и другие цели.
Разрабатываемая компанией Nokia технология Wibree затем была переработана в Bluetooth Special Interest Group (SIG). Изначально авторы акцентировались на разработке радиочастотного стандарта с минимально возможным потреблением, ориентированным на низкую пропускную способность, малую сложность и минимальную стоимость решения. Однако в процессе разработки стандарт BLE получил возможность расширения, добавления частных (приватных) сервисов для обмена данными. Это фундаментальное отличие BLE от классического Bluetooth, который сфокусирован на строгом наборе вариантов применения. Производители смартфонов и планшетов сразу осознали предоставляемые возможности технологии и предоставляют гибкий низкоуровневый API, чтобы дать разработчикам мобильных приложений больше свободы в использовании BLE для любых задач, где он может быть применим.
Спецификация Bluetooth 4.0 (а также представленная в декабре 2013 г. версия 4.1) описывает два стандарта: classic Bluetooth и Bluetooth Low Energy. Эти два стандарта напрямую не совместимы и Bluetooth-устройства спецификаций до версии 4.0 не могут связываться с BLE-устройствами: радиопротокол, протоколы верхнего уровня и протоколы приложений не совместимы между двумя стандартами (рис. 1).
BLE-модули серии RN4020
Компания Microchip Technology Inc. начала массовое производство своего первого BLE-модуля RN4020. Модули RN4020 имеют встроенный BLEnergy-стек, набор простых ASCII-команд и возможность создания скриптов. Эти особенности упрощают создание готовых BLE-устройств и не требуют низкоуровневого программирования, установки специальных сред разработки, библиотек и компиляторов: разработчик может использовать привычные ему инструменты. Все настройки модуля хранятся в энергонезависимой памяти, включая стандартные профили SIG low-energy и приватный профиль потоковой передачи данных MLDP.
Разработчики встраиваемых приложений, для которых стоимость является немаловажным фактором, часто ищут законченные решения, позволяющие достаточно просто реализовать передачу данных по радиоканалу. Модули RN4020, помимо обеспечения энергоэффективной радиосвязи, соответствуют стандарту Bluetooth Low Energy и позволяют подключаться к большинству современных смартфонов и планшетов.
Ключевые особенности RN4020 это интегрированный стек Bluetooth 4.1 Low-Energy, простые ASCII-команды для управления модулем, возможность применения в автономном режиме без внешнего микроконтроллера, совместимость с другими BLE-устройствами. Внешний вид устройства показан на рис. 2, схема приведена на рис. 3.
Основные характеристики:
- диапазон напряжений питания 3,0-3,6 В;
- приемопередатчик Bluetooth;
- мощность излучения до 7 дБм;
- чувствительность приема -92,5 дБм;
- контроллер радиоканала (BaseBand) и API;
- тактовый генератор;
- регулятор напряжения;
- UART-интерфейс для связи с внешним микроконтроллером;
- три аналоговых и семь цифровых портов ввода/вывода;
- встроенная PCB-антенна, позволяющая устройствам взаимодействовать друг с другом на расстоянии до 100 м;
- схема согласования со встроенной печатной антенной;
- flash-память 64 Мбайт;
- габариты модуля 11,5×19,5×2,5 мм.
Модуль RN4020 может выступать в роли центрального (Central) или периферийного (Peripheral) узла сети, сервера (Server) или клиента (Client), поддерживает роли широковещательного передатчика (Broadcaster) или приемника (Observer). Модуль может быть подключен к любому микроконтроллеру, имеющему интерфейс UART. По UART передаются настройки, команды и данные.
Особенности RN4020
Помимо поддержки нескольких стандартных SIG-профилей, модули RN4020 имеют несколько дополнительных интересных особенностей. Рассмотрим их подробнее.
Потоковая передача данных, MLDP
Спецификация BLE не предусматривает стандартного варианта с поддержкой потоковой передачи данных, но в модуле RN4020 реализован приватный профиль MLDP (Microchip Low-Energy Data Profile), эмулирующий профиль SPP (Serial Port Profile), имеющийся в классическом Bluetooth.
Скорость потока передаваемых данных зависит от заданных параметров BLE-соединения. Для получения большей скорости потока требуется установка минимальных интервалов и тайм-аутов, что, в свою очередь, влечет увеличение энергопотребления. При установке MLDP-соединения между двумя модулями все данные, передаваемые через UART, транслируются через Bluetooth.
Профиль MLDP поддерживает три режима защищенной связи (устанавливается с помощью команды SE):
- «0» передаваемые данные не защищены;
- «1» передаваемые данные зашифрованы (требуется привязка устройств Bonding до начала передачи);
- «2» передаваемые данные будут аутентифицированы (требуется разрешить аутентификацию, требуются свободные I/O для ввода кода аутентификации, требуется Bonding до начала передачи).
Профиль MLDP позволяет устанавливать связь между модулями RN4020, а также между смартфоном/планшетом и RN4020. Пример Android-приложения с реализацией MLDP-профиля можно загрузить с сайта Microchip в исходных кодах.
Скрипты
Одной из отличительных особенностей RN4020 является возможность автономного функционирования без внешнего управляющего микроконтроллера. Такая возможность достигается либо удаленным управлением (Remote), либо с помощью выполнения некомпилируемых скриптов, загруженных в память модуля.
В типовом применении микроконтроллер ASCII-командами через UART управляет BLE-модулем.
Однако для простых приложений могут не требоваться порты и вычислительные возможности внешнего микроконтроллера, и обслуживание модуля может быть поручено скриптам. Даже при наличии внешнего микроконтроллера скрипты могут пригодиться для разгрузки внешнего приложения: выполнения инициализации модуля, выполнения действий при получении данных или возникновении других событий (изменения состояния портов ввода, срабатывание таймера и др.).
Скрипты это последовательность тех же ASCII-команд, которые доступны через UART-интерфейс, но скрипты дополнительно имеют возможность работы с переменными, позволяют ассоциировать данные с цифровыми и аналоговыми портами модуля.
Основа скриптов это События (Event), например такие, как включение питания, установка соединения, изменение состояния на портах ввода/вывода и др. Для каждого события можно создать собственный скрипт с командами и логическими операциями.
Удаленное управление Remote Command
Управление BLE-модулем RN4020 осуществляется по проводному интерфейсу UART. Но также реализовано выполнение команд по воздуху на удаленном модуле, с которым предварительно установлено соединение (должен быть разрешен MLDP-режим на обоих устройствах).
Наличие удаленного управления открывает такие возможности, как доступ к аналоговым и цифровым портам и автономное использование удаленного модуля, т. е. модуля без своего внешнего управляющего микроконтроллера: вся логика выполняется на контроллере центрального BLE-модуля.
Обновление прошивки (DFU)
Модуль RN4020 поддерживает два метода обновления прошивки:
- через проводное соединение UART;
- по воздуху (Over-the-Air, OTA).
Формирование ШИМ
Модуль RN4020 может генерировать независимые ШИМ-сигналы на четырех портах, причем на каждом из выводов можно сформировать ШИМ, состоящий из двух паттернов (ШИМ-последовательность 1 + ШИМ-последовательность 2).
Работа с I2C
Модуль RN4020 может быть ведущим (Master) по I2C и управлять периферийными устройствами, читать и записывать данные. Совместно с инициализацией шины I2C модуль может выдавать высокий лог. уровень на один из выводов порта, что позволяет запитывать периферию только на время общения с ней.
Отладочный комплект BLE RN4020
Компания Microchip выпускает отладочную дочернюю плату RN4020 BLE PICtail/PICtail Plus (рис. 4), совместимую с интерфейсами PICtail и PICtail Plus других отладочных плат Microchip. Данная плата позволяет проводить отладку кода путем подключения ее к компьютеру через USB.
Другие BLE-решения Microchip
Модули BM70/BM71
Модули Microchip BM70/BM71 поддерживают новейшую спецификацию Bluetooth 4.2 Low-Energy. Поддержка последней редакции стандарта обеспечивает увеличение пропускной способности (до 2,5 раза) и более защищенное соединение. Модули поддерживают связь через стандартный UART-интерфейс с любыми микроконтроллерами. BM70/BM71 содержат интегрированный BlueTooth-стек и предлагаются в версии с металлическим экраном и встроенной антенной, а также в удешевленной версии без экрана и без антенны.
Модули BM70, помимо интерфейсов UART, SPI, I2C, имеют три канала ШИМ, датчик температуры, 12-разрядный АЦП с восемью каналами, 18 выводов порта ввода/вывода. Модули BM71 имеют меньший корпус и уменьшенное количество доступной периферии: один канал ШИМ, пять каналов АЦП и девять портов ввода/вывода.
Модули Dual Mode BM77/RN4677, BM78
Модули Microchip BM77/RN4677 поддерживают спецификацию 4.0, а BM78 спецификацию 4.2 Bluetooth Dual Mode, то есть обеспечивают связь через Bluetooth Classic (BC) и/или Bluetooth Low Energy (BLE). В режиме Bluetooth Classic модули поддерживают стандартный профиль последовательной передачи данных (Serial Port Profile, SPP), поэтому могут использоваться для потоковой передачи данных между устройствами BC, другими модулями, персональным компьютером, Android-устройствами и пр.
Особенность устройств Apple iOS это невозможность потоковой передачи данных без одобрения Apple и получения лицензии MFi (Made For i-device). Другими словами, чтобы открыть возможность передавать данные через BC по протоколу iAP (iPod Accessory Protocol, проприетарный протокол, аналогичный SPP), нужно быть лицензированным участником программы MFi, иметь возможность работы с чипом аутентификации от Apple. В режиме BC модули RN4677 имеют интерфейс связи с крипто-чипом и могут общаться через iAP по Bluetooth при условии получения лицензии MFi. В то же время BLE в iOS не имеет ограничений со стороны Apple, и не нужно быть участником MFi для разработки устройств, способных работать с iOS-устройствами. Однако BLE не предназначается для потоковой передачи данных.
Модули RN4677, в дополнение к SPP в режиме BC, имеют собственный приватный GATT-сервис (Generic Attribute Profile) для организации потоковой передачи данных между двумя BLE-устройствами. Этот сервис называется прозрачный UART (Transparent UART). При этом не нужно получать лицензию MFi от Apple для организации потоковой передачи данных между iOS-устройством и модулями BM77/RN4677 и BM78. Таким образом, особенность модулей BM77/RN4677 и BM78 BlueTooth Dual Mode это возможность организовать прозрачный UART-канал передачи данных для всех Bluetooth-устройств (Apple iOS через BLE, Android и др. через BC SPP).
Модули RN4677 базируются на Bluetooth-чипе IS1677. Основное отличие между RN4677 и стандартной прошивкой чипа IS1677 (на этом же чипе со стандартной прошивкой выпускается модуль BM77) предоставление интерфейса связи и конфигурации на основе ASCII-команд. Командный интерфейс модулей RN4677 очень похож на описанный выше интерфейс модулей RN4020 и других (RN41, RN42, RN52).
Подобно другим RN-модулям, RN4677 может выступать в роли ведущего/центрального узла, поддерживает активное сканирование для подключения к другим устройствам. Модуль работает в двух режимах: режим передачи данных (по умолчанию) и командный режим. Когда RN4677 подключен к другому Bluetooth-устройству и находится в режиме передачи данных, модуль выступает в роли коммуникационной трубы все, что приходит с UART, передается через SPP, если модуль подключен к устройству с BC, или через приватный GATT-сервис прозрачный UART, если подключен к BLE. И наоборот: все, что принимается через SPP или прозрачный UART, выходит из UART-модуля.
Командный режим служит для настройки и конфигурирования модуля. Все настраиваемые параметры сохраняются в энергонезависимой памяти.
Так как модуль RN4677 это тот же самый BM77, но с измененной прошивкой в части интерфейса общения по UART, то для модулей используют одинаковые утилиты конфигурирования. Для проверки работы Transparent UART через BLE на iOS служит программа BLETR, доступная из AppStore. На стороне компьютера можно использовать любую терминальную программу или утилиту BlueTooth chat.
Модули BM78 аналогичны BM77, но поддерживают более новую спецификацию 4.2 Bluetooth Dual Mode, имеют большую пропускную способность в режиме Transparent UART.