Тенденции рынка и микроконтроллеры Stellaris от Luminary Micro на базе ядра Cortex-M3

№ 11’2007
PDF версия
В статье рассматриваются некоторые тенденции рынка микроконтроллеров и семейство микроконтроллеров на базе ядра Cortex-M3 — Stellaris, производимых фирмой Luminary Micro. Выполнено сравнение данных устройств с 8-разрядными микроконтроллерами и микроконтроллерами на базе более ранних версий ядра ARM.

В статье рассматриваются некоторые тенденции рынка микроконтроллеров и семейство микроконтроллеров на базе ядра Cortex-M3 — Stellaris, производимых фирмой Luminary Micro. Выполнено сравнение данных устройств с 8-разрядными микроконтроллерами и микроконтроллерами на базе более ранних версий ядра ARM.

О тенденциях рынка

Рассмотрим, что происходит на рынке микроконтроллеров за последние 10 лет. На рис. 1 показана динамика роста продаж микроконтроллеров. Обратим свое внимание в основном на 16- и 32-разрядные микроконтроллеры. 16-разрядные микроконтроллеры, как тогда казалось, должны были завоевать рынок и постепенно вытеснить 8-разрядные. Однако этого не произошло. Во-первых, 8-разрядные микроконтроллеры стали значительно быстрее и производительнее. И появились модели микроконтроллеров с большой флэш-памятью команд, находящейся на кристалле. Появились компиляторы Си, поддерживающие архитектуры 8-разрядных микроконтроллеров. Мало того, появились и коммерческие операционные системы, которые можно портировать на 8-разрядные микроконтроллеры.

Динамика роста продаж микроконтроллеров
Рис. 1. Динамика роста продаж микроконтроллеров

Представим, что рынок состоит из 3 секторов. Нижний сектор рынка — это тот сектор, в котором находятся 8-разрядные модели, средний — 16-разрядные, верхний — 32-разрядные. Итак, нижний сектор рынка переместился вверх, в сторону более производительных микроконтроллеров. Ну а верхний сектор рынка? Что произошло с ним?

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

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

И все эти процессы действительно дешевеют. На смену кремниевым пластинам диаметром 200 мм пришли пластины диаметром 300 мм. Сейчас происходит этап становления технологии изготовления пластин 450 мм. А это и дает возможность получить с одной пластины вдвое больше микросхем. Что касается технологических норм, то тут нет необходимости напоминать читателям о том, что и этот процесс идет без остановок. Да, затраты на производство микросхем растут, но прибыли растут еще быстрее.

Теперь пора снова обратиться к 32-разрядным и 16-разрядным микроконтроллерам. Что же определяет их цену? Прежде всего — те компоненты микроконтроллеров, которые занимают самую большую площадь кристалла. А не секрет, что именно память команд и занимает до 60–80% площади микросхемы. Следовательно, для производителей микросхем стоимость процессорной части кристалла не является основной в определении стоимости всей микросхемы. Теперь в дело вступают потребители микросхем, и в первую очередь, программисты. Для 16-разрядных процессоров есть ряд ограничений по использованию операционных систем. Нет возможности напрямую работать с памятью большого объема. А механизм страничного переключения памяти не всегда удобен. Что же касается 32-разрядных микропроцессоров, то у них таких ограничений нет. И память адресуется достаточно большого объема и большинство операционных систем — «родные». Примером этих тезисов может быть рис. 2 [1]. На этом рисунке показано соотношение факторов, влияющих на выбор микроконтроллера.

Факторы, влияющие на выбор микроконтроллера
Рис. 2. Факторы, влияющие на выбор микроконтроллера

Как мы видим, при выборе микроконтроллера на первое место пользователи ставят именно программные продукты. На втором месте — цена, на третьем — производительность. И на четвертом — операционная система. И по все этим параметрам 32-разрядные микроконтроллеры оказались привлекательнее, чем 16-разрядные. Именно теперь становится понятным, почему так давно закрылось направление MCS-196. И тихо «ушли» 16-разрядные микроконтроллеры, которые некогда гордо красовались на рынке. Здесь мы не рассматриваем микроконтроллеры, предназначенные для рынка приборов с автономным (батарейным или аккумуляторным) питанием. На этом рынке, где важен каждый микроампер тока питания, совсем другие «правила игры». Так что же получается в итоге? Верхний сектор (32-разрядных микроконтроллеров) завоевал почти всю нишу 16-разрядных микроконтроллеров и вплотную переместился к нижнему сектору 8-разрядных.

