Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Микроконтроллеры Cortex-M0/M3/M4

Микроконтроллеры Cortex-M0/M3/M4

Микроконтроллеры Cortex-M стали сегодня одними из самых популярных процессоров, применяемых при разработке и изготовлении электронной техники. Высокая вычислительная мощность, широкий набор периферии и низкая стоимость делают эти устройства привлекательными для самого широкого круга разработчиков. При этом каждый желающий может выбрать наиболее подходящий вариант для решения конкретной задачи. Производители предлагают огромное количество разнообразных микросхем, общим для которых остается только процессорное ядро. На сегодняшний день распространение получили 3 варианта ядер: Cortex-M0, Cortex-M3, Cortex-M4. Отличия этих моделей не всегда явно прослеживаются, поэтому данная статья делает попытку разобраться в особенностях этих вариантов.

Микроконтроллеры Cortex-M представляют собой одно из направлений развития микропроцессорных ядер, предлагаемых фирмой ARM. Фактически, под общей торговой маркой Cortex можно увидеть три типа процессоров (профилей), обозначаемых буквами A, R, M.

Задачей профиля A стало достижение большой вычислительной мощности. Изделия с этой маркировкой – Cortex-A, представляют собой классические микропроцессоры, являющиеся дальнейшей эволюцией разработок ARM. Профиль R нацелен на использование во встраиваемых системах, поэтому эти процессоры модернизированы для исполнения задач в реальном времени. Основной задачей профиля M заявлена простота и низкая стоимость. Технически Cortex-M представляют сильно упрощенные варианты старших моделей. Тем не менее, даже такие «урезанные» контроллеры обладают вычислительной мощностью, значительно превышающей многие аналоги. Также отличием от «больших» ARM стала поддержка битовых операций, необходимая в микроконтроллерах для работы с периферией.

Cortex-M0

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

По своей структуре ядро Cortex-M0 – это конфигурируемый мультистадийный 32-разрядный RISC процессор. В его основе лежит архитектура ARMv6-M. Основное отличие от классической «большой» ARMv6 заключается в использовании только набора 16-разрядных инструкций, под общим названием Thumb. Дополнительно поддерживаются некоторые команды более нового набора Thumb2. Такое решение, при незначительном падении вычислительной мощности, максимально упростило процессор относительно старших моделей и позволило использовать дешевую 16-ти разрядную память. Благодаря использованию современных технологий проектирования, количество транзисторов, из которых построено данное ядро, составляет примерно 12 тысяч. Такое количество обеспечило низкое энергопотребление и невысокую стоимость. Для сравнения процессор i8086 имел 32 тысячи транзисторов при намного меньших возможностях. Энергопотребление процессора M0, в зависимости от исполнения и решаемых задач, колеблется от 73 до 4мкВт/МГц.

Быстродействие ядра Cortex-M0 составляет 0. 84 DMIPS / МГц. Это значит, что на максимальной частоте работы ядра в 50Мгц, достигается производительность 45 DMIPS. Данное значение превышает возможности 8-ми разрядных систем в несколько десятков раз, и на порядок выше, чем у 16-разрядных моделей.

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

Процессорное ядро Cortex-M3

Процессорное ядро Cortex-M3 стало наиболее популярным вариантом архитектуры ARM у производителей и разработчиков микроконтроллеров. Структурно, это также мультистадийный RISC процессор. Но в отличие от M0, данное ядро основано на архитектуре ARMv7-M и полностью реализует наборы команд Thumb и Thumb2. Из особенностей следует упомянуть аппаратное умножение 32-разрядных чисел за 1 цикл, а также деление чисел подобной разрядности (от 2 до 12 циклов). Производительность процессора составляет 1.25DMIPS/МГц. Энергопотребление примерно в два раза выше, чем у варианта M0. Количество физических прерываний увеличено до 240. В ядре предусмотрен механизм защиты памяти.

