Микроконтроллеры на основе ядра ARM Cortex M3

  

Перед разработчиком современных встраиваемых микроконтроллерных систем, как правило, остро стоят следующие задачи:

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

Именно для решения данных задач и было разработано ядро Cortex-M3 c рядом усовершенствований в архитектуре. В частности ядром, которое содержит 3-ступечатый конвейер и выполнено по Гарвардской архитектуре, поддерживается ряд новых возможностей, в том числе предсказание переходов, однотактное умножение данных, аппаратное деление данных. Реализация данных новаций позволила добиться уровня удельной производительности 1.25 DMIPS/МГц. Кроме того, в ядре Cortex-M3 реализован новый набор инструкций Thumb-2, который в некоторых случаях позволяет добиться увеличения удельной производительности на 70% по сравнению с ядром ARM7TDMI-S, исполняющим инструкции Thumb, и на 35% – по сравнению с тем же ядром, исполняющим инструкции ARM.

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

При разработке ядра Cortex-M3 учитывалось, что разработчик должен приложить минимум усилий на освоение программирования. Теперь не нужно изучать ассемблерный код и глубоко вникать в особенности архитектуры процессора. Предложенный новый набор инструкций Thumb-2 более естественно воспроизводит Си-код, поддерживая такие операции, как побитная обработка, аппаратное деление и инструкции типа If/Then. Оптимальный как по производительности, так и по плотности кода набор инструкций Thumb-2 теперь исключает необходимость выбирать режим работы: ARM или Thumb. Ускорить процесс проектирования также поможет встроенная отладочная система, которая помимо традиционного порта JTAG содержит и двухпроводной последовательный порт SW.

Архитектура ядра Cortex-M3

Ядро Cortex-M3 выполнено по архитектуре ARMv7-M (профиль М) и имеет иерархическую структуру (рис. 1).

 

Архитектура ядра Cortex-M3

 

Рис. 1. Архитектура ядра Cortex-M3

Его основой является ЦПУ CM3Core, дополненное такими внешними устройствами, как контроллер вложенных векторных прерываний (КВВП), блок защиты памяти и система отладки и трассировки. Каждое из этих внешних устройств поддерживает расширенные возможности по конфигурации. ЦПУ ядра Cortex-M3 выполнено по гарвардской архитектуре с раздельными пространствами памяти программ и памяти данных. Этим оно отличается от ЦПУ ядер семейства ARM7, выполненных по фон-неймановской архитектуре с общим пространством памяти данных и памяти программ. Благодаря возможности одновременного считывания из памяти кода инструкции и данных ядро Cortex-M3 способно производить несколько операций параллельно, что ускоряет выполнение программы.

Конвейер инструкций ЦПУ имеет 3 ступени для выборки инструкции, ее дешифрации и выполнения. Если на конвейере оказывается инструкция перехода, то на этапе ее дешифрации также выполняется выборка инструкции, определенной в результате предсказания перехода, что ускоряет выполнение программы.

ЦПУ Cortex-M3 поддерживает дешифрацию как традиционных инструкций Thumb, так и новых инструкций Thumb-2. В состав ЦПУ входят АЛУ с возможностями аппаратного деления и умножения данных, логика управления и интерфейсы к прочим компонентам процессора. В него также входят 13 регистров общего назначения, два указателя стека, счетчик команд и ряд специальных регистров, в т.ч. регистр статуса программы. Каналы передачи данных, банк регистров и интерфейс памяти ядра Cortex-M3 являются 32-битными. Ядро Cortex-M3 может работать в одном из двух режимов работы: «Thread» и «Handler», и поддерживает два уровня доступа к коду программы: привилегированный и непривилегированный, что облегчит реализацию сложных и открытых систем, не жертвуя при этом защищенностью системы. Код программы, исполняемый в непривилегированном режиме, имеет ограниченные возможности по доступу к некоторым ресурсам и специфическим областям памяти. Режим «Thread» является типичным режимом работы, в котором код программы может быть как привилегированным, так и непривилегированным. Переход в режим «Handler» происходит при возникновении исключительной ситуации (exception); в данном режиме весь код программы выполняется как привилегированный. Также предусматривается такое понятие, как рабочее состояние ядра. Их два: Thumb, в котором выполнение инструкций идет обычным путем, и Debug, в котором активизируются встроенные отладочные возможности ядра.

