ADuCM302X — новое семейство микроконтроллеров Analog Devices для «Интернета вещей»

Опубликовано в номере:
PDF версия
Статья посвящена новому семейству микроконтроллеров ADuCM302x фирмы Analog Devices, предназначенному для применения в устройствах «Интернета вещей». В отличие от многих других альтернативных решений эти контроллеры имеют встроенные аппаратные средства для обеспечения безопасности и повышения надежности, а также развитую периферию.

В марте 2016 г. корпорация Analog Devices представила новое семейство микроконтроллеров для «Интернета вещей» — ADuCM302x. Эти микроконтроллеры основаны на процессорном ядре ARM Cortex-M3 с модулем защиты памяти (Memory Protection Unit, MPU) и тактовой частотой до 26 МГц [1]. Помимо «Интернета вещей», эти контроллеры предлагается использовать для управления электродвигателями и промышленных применений. На сегодня семейство включает две модели, которые отличаются только объемом флэш-памяти: ADuCM3027 с 128 кбайт и ADuCM3029 с 256 кбайт.

В августе 2016 г. микросхемы находились на этапе пререлиза [2], а в ближайшее время начнется их серийный выпуск, и оценочные платы уже доступны. Новые изделия авторитетнейшего производителя полупроводниковых компонентов, конечно же, вызывают повышенный интерес. Давайте познакомимся поближе с этими контроллерами. Основная информация дается в спецификации [3], подробности можно найти в справочном руководстве [4].

 

IoT. Пункт первый: потребляемая мощность

Первое важнейшее свойство изделия для «Интернета вещей», которое приходит в голову, конечно же, минимальное энергопотребление. Оно позволяет продлевать срок службы батарей и даже создавать устройства, работающие от одной и той же батареи в течение всего жизненного цикла и не требующие обслуживания. Здесь у ADuCM302x все в порядке, их потребление можно смело назвать ультранизким, согласившись с описанием производителя. С точки зрения потребления устройства имеют четыре режима работы:

  • Активный режим (active), с типовым потреблением до 38 мкА/МГц. Для сравнения такого уровня потребления с конкурирующими изделиями можно отправить в «Яндекс» запрос «мкА/МГц». Варианты ответов на сегодня начинаются примерно от 90 мкА/МГц, то есть потребление семейства ADuCM302x в два с лишним раза лучше, чем у ближайших конкурентов. В активном режиме разрешена работа всей периферии, потребляемая мощность оптимизируется за счет управления тактированием отдельных устройств.
  • Режим flexi — узлы обработки сигналов датчиков работают автономно, а процессор спит, тактовая частота на него не подается, инструкции не выполняются, но может продолжаться обмен между периферийными устройствами и памятью через DMA. Типовое потребление в этом режиме не превышает 11,5 мкА/МГц.
  • Режим ожидания (hibernate) с типовым потреблением до 750 нА. В этом режиме сохраняются: содержимое ОЗУ, состояние линий ввода/вывода, ограниченное количество разрешенных прерываний для пробуждения и опционально работа часов реального времени (RTC).
  • И наконец, режим простоя (shutdown). Это режим самого глубокого сна. В нем выключены все цифровые и аналоговые схемы. Выход из режима возможен по одному из четырех доступных прерываний. В этом режиме могут опционально работать часы реального времени, и устройство способно периодически просыпаться по прерыванию от часов. Типовое потребление в режиме Shutdown не превышает 60 нА.

Диапазон питающих напряжений 1,8–3,6 В, устройства приспособлены для работы от дисковых элементов питания (Coin-cell battery).

Для оптимизации потребления микроконтроллеры ADuCM302x имеют развитую систему управления питанием. В ней предусмотрены:

  • встроенный линейный стабилизатор с малым падением напряжения (LDO) и опционально импульсный понижающий преобразователь;
  • встроенные силовые ключи для минимизации тока потребления в режиме ожидания;
  • управление тактовой частотой в активном режиме;
  • встроенные микромощные генераторы.