Итак, два сектора рынка практически сомкнулись. И остановились в «позиционной войне»? Конечно, нет! Еще раз вспомним глобальную тенденцию рынка — удешевление аппаратных средств. И микроконтроллеры здесь не исключение. Так что же происходит? А происходит дальнейшее давление 32-разрядных микроконтроллеров вниз, теперь уже на сектор 8-разрядных. Еще раз обратимся к рис. 2. На первом месте — программные инструменты. На 4-м — операционные системы. Теперь представим себе ситуацию, когда в изделии надо применить один или несколько 32-разрядных микроконтроллеров и еще «что-то» для вспомогательной задачи, имеющее небольшую производительность и цену. То есть мы можем взять либо 8-разрядный микроконтроллер, либо, с «запасом», — 32-разрядный. Что можно сказать об этой ситуации? Применение двух типов микроконтроллеров крайне невыгодно при разработке. Два комплекта программного обеспечения. Два комплекта операционных систем. Два комплекта библиотек и наработок. Наконец, возможно, что это и два комплекта программистов. Выгодно? Скорее всего, нет! Лицензии на ПО, время, затраченное на изучение программных инструментов, и, наконец, увеличение команды разработчиков — все это отрицательные моменты, удорожающие разработку.

Так где же выход?

«ARM за доллар»

Чтобы более полно понять ситуацию на рынке микроконтроллеров, автор данной статьи рекомендует прочесть книгу о маркетинговых войнах [2], в которой подробно описывается процесс завоевания рынка новым товаром. Фирма, атакующая рынок новым товаром, должна найти свою нишу и нанести на этом направлении наиболее мощный удар. Чем же можно пошатнуть рынок 8-разрядных микроконтроллеров, где уже давно есть устоявшиеся лидеры? И кто же на такое отважился?

«ARM за доллар» — вот такой лозунг выдвинула некоторое время тому назад новая фирма-изготовитель микроконтроллеров Luminary Micro, находящаяся в Техасе (www.luminarymicro.com). Чтобы получить продукт, который смог бы незамедлительно конкурировать с известными и популярными микроконтроллерами, необходимо было выйти на рынок с такими микроконтроллерами, которые не требовали бы от пользователя больших усилий в изучении. В качестве ядра процессора для такого микроконтроллера было выбрано ядро ARM. А если говорить более точно, то Luminary Micro разрабатывает, поставляет и продает микроконтроллеры, основанные на технологии ARM® Cortex-M3™, и как ведущий партнер ARM в технологии Cortex-M3, Luminary Micro выпустила первую в мире реализацию процессора Cortex-M3, обеспечивающего 32-разрядную производительность по стоимости 8/16-разрядных микроконтроллеров (рис. 3). Правда, в последнее время сам этот лозунг фирма сняла, но идея завоевания данного сегмента рынка 32-разрядными микроконтроллерами осталась. И эта идея успешно развивается.

Микропроцессор семейства Stellaris от Luminary Micro
Рис. 3. Микропроцессор семейства Stellaris от Luminary Micro

Семейство микроконтроллеров Stellaris от Luminary Micro, содержащее более 100 микропроцессоров (рис. 4), основано на ядре ARM Cortex-M3, которое работает на частоте до 50 МГц, имеет встроенную Flash и SRAM, регулятор напряжения питания с низким падением напряжения, режим пониженного энергопотребления, оптимизированный для батарейного питания, встроенный сброс по включению питания и по снижению напряжения, аналоговые компараторы, 10-разрядный АЦП, порты ввода/вывода, таймеры и счетчики. В микроконтроллерах данного семейства также интегрировано несколько последовательных интерфейсов, включая 10/100 Ethernet MAC+PHY, CAN, SSI/SPI, до трех портов UART, порт I2C. Следует также упомянуть наличие специализированных периферийных устройств для управления двигателями и другими приводами, таких как выходы ШИМ для управления исполнительными устройствами, встроенный QEI (Quadrature Encoder Input), предназначенный для обработки сигналов датчиков. Все это богатство возможностей позволяет с успехом применять микроконтроллеры Luminary Micro в приложениях, где требуется низкая стоимость, высокая производительность, функциональная насыщенность. Сочетание всех этих характеристик позволяет применять данные контроллеры в различных системах промышленного контроля и автоматизации; бытовых устройствах, схемах управления шаговыми двигателями, щеточными и бесщеточными двигателями постоянного тока, двигателями переменного тока, HVAC, в сетевых и коммуникационных устройствах, в медицинских приборах, разнообразном измерительном оборудовании и электронных приборах. Микроконтроллеры Luminary Micro — одни из немногих ARM-микроконтроллеров, имеющих реализацию физического уровня Ethernet.