Несмотря на использование Гарвардской архитектуры, все пространства памяти ЦПУ Cortex-M3 имеют общую линейную систему распределения адресов в пространстве размером 4 Гбайт (рис. 2).

 

Адресное пространство процессора Cortex-M3

 

Рис. 2. Адресное пространство процессора Cortex-M3

В левой части рисунка некоторые сокращения на русском, другие на английском, легко запутаться, например, при расшифровке ETM

В пространстве статического ОЗУ и устройств ввода-вывода имеется битно-адресуемая область размером 1 Мбайт. В отличие от общепринятого способа «чтение-модификация-запись», использующегося для битовой обработки и характеризующегося неэффективным расходованием машинных циклов, в ядре Cortex M3 используется более простой и эффективный способ. Он получил название "Bit Banding" и заключается в том, что доступ к битам в области хранения битов (см. рис. 2) осуществляется записью не в эту область, а в связанную с ней область доступа к битам, каждому байту которой назначен свой бит в области хранения. При этом за состояние бита в области хранения отвечает младший бит соответствующего байта в области доступа. Таким образом, вместо шести инструкций, необходимых для выполнения операции «чтение-модификация-запись», выполняется только одна операция записи в ячейку памяти (три инструкции).

Отличием архитектуры ARMv7-M от предшествующих архитектур ARM является поддержка нового набора инструкций Thumb-2. Этот набор объединяет преимущества 16- и 32-битных инструкций, позволяя добиться как производительности 32-битных ARM-инструкций, так и высокой плотности 16-битных Thumb-инструкций (рис. 3).

 

 Сравнение тестов Drystone наборов инструкций ARM, Thumb и Thumb-2

 

Рис. 3. Сравнение тестов Drystone наборов инструкций ARM, Thumb и Thumb-2

Процессор Cortex-M3 содержит более совершенную систему прерываний (относительно ARM7), характеризующуюся задержкой вызова процедуры обработки прерывания всего лишь 12 машинных циклов (для сравнения, ARM7TDMI-S требует 24-42 цикла). Основу системы прерываний составляет КВВП, который в стандартной реализации поддерживает одно немаскируемое прерывание и 32 прерывания общего назначения с 8 уровнями приоритетов (в общем случае число прерываний может достигать 240 при 256 уровнях приоритета).

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

Доступ к встроенной отладочной системе реализован посредством порта доступа к отладочной системе (DAP), который с внешней средой связывается по одному из последовательных интерфейсов: 2-выводной последовательный отладочный порт SW или стандартный 5-выводной последовательный порт JTAG. Появление 2-выводного интерфейса делает возможным появление 32-битных микроконтроллеров с числом выводов менее 10 и существенно упрощает электрическое подключение к отлаживаемому устройству. Для микроконтроллеров с масочным ПЗУ предусмотрен специальный блок Flash Patch, который во время отладки позволяет осуществлять выборку инструкций не из ПЗУ, а из статического ОЗУ, тем самым существенно упрощая процедуру отладки программного кода для таких микроконтроллеров.

Микроконтроллеры на основе ядра Cortex-M3

Одной из компаний, которая уже освоила серийный выпуск флэш-микроконтроллеров на основе процессора Cortex M3, является STMicroelectronics (далее STM). Данные микроконтороллеры образуют семейство STM32. Внутри семейства микроконтроллеры группируются на две группы: «Performance» и «Access» (табл. 1).

Таблица 1. Микроконтроллеры компании STM на основе ядра Cortex-M3  

  Наименование Флэш-