Процессорное ядро ARM Cortex-M3, через модуль управления потреблением (PMU, Power Management Unit), может динамически управлять питанием и тактовой частотой отдельных узлов.

 

IoT. Пункт второй: безопасность

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

В микроконтроллерах семейства ADuCM302x для этого предназначены следующие устройства:

  • криптографический акселератор для шифрования передаваемой информации;
  • аппаратный генератор случайных чисел;
  • средства для предотвращения несанкционированного доступа к самому микроконтроллеру.
Блок-схема криптографического акселератор

Рис. 1. Блок-схема криптографического акселератор

Криптографический акселератор (рис. 1) поддерживает шифрование по алгоритмам AES-128, AES-256 в различных режимах (ECB, CBC, CTR, CBC-MAC, CCM, CCM) и SHA-256. Это 32-разрядное периферийное устройство для шины APB с возможностью доступа через DMA. Оно содержит два 32-разрядных буфера для операций ввода/вывода, которые обеспечивают чтение и запись 128-разрядных слов за четыре приема. Поддерживаются форматы Big Endian и Little Endian.

Аппаратный генератор случайных чисел (отметим, что он генерирует истинные случайные числа, а не псевд­ослучайные) можно использовать при формировании вызовов для безопасной связи или ключей, предназначенных для зашифрованного канала связи. Генератор можно запускать несколько раз, чтобы получить достаточное количество битов для надежности намеченной операции.

Для защиты от несанкционированного доступа в микроконтроллере реализован ряд аппаратных и программных механизмов защиты, которые блокируют доступ к изделию в безопасном режиме, но не препятствуют доступу в открытом режиме. Эти механизмы включают защищенные паролем ведомые режимы загрузки через SPI и UART, а также защищенный паролем отладочный интерфейс SWD. С их помощью обеспечивается защита от неавторизованного чтения информации из устройства (то есть из его флэш-памяти, ОЗУ, регистров процессора и периферийных устройств) через внешние интерфейсы, а также защита от неавторизованного внутрисхемного перепрограммирования (записи). Все эти средства можно конфигурировать различными способами: разрешить только чтение, чтение и запись или совсем отключить защиту. Они позволяют решить следующие задачи:

  • защита пользовательского встроенного программного обеспечения от реверс-инжиниринга и подмены;
  • предотвращение повторного использования изделия;
  • безопасное обновление встроенного ПО через UART.

 

IoT. Пункт третий: надежность

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

Надежную работу микроконтроллеров ADuCM302x поддерживает ряд устройств:

  • сторожевой таймер;
  • схема формирования циклического избыточного кода (CRC, Cyclic redundancy check);
  • схема контроля четности;
  • схема коррекции ошибок флэш-памяти.

Сторожевой таймер (Watchdog timer) представляет собой 16-разрядный вычитающий счетчик с программируемым предварительным делителем частоты. Источник частоты для счета можно выбирать, коэффициент деления может быть равен 1, 16 или 256. Для тактирования сторожевого таймера предусмотрен специальный независимый микромощный встроенный генератор тактовой частоты 32 кГц. Задача сторожевого таймера — выводить микроконтроллер из ошибочных состояний программы. Нормально работающая программа должна периодически перезагружать таймер. Если из-за какой-то ошибки этого не происходит, то по истечении контрольного срока сторожевой таймер принудительно выводит программу в исходное состояние.

Аппаратная схема формирования CRC (акселератор CRC) с программируемым генератором полиномов вычисляет CRC для всех областей памяти микроконтроллера: ОЗУ, флэш-памяти или любой комбинации регистров, отображаемых на память. Она генерирует контрольные суммы, которые можно использовать для сравнения с ожидаемой сигнатурой.

Обнаружение ошибок четности возможно для всех областей ОЗУ. С каждым 32-разрядным словом ассоциируются 2 бит четности.

Схема коррекции ошибок флэш-памяти может исправлять однобитовые ошибки или обнаруживать двухбитовые ошибки для 64-разрядных данных.