Блок-схема микроконтроллера Stellaris
Рис. 4. Блок-схема микроконтроллера Stellaris

Данные микроконтроллеры поддерживаются известными производителями инструментального программного обеспечения и разработчиками операционных систем (табл. 1).

Таблица 1. Программные продукты для ARM MCU Cortex-M3
Программные продукты для ARM MCU Cortex-M3

Ядро ARM Cortex-M3

Все сказанное выше о новых микроконтроллерах необходимо дополнить небольшим экскурсом в архитектуру нового ядра. Новые тенденции рынка отражаются не только на ценах на 32-разрядные микроконтроллеры, но и на архитектуре ядер этих микроконтроллеров. Если первые реализации ядер 32-разрядных микроконтроллеров были ориентированы только на «большие» задачи, то для того, чтобы потеснить 16- и 8-разрядные микроконтроллеры, новым процессорным ядрам необходимо было уметь выполнять задачи, присущие этим микроконтроллерам. Причем выполнять их не менее эффективно и пользоваться для этого небольшими объемами памяти программ и данных. Для этого была разработана система команд Thumb-2. Ядро процессора Cortex-M3 содержит декодер как для традиционной системы команд Thumb, так и для новой системы Thumb-2. Кроме этого, в состав процессора входит усовершенствованное АЛУ с поддержкой аппаратного умножения и деления, блок Memory Protection Unit (MPU), блок управляющей логики и интерфейсы к другим компонентам системы [3]. В таблице 2 показаны преимущества процессоров на базе архитектуры Cortex-M3 перед процессорами на базе классической архитектуры ARM7TDMI-S.

Таблица 2. Параметры ядер процессоров с архитектурой ARM7TDMI-S и Cortex-M3
Параметры ядер процессоров с архитектурой ARM7TDMI-S и Cortex-M3

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

Блок-схема ядра процессора Cortex-M3
Рис. 5. Блок-схема ядра процессора Cortex-M3

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

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

Процессор Cortex-M3 — система, в которой все ее компоненты отображены в поле памяти (рис. 6). Адресуемая процессором память может иметь объем до 4 Гбайт. Распределение зон памяти производится фиксированно для памяти программ, SRAM (пространство памяти данных), внешних блоков памяти или устройств и внутренних или внешних периферийных устройств. Есть также специальная область адресов, зарезервированных производителем.

Карта памяти процессоров с архитектурой Cortex-M3
Рис. 6. Карта памяти процессоров с архитектурой Cortex-M3

Процессор Cortex-M3 разрешает прямой доступ к битам данных (рис. 7, 8). Для этого карта памяти включает два региона для bitbang по 1 Мбайт. Операции чтения/записи по тому адресу, где находится 32-мегабайтная область, перекодируются для доступа к битовой области. Для указания на бит данных используются соответствующие разряды адреса. Однако данная операция не может быть прервана другими действиями, в том числе прерываниями.

Доступ к битовым данным, сравнение работы двух архитектур
Рис. 7. Доступ к битовым данным, сравнение работы двух архитектур
Доступ к битовым данным
Рис. 8. Доступ к битовым данным

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

Как известно, процессоры ARM имеют возможность работать в одном из двух режимов — ARM и Thumb. Теперь к этим режимам добавился еще и режим Thumb-2.

Обработка прерываний

Более ранние версии процессоров ARM не использовали традиционную стековую архитектуру 8- и 16-разрядных машин. Считалось, что прерывания должны будут обрабатываться программно. И обработка прерываний, а именно сохранение контекста, выполнялась в программном режиме. Однако это снижает производительность и требует дополнительных усилий при разработке софта. Для того чтобы упростить переход от 8- и 16-разрядных процессоров к процессору с новой архитектурой ядра ARM, фирма ARM выполнила контроллер прерываний, работающий в более привычном аппаратном режиме.

Контроллер прерываний NVIC обеспечивает процессору широкие возможности по обработке прерываний, среди которых есть одно немаскируемое и 32 физических прерывания общего назначения с 8 уровнями приоритета. Он может быть сконфигурирован для генерации 240 физических прерываний с 256 уровнями приоритета.

Для обработки прерываний используется перемещаемая таблица векторов, в которой записаны адреса переходов на подпрограммы обработки прерываний. Эта таблица векторов после сброса расположена по нулевому адресу, но может быть перемещена при записи кода управления в соответствующий управляющий регистр.

