Оценка энергоэффективности очень важна в проектировании встроенных систем на основе микроконтроллеров. Предлагаем новый универсальный способ расчета возможностей микроконтроллера STM32L5 производства STMicroelectronics. Тесты от компании ЕEMBC помогут наиболее объективно оценить энергопотребление устройства, а сервис All-Hardware позволит обойтись без отладочной платы.
Многие современные устройства на базе микроконтроллеров работают в автономном режиме, поэтому для них особенно важна оценка энергоэффективности. К сожалению, простые расчеты по спецификации, как правило, дают очень приближенный результат, который во многих случаях не может быть использован для практических целей. Компания EEMB предлагает ряд методик оценки энергоэффективности, позволяющих получить достаточно точный результат. В статье рассмотрен практический пример расчета с использованием сервиса удаленного подключения к отладочной плате.
Типичные ошибки при оценке энергопотребления
В процессе работы микроконтроллера энергопотребление, как правило, меняется скачкообразно, в зависимости от выполняемой задачи. На рисунке 1 показан типовой профиль работы микроконтроллера.
Рис. 1. Типовой профиль работы микроконтроллера
Предположим, что в первоначальный момент времени устройство отключено, то есть не потребляет энергию. После включения питания микроконтроллер выполняет инициализацию устройства – настраивает периферийные устройства, конфигурирует тактовые сигналы, загружает исполняемый код. Во время этого процесса энергопотребление резко возрастает. После завершения инициализации начинаются периодические процессы, характеризующиеся периодом Т. Часть этого периода процессорное ядро находится в неактивном состоянии или режиме сна, энергопотребление при этом очень низкое. Затем по какому-либо событию, например, по прерыванию, контроллер переходит в активный режим.
Переход из режима малого энергопотребления в активный режим называется пробуждением и характеризуется определенным энергопотреблением. После перехода в активный режим микроконтроллер выполняет ряд задач, которые были определены внешним событием. Процесс выполнения задач также характеризуется определенным энергопотреблением. После выполнения всех заказанных задач микроконтроллер снова переходит в неактивный режим с малым энергопотреблением. Через некоторое время Т процессы повторяются. Таким образом, каждый режим, изображенный на рисунке 1, характеризуется своим потреблением энергии, поэтому для точной оценки энергопотребления устройства используется показатель среднего потребления за время Tperiod.
У микроконтроллеров производства STMicroelectronics есть несколько режимов малого энергопотребления (рисунок 2).
Рис. 2. Малопотребляющие профили работы МК
Как показано на рисунке 2, различают три режима энергосбережения: Standby, STOP2 и LPSleep. Эти режимы различаются такими параметрами, как:
- среднее энергопотребление. Для режима Standby оно самое малое, а для режима LPSleep – самое высокое;
- максимальный пиковый ток;
- производительность;
- время реакции.
Выбор режима малого потребления зависит от характера работы микроконтроллера. Если события, требующие активной работы, происходят относительно редко, целесообразно применять режим Standby. Этот режим характеризуется самым большим временем выхода из режима сна, но обеспечивает наибольшую экономию энергии.
Если внешние события происходят со средней интенсивностью, наиболее оптимален режим STOP2. В этом режиме сохраняется содержимое памяти SRAM и всех регистров периферии, останавливаются все высокоскоростные тактовые сигналы, но можно активировать внешний осциллятор 32,768 кГц или внутренний осциллятор 32 кГц. Время перехода в активное состояние составляет всего несколько микросекунд.
Если внешние события, требующие активной работы микроконтроллера, происходят часто, наиболее оптимальным является режим LPSleep. Он характеризуется наибольшим энергопотреблением, по сравнению с другими режимами, и наименьшим временем реакции. В этом режиме тактовый генератор процессорного ядра отключен, вся логика запитана от маломощного регулятора. Частота на периферийной шине может достигать 2 МГц. Возможна активация всех периферийных устройств, за исключением USB OTG и генератора случайных чисел.
При оценке энергопотребления очень важно учитывать режимы работы микроконтроллера. Оценка только по цифре мА/МГц может дать неверный результат. Рассмотрим пример, изображенный на рисунке 3.
Рис. 3. Оценка энергопотребления
Микроконтроллер МК2 имеет большую производительность на той же частоте работы. Соответственно, при оценке энергопотребления с использованием значения мА/МГц у МК2 будет более высокое энергопотребление, по сравнению с МК1. Однако за счет того, что МК2 более производительный, он быстрее выполняет задачи и быстрее переходит в режим сна, где энергопотребление МК1 и МК2 практически равны. Поэтому при расчете среднего энергопотребления получается, что МК2 более экономичен, несмотря на то, что у него более высокое потребление на МГц частоты. Это хорошо видно на рисунке 3.
Рисунок 3 хорошо иллюстрирует, что при выборе устройства очень важно учитывать не только удельное потребление микроконтроллера на единицу частоты, но и его производительность.
История EEMBC
Компания Embedded Microprocessor Benchmark Consortium (EEMBC) разрабатывает промышленные стандарты для тестирования аппаратного и программного обеспечения, используемого в сферах автономного вождения, мобильных приложений, интернета вещей и многих других.
Стандарты EEMBC разрабатываются рабочими группами, которые заинтересованы в четко определенных стандартах для измерения производительности и энергоэффективности встроенных систем от устройств интернета вещей до последних версий систем помощи водителю. Полный набор стандартов, разработанных компанией, изображен на рисунке 4.
Рис. 4. Стандарты компании EEMBC
Стандарт CoreMark разработан специально для тестирования функциональности процессорного ядра. В результате выполнения теста CoreMark вычисляется значение и дается оценка, которая позволяет пользователю проводить быстрое сравнение нескольких процессорных ядер. Тест измеряет производительность микроконтроллеров и процессоров, используемых во встроенных системах. Он содержит реализацию алгоритмов работы со списками (поиск и сортировку), операции с матрицами, конечные автоматы, вычисление контрольной суммы CRC. Тест может работать на устройствах с разрядностью 8…64 бит.
Код для тестирования CoreMark доступен бесплатно по ссылке. После завершения тестирования результаты можно загрузить на сайт EEMBC для общего доступа. На данный момент на сайте www.CoreMark.org доступны более чем 120 результатов тестов, которые могут быть использованы для оценки процессорных ядер.
С помощью стандарта SecureMark можно оценить эффективность криптографических алгоритмов, реализованных в устройстве. В рамках этого теста планируется поддержка различных профилей безопасности для различных приложений. Первым для лицензирования доступен SecureMark-TLS, который сфокусирован на протоколе TLS для устройств интернета вещей.
Тест SecureMark-TLS моделирует криптографические операции, необходимые протоколу TLS для безопасной передачи данных. Тест замеряет производительность и энергопотребление физических устройств во время выполнения определенных криптографических функций.
Стандарт IoTMark используется для оценки энергоэффективности устройств интернета вещей. Предполагается, что устройство содержит три ключевых компонента: сенсор, процессор и радиоинтерфейс. Тест позволяет определить суммарное энергопотребление компонентов с целью выбора оптимального микроконтроллера, радиокомпонентов и протокола обмена данными.
Более подробно с остальными видами стандартов можно ознакомиться на сайте компании EEMBC.
Набор стандартов ULPMark позволяет оценивать энергоэффективность устройств, в том числе и для приложений с ультрамалым потреблением, работающих на одной батарейке до 10 лет. Набор включает в себя четыре стандарта:
- ULPMark-CoreProfile позволяет оценить энергопотребление в режимах глубокого сна с учетом энергетического профиля работы устройства;
- ULPMark-PeripheralProfile определяет влияние периферийных устройств на энергопотребление в режимах глубокого сна;
- ULPMark-CoreMark определяет энергопотребление в активном режиме, используя в качестве нагрузки тест CoreMark;
- ULPMark-ML определяет энергопотребление устройств при работе простых алгоритмов машинного обучения. Этот стандарт находится в стадии разработки.
Для стандарта ULPMark-CoreMark тест CoreMark используется в качестве нагрузки. В этом случае замеряется энергия, затраченная на проведение одного теста CoreMark. Затем тест повторяется несколько раз. Для микроконтроллера STM32L5 при проведении этого теста используется напряжение 3 В.
Способ оценки ULPMark
Микроконтроллер STM32L5 относительно недавно появился на рынке и относится к категории устройств с малым энергопотреблением. Давайте проверим на практике фактическое энергопотребление данного устройства и рассчитаем оценки ULPMark-CoreMark.
Для проведения теста необходимо установить PowerMonitor и CubeIDE. Обе программы находятся в свободном доступе для операционных систем Linux, Windows и Mac.
STM32CubeMonitor-Power (Power Monitor) – специальное программное обеспечение, которое позволяет разработчикам анализировать потребление отладочных плат в энергосберегающих режимах. Замеры параметров питания осуществляются через плату расширения X-NUCLEO-LPM01A или с помощью специализированного измерителя на отладочной плате STM32L562E-DK. Результаты замеров отображаются с помощью интуитивно понятного графического интерфейса. Динамический диапазон измерений тока составляет 0,1…50 мА для X-NUCLEO-LPM01A и 0,3…150 мА для STM32L562E-DK. ПО поддерживает выполнение тестов EEMBC® ULPBench™, в результате выполнения которых отображается оценка ULPMark.
Для проведения тестов будем использовать микроконтроллер семейства STM32L5, чья блок-схема доступной периферии и интерфейсов показана на рисунке 5.
Рис. 5. Блок-схема микроконтроллеров семейства STM32L5
Как показано на рисунке 5, микроконтроллеры семейства STM32L5 содержат большой набор периферийных устройств, таких как таймеры, порты ввода/вывода, устройства для работы с аналоговыми сигналами, интерфейсы передачи данных, блоки шифрования. Следует отметить, что эта серия микроконтроллеров содержит ядро Arm® Cortex®–M33 и поддерживает функцию изоляции TrustZone®.
Ядро Arm® Cortex®–M33 специально разработано для встроенных систем и устройств интернета вещей. Это ядро примерно на 20% производительнее, чем Cortex-M4. Cortex-M33 основано на архитектуре ArmV8-M. Функция TrustZone, также содержащаяся в этой архитектуре, является одним из способов ограничения доступа к ресурсам микроконтроллера (интерфейсам, памяти, периферии) недоверенной области к доверенной.
Для семейства STM32L5 доступны несколько отладочных плат: NUCLEO-L552ZE-Q, STM32L562E-DK и STM32L552E-EV. Внешний вид платы STM32L562E-DK показан на рисунке 6.
Рис. 6. Отладочная плата STM32L562E-DK
Эта плата содержит микроконтроллер STM32L562QE, 512 kбайт Flash-памяти, 256 кбайт памяти RAM, цветной TFT LCD-дисплей 240х240, USB типа С, модуль Bluetooth V4.1 LE, iNEMO 3D-акселерометр и 3D-гироскоп, встроенный программатор STLINK-V3E, а также множество других периферийных устройств. Она совместима с программой PowerMonitor и, соответственно, подходит для оценки энергопотребления.
На сайте компании ЕЕMBC по ссылке можно сравнить несколько архитектур по производительности и энергопотреблению. Например, на рисунке 7 приведено сравнение ULPMark-CoreMark для микроконтроллеров STM32L5 и STM32L4.
Рис. 7. Сравнение ULPMark-CoreMark для STM32L5 и STM32L4
Сервис для удаленного подключения к отладочной плате
Для первоначального знакомства с новыми микросхемами, а также для отладки существующих алгоритмов часто используются отладочные платы. Это очень хороший инструмент для тестирования, который, однако, требует некоторых материальных вложений. Кроме того, после отработки нужных алгоритмов отладочные платы могут остаться невостребованными, так как дальнейшие работы будут проводиться уже на специализированном аппаратном обеспечении.
Чтобы избежать лишних трат, а также ускорить начало работы, воспользуемся сервисом All-Hardware, который совершенно бесплатно предлагает разработчикам подключиться удаленно и испытать в деле различные отладочные платы на базе микроконтроллеров. Так как кроме подключения к плате из IDE сервис осуществляет и видеотрансляцию выбранной платы, создается почти полная иллюзия наличия платы на вашем столе.
Как мы уже определили выше, для практической оценки энергоэффективности будет использоваться отладочная плата STM32L562E-DK. Эта плата доступна на сайте All-Hardware, и мы проделаем всю практическую работу с помощью данного сервиса (а вы сможете самостоятельно повторить все здесь описанное, даже не имея платы в наличии).
Измерение энергоэффективности
Цель практической работы – замер ULPMark-CoreMark при частоте работы 24 МГц. Для выполнения работы необходимы следующие инструменты:
- CubeMonitor Power – программное обеспечение, которое можно скачать на сайте производителя;
- STM32CubeIDE – среда разработки, которую также можно скачать на сайте ST;
- файлы прошивок для тестирования на частоте 01_CoreMark_24MHz.bin;
- отладочная плата STM32L562E-DK, которая будет удаленно использована, благодаря доступу к сервису All-Hardware;
- операционная система Windows, так как конфигурационная программа сервиса доступна только для этой операционной системы.
Последовательность выполнения практической работы следующая:
- Переходим на сайт All-Hardware и бронируем отладку STM32L562E Discovery.
- На локальном компьютере открываем окно командной строки и переходим в папку (полный путь зависит от места установки среды STM32CubeIDE):
D:\ST\STM32CubeIDE_1.5.1\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.
externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.5.0.202011040924\tools\bin
- Создаем файлы с расширением *.elf на основе имеющихся файлов с расширением *.bin:
- arm-none-eabi-objcopy –I binary –O elf32-littlearm –change-section-address=.data=0x8000000 –B arm –S “d:\compel\energy_efficiency\bins\01_CoreMark_24MHz.bin” app24.elf
- arm-none-eabi-objcopy –I binary –O elf32-littlearm –change-section-address=.data=0x8000000 –B arm –S “d:\compel\energy_efficiency\bins\01_CoreMark_110MHz.bin” app110.elf
- Запускаем GDB:
arm-none-eabi-gdb.exe
- Подключаемся к удаленному серверу:
target remote IP-address:Port
Параметры IP-address и Port берутся из настроек сервиса all_hw, как это показано на рисунке 8.
Рис. 8. Параметры подключения
- Загружаем и включаем приложение:
load app24.elf
mon reset 0
quit
На рисунке 9 приведены результаты измерений EEMBC, которые будут являться эталоном для проведения теста.
Рис. 9. Результаты измерений на сайте EEMBC
Для проведения тестов необходимо установить программное обеспечение для эмуляции COM-порта. Для этого после открытия сессии отладки переходим по ссылкам, выделенным красным цветом на рисунке 10.
Рис. 10. Установка программного обеспечения для COM-порта
Сначала переходим по ссылке “Download Virtual COM port application”, скачиваем и устанавливаем приложение All-Hardware-Setup.exe с правами администратора.
После установки программы появляется сообщение, показанное на рисунке 11.
Рис. 11. Сообщение после установки программы All-Hardware-Setup.exe
Далее переходим по ссылке “Download Virtual COM port configuration file”, скачиваем конфигурационный файл и запускаем его с помощью приложения, установленного ранее. Для запуска конфигурационного файла выбираем “Open” в программе All-Hardware-Setup.exe, как это показано на рисунке 12.
Рис. 12. Запуск конфигурационного файла
После этого в диспетчере устройств должен появиться новый COM-порт, через который будет происходит обмен данными приложений на локальном компьютере с удаленной платой. Для подключения через COM-порт можно использовать терминал, доступный во вкладке “Terminal” активной сессии (рисунок 13).
Рис. 13. Удаленное подключение к отладочной плате через COM-порт
После открытия виртуального COM-порта запускаем приложение Power Monitor. В пункте меню “Select device” выбираем необходимый COM-порт и нажимаем кнопку “TAKE CONTROL”, как это показано на рисунке 14.
Рис. 14. Запуск программы Power Monitor
После этого необходимо выполнить ряд настроек в программе Power Monitor (рисунок 15).
Рис. 15. Настройки Power Monitor
На рисунке 15 также показана последовательность выполнения настроек. После нажатия кнопки “Show Report” появляется окно, изображенное на рисунке 16.
Рис. 16. Результат работы программы CoreMark
На рисунке 16 показаны результаты замеров на частоте 24 МГц.
По данным с официального сайта EEMBC получаем ULPMark-CM = 18,4. Таким образом, результат практического замера с использованием сервиса удаленной отладки очень близок к официальному результату EEMBC.
Подведение итогов
Оценка энергоэффективности очень важна для встроенных систем на основе микроконтроллеров, особенно для работающих в автономном режиме. Тесты от компании ЕEMBC позволяют точно оценить энергопотребление устройства с учетом всех возможных режимов энергосбережения. Так как эти тесты унифицированы, они позволяют проводить выбор наиболее подходящего устройства из линейки доступных.
Сервис all-hw.com позволяет оценить параметры устройства без необходимости приобретать это устройство. Практическое задание показало, что результаты, полученные с использованием удаленной отладочной платы от all-hw.com, очень близки к официальным результатам EMBC.
Контроллеры STM32L5 показывают хорошие результаты и могут быть применены для приложений, критичных к энергопотреблению. Наличие таких сервисов, как ЕEMBC и all-hw.com, позволяет наиболее точно оценить основные рабочие характеристики устройства, такие как производительность и энергопотребление.