Кроме всего перечисленного, существенно повышает надежность систем на основе ADuCM302x аппаратный модуль защиты памяти, речь о котором пойдет немного позже.

 

Микроконтроллер и периферия

Микроконтроллер семейства ADuCM302x представляет собой интегрированную систему смешанной обработки сигналов, состоящую из процессорного ядра, коллекции цифровой периферии, встроенного ОЗУ и флэш-памяти, а также аналоговой подсистемы, в которую, помимо АЦП, входят устройства для тактирования, сброса и управления питанием. На рис. 2 показана структурная схема контроллеров.

Блок-схема микроконтроллеров семейства ADuCM302x

Рис. 2. Блок-схема микроконтроллеров семейства ADuCM302x

В состав семейства входят два микроконтроллера: ADuCM3027 и ADuCM3029. Они различаются между собой только объемом встроенной флэш-памяти. ADuCM3027 содержит 128 кбайт флэш-памяти, а ADuCM3029 — 256 кбайт.

Каждый микроконтроллер семейства содержит:

  • процессор ARM Cortex-M3 с тактовой частотой до 26 МГц;
  • опциональную кэш-память для снижения активной потребляемой мощности;
  • ОЗУ объемом 64 кбайт с контролем четности;
  • модуль управления питанием;
  • многослойную шинную матрицу AMBA;
  • контроллер прямого доступа в память (direct memory access, DMA);
  • интерфейс зуммера;
  • последовательные интерфейсы SPORT, SPI, I2C и UART;
  • аппаратную поддержку шифрования с алгоритмами AES и SHA256;
  • часы реального времени;
  • сторожевой таймер и таймеры общего назначения;
  • программируемые линии ввода/вывода общего назначения;
  • аппаратный модуль вычисления CRC с программируемым генератором полиномов;
  • схему сброса при включении питания и монитор питания;
  • 12-разрядный АЦП последовательного приближения;
  • генератор истинного случайного числа.

Основу устройства составляет ядро ARM Cortex-M3, пожалуй, самое популярное на сегодня 32-разрядное процессорное ядро для встраиваемых систем. Микроконтроллеры на его базе выпускают десятки производителей. Причина этому — универсальная, хорошо сбалансированная архитектура, а следствие — непрерывно растущая база готовых программных и аппаратных решений [5]. ARM Cortex-M3 — это 32-разрядный процессор с сокращенным набором инструкций (reduced instruction set computer, RISC). Длина слова данных может составлять 8, 16 или 32 бит. Длина слова инструкций — 16 или 32 бит.

Подсистема памяти включает:

  • 32 кбайт ОЗУ данных;
  • 32 кбайт ОЗУ, которые можно конфигурировать как память инструкций или память данных;
  • до 256 кбайт встроенной флэш-памяти для программного кода и энергонезависимого хранения данных.

ОЗУ содержит инструкции программы и данные, которые требуются для выполнения в реальном времени. Оно поддерживает доступ (чтение и запись) из процессорного ядра ARM Cortex-M3 и из периферийных устройств через DMA. Возможен доступ к отдельным байтам, половинам слов и целым словам.

Доступ к флэш-памяти осуществляется через специальный контроллер, который связан с контроллером кэш-памяти через два порта AHB: один — для чтения данных (DCode), другой — для чтения инструкций (ICode). Для оптимизации чтения инструкций в контроллере флэш-памяти предусмотрен механизм выборки с упреждением (prefetch).

Карта памяти семейства ADuCM302x основана на стандартной модели памяти ARM Cortex-M3. Это позволяет легко портировать приложения с других платформ M3.

Как уже упоминалось, микроконтроллеры семейства ADuCM302x содержат модуль аппаратной защиты памяти (Memory Protection Unit, MPU). Он позволяет разделить все адресное пространство микроконтроллера (то есть и код, и данные, и регистры специальных функций) на отдельные регионы и назначить определенные права доступа к каждому из них.