Использование стековой архитектуры и аппаратная поддержка сохранения содержания регистров Program Counter, Program Status Register, Link Register и регистров общего назначения R0–R3, R12 в стеке позволила сократить время с 30 тактов до 6. На рис. 9 показано, как производится обработка вложенных прерываний IRQ1 и IRQ2 в том случае, когда они возникли одновременно. Прерывание IRQ1 имеет больший приоритет и обрабатывается первым, следом за ним производится обработка прерывания IRQ2. На рисунке видно, что для более ранних моделей процессоров каждое прерывание обрабатывается отдельно, после каждого прерывания производится восстановление данных. А для ядра Cortex-М3 производится обработка вложенных прерываний.

Обработка вложенных прерываний, когда два запроса пришли одновременно
Рис. 9. Обработка вложенных прерываний, когда два запроса пришли одновременно

На рис. 10 показано, как производится обработка вложенных прерываний IRQ1 и IRQ2 в том случае, когда прерывание с высшим приоритетом пришло позже.

Обработка вложенных прерываний, когда прерывание с высшим приоритетом пришло позже
Рис. 10. Обработка вложенных прерываний, когда прерывание с высшим приоритетом пришло позже

На рис. 11 показано, как производится обработка вложенных прерываний IRQ1 и IRQ2 в том случае, когда прерывание с высшим приоритетом пришло после того, как снят запрос на прерывание с низшим приоритетом.

Обработка вложенных прерываний, когда прерывание с высшим приоритетом пришло после того, как снялся запрос на прерывание с низшим приоритетом
Рис. 11. Обработка вложенных прерываний, когда прерывание с высшим приоритетом пришло после того, как снялся запрос на прерывание с низшим приоритетом

Дополнительные узлы и функции, ими выполняемые

В контроллере NVIC также реализованы схема управления питанием процессора и поддержка нескольких режимов энергосбережения. Кроме того, контроллер NVIC содержит интегрированный 24-разрядный декрементирующий системный таймер, который используется для генерирования прерываний при отсчете временных интервалов и является незаменимым блоком при реализации операционных систем реального времени.

MPU (модуль защиты памяти) — дополнительный компонент процессоров архитектуры Cortex-М3, который позволяет существенно улучшить надежность всей системы. MPU производит запрет на обращение к критическим участкам кода, используемого операционной системой.

Поскольку все компоненты системы находятся в общем поле памяти, то блок MPU позволяет получить для каждого компонента системы соответствующий уровень доступа — всего до 8 таких областей, каждая из которых может быть разделена на 8 подобластей.

В состав ядра также входит блок отладки — Debug Access Port (DAP), который подключается либо через двухпроводный Serial Wire Debug Port (SW-DP), либо Serial Wire JTAG Debug Port (SWJ-DP). При отладке могут быть задействованы контрольные точки, точки останова, различные события и т. д.

Стартовые наборы

В разделе «ARM за доллар» говорилось о том, что для успешного продвижения на рынок необходимо не только сделать новый товар, обладающий значительно более привлекательными потребительскими свойствами, чем уже имеющийся в продаже, но и сосредоточить усилия на продвижении этого товара на рынок. Для более успешного продвижения микроконтроллеров, как мы знаем, применяются средства поддержки — стартовые наборы и специализированные программные инструменты. Фирма Luminary Micro выпускает значительное число стартовых наборов (рис. 12), ознакомиться с которыми можно на сайте фирмы по адресу http://www.luminarymicro.com/products/kits.html. Кроме того, фирма предлагает очень недорогой оценочный комплект, который может в дальнейшем использоваться как JTAG-адаптер для программирования устройства пользователя.

Стартовые наборы и программные инструменты для микроконтроллеров Stellaris от Luminary Micro
Рис. 12. Стартовые наборы и программные инструменты для микроконтроллеров Stellaris от Luminary Micro

Выводы

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

Автор не призывает к поголовной замене, но все же там, где раньше был 8-разрядный микроконтроллер, сегодня уже на «вполне законных основаниях» должен быть 32-разрядный.

Литература

  1. Moving to the ARM® Cortex™-M3 from 8-Bit Applications. www.luminarymicro.com
  2. Райс Э., Траут Д. Маркетинговые войны. СПб: Питер.
  3. Sadasivan S. An Introduction to the ARM Cortex-M3 Processor. ARM. October 2006.

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

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