память, кБ
ОЗУ, кБ АЦП Таймеры
(IC/OC/
PWM1))
Прочие
таймеры
36-выв. STM32F101T6 32 6 10×12 бит 2×16 бит
(8/8/8)
2 сторожевых таймера,
24-битный счетчик
STM32F101T8 64 10 10×12 бит 3×16 бит
(12/12/12)
48-выв. STM32F101C6 32 6 10×12 бит 2×16 бит
(8/8/8)
STM32F101C8 64 10 10×12 бит 3×16 бит
(12/12/12)
STM32F101CB 128 16 10×12 бит 3×16 бит
(12/12/12)
64-выв. STM32F101R6 32 6 16×12 бит 2×16 битt
(8/8/8)
STM32F101R8 64 10 16×12 бит 3×16 бит
(12/12/12)
STM32F101RB 128 16 16×12 бит
100-выв. STM32F101V8 64 10 16×12 бит
STM32F101VB 128 16 16×12 бит
36-выв. STM32F101T6 32 6 10×12 бит 3×16 бит
(12/12/14)
STM32F101T8 64 10 10×12 бит 4×16 бит (16/16/18)
48-выв. STM32F103C6 32 10 10×12 бит 3×16 бит (12/12/14)
STM32F103C8 64 20 10×12 бит 4×16 бит
(16/16/18)
STM32F103CB 128 20 10×12 бит 4×16 бит
(16/16/18)
64-выв. STM32F103R6 32 10 16×12 бит 3×16 бит
(12/12/14)
STM32F103R8 64 20 16×12 бит 4×16 бит
(16/16/18)
STM32F103RB 128 20 16×12 бит
100-выв. STM32F103V8 64 20 16×12 бит
STM32F103VB 128 20 16×12 бит

 

  Последовательный
интерфейс
Число
линий
в/в2)
Корпус Напря-
жение
питания,
В
Специальные
возможности
36-выв. 1xSPI/1xI2C/2xUSART (IrDa/ISO7816) 26 QFN36 2…3.6 Группа «Access»: тактовая частота ЦПУ 36 МГц, вывод Vbat, 3 экономичных режима работы, схемы POR, PDR  и PVD, встроенный RC-генератор 8 МГц, встроенный RC-генератор 32 кГц, основной генератор 4…16 МГц, специальный генератор 32 кГц, рабочий температурный диапазон -40…85°C
1xSPI/1xI2C/2xUSART (IrDa/ISO7816) 26 QFN36 2…3.6
48-выв. 1xSPI/1xI2C/2xUSART (IrDa/ISO7816) 36 LQFP48 2…3.6
2xSPI/2xI2C/3xUSART (IrDa/ISO7816) 36 LQFP48 2…3.6
2xSPI/2xI2C/3xUSART (IrDa/ISO7816) 36 LQFP48 2…3.6
64-выв. 1xSPI/1xI2C/2xUSART (IrDa/ISO7816) 51 LQFP64 2…3.6
2xSPI/2xI2C/3xUSART (IrDa/ISO7816) 51 LQFP64 2…3.6
51 LQFP64 2…3.6
100-выв. 80 LQFP100 2…3.6
80 LQFP100 2…3.6
36-выв. 1xSPI/1xI2C/2xUSART (IrDa/ISO7816)/USB/CAN 26 QFN36 2…3.6 Группа «Performance»: тактовая частота ЦПУ 72 МГц, вывод Vbat, 3 экономичных режима работы, схемы POR, PDR  и PVD, встроенный RC-генератор 8 МГц, встроенный RC-генератор 32 кГц, основной генератор 4…16 МГц, специальный генератор 32 кГц, 1x USART (4,5 Мбит/сек), быстродействие переключения линий ввода-вывода 18 МГц, ШИМ-контроллер ориентированный на управление электроприводом, 2x АЦП, рабочий температурный диапазон -40…85°C или -40…105°C
2xSPI/2xI2C/3xUSART (IrDa/ISO7816)/USB/CAN 26 QFN36 2…3.6
48-выв. 1xSPI/1xI2C/2xUSART (IrDa/ISO7816)/USB/CAN 36 LQFP48 2…3.6
2xSPI/2xI2C/3xUSART (IrDa/ISO7816)/USB/CAN 36 LQFP48 2…3.6
2xSPI/2xI2C/3xUSART (IrDa/ISO7816)/USB/CAN 36 LQFP48 2…3.6
64-выв. 1xSPI/1xI2C/2xUSART (IrDa/ISO7816)/USB/CAN 51 LQFP64 2…3.6
2xSPI/2xI2C/3xUSART (IrDa/ISO7816)/USB/CAN 51 LQFP64 2…3.6
51 LQFP64 2…3.6
100-выв. 80 LQFP100, BGA100 2…3.6
80 LQFP100, BGA100 2…3.6