Cortex-M3, в отличие от классической ARMv7, выполнен по Гарвардской архитектуре и поддерживает несколько периферийных шин. Следует отметить, что ARMv7 является основой только процессоров под обозначением Cortex и имеет мало общего с некогда сверхпопулярной ARM7 и ее вариантами. Хотя именно с ARM7 часто сравнивают возможности Cortex-M3.

Cortex-M4

Вариант микроконтроллерного ядра Cortex-M4, по сравнению с Cortex-M3, не характеризуется ростом общих показателей. Фактически M4 тот же самый M3, но дополнительно оснащенный DSP-инструкциями. Наличие последних существенно ускоряет обработку потоковых данных, что в свою очередь делает M4 весьма привлекательным для использования в системах управления и обработки информации.

Возможности DSP, входящего в состав M4, позволяют параллельно выполнять четыре операции сложения/вычитания для 8-ми разрядных чисел или две операции сложения/вычитания с16-ти разрядными операндами. Также реализовано умножение за один цикл, при этом для 16-ти разрядных чисел возможно параллельное исполнение двух операций.

В серии M4 есть еще один вариант, под обозначением Cortex-M4F. В нем, дополнительно к DSP, установлен блок операций для чисел с плавающей точкой – FPU.

Кроме вышеназванных, существуют и другие варианты процессоров. Большинство из них представляют модернизированные варианты основных ядер. Несколько особняком стоит малоизвестный Cortex-M1, предназначенный для использования в программируемых логических матрицах. Основные характеристики этого процессора практически совпадают с вариантом M0, но при этом он реализован только в виде программной модели.

В отличие от профиля А, Cortex-M развивается не столь бурно. Когда и какими будут будущие микроконтроллеры неизвестно. Можно только предположить, что развитие пойдет по пути «больших» систем и в скором времени привычными станут двух-, трех или четырехядерные контроллеры.

You have no rights to post comments

Характеристики производительности микроконтроллеров на базе ядра ARM Cortex-M3

PDF версия

03.2011 Аналитика Статьи

В 2006 г. компания ARM представила на рынке новое процессорное ядро Cortex-M3, которое пришло на замену более старого ядра — ARM7TDMI. Такие разработчики микроконтроллеров (МК) как STMicroelectronics, NXP, Texas Instruments и др. приобрели лицензию на это ядро и наладили серийный выпуск МК на его базе. В 2008 г. лицензию на данное ядро приобрела и российская компания ЗАО «ПКК Миландр», запланировавшая к выпуску отечественную линейку МК серии 1986ВЕ91 для аппаратуры специального назначения. В статье рассматриваются показатели производительности МК различных вендоров, но с одним общим процессорным ядром.


Микроконтроллеры серии 1986ВЕ91

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

Таким образом, для удешевления стоимости микросхем данной серии один и тот же кристалл пакуется в различные корпуса, а потеря в функциональности обусловливается тем, какие из его выводов развариваются. При этом объем встроенной памяти у всех микросхем одинаков. Основные характеристики МК серии 1986ВЕ91 приведены в таблице 1.

Таблица 1. Основные характеристики МК серии 1986ВЕ91

Серия

1986ВЕ91Т1

1986ВЕ91Т2

1986ВЕ91ТЗ

1986ВЕ91У1

1986ВЕ91У2

1986ВЕ91УЗ

Корпус, кол-во выводов

132

108

88

64

48

42

Ядро

ARM Cortex-M3

Флэш-память программ, Кбайт

128

Память данных, Кбайт

32

Питание, В

2,0…3,6

Частота, МГц

80

Температура, °С

-60…125

USER I0

96

74

62

45

31

25

USB

Device и Host FS (до 12 Мбит/с), встроенный PHY

UART

2

CAN

2

SPI

2

1

I2C

1

АЦП 12 разрядов, 1 Мвыб. /с, кол-во каналов

16

10

8

5

3

ЦАП 12 разрядов

2

1

2

1

Компаратор, кол-во входов

