Открыть сервис

ARM Cortex-M0

ARM Cortex-M0 — это 32-битное микропроцессорное ядро, разработанное компанией ARM Holdings (ARM Ltd. — британская компания, не подпадающая под ограничения в РФ) на архитектуре ARMv6-M. Относится к семейству ядер Cortex-M, предназначенных для микроконтроллеров и встраиваемых систем с низким энергопотреблением. Является самым маленьким и энергоэффективным ядром в линейке Cortex-M, ориентированным на замену 8- и 16-битных микроконтроллеров в недорогих устройствах.

История

Ядро Cortex-M0 было анонсировано компанией ARM в 2009 году как ответ на растущий спрос на высокопроизводительные, но дешёвые и маломощные микроконтроллеры. До его появления рынок недорогих встраиваемых систем был занят 8-битными архитектурами (например, Intel 8051, AVR, PIC) и 16-битными (MSP430). Cortex-M0 предложил 32-битную производительность при площади ядра всего 12 тыс. логических вентилей, что позволило снизить себестоимость кристалла и энергопотребление до уровня, сопоставимого с 8-битными решениями.

Первые коммерческие реализации ядра появились в 2010 году. Компания NXP Semiconductors выпустила микроконтроллеры серии LPC1100 на основе Cortex-M0, которые быстро завоевали популярность в промышленной автоматике, бытовой технике и потребительской электронике. Впоследствии лицензиатами ядра стали такие производители, как STMicroelectronics (серия STM32F0), Infineon (XMC1000), Microchip (SAM D10/D11), Renesas (RA2A1) и другие.

В 2012 году ARM выпустила улучшенную версию — Cortex-M0+, которая добавила возможность одноциклового доступа к памяти через шину ICode и снизила энергопотребление в активном режиме. Несмотря на это, оригинальное ядро Cortex-M0 остаётся востребованным благодаря простоте лицензирования и минимальной стоимости.

Архитектура и характеристики

Основные параметры

Особенности архитектуры

Cortex-M0 использует упрощённую трёхступенчатую конвейерную архитектуру (выборка, декодирование, исполнение). В отличие от старших ядер Cortex-M3/M4, оно не поддерживает:

Эти ограничения позволили минимизировать площадь ядра и энергопотребление, сделав Cortex-M0 идеальным для простых задач управления.

Система памяти

Ядро поддерживает единое 32-битное адресное пространство объёмом до 4 ГБ. Адресация памяти реализована через шину AHB-Lite, которая соединяет ядро с памятью программ (Flash) и данных (SRAM). В типовых микроконтроллерах объём Flash составляет от 8 до 256 КБ, SRAM — от 2 до 32 КБ.

Применение

Типовые области использования

Преимущества для разработчиков

Сравнение с другими ядрами

ПараметрCortex-M0Cortex-M0+Cortex-M3Cortex-M4
АрхитектураARMv6-MARMv6-MARMv7-MARMv7-M
Производительность (DMIPS/МГц)0,90,91,251,25
Площадь (тыс. вентилей)12123340
Энергопотребление (мкА/МГц)5040100120
Поддержка Thumb-2НетНетДаДа
Аппаратное делениеНетНетДаДа
FPUНетНетНетДа (опционально)
MPUНетОпциональноДаДа
Раздельные шиныНетДа (ICode)ДаДа

Производители и примеры микроконтроллеров

Наиболее распространённые семейства микроконтроллеров на ядре Cortex-M0:

Критика и ограничения

Несмотря на популярность, Cortex-M0 имеет ряд недостатков по сравнению с более современными ядрами:

Эти ограничения делают Cortex-M0 непригодным для задач, требующих высокой производительности (аудиообработка, управление двигателями с обратной связью, сложные алгоритмы управления). Для таких применений рекомендуется Cortex-M3, M4 или M7.

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →