Журнал "Новости Электроники", номер 1, 2008 год Ми

Журнал "Новости Электроники", номер 1, 2008 год Микроконтроллеры на основе ядра ARM Cortex M3 Микроконтроллеры на основе ядра ARM Cortex M3 Константин Староверов

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

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

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

Именно для решения данных задач и было разработано ядро 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).

 

 

Рис. 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).

 

 

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

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

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

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

 

 

 

Рис. 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 10x12 бит 2x16 бит
(8/8/8) 2 сторожевых таймера,
24-битный счетчик STM32F101T8 64 10 10x12 бит 3x16 бит
(12/12/12) 48-выв. STM32F101C6 32 6 10x12 бит 2x16 бит
(8/8/8) STM32F101C8 64 10 10x12 бит 3x16 бит
(12/12/12) STM32F101CB 128 16 10x12 бит 3x16 бит
(12/12/12) 64-выв. STM32F101R6 32 6 16x12 бит 2x16 битt
(8/8/8) STM32F101R8 64 10 16x12 бит 3x16 бит
(12/12/12) STM32F101RB 128 16 16x12 бит 100-выв. STM32F101V8 64 10 16x12 бит STM32F101VB 128 16 16x12 бит 36-выв. STM32F101T6 32 6 10x12 бит 3x16 бит
(12/12/14) STM32F101T8 64 10 10x12 бит 4x16 бит (16/16/18) 48-выв. STM32F103C6 32 10 10x12 бит 3x16 бит (12/12/14) STM32F103C8 64 20 10x12 бит 4x16 бит
(16/16/18) STM32F103CB 128 20 10x12 бит 4x16 бит
(16/16/18) 64-выв. STM32F103R6 32 10 16x12 бит 3x16 бит
(12/12/14) STM32F103R8 64 20 16x12 бит 4x16 бит
(16/16/18) STM32F103RB 128 20 16x12 бит 100-выв. STM32F103V8 64 20 16x12 бит STM32F103VB 128 20 16x12 бит     Последовательный
интерфейс Число
линий
в/в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.

 

 

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

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

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

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

бесплатный набор драйверов всех стандартных блоков и УВВ, от портов ввода-вывода и таймеров до блоков CAN, I2C, внешней шины, SPI, UART, АЦП и др.бесплатные библиотеки для векторного управления электродвигателями, в том числе асинхронными с короткозамкнутым ротором.новости, документация, рекомендации по применению, примеры программ (доступны в Интернете по ссылке ).ряд операционных систем реального времени сторонних компаний (без уплаты роялти), в т.ч. CMX-RTX (CMX Systems: ), FreeRTOS (www.FreeRTOS.org), PowerPac (IAR: ), ARTX-ARM (Keil: ), mC/OS-II (Micrium: ), embOS (Segger: ).интегрированные среды для проектирования (коммерческие), в т.ч. 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 поддерживаются полным набором инструментальных средств для проектирования, в т.ч. технической документацией, интегрированными средами для проектирования, примерами программ и библиотек драйверов встроенных устройств ввода-вывода, а также различными наборами для проектирования.

 

Вернуться к содержанию номера







Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.