№12 / 2018 / статья 5

Программные ресурсы для разработки приложений интернета вещей на чипах CC13x2/CC26x2

Александр Калачев (г. Барнаул)

Системы-на-кристалле серий СС13х2/СС26х2 производства Texas Instruments способны удовлетворить требования многих сегментов и приложений интернета вещей: от конечных исполнительных узлов до достаточно разветвленных сенсорных сетей. Для реализации этого компания предлагает использовать несколько популярных на текущий момент стеков протоколов: BLE, Thread, ZigBee, а также ряд проприетарных решений.

Идеология, история развития, да и практический опыт в области интернета вещей (Internet of Things, IoT) не предполагают единой программной или аппаратной платформы. Причин этому несколько:

  • существенно различающиеся требования к вычислительным ресурсам;
  • различные требования к источникам питания и их доступность для узлов;
  • различные массогабаритные требования;
  • различные требуемые протоколы обмена данными и управления.

Данный список можно продолжать, но вывод очевиден – каждое конкретное решение будет оптимальным только для определенного круга задач и приложений IoT. Именно поэтому IoT сейчас – это прежде всего ансамбль взаимодействующих сетей, узлов и протоколов. Большая часть активно развивающихся технологий IoT на данных момент подразумевает беспроводную передачу данных.

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

Не менее важной составляющей успеха является программное обеспечение от производителя или от компаний-партнеров. Значительную роль здесь играет наличие драйверов периферийных устройств (одна из первых мыслей, приходящих на ум разработчику при переходе на новый чип или платформу – нужно вновь разбираться с регистрами UART-а, SPI и прочим), наличие операционной системы или некой программной среды, максимально упрощающей перенос уже наработанного кода, интеграцию сторонних алгоритмов и так далее. Показательный пример успешной программной среды/SDK – Ардуино: да, результирующий код избыточен, не быстр и обладает еще массой недостатков, но существенно сокращается время от идеи до прототипа, а соответственно – затраты на разработку плюс достигнута некоторая независимость от аппаратной платформы.

И самое главное для IoT – наличие стеков беспроводных протоколов. С высокой долей вероятности можно утверждать, что наличие добротного программного обеспечения, а в особенности – системного уровня как минимум на 50% повышает шансы выбора той или иной аппаратной платформы для реализации узлов, систем и приложений IoT.

Новые СнК CC13x2/CC26x2 от TI

Новые серии беспроводных СнК CC13xx/CC26xx, входящие в дружное семейство SimpleLink производства Texas Instruments, получили пополнение в виде микросхем CC13x2/CC26x2 [1, 2]. Отличительные черты данных серий, выделяющие их среди конкурентов:

  • наличие трех процессорных ядер, из которых два доступны для прикладного программиста (рисунок 1);
  • высокая эффективность радиотракта (высокая выходная мощность плюс отличная чувствительность и избирательность приемного тракта);
  • малое энергопотребление во всех режимах работы – в активном и спящем режиме.
Рис. 1. Структурная схема беспроводных СнК CC13x2/CC26x2

Рис. 1. Структурная схема беспроводных СнК CC13x2/CC26x2

открыть картинку в новом окне

Конечно, конкурирующие компании предлагают двухъядерные беспроводные СнК, но реально доступно для программиста только одно ядро. Наличие нескольких ядер, да и многозадачности в целом, при правильном подходе снижает сложность алгоритмов – концепция мелких взаимодействующих процессов во всей красе (см. Ч. Хоар CSP [3]).

Вторым плюсом СнК CC13x2/CC26x2 как части семейства SimpleLink является единая программная платформа, включающая в себя набор программных пакетов разработки (Software Development Kit, SDK) [4, 5]), интегрированные среды разработки (бесплатная полнофункциональная Code Composter Studio или популярная коммерческая IAR IDE), операционную систему реального времени TI-RTOS. По сути, сформирован единый инструментарий, позволяющий разрабатывать приложения для широкого спектра беспроводных платформ, поддерживающих протоколы Wi-Fi®, Bluetooth® low energy, Thread, Zigbee®, Bluetooth® 5 low energy, IEEE 802.15.4g, 6LoWPAN, Wi-SUN®, проприетарные протоколы Sub-1GHz и 2.4GHz – обеспечивается единый стиль программирования/разработки программного обеспечения и практически стопроцентная рентабельность кода.

По сравнению с первым поколением СнК в СС13х2/СС26х2 несколько улучшены параметры радиотракта и значительно увеличен объем встроенной оперативной и Flash-памяти (таблицы 1 и 2) – до 80 и 352 кбайт соответственно.

Таблица 1. Сравнительные характеристики серий CC13x2 и CC13х0

Наименования CC1312R CC1352R CC1352P CC1310 CC1350
Диапазон Sub-1 GHz Sub-1 GHz,
2.4 GHz
Sub-1 GHz,
2.4 GHz
Sub-1 GHz Sub-1 GHz,
2.4 GHz
Объем Flash-памяти, кбайт 352 352 352 128 128
Максимальная скорость передачи бит по радиоканалу, кбит/с 4000 5000 5000 4000 4000
Ток в режиме приема, мА 5,7 5,7 5,8 5,5 5,5
Порог чувствительности, дБм -125 -125 -123 -124 -124
Ток в режиме передачи при выходной мощности +10 дБм и частоте 868 МГц, мА 14 14 20 14 14

Малый ток потребления при активной радиочасти в комбинации с единицами микроампер в спящем режиме (при сохранении содержимого всех 80 кбайт памяти) делают данные серии привлекательными для малогабаритных устройств с батарейным питанием и питанием от так называемых «сборщиков энергии» (Energy Harvesting). При этом малое энергопотребление не мешает производительности радиотракта и бюджету канала – сохраняется высокая чувствительность и помехозащищенность.

СнК CC13x2/CC26x2, как и их предшественники, обладают высокой степенью интеграции и включают в себя и радио-, и управляющую часть, а также встроенный DC/DC-преобразователь.

Выделенное ядро Arm® Cortex®-M0 радиоконтроллера обеспечивает выполнение низкоуровневых функций протоколов, что позволяет в рамках одной СнК поддерживать несколько физических уровней и радиостандартов.

Для функций протоколов высокого уровня и прикладных задач предлагается высокопроизводительное ядро Arm® Cortex®-M4F, способное работать на частотах до 48 МГц.

Задачи сбора данных с периферийных датчиков или относительно простые задачи управления могут решаться при помощи ультрамалопотребляющего 16-битного контроллера датчиков (Sensor Controller, SC). По сравнению с предыдущей серией объем доступной памяти для SC увеличен с 2 до 4 кбайт. Сенсорный контроллер (контроллер датчиков) наряду с малым потреблением во всех режимах работы обладает малым временем перехода в спящий режим и обратно. В основном он предназначен для сбора, буферизации и обработки данных как с аналоговых, так и с цифровых датчиков, позволяя основному ядру Arm® Cortex®-M4F увеличивать время сна и снижать тем самым среднюю потребляемую мощность.

Приятным подарком для разработчика является возможность произвольного назначения функций цифровых выводов. С одной стороны это дает определенную свободу при разработке топологии печатной платы и размещении дополнительных элементов. С другой – возможность при необходимости программно мультиплексировать дефицитные интерфейсы между выводами, получая, например, несколько шин I²C, работающих с несколькими датчиками, имеющими одинаковый адрес. Это полезно, поскольку далеко не все производители I²C-датчиков позволяют настраивать шинный адрес датчика, а бывают случаи, когда таких устройств в системе нужно несколько.

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

Серии CC13x2/CC26x2 обладают прекрасной энергоэффективностью практически во всех режимах работы:

  • ток в режиме активного приема – 6,83 мА;
  • в режиме передачи – 7,5 мА (при выходной мощности 0 дБм);
  • программируемая выходная мощность – до +5 дБм/+20 дБм;
  • ток потребления основного ядра в активном режиме – 3,3 мА (порядка 69 мкА/МГц);
  • потребление контроллера датчиков – в пределах нескольких микроампер в зависимости от выполняемой задачи;
  • ток в режиме ожидания – 0,92 мкА (при работающем таймере реального времени и при сохранении содержимого оперативной памяти и регистров процессора);
  • диапазон рабочих напряжений – 1,8…3,8 В.

Инструментарий разработчика ПО для СС13х2/СС26х2

Политика программного обеспечения компании TI более чем дружественна по отношению к разработчику. К его услугам предоставляются исчерпывающие примеры кода, драйверов и бесплатные стеки протоколов в виде удобных скомпонованных пакетов — SDK. Более того, предлагается полнофункциональная IDE – Code Composter Studio (CCS). Все это в итоге позволяет практически полностью исключить затраты на лицензионные отчисления.

Основной инструментарий разработчика для систем на базе СС13х2/СС26х2 включает в себя:

  • отладочные платы LAUNCHXL-CC26X2R1, LAUNCHXL-CC1312R1, LAUNCHXL-CC1352R1;
  • программные комплекты разработки программного обеспечения SimpleLink CC26X2 Software Development Kit и SimpleLink CC13X2 Software Development Kit;
  • инструментарий для настройки и тестирования параметров радиотракта SmartRF™ Software Studio;
  • среду для программирования и отладки приложения контроллера датчиков Sensor Controller Studio.

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

Перечень поддерживаемых стеков протоколов, предлагаемых текущими версиями SDK для серий СС13х2/СС26х2, представлен в таблице 2. Указанные в ней протоколы предоставляются в соответствующих серии SDK, рассмотрим их чуть подробнее.

Таблица 2. Перечень поддерживаемых стеков протоколов, предлагаемых текущими версиями SDK для серий СС13х2/СС26х2

Наименование Bluetooth® low energy (BLE), включая Bluetooth 5 Thread 1.1 в версии OpenThread Zigbee 3.0 TI 15.4-Stack Dynamic Multi-protocol Manager (DMM) – субгигагерцевая сеть + BLE
СС13х2 + + + + +
СС26х2 + + + + (с опцией переключения частот)

Bluetooth Low Energy для серий СС13х2/СС26х2

 Стек протоколов Bluetooth Low Energy доступен для СнК серий CC2642R, CC2652R и CC1352R. В комплект поставки входит все необходимое программное обеспечение, примеры приложений и документация. Это позволяет в довольно короткие сроки освоить особенности работы и подходы к программированию связки TI-RTOS + BLE. Текущая версия BLE-стека от TI поддерживает все нововведения спецификации Bluetooth 5, включая режим повышенной дальности LongRange и высокую скорость передачи данных. При этом сохранена совместимость с устройствами стандартов Bluetooth 4.2/4.1/4.0.

Для обновления прошивки с помощью персонального компьютера или смартфона реализована функция «обновление по воздуху» (Over-the-Air Download, OAD). Стек полностью интегрирован в программную инфраструктуру TI-RTOS и драйверов для автоматической настройки и управления режимами питания периферийных устройств СнК – АЦП, I²C, SPI, UART, таймеров и криптографических ускорителей.

Для стека Bluetooth 5 в SDK предоставляются несколько показательных примеров:

  • Host Test;
  • ProjectZero;
  • Simple Broadcaster;
  • Simple Central;
  • Simple Peripheral;
  • Simple Peripheral с возможностью обновления прошивки «по воздуху»;
  • Multi Role.

В проекте Host Test реализован функционал сетевого BLE-процессора. В этом варианте чип используется совместно со внешним микроконтроллером или программным обеспечением для ПК, например, BTool. Прошивка Host Test поддерживает все основные роли GAP: Central, Peripheral, Broadcaster и Observer, а также их комбинации. Связь с BLE-процессором осуществляется через последовательный интерфейс (UART или SPI) с использованием протокола хост-контроллера (HCI). Внешнее приложение должно использовать команды TI Vendor Specific HCI и ограниченное подмножество команд/событий Bluetooth LE HCI для реализации приложения Bluetooth. Сетевой процессор может быть добавлен в уже существующий дизайн с любым микроконтроллером для расширения беспроводных  возможностей.

Project Zero реализует простое BLE-устройство с тремя сервисами и набором характеристик, доступных для модификации как со стороны подключенного устройства, так и со стороны встроенного приложения. Данный проект может играть роль базового для разработки BLE-устройств. Более того, достаточно много проектов-примеров для BLE, представленных в различных версиях SDK или в обучающем ресурсе Simple Link Academy, основано именно на ProjectZero.

Simple Broadcaster – пример BLE-маяка наподобие беспроводных меток Apple iBeacon™ и Google Eddystone™.