3

2

Внешняя шина, кол-во разрядов

32

16

8

Производительность микроконтроллеров

Несмотря на стандартное ядро ARM Cortex-M3, характеристики производительности МК от различных фирм имеют разные показатели. В первую очередь, это обусловлено системой памяти программ, реализованной в МК. Практически все МК с ядром ARM Cortex-M3 могут функционировать на частотах более 50 МГц, т.е. время выполнения одной инструкции составляет менее 20 нс. При этом практический предел скорости доступа к внутренней памяти программ флэш-типа равен 30…40 нс. В результате флэш-память не успевает выдать новый код инструкции за один такт. Для того чтобы компенсировать медленную скорость работы памяти программ, в микроконтроллерах реализуется более разрядная, например 128-бит память, что позволяет за один цикл извлекать не одну, а сразу несколько инструкций. За то время, пока процессор выполняет инструкции из выбранного блока, подготавливается новый блок. В результате, если код выполняется линейно, такой механизм позволяет эффективно увеличить скорость работы процессорного ядра до 100 МГц и более. Структура простейшего ускорителя флэш-памяти программ представлена на рисунке 1.

Рис 1. Простейший ускоритель флэш-памяти программ

Однако как только процессор выполняет инструкцию ветвления либо обращается по ранее не предсказанному адресу, ускоритель инициализирует новый цикл обращения к флэш-памяти и на время выборки приостанавливает работу процессора.
Очевидно, что ускоритель флэш-памяти должен быть настраиваемым. Если разработчику системы с использованием микроконтроллера не требуется, чтобы процессор функционировал с тактовой частотой более 20 МГц, в этом случае флэш-память успевает выдать новые данные за один цикл, и необходимость в ускорении отсутствует. Если процессор работает на частоте до 40 МГц, то для выполнения непредсказаной выборки требуется один дополнительный такт; при частотах до 60 МГц — два и т.д.

Все разработчики МК с ядром ARM Cortex-M3 реализуют собственные ускорители флэш-памяти. В результате, чем эффективнее решение, тем бóльшей производительностью обладает микроконтроллер.

Показатели производительности

В настоящее время на российском рынке в основном представлены МК с ядром ARM Cortex-M3 компаний STMicroelectronics (семейство STM32Fxxx) и NXP (семейство LPC17xx). Для первоначального знакомства с этими микросхемами предлагаются демонстрационные отладочные средства, например модуль STM3210B-EVAL с МК STM32F103VBT6 фирмы STMicroelectronics. Для знакомства с микроконтроллерами NXP серии LPC17xx можно приобрести демонстрационный отладочный модуль RDB1768 с микроконтроллером LPC1768 от фирмы CODERED.

Для предварительного прототипирования микроконтроллеров серии 1986ВЕ91 компания «Миландр» разработала аппаратный прототип будущей микросхемы на базе FPGA, внешний вид которого представлен на рисунке 2.

Рис. 2. Прототип микроконтроллера 1986ВЕ91T1 на базе FPGA

Все перечиленные демонстрационные отладочные средства позволяют запускать на этих МК различные тестовые задачи и сравнивать полученные характеристики. В качестве основной тестовой задачи была выбрана программа реализации электронной цифровой подписи (ЭЦП). Эта программа не требует работы с периферией, что позволяет легко переносить ее с одного микроконтроллера на другой.

Исходный код написан на языке С и оформлен в виде проекта под IDE Keil uVision. Проект компилируется и запускается с минимальными изменениями на всех микроконтроллерах. Исходные коды проекта доступны на официальном сайте фирмы «Миландр» forum.milandr.ru.
В программе задается режим работы ускорителя флэш-памяти, и выполняются 10 итераций вычисления ЭЦП над некоторыми условными данным. Время выполнения всех итераций фиксируется в циклах процессорного ядра (см. табл. 2).

Таблица 2. Число тактов, требуемых для выполнения тестовой задачи

Число дополнительных циклов задержки ускорителя

Число циклов процессора для выполнения тестовой задачи, млн

STM32F103

1986ВЕ91Т

LPC1768

0

411

446

407

1

506

514

413

2

662

541

422

3

859*

617

432

4

1054*

669*

442

5

1251*

704*

451*

*Использованы нерегламентированные режимы работы микросхемы.

Для большей наглядности данные приставлены в виде диаграммы на рисунке 3.

Рис. 3. Число тактов выполнения тестовой задачи при различном значении дополнительных циклов задержки ускорителя

Характеристики приведенной производительности с учетом тактовой частоты представлены на рисунке 4.

Рис. 4. Зависимость производительности МК от тактовой частоты процессорного ядра

Как видно из графиков, производительность растет пропорционально тактовой частоте, но при достижении таких ее значений, при которых требуются дополнительные циклы задержки, происходит падение производительности. Таким образом, корректное повышение тактовой частоты процессорного ядра не всегда приводит к повышению производительности. Например, при повышении тактовой частоты процессора STM32F103 с 48 до 49 МГц, наоборот, произойдет снижение производительности, а ее дальнейший рост начнется только с 63 МГц. Значения тактовых частот и требуемых дополнительных задержке ускорителя флэш-памяти программ приведены в таблице 3.

Таблица 3. Число дополнительных циклов задержки ускорителя при различных тактовых частотах

Число дополнительных циклов задержки ускорителя

STM32F103

1986ВЕ91Т*

LPC1768

0

до 24 МГц

до 25 МГц

до 20 МГц

1

до 48 МГц

до 50 МГц

до 40 МГц

2

до 72 МГц

до 75 МГц

до 60 МГц

3

до 100 МГц

до 80 МГц

4

до 100 МГц

5

до 120 МГц

*Предварительные расчетные данные.

Выводы

Очевидно значительное превосходство МК серии LPC17xx. Как видно из технической документации, в первую очередь это достигнуто за счет ускорителя флэш-памяти. Так, в микроконтроллере STM32F103 в ускорителе присутствуют всего два 64-бит регистра ранее выбранных значений. В МК 1986ВЕ91 на этапе разработки была реализована схема с одним 128-бит регистром ранее выбранных значений, аналогичная представленной на рисунке 1 структуре. Этот ускоритель имел характеристики, не намного превосходившие характеристики МК STM32F103. Однако с выходом на рынок МК LPC17хх стал очевиден достижимый потенциал производительности. В условиях жестких рамок уже готового проекта, находящегося на стадии разработки топологии, было принято решение о переработке ускорителя флэш-памяти с целью повышения его производительности. В результате в МК 1986ВЕ91 был реализован ускоритель, представленный на рисунке 5.

Рис 5. Структура ускорителя флэш-памяти МК серии 1986ВЕ91

В первую очередь, в ускорителе были разнесены в отдельные регистры ранее выбранные инструкции и данные, хранимые в коде программы. Это позволило не сбивать последовательность выборки инструкций при обращении к данным. Кроме того, было увеличено число хранимых в ускорителе ранее выбранных значений, а для инструкций и данных реализовано по два 128-бит регистра. Эти изменения позволили значительно повысить производительность МК серии 1986ВЕ91, но не позволили достичь показателей микросхем серии LPC17xx. Как следует из документации на МК NXP, в ускорителе флэш-памяти реализовано восемь 128-бит регистров ранее выбранных значений.
К сожалению, в связи с жесткими временными рамками в разработке микроконтроллеров серии 1986ВЕ91 дальнейшие работы по повышению производительности ускорителя флэш-памяти были остановлены, но в новой серии МК 1901ВЦ1 будут учтены все выявленные недостатки и реализованы новые идеи, позволяющие значительно повысить производительность.

Cortex-M3 – Arm®

Серия процессоров Cortex-M позволяет разработчикам создавать недорогие решения с ограниченным энергопотреблением для широкого спектра устройств. Оптимальный баланс между площадью, производительностью и мощностью делает Cortex-M3 идеальным решением для таких продуктов, как микроконтроллеры, автомобильные кузовные системы, беспроводные сети и датчики.

Особенности и преимущества

Широкая поддержка 

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

 Низкое энергопотребление

Добейтесь большего с Cortex-M3, который отличается исключительной 32-битной производительностью при низкой динамической мощности. Он также обеспечивает ведущую энергоэффективность системы благодаря встроенным программно-управляемым спящим режимам, обширному стробированию тактовых импульсов и дополнительному сохранению состояния.

Развертывание на ПЛИС

Доступен по цене 0 долларов США для использования в проектах FPGA, прототипах и коммерческих проектах.

Технические характеристики

Процессор Cortex-M3 специально разработан для высокопроизводительных и недорогих платформ для широкого спектра устройств, включая микроконтроллеры, автомобильные кузовные системы, промышленные системы управления, беспроводные сети и датчики.

Дополнительные сведения см. в ресурсах для разработчиков.

Ключевая документация

Варианты использования

Где воплощаются в жизнь инновации и идеи

Умные домашние устройства

Все более интеллектуальные устройства и расширенные уровни взаимодействия требуют 32-разрядной производительности без ущерба для стоимости или мощности. Cortex-M3 используется во многих устройствах умного дома, обеспечивая идеальный баланс производительности, стоимости и простоты программирования, необходимых для устройств умного дома.

Узнать больше

Приложения Интернета вещей (IoT)

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

Узнать больше

Поговорите с экспертом

Узнайте, как процессор Arm Cortex-M3 может повысить энергоэффективность ваших самых маленьких приложений.

Свяжитесь с нами

Доступно в Arm Flexible Access

Чтобы получить неограниченный доступ к этому продукту и другим полезным IP-адресам Arm, посетите сайт Arm Flexible Access. Начните свой проект с правильного пути с помощью ведущего в мире портфолио дизайна SoC. Этот IP-адрес ЦП доступен в Arm Flexible Access по цене 0 долларов США.

Узнать больше

Сопутствующие продукты и услуги

Ознакомьтесь с дополнительными опциями и функциями

Виртуальное оборудование Arm

Виртуальное оборудование Arm предоставляет модели процессоров, систем и оборудования сторонних производителей для разработчиков приложений и разработчиков SoC для создания и тестирования программного обеспечения без оборудования, ускорение разработки IoT и ML.

Подробнее

Arm Development Studio

Комплексная среда разработки программного обеспечения для всех систем на базе Arm, включая Arm Compiler, отладчики, IDE, инструменты анализа производительности, модели и промежуточное ПО.

Узнать больше

Corstone-101

Пакет Arm Corstone-101 содержит предварительно проверенную подсистему и системный IP-адрес, чтобы помочь сделать разработку безопасных пользовательских SoC для IoT и встроенных приложений быстрой и эффективной.

Узнать больше

Архитектура и технологии

Основа кремниевого успеха  

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

Ресурсы Cortex-M3

Справочник

  • Разработка системы на кристалле с процессорами Arm Cortex-M

Блог

  • Гибкий подход к повышению функциональной безопасности ЦП

Практический пример

  • От концепции до воплощения в жизнь за 6 месяцев с помощью DesignStart
  • Стартап использует Arm DesignStart Pro для проверки концепции и получает финансирование в размере 16 млн долларов

Инструменты

  • Обзоры дизайна

Тренировка

  • Опции для тренировки рук

Событие

  • Онлайн-семинар: Интеграция программного IP-процессора Arm Cortex-M в ПЛИС

ARM Cortex-M3 DesignStart | Mbed