Микроконтроллеры семейства ADuCM302x выпускаются в корпусах двух типов: 64-выводном LFCSP с габаритами 9×9×0,75 мм и короткими выводами под краями корпуса по его периметру и 54-выводном WLCSP с габаритами 2,76×2,76×0,47 мм и шариковыми выводами под всей нижней стороной корпуса.

 

Поддержка разработки

Средства поддержки разработки для семейства ADuCM302x включают документацию, оценочные наборы и программное обеспечение.

В комплект документации, кроме уже упомянутых материалов [3] и [4], входит ряд замечаний по применению и руководств для пользователя, примеры разработки и обучающие видеоматериалы. Всю документацию можно найти на сайте компании Analog Devices на странице, посвященной семейству ADuCM302x [7].

Плата оценочного набора EVAL-ADuCM3029 EZ-KIT (вид сверху

Рис. 3. Плата оценочного набора EVAL-ADuCM3029 EZ-KIT (вид сверху)

На текущий момент существует два оценочных набора для ADuCM302x:

  • набор EVAL-ADuCM3029 EZ-KIT (рис. 3 и 4), в котором основным «персонажем» является процессор семейства ADuCM302x;
  • набор EVAL-ADF7030-1 EZ-KIT (рис. 5), предназначенный для ознакомления с микросхемой высокопроизводительного субгигагерцового радиотрансивера ADF7030-1 компании Analog Devices. В составе этого набора имеется оценочная плата из первого набора с процессором ADuCM3029.
    Плата оценочного набора EVAL-ADuCM3029 EZ-KIT (вид снизу)

    Рис. 4. Плата оценочного набора EVAL-ADuCM3029 EZ-KIT (вид снизу)

На плате из набора EVAL-ADuCM3029 EZ-KIT (она называется ADZS-UCM3029EZLITE) установлены устройства, позволяющие подробно ознакомиться с микроконтроллером и возможностями его применения: 32 Мбит SPI флэш-памяти, акселерометр, датчик температуры, интерфейс USB-UART на популярной микросхеме FTDI FT232R, отладочный интерфейс SWD/SWO, светодиоды, кнопки, разъемы для подключения к различным интерфейсам микроконтроллера, а также разъемы для подключения к Arduino и тран­сиверам семейства ADF7xxx компании Analog Devices. Предусмотрены также перемычки для измерения тока потребления процессора и других устройств, установленных на плате.

Оценочный набор EVAL-ADF7030-1 EZ-KIT

Рис. 5. Оценочный набор EVAL-ADF7030-1 EZ-KIT

Заключение

Назначение микроконтроллеров нового семейства ADuCM302x — играть роль мозгового центра устройства, подключаемого к сети передачи данных. Они появились в результате целенаправленных работ Analog Devices по созданию решений системного уровня для «Интернета вещей» и перемещению интеллектуальной обработки как можно ближе к датчику. Микроконтроллеры ADuCM302x дополняют широкую линейку совместимых датчиков и компонентов для беспроводной передачи данных компании Analog Devices. Чтобы упростить системным интеграторам задачу оптимизации разрабатываемых решений с учетом требований конкретного приложения, они будут сопровождаться аппаратными и программными инструментами проектирования [1].

Литература
  1. Семейство микроконтроллеров позволяет продлить срок службы батарей в устройствах IoT, не жертвуя безопасностью и надежностью. Пресс-релиз Analog Devices от 10 марта 2016 года.
  2. Информация о жизненном цикле продукции. 
  3. Ultra Low-Power ARM Cortex-M3 MCU with Integrated Power Management. 
  4. ADuCM302x Mixed-Signal Control Processor Hardware Reference.
  5. На что стоит променять Cortex-M3? 
  6. Курниц А. FreeRTOS — операционная система для микроконтроллеров // Компоненты и технологии. 2012. № 7.
  7. ADuCM3029. Ultra Low-Power ARM Cortex-M3 MCU with Integrated Power Management and 256K bytes of Embedded Flash Memory.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *