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

14 декабря 2018

системы безопасностиавтомобильная электроникаучёт ресурсовсветотехникапотребительская электроникаавтоматизацияответственные примененияинтернет вещейTexas Instrumentsстатьяинтегральные микросхемыбеспроводные технологиисредства разработки и материалы

Системы-на-кристалле серий СС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 компонен ...читать далее

Товары
Наименование
CC1310F128RGZT (TI)
CC1310F128RHBR (TI)
CC1352R1F3RGZT (TI)
CC2650MODAMOHR (TI)
CC2640R2FRGZT (TI)
CC2650F128RHBT (TI)
CC2640F128RGZT (TI)
CC2642R1FRGZR (TI)
CC2642R1FRGZT (TI)
CC2642R1TWFRTCRQ1 (TI)
CC2652R1FRGZR (TI)
CC2652R1FRGZT (TI)
CC2652RB1FRGZR (TI)