ARM® Cortex-M3 DesignStart™ Eval позволяет проектным группам проектировать, моделировать и создавать прототипы цифровых элементов своих пользовательских SoC. С помощью Cortex-M3 DesignStart разработчики могут получить бесплатный и мгновенный доступ к процессору Cortex-M3 и подсистеме CoreLink SSE-050 для проектирования, моделирования и последующего прототипирования на системе прототипирования ARM MPS2+ FPGA+. Cortex-M3 DesignStart имеет встроенную поддержку mbed™OS и mbed Cloud, что позволяет разработчикам быстро и легко интегрировать свой дизайн с облачным IoT-приложением.

Информация о подсистеме¶

Пример системы Cortex-M3 DesignStart Eval включает в себя все компоненты и периферийные устройства, необходимые для реализации полной системы SoC на платформе MPS2+ FPGA, включая процессор Cortex-M3, подсистему, стандартный набор периферийных устройств, предназначенных для поддержки разработки программного обеспечения для конечной точки IoT, в сочетании с полной поддержкой mbed™OS и mbed Cloud. Пакет DesignStart Eval предоставляет среду моделирования RTL и возможность расширения проекта для создания индивидуального образа FPGA. В дополнение к стандартным периферийным устройствам, предоставляемым системой прототипирования MPS2+ FPGA, пример системы Cortex-M3 DesignStart Eval предоставляет следующие периферийные устройства:

  • Два таймера, предназначенные для использования ОС mbed
  • Таймеры, UART, Watchdog, RTC и генератор истинных случайных чисел для использования в приложениях
  • Интерфейс SPI для карты micro SD

Процессор и подсистема Cortex-M3 также доступны для полного лицензирования через Cortex-M3 DesignStart Pro — предоставление бесплатной лицензии на Cortex-M3 и подсистему CoreLink SSE-050 для полной разработки, производства и коммерциализации SoC.

Реализация Cortex-M3 DesignStart Eval в FPGA¶

  • Форм-фактор: 140×120 см
  • SRAM: 8 МБ SRAM с одним циклом, 16 МБ PSRAM
  • Две дополнительные области по 4 МБ — 1 RAM и 1 FLASH
  • Видео: панель с сенсорным экраном QSVGA, разъем 4bit RGB VGA
  • Аудио: Аудиокодек
  • Отладка: ◦разъем ARM JTAG20
    • Разъем параллельной трассировки ARM (MICTOR38)
    • 20-контактный отладочный разъем Cortex
    • 10-контактный разъем отладки Cortex
    • Разъем ILA для отладки ПЛИС
  • Расширение
    • GPIO
    • СПИ
  • MPS2+ Лист данных
  • Техническое руководство по MPS2+
  • MPS2+ Веб-страница продукта
  • Зарегистрируйтесь в Cortex-M3 DesignStart Eval, чтобы загрузить образ FPGA

Поддержка CMSIS-DAP для этой платформы обеспечивается BIOS базовой платы. Вам потребуется mbb_v221 (входит в комплект DesignStart) или более поздней версии. последняя версия микропрограммы — mbb_v266, и она доступна в сообществе DesignStart.

CMSIS-DAP на MPS2+ не поддерживает UART через то же соединение USB, необходимо использовать разъем DB-9 и прилагаемый кабель.

Когда вы загружаете скомпилированный образ в FPGA, обязательно используйте имя файла формата 8:3 и укажите это имя файла в V2M_MPS2:\MB\HBI0263C\AN511\images.txt (если bin-файл находится в SOFTWARE) или поместите один файл .bin в корневой каталог диска V2M_MPS2: (который переопределит образ, указанный в текущем файле images.txt).

Дополнительные сведения см. в руководстве пользователя FPGA и руководстве пользователя RTL. всегда активный домен, если на вашу платформу добавлены мощные домены.

Для получения дополнительной информации о тестировании карты USB через SPI см. эту тему в сообществе Arm.

Плата MPS2+ FPGA также может использоваться с различными зашифрованными реализациями линейки процессоров Cortex-M, но они обеспечивают более простую карту памяти на основе CMSDK и должны использоваться с конфигурацией платы ARM-MPS2.

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

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