Simple Central, Simple Peripheral – базовые проекты BLE-устройств с функциональностью клиента (central) и BLE-сервиса (peripheral). Могут служить базой для разработки собственных проектов на их основе. Пример Simple Peripheral используется как опорный в руководстве BLE5-Stack User’s Guide.

Проект Multi Role демонстрирует возможность устройства работать одновременно в нескольких ролях при BLE-соединении. В частности, проект способен работать как ведущий и как подчиненный узел одновременно, в любой комбинации, поддерживая при этом количество соединений, определенных MAX_NUM_BLE_CONNS. Устройство Multi Role способно подключаться к любому центральному/периферийному BLE-устройству. Поддерживаются обновления параметров и несколько одновременных открытий процессов поиска устройств, состояний соединения или разрыва соединения.

Для серии CC1352 дополнительно доступна работа в мультипротокольном режиме – проект Dynamic Multi-protocol Manager.

Dynamic Multi-protocol Manager позволяет устройству параллельно работать и в субгигагерцевой сети, и в сети BLE. В этом примере реализован узел сетевого датчика субгигагерцевой сети с удаленным BLE-дисплеем.

Возможности мультипротокольного режима в данной версии SDK:

  • режим периферийного BLE-устройства и сетевого узла субгигагерцевой сети с переключением частот;
  • режим сенсорного узла стандарта 802.15.4 и BLE-маячка (используется сервис uBLE).

Поддержка сетей Thread