Микроконтроллеры первой группы (STM32F103) работают на частоте 72 МГц и отличаются более высокой степенью интеграции ОЗУ и устройств ввода-вывода (УВВ). В свою очередь, микроконтроллеры 2-ой группы (STM32F101) работают на частоте 36 МГц и менее насыщены оперативной памятью и устройствами ввода-вывода. Микроконтроллеры обоих групп с одинаковым объемом флэш-памяти совместимы как программно, так и электрически (одинаковое расположение выводов). Уровень удельного энергопотребления микроконтроллеров составляет всего лишь 0,19 мВт/МГц. При работе на частоте 72 МГц потребляемый ток составляет 27 мА. Кроме того, уровень потребления может быть еще больше снижен при переходе в один из экономичных режимов работы (например, до 3.4 мкА в дежурном режиме с работающими ЧРВ). Такие характеристики энергопотребления позволяют не только использовать микроконтроллеры в системах с батарейным питанием, но и снизить стоимость источника питания.

Микроконтроллеры «Performance» ориентированы на применения, которые требуют одновременно и повышенной производительности обработки и экономичной работы, а также используют коммуникационные интерфейсы USB 2.0 и/или CAN. Наличие у этих микроконтроллеров 6-канального ШИМ-контроллера с возможностями синхронизации каналов внешним сигналом также ориентирует эти микроконтроллеры на применение в устройствах управления электроприводами.

Невысокая стоимость микроконтроллеров «Access» делает их идеальными для модернизации существующих 8- или 16-битных проектов с целью расширения возможностей по обработке информации, управлению и передачи данных.

Разобраться в структуре микроконтроллеров STM32 поможет схема на рис. 4.

 

Структурная схема микроконтроллеров STM32

 

Рис. 4. Структурная схема микроконтроллеров STM32

ЦПУ Cortex M3 связывается с памятью и устройствами ввода-вывода посредством быстродействующей шинной матрицы. Для организации последовательной передачи данных предусмотрены интерфейсы USB (12Мбит/сек), USART (до 4,5 Мбит/сек), I2C (400 кГц) и SPI (18 МГц). Реализовать канал последовательной передачи по стандарту CAN поможет входящий в состав некоторых микроконтроллеров одноименный контроллер.

Поддержка проектирования

Для облегчения и ускорения процесса проектирования STM предлагает следующий набор инструментов:

  • бесплатный набор драйверов всех стандартных блоков и УВВ, от портов ввода-вывода и таймеров до блоков CAN, I2C, внешней шины, SPI, UART, АЦП и др.
  • бесплатные библиотеки для векторного управления электродвигателями, в том числе асинхронными с короткозамкнутым ротором.
  • новости, документация, рекомендации по применению, примеры программ (доступны в Интернете по ссылке http://www.st.com/stm32).
  • ряд операционных систем реального времени сторонних компаний (без уплаты роялти), в т.ч. CMX-RTX (CMX Systems: www.cmx.com), FreeRTOS (www.FreeRTOS.org), PowerPac (IAR: www.iar.com), ARTX-ARM (Keil: www.keil.com), mC/OS-II (Micrium: www.micrium.com), embOS (Segger: www.segger.com).
  • интегрированные среды для проектирования (коммерческие), в т.ч. uVision3 (Keil), EWARM (IAR) и др.
  • стартовые наборы, оценочные наборы и наборы для проектирования (см. табл. 2).

Таблица 2. Инструментальные средства для проектирования

Код заказа Описание
STM3210B-PRIMER Стартовый набор компании Raisonance для МК STM32. В состав входит IDE «RIDE» (отладка кода размером до 32 кбайт), компилятор GNU C/C++, а также простая в освоении платформа с управлением по типу MEMS-систем и встроенным RLink (USB/JTAG)
STM3210B-PFSTICK Модуль для подключения к компьютеру через порт USB. Предназначен для изучения возможностей и характеристик МК STM32. Для оценки возможностей встроенных УВВ предусмотрен разъем расширения. Комплектуется набором программных инструментов Hitex (без ограничений), компилятором TASKING VX C/C++ и средой для проектирования HiTOP5 компании Hitex.
STM3210B-SK/HIT Стартовый набор компании Hitex. Содержит неограниченные среду для проектирования HiTOP5 и компилятор Tasking VX, модуль STM32-PerformanceStick (описан выше), плату расширения ввода-вывода
STM3210B-SK/IAR Стартовый набор компании IAR (для кода размером до 32 кбайт), комплектуется компилятором IAR C/C++, адаптером J-Link (USB/JTAG) и оцeночной платой
STM3210B-SK/KEIL Стартовый набор RealView компании Keil. Комплектуется IDE uVision 3 (для кода размером до 16 кбайт), компилятор ARM C/C++, адаптером ULINK (USB/JTAG) и оценочной платой
STM3210B-SK/RAIS Стартовый набор REva компании Raisonance с IDE "RIDE" (отладка до 32 кбайт кода), компилятором GNU C/C++, модульной оценочной аппаратной частью со встроенным адаптером RLink (USB/JTAG)
STM3210B-MCKIT Стартовый набор компании ST для проектирования устройств управления электроприводом. Комплектуется полным набором библиотек по управлению двигателем с использованием датчиков и без них, оценочной аппаратной платформой (реализует векторное управление асинхронным двигателем), а также адаптером J-Link компании Segger для подключения отладочной системы к ПК.
STM3210B-EVAL Завершенная оценочная аппаратная платформа с микроконтроллером STM32F103. Поддерживается весь набор встроенных УВВ и функциональных возможностей.

Выводы

  • Микроконтроллеры на основе ядра Cortex-M3 предназначены для использования в составе встраиваемых применений, где требуется одновременное сочетание высокой производительности, возможностей работы в масштабе реального времени, малой потребляемой мощности и низкой стоимости.
  • Ключевыми отличиями ядра Cortex-M3, которые позволили ему превзойти предшественника ARM7, являются использование нового набора инструкций Thumb-2, который одновременно сочетает и высокое быстродействие исполнения и отличную плотность, и усовершенствованная система прерываний, характеризующаяся вдвое меньшими потерями времени на вызов процедуры обработки прерывания (по сравнению с ARM7).
  • Невысокая стоимость микроконтроллеров со встроенным ядром Cortex-M3 и доступность микроконтроллеров с малым числом выводов делает их привлекательным инструментом для развития существующих 8- и 16-битных применений с целью расширения возможностей по обработке информации и передачи данных.
  • Встроенная отладочная система помимо стандартного порта JTAG дополнена новым 2-проводным последовательным интерфейсом, что с одной стороны облегчит электрическое подключение отлаживаемого устройства, а с другой создает предпосылки для появления в будущем 32-битных микроконтроллеров с числом выводов менее 10.
  • Серийный выпуск микроконтроллеров со встроенным ядром Cortex-M3 освоен компанией STMicroelectronics. Ее семейство STM32 составляют микроконтроллеры с высокой степенью интеграции запоминающих устройств и высококачественных устройств ввода-вывода (например, 12-битный АЦП с частотой преобразования 1МГц). Доступны микроконтроллеры для подключения к шинам USB и CAN, а также с ШИМ-контроллером, оптимизированного для управления силовым каскадом регулируемого электропривода.
  • Микроконтроллеры STM32 поддерживаются полным набором инструментальных средств для проектирования, в т.ч. технической документацией, интегрированными средами для проектирования, примерами программ и библиотек драйверов встроенных устройств ввода-вывода, а также различными наборами для проектирования.

 

МИкроконтроллеры STM32

 

Получение технической информации, заказ образцов, поставка -
e-mail:
mcu.vesti@compel.ru 

 

Новый миниатюрный ШИМ-контроллер

STMicroelectronics, мировой лидер в поставках полупроводников для систем управления питанием, расширил линейку новой серией гибких в применении и высоко производительных ШИМ-контроллеров. Новые элементы – L6726A, L6727, L6728, L6728A (в стандартном SO-8 или миниатюрном 3х3 мм DFN-корпусе) включают в себя источник опорного напряжения, логику управления, GATE-драйверы, цепи проверки и защиты. Все четыре устройства предназначены для использования на материнских платах и организации схемы распределенного питания (POL – Point of Load). В двух моделях этих чипов предусмотрены дополнительные функции для высокопроизводительных применений. Во-первых, это, PowerGOOD-выход, выдающий информацию о состоянии работы ИС. Во-вторых, – специальный чувствительный выход для защиты от перегрузки напряжения и определения напряжения, недостаточного для работы.

Элементы L6726A и L6727 являются недорогими однофазными ШИМ-контроллерами c встроенными сильноточными драйверами. Они позволяют достаточно легко создавать понижающие DC/DC-конвертеры для широкого спектра применений: от питания узлов персональных компьютеров (память, чипсеты) до источников питания общего назначения. Обладая высокой интеграцией, эти компактные устройства позволяют значительно снизить цену и размеры источников питания.



 

 

 

Недорогой эмулятор для семейства С2000 DSP TI

Одно из самых популярных семейств цифровых сигнальных процессоров компании Texas Instruments в России – С2000. Семейство в первую очередь предназначено для приложений управления приводами. Одной из трудностей использования этого семейства до настоящего момента являлась дороговизна отладочных средств, а именно внутрисхемных эмуляторов (во внимание берем только рекомендованные TI). Разработчикам приходилось переплачивать за неиспользуемый функционал: первоначально эмуляторы поддерживали все семейства DSP TI.

Компания Blackhawk предлагает новый эмулятор, USB2000 Controller (part#: BH-USB-2000), предназначенный для работы только с семействами F280x, F280xx, F281x, F283x и LF240x. USB2000 Controller – эмулятор третьего поколения, построен на базе проверенных и хорошо зарекомендовавших себя технологий USB510 и USB2.0, впервые анонсированных Blackhawk в 2002 году.

USB2000 Controller – быстрый и надежный эмулятор с малыми габаритами. Он разработан специально для удовлетворения потребностей разработчиков, использующих в своих разработках DSP Texas Instruments семейства C2000. Эмулятор совместим с утилитой Blackhawk FlashBurn для программирования Flash-памяти. USB2000 Controller предлагается по удивительно низкой цене в $350. Это самая низкая цена среди производителей подобных изделий.

Совместно с USB2000 Controller Blackhawk предлагает изолирующий адаптер для JTAG интерфейса – Isolation Adapter. Он гальванически развязывает эмулятор и целевую плату, оперирующую большими напряжениями, и защищает их от повреждений.

Специально для разработчиков Blackhawk предлагает программно-аппаратную связку из USB2000 Controller и среды разработки C2000 Code Composer Studio (TI’s part#: TMDSCCS2000-1) по специальной цене $825.