В СС13х2/СС26х2 SDK включена поддержка протокола Thread версии 1.1, за основу которой взят открытый проект OpenThread. Предлагаемые примеры приложений, – дверной замок, оконные шторы, термостат и датчик температуры, – базируются на протоколе Constrained Application Protocol (CoAP), работающем поверх сетевого стека, и служат отправной точкой для разработки собственных программных решений для узлов Thread. В качестве дополнительного бонуса в SDK представлены примеры интерфейса командной строки (Command-Line Interface, CLI) и сетевого процессора (Network Co-Processor, NCP-Thread), которые могут быть использованы в комбинации с программным обеспечением граничного маршрутизатора Thread [https://github.com/openthread/borderrouter].

В версии протокола Thread от TI предусмотрены два способа реализации узлов сети: собственно, полноценный узел с поддержкой стека и приложения и Thread-процессор, работающий в паре с хост-контроллером, выполняющим прикладную задачу.

Основные возможности:

  • простая интеграция с программной частью граничного маршрутизатора;
  • оптимизация энергопотребления узлов;
  • поддержка тестового режима FCC Test Mode.

Старая добрая классика – стек ZigBee

Испытывая достаточно серьезную конкуренцию со стороны более новых протоколов и предлагаемых сетевых решений, стек ZigBee, тем не менее, остается на плаву, хотя и отошел в новостях на второй план. А ведь именно ZigBee можно считать одним из пионеров IoT. За долгое время существования в ZigBee-стеке проработаны и формализованы многие аспекты работы сетевых приложений различного назначения (возможно, большой объем формальностей роднит положение ZigBee с положением стека протоколов OSI в момент появления TCP/IP).

Стек ZigBee, включенный в состав SDK для СС13х2/СС26х2, соответствует стандарту ZigBee 3.0, а также поддерживает спецификацию ZigBee Pro. Традиционно в состав программного пакета включен сам стек, документация, исходные коды примеров.

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

Как и в случаях, рассмотренных выше, в примерах стека присутствует проект «Zigbee-процессор» – сетевой процессор с поддержкой Zigbee протокола.

В примерах, – а их более сорока, – раскрываются особенности развертывания ZigBee-сети и работы узлов различной функциональности.

TI 15.4 Stack

TI 15.4 Stack является достаточно простой сетью топологии «звезда», базирующейся на стандарте IEEE 802.15.4. Этот стек можно использовать как базовый MAC-уровень при разработке собственных стеков протоколов для IoT.

TI 15.4-Stack поддерживает разработку приложений на основе 802.15.4 и для диапазона 2,4 ГГц, и для субгигагерцевого диапазона (поддерживаются СнК CC2652R и CC1352R).

Представлены проекты координатора сети, сенсорного узла, сетевого сопроцессора.

Основные возможности (диапазон 2,4 ГГц):

  • совместимость с МАС-уровнем ZigBee;
  • оптимизация энергопотребления узлов;
  • скорость передачи данных 250 кбит/с OQPSK-DSSS;
  • безмаячковый режим.

Для субгигагерцевого диапазона (СнК CC1312, CC1352):

  • режимы с маячками и без маячков, режим с переключением частот;
  • асимметричный режим безопасности TLS-PSK для аутентификации устройств;
  • скорость передачи данных – 50 кбит/с (в режиме SimpleLink Long Range – 5 kbit/s);
  • поддержка обновления прошивки «по воздуху» через Secure Boot Manager;
  • поддержка частотных диапазонов 863 и 915 МГц;
  • возможность строить достаточно большие сети (до 300 узлов).

Проприетарные решения от TI

Для субгигагерцевых СнК серий CC1312 и CC1352 в SDK предлагается ряд низкоуровневых идей и решений по использованию радиоканала (работа напрямую с драйвером радиотракта) и организации канального уровня стека протоколов (EasyLink Abstraction Layer).

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

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

Пакет проприетарных примеров можно разбить на две группы:

  • примеры работы с низкоуровневыми API радиодрайвера;
  • примеры работы с API EasyLink.

Примеры работы с радиодрайвером напрямую:

  • прием/передача пакетов Packet Tx/Rx – демонстрация работы с пакетами данных на низком уровне;
  • Listen Before Talk – относительно простой пример реализации множественного конкурентного доступа к среде передачи: прослушивание частотного канала и передача пакета в том случае, если он свободен;
  • Wake-on radio Tx/Rx – пара весьма интересных взаимосвязанных примеров, иллюстрирующих возможную оптимизацию энергопотребления при обмене данными по радиоканалу. Wake-on radio Rx переводит приемник в режим, который условно можно назвать беглым прослушиванием канала (сниффингом – режим Wake-on-Radio). Это автоматическое включение приема на небольшие промежутки времени с целью обнаружить преамбулу передаваемого пакета, причем пакеты с требуемыми параметрами преамбулы формирует пример Wake-on radio Tx. Основным преимуществом режима Wake-on-Radio является значительно меньшее значение среднего потребляемого тока: порядка нескольких микроампер против 2…4 мА в режиме обычного приема;
  • Packet Error rate-meter – один из примеров оценки качества беспроводного канала передачи, который осуществляет подсчет количества ошибок в передаваемых пакетах.

Примеры с EasyLink включают в себя:

  • EasyLink Rx/Tx – базовые примеры адресной передачи/приема пакетов;
  • EasyLink Network processor – традиционный пример сетевого процессора;
  • WSN sensor/concentrator – пример организации простой сенсорной сети.

EasyLink поддерживает:

  • скорость передачи данных 50 кбит/с при модуляции GFSK, а также режим SimpleLink Long Range;
  • доступный диапазон 433 МГц;
  • обновление прошивки «по воздуху»;
  • экспорт пользовательских настроек радио из SmartRF Studio.

Заключение

Развертывание даже относительно небольшого IoT приложения – задача комплексная. Операционная система TI-RTOS и набор драйверов, безусловно, позволяют достаточно свободно разрабатывать приложения для всего семейства SImpleLink, но требуется время на их освоение. Данное наблюдение относится также и к стекам протоколов: необходимо четко представлять себе ВОЗМОЖНУЮ топологию сети, способы взаимодействия узлов в пределах этой сети, общую архитектуру приложений, работающих поверх используемого стека протоколов.

Литература

  1. CC1352 и CC2652 – новые беспроводные мультистандартные SoC для интернета вещей;
  2. Новинки 2018 года от TI: CC1352 и CC2652 – беспроводные мультистандартные SoC для интернета вещей (материалы вебинара);
  3. Ч-Хоар. Взаимодействующие последовательные процессы;
  4. SimpleLink CC13x2 Software Development Kit.

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

Рубрики:
Группы товаров:

О компании Texas Instruments

В середине 2001 г. компании Texas Instruments и КОМПЭЛ заключили официальное дистрибьюторское соглашение, которое явилось результатом длительной и успешной работы КОМПЭЛ в качестве официального дистрибьютора фирмы Burr-Brown. (Как известно, Burr-Brown вошла в состав TI так же, как и компании Unitrode, Power Trend и Klixon). С этого времени компания КОМПЭЛ получила доступ к поставке всей номенклатуры производимых компанией TI компонентов, технологий и отладочных средств, а также ...читать далее