Ок!Закрыть
Содержимое
Корзина

Корзина пуста!


Микроконтроллеры ARM (ARM7 и ARM9) обзор

Сравнительный анализ современных 8 и 32разрядных микроконтроллеров.

 

Появление микроконтроллеров с ядром ARM сделало переход с 8 на 32разрядные встраиваемые
системы естественным и неотвратимым событием. Постоянно повышающаяся функциональная
насыщенность встраиваемых систем обуславливает рост требований к мощности используемых
микроконтроллеров и их программ.

Однако до настоящего времени самыми популярными во встраиваемых системах оставались
8разрядные микроконтроллеры, которые по показателю цена/функциональность были вне конкуренции.
От существовавших 32разрядных микроконтроллеров они отличались рядом преимуществ:

  • низкой ценой;
  • низким потреблением энергии;
  • относительной доступностью качественных средств разработки и отладки.

Однако за последние годы в мире 32разрядных микроконтроллеров произошли события,
которые в корне изменили расклад сил. Ниша исключительного применения 8разрядных
микроконтроллеров оказалась под жёстким давлением со стороны 32разрядных устройств.

Согласно данным маркетингового анализа компании Semico в 2006 г. объём продаж 32разрядных
микроконтроллеров должен превысить продажи 8 и 16разрядных микросхем.
Из приведённой на рис. 1. диаграммы видно, что развитие 16раз рядных микроконтроллеров
идёт существенно более медленными темпами, чем 32разрядных. Это лишний раз говорит о том,
что при принятии решения о смене 8разрядного микроконтроллера на более мощный в качестве
основной стратегической перспективы имеет смысл рассматривать, в первую очередь, сразу
32разрядные микросхемы, минуя 16раз рядные, за исключением особых случаев,
о которых будет сказано ниже.

Стоимость как функция уровней технологии и интеграции

Что же изменилось за последние годы и позволило говорить о массовом вторжении 32разрядных
микроконтроллеров в область 8разрядных приложений?

Во-первых, произошёл массовый переход полупроводниковой индустрии на технологию 0,18 мкм, что резко снизило размеры 32разрядного кристалла и сделало их стоимость сопоставимой со стоимостью аналогичной 8разрядной микросхемы. Однако простого снижения цены было недостаточно.

Помимо стоимости самого микроконтроллера на конечную цену всей системы значительное влияние
оказывала стоимость необходимых периферийных устройств. В этом плане 8разрядные микроконтроллеры традиционно «давали фору» любому 32разрядному конкуренту: они работали от единственного источника питания, интегрировали силовые выводы и всевозможные каналы связи, имели встроенную систему сброса, генерировали системную тактовую частоту от встроенного генератора. Помимо этого, важнейшими требованиями являлись предсказуемое поведение системы при сбоях (функции brownout детектора и сторожевого таймера) и наличие защиты FLASH памяти от несанкционированного считывания (lock bits). 

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

Микроконтроллеры с ядром ARM – лидеры рынка

До сих пор, упоминая 32разрядные микроконтроллеры для встраиваемых систем, мы не называли конкретные архитектуры. Однако на данный момент можно утверждать, что безусловным лидером являются микроконтроллеры с ядром ARM, захватившие 75% рынка.

Хорошо это или плохо – вопрос спорный, однако, по крайней мере, проблему выбора этот факт существенно упрощает.

Если вы в настоящее время задумались над переходом на 32разрядный микроконтроллер с 8разрядного, то микроконтроллер с ядром ARM – это первый кандидат в списке претендентов.

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

Сокращение ARM происходит от названия английской компании Advanced RISC Machines, основанной в 1990 г. в результате сотрудничества компаний Acorn и Apple Computer's.

Первое ядро, названное ARM6, было разработано в 1991 г., однако реальное воплощение получила только следующая разработка – ядро ARM7, созданное в 1993 г. Компания не занимается непосредственным производством микросхем. Возможно, эта особенность, которая, на первый взгляд, воспринимается как недостаток, и способствовала удивительной популярности архитектуры ARM. Фирма поставляет свои разработки в электронном виде, на основе которых клиенты конструируют свои собственные микропроцессоры и микроконтроллеры.

Клиентами ARM являются свыше 60 производителей полупроводников, среди которых можно выделить такие известные компании, как Altera, Analog Devices, Atmel, Cirrus Logic, Fujitsu, MagnaChip (Hynix), Intel, Freescale (Motorola), National Semiconductor, NXP (Philips), OKI, ST Microelectronics и Texas Instruments.

В настоящее время архитектура ARM занимает лидирующие позиции и охватывает 75% рынка 32разрядных встраиваемых RISC микропроцессоров. Фактически можно говорить об архитектуре ARM как о промышленном стандарте. Распространённость ядра предоставляет возможность разработчику более гибко использовать свои и сторонние программные наработки как при переходе на новое процессорное ARM ядро, так и при «миграциях» между разными типами ARM микроконтроллеров.

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

Архитектура ARM отражает собственную философию компании, суть которой – максимальное удовлетворение требованиям встраиваемых систем. Для этого разработчики не стали замыкаться в формальных рамках RISC архитектуры, а в одном продукте реализовали идеи, ранее считавшиеся несовместимыми.

Хотя в своей основе ядро ARM отталкивается от идеологии RISC архитектуры (ограниченный набор команд, очередь выборки инструкций, активное использование регистров и ограниченный доступ к памяти), оно не является «чистым» представителем RISC.

Не все инструкции ARM выполняются за один цикл. Например, есть инструкции, позволяющие переслать между памятью и регистрами 16 слов по 32 разряда. Поскольку подобные операции активно используются компиляторами при каждом вызове и возврате из функций, введение таких инструкций существенно ускоряет работу программы, и минимизируют размер кода.

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

Дополнительно к ARM архитектуре могут интегрироваться несколько расширений:

  • Thumb® – 16разрядный набор инструкций, улучшающий эффективность использования памяти рограмм;

  • DSP – набор арифметических инструкций для цифровой обработки сигналов;

  • Jazelle™ – расширение для аппаратного непосредственного исполнения Java инструкций;

  • Media – расширение для 2…4 кратного увеличения скорости обработки аудио и видеосигналов.

Набор инструкций Thumb

Первоначальная система команд ARM содержала только 32разрядные инструкции. Однако для систем, критичных к стоимости и объёму памяти программ, к которым относятся практически все встраиваемые системы реального времени, большая длина инструкций оказалась «узким местом», ограничивающим распространение новой архитектуры.

FLASH память – один из наиболее дорогих компонентов системы, и снижение её объёмов – актуальная задача. Поэтому в 1995 г. система команд ARM дополнилась новым набором 16разрядных инструкций, получившим название Thumb.

Это стало в инженерном смысле очень красивым решением проблемы. Из всего набора инструкций ARM были отобраны наиболее употребляемые инструкции и перекодированы в 16 разрядные опкоды. При выборке такой инструкции процессор ARM с помощью простого аппаратного дешифратора восстанавливает истинный 32 разрядный код инструкции, который и выполняется процессором. Таким образом, стандартное 32 разрядное ядро без каких-либо переделок получило возможность работы с 16 битовыми инструкциями.

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

Однако при необходимости процессор может легко сменить режим выбора инструкций, переходя из Thum в ARM и обратно. Имея это в виду, разработчик может гибко управлять поведением своей программы, используя наиболее эффективный для каждого случая набор команд: ///

Технология SIMD

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

Набор инструкций DSP

Многие приложения предъявляют повышенные требования по быстродействию реально-временной обработки сигналов. Традиционно в таких ситуациях разработчики прибегают к использованию цифрового сигнального процессора (DSP), что увеличивает энергопотребление и стоимость, как самой разработки, так и конечного устройства. Для устранения этих недостатков в ряд ARM процессоров интегрированы инструкции ЦСП, выполняющие 16 и 32разрядные арифметические операции.

Технология Jazelle

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

Технология ARM Jazelle является расширением 32разрядной RISC архитектуры, которое позволяет ARM процессору выполнять Java код на аппаратном уровне. При этом достигается непревзойдённое быстродействие исполнения Java кода с помощью ARM архитектуры.

Таким образом, разработчики имеют возможность свободно реализовывать Java приложения, в том числе операционные системы и прикладной код, на одном процессоре.

В настоящее время технология Jazelle интегрирована в следующие ARM процессоры:
ARM1176JZ(F)S, ARM1136J(F)S, ARM1026EJS, ARM926EJS и ARM7EJS.

Традиционные ARM процессоры поддерживают два набора инструкций. В режиме ARM поддерживаются 32 разрядные инструкции, а в режиме Thumb наиболее популярные инструкции сжимаются до 16 разрядного формата. Технология Jazelle расширяет эту концепцию, добавляя третий набор инструкций – Java, который активизируется в новом Java режиме.

Технология интеллектуального управления энергопотреблением

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

Традиционным методом снижения энергопотребления является использование экономичных режимов работы, например, холостой ход (idle) или сон (sleep), которые различаются глубиной деактивации внутренних элементов. Как правило, активный режим работы такой системы рассчитан на наихудшие условия функционирования и характеризуется максимальной загрузкой. Тем самым неоправданно сокращается срок службы батареи. Поэтому для оптимизации расходования энергии бата процессоров ARM. Технология является сочетанием аппаратных и программных компонентов, которые сов местно выполняют динамическое управление напряжением питания (power scaling).

Суть метода динамического управления напряжением питания можно понять, проанализировав формулу потребляемой мощности для КМОП процессоров:
где Р – общая потребляемая мощность, С – переключаемая ёмкость, fc – частота процессора, VDD – напряжение питания, IQ – ток утечки в статическом режиме.

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

Семейства ядер и процессоров ARM

К настоящему времени разработано восемь основных семейств ядер:
ARM7™, ARM9™, ARM9E™, ARM10E™, ARM11™, Cortex, SecurCore™ и OptimoDE Data Engines.

Помимо перечисленных, существуют также специфические ядра, разработанные совместно с компанией Intel: XScale™ и StrongARM®.

Первоначально для обозначения различных вариантов ядер и процессоров компания ARM использовала свою внутреннюю систему обозначений, которая предполагала, что имя любого ядра или процессора формируется в соответствии с шаблоном – ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{S}, где:

x – семейство;

y – блок управления или защиты памяти;

z – память кэш;

T – поддержка режима Thumb;

D – JTAG порт;

M – быстрый умножитель;

I – встроенный блок эмуляции;

E – расширенный набор инструкций (подразумевает обязательное наличие функций TDMI, поэтому в случае использования индекса E индексы TDMI из названия опускаются);

J – поддержка Java инструкций (режим Jazelle);

F – блок векторной арифметики над числами с плавающей точкой;

S – синтезируемая версия (поставляется производителю кристалла в виде исходного текста, требующего компиляции (синтеза), в отличие от несинтезируемых версий, которые имеют заданную и неизменяемую топологию).

Процессоры ARM разрабатывались для удовлетворения потребностей следующих основных категорий систем:

  • встраиваемые системы реального времени;

  • универсальные платформы для приложений на базе открытых операционных систем, включающих:
    Linux, Palm OS, Symbian OS и Windows CE;

  • системы защиты данных для смарт карт, SIM карт и платёжных терминалов.

Процессоры ARM для приложений на базе открытых операционных систем

Приложения на базе операционных систем предъявляют к процессорам требования по аппаратной поддержке многозадачности и повышенной производительности. Для достижения этих целей в состав процессоров вводятся блоки управления памятью (MMU – Memory Management Unit) и сверхоперативная память (кэш).

Перечень процессоров ARM для указанных приложений приведён в табл. 1.

 
Семейство
Название ядра/процессора
Размер кэш памяти кода/данных, байт
Блок управления памятью (MMU, MPU)
Thumb®
DSP
Jazelle™
Cortex
ARM Cortex-A8
переменный
MMU
есть
есть
есть
ARM10E™
ARM1020E
32k/32k
MMU
есть
есть
нет
ARM1022E
16k/16k
MMU
есть
есть
нет
ARM1026EJ-S
переменный
MMU или MPU
есть
есть
есть
ARM11™
ARM11MPCore
переменный
MMU
есть
есть
есть
ARM1136J(F)-S
переменный
MMU
есть
есть
есть
ARM1176JZ(F)-S
переменный
MMU
есть
есть
есть
ARM7™
ARM720T
8k
MMU
есть
нет
нет
ARM9™
ARM920T
16k/16k
MMU
есть
нет
нет
ARM922T
8k/8k
MMU
есть
нет
нет
ARM9E™
ARM926EJ-S
переменный
MMU
есть
есть
есть

Ядра и процессоры ARM для систем реального времени

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

Семейство
Название ядра/процессора
Размер кэш памяти кода/данных, байт
Блок управления памятью (MMU)
Thumb®
DSP
Jazelle™
Cortex
ARM Cortex-M3
-
MPU (опционально)
есть
нет
нет
ARM Cortex-R4
OK-64k
MPU
есть
есть
нет
ARM Cortex-R4F
OK-64k
MPU
есть
есть
нет
ARM10E™
ARM1026EJ-S
переменный
MMU или MPU
есть
есть
есть
ARM11™
ARM1156T2(F)-S
переменный
MPU
есть
есть
нет
ARM7™
ARM7EJ-S
-
-
есть
нет
нет
ARM7TDMI
-
-
есть
нет
нет
ARM7TDMI-S
-
-
есть
нет
нет
ARM9E™
ARM946E-S
переменный
MPU
есть
нет
нет
ARM966E-S
-
-
есть
нет
нет
ARM968E-S
-
DMA
есть
есть
нет
ARM9™
ARM996HS
-
MPU (опционально)
есть
есть
нет
 

Системы защиты данных для смарт-карт, SIM-карт и платежных терминалов.

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

Семейство
Название ядра/процессора
Размер кэш памяти кода/данных, байт
Блок управления памятью
Thumb®
DSP
Jazelle™
SecurCore™
SecureCore SC100
-
MPU
есть
нет
нет
SecureCore SC200
-
MPU
есть
есть
есть

Микроконтроллеры с ядром ARM7 – прямой конкурент 8разрядным микроконтроллерам

Из всего многообразия процессоров ARM нас больше всего интересуют микросхемы, составляющие
прямую конкуренцию 8разрядным микроконтроллерам. Поэтому далее мы сконцентрируем внимание
на микроконтроллерах с ядром ARM7, которые наиболее полно отвечают требованиям
встраиваемых систем реального времени, работающих без использования операционных систем.

Семейство ядер и процессоров ARM7

Семейство процессоров ARM7 ориентировано на приложения, требующие дешевые и малопотребляющие микроконтроллеры.

Оно включает в себя следующие ядра и процессоры:

ARM7TDMI: Ядро с целочисленной арифметикой, 3-х ступенчатым конвейером команд. Обеспечивает высокую производительность в сочетании с очень низким уровнем потребления, занимает очень маленькую площадь кристалла. Сочетание перечисленных свойств обеспечило этому ядру наибольшую популярность среди всех известных RISC процессоров для встраиваемых систем.

ARM7TDMI-S: Синтезируемая версия ядра ARM7TDMI, идеальна для современных систем разработки полупроводниковых устройств.

ARM7EJ-S: Улучшенная, синтезируемая версия ядра с поддержкой инструкций для цифровой обработки сигналов (DSP) и расширением для аппаратного исполнения Java-инструкций на базе технологии Jazelle®.

ARM720T: Процессор с устройством управления памятью и 8 Кб кэшем инструкции. Версия ориентирована на использование операционных систем, таких как: Windows CE, Linux, Palm OS и Symbian OS.

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

  • Максимальная производительность – до 133 MHz;

  • Наборы команд ARM (32 бита) и Thumb (16 бит);

  • 3-х ступенчатый конвейер инструкций;

  • Единая шина команд и данных;

  • Полностью статический дизайн;

  • Малый размер кристалла, необходимый для размещения ядра;

  • Встроенный внутрисхемный эмулятор (EmbeddedICE-RT);

  • Встроенный интерфейс аппаратного трассировщика (ETM).

Характеристики производительности и энергопотребления напрямую связаны с применяемой
технологией производства полупроводников. Значения этих параметров для современных
технологических процессов приведены в таблице. 

Семейство
Название ядра/процессора
Размер кэш памяти кода/данных, Кб
Блок управления памятью (MMU)
Thumb®
DSP
Jazelle™
 
ARM CortexM3
MPU (опционально)
Есть
Нет
Нет
Cortex
ARM CortexR4
OK64
MPU
Есть
Есть
Нет
 
ARM CortexR4F
OK64
MPU
Есть
Есть
Нет
ARM10E™
ARM1026EJS
Переменный
MMU или MPU
Есть
Есть
Есть
ARM11™
ARM1156T2(F)S
Переменный
MPU
Есть
Есть
Нет
 
ARM7EJS
Есть
Нет
Нет
ARM7™
ARM7TDMI
Есть
Нет
Нет
 
ARM7TDMIS
Есть
Нет
Нет
 
ARM946ES
Переменный
MPU
Есть
Нет
Нет
ARM9E™
ARM966ES
Есть
Нет
Нет
 
ARM968ES
DMA
Есть
Есть
Нет
ARM9™
ARM996HS
MPU (опционально)
Есть
Есть
Нет
  
 Характеристики производительности и энергопотребления семейства ARM7
 
Процессор
Технология, мкм
Потребление, мВт/МГц
Площадь, мм2
Частота, МГц
ARM7TDMI
0,18
0,25
0,53
100
ARM7TDMIS
0,18
0,28
0,62
80...110
ARM7EJS
0,18
0,31
1,25
80...110
ARM720T
0,18
0,65
4,7
75
ARM7TDMI
0,13
0,05
0,26
116
ARM7TDMIS
0,13
0,11
0,32
100...133
ARM7EJS
0,13
0,14
0,65
100...133
ARM720T
0,13
0,2
2,4
100

На данный момент наиболее популярными в области встраиваемых систем являются ядра:
ARM7TDMI, ARM7TDMIS.

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

Основные критерии целесообразности перехода на 32разрядные микроконтроллеры

Для принятия решения о переводе своих встраиваемых систем на 32 разрядную платформу необходимо провести сравнение 8 и 32разрядных микроконтроллеров по следующим основным критериям:

  • уровень функциональной интеграции микроконтроллеров;

  • стоимость самого микроконтроллера;

  • требования к производительности системы и проблемы реального времени;

  • требования к энергопотреблению, режимы энергосбережения;

  • возможность переноса программного обеспечения на новую платформу;

  • доступность и качество средств разработки и отладки
    (интегрированных сред, компиляторов, отладчиков, программаторов).

Рассмотрим каждый из перечисленных критериев подробнее.

Уровень функциональной интеграции микроконтроллеров

Ещё несколько лет назад 8разрядные микроконтроллеры были вне конкуренции по уровню функциональной насыщенности. Многие представители семейств 8051, PIC, AVR давали разработчику возможность создать всю систему практически на единственном кристалле.

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

Так было до тех пор, пока в дело не вступили компании – лидеры рынка 8битных микро контроллеров:
Atmel, Philips, STMicro electronics и другие. Сегодня уже можно с уверенностью сказать, что 32 разрядные микроконтроллеры не только не уступают, но зачастую и превосходят своих 8разрядных собратьев по уровню функциональной интеграции.

В качестве примера рассмотрим микроконтроллер LPC2148 компании NXP (Philips).
Он имеет следующие основные характеристики и функциональные возможности:

ядро ARM7TDMIS с поддержкой 16 разрядного набора инструкций Thumb;

максимальная тактовая частота – 60 МГц;

FLASH объёмом 512 Кб со встроенной 128битной шиной для ускорения доступа;

внутрисистемное программирование FLASH (ISP/IAP). Полное стирание за 400 мс, запись 256 байт за 1 мс;

ОЗУ объёмом 40 Кб;

встроенные ресурсы JTAG эмулятора и трассировщика;

интерфейс USB 2.0 Full Speed (12 МГц), 8 Кб ОЗУ для данных USB с доступом через канал прямого доступа к памяти (DMA);

два десятиразрядных АЦП со временем преобразования 2,44 мкс на канал, 14 аналоговых входов;

десятиразрядный ЦАП;

два 32разрядных таймера/счётчика (по четыре канала выборки и сравнения), модуль ШИМ (6 каналов), сторожевой таймер (WDT);

часы реального времени с независимым питанием и тактовой часто той 32 кГц;

универсальные последовательные каналы:

два UART, два I2C, SPI и SSP с буферированием и настройкой длины формата данных;

векторный контроллер прерываний с программируемыми приоритетами и адресами векторов;

встроенный умножитель частоты до 60 МГц с периодом стабилизации 100 мкс;

интегрированный генератор для работы с кварцами 1…25 МГц;

режимы энергосбережения Idle и Powerdown;

индивидуальное управление питанием периферийных устройств для оптимизации потребляемой энергии;

детектор пропадания напряжения питания (BOD);

встроенная система сброса по включению питания;

единственный источник питания 3,3 В ± 10%;

выводы, толерантные к напряжению 5 В.

 

Микросхема LPC2148 была выбрана в качестве примера достаточно произвольно, но, тем не менее,
она даёт хорошее представление о функциональных возможностях современных 32 разрядных микроконтроллеров. Даже при беглом взгляде на структурную схему микроконтроллера, приведённую на рис. 3, видно, что он до боли напоминает привычный набор периферии, характерный для большинства 8разрядных микроконтроллеров из семейств 8051, AVR, PIC, HC08. Но редко в каком из 8битных устройств можно обнаружить все перечисленные выше возможности, реализованные в одной микросхеме.

Дополнительным преимуществом микроконтроллеров на базе ядра ARM перед такими семействами, как AVR, PIC, MSP430, является отсутствие монополии в разработке и производстве его разновидностей. Очевидно, что ни одна компания производитель не способна предложить рынку столько вариантов микроконтроллеров, сколько могут это сделать более 60 компаний, уже приобретших лицензию на ядро ARM.

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

Стоимость микроконтроллера

Буквально несколько лет назад понятия «32разрядный микроконтроллер» и «низкая стоимость» были абсолютно несовместимыми. Цена на 32 разрядные устройства была на порядок больше по сравнению с ценой на 8разрядные.

Первую «брешь» в представлении о том, что 32разрядные микроконтроллеры пригодны только для дорогих систем, «пробила» компания Atmel. В 2004 г. она вы пустила на рынок семейство микро контроллеров AT91SAM7S, цены на которые начинались от нескольких долларов, т.е. напрямую конкурировали с ценами на 8разрядные микросхемы.

В 2005 г. компания Philips анонсировала выпуск микроконтроллеров LPC2101/02/03, нацеленных уже на рынок так называемых долларовых приложений – в оптовых количествах цена микроконтроллера LPC2101 составляет немногим больше одного доллара.

В 2006 г. компания Luminary выпустила серию Stellaris LM3S1xx, которая имеет цену уже в пределах одного доллара.

Отныне разница в стоимости уже не является определяющим фактором при выборе между 8 и 32разрядным микроконтроллером.

Цены на современные 32разрядные микроконтроллеры вполне сопоставимы с ценами их 8разрядных конкурентов.

Требования к производительности системы и проблемы реального времени

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

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

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

Удовлетворяют ли этим требованиям микроконтроллеры с ядром ARM?

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

Поэтому для систем с такими требованиями наибольшее распространение получили микроконтроллеры
с ядрами ARM7TDMI, ARM7TDMIS, которые не имеют кэш памяти и по реакции на прерывания не отличаются от обычных 8разрядных микроконтроллеров.

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

Проиллюстрируем некоторые такие решения на примере микроконтроллера AT91SAM7S компании Atmel.

Векторный контроллер прерываний

Ядро ARM7 имеет всего два внешних входа прерывания.
Для систем реального времени этого явно недостаточно. Поэтому в состав микроконтроллера AT91SAM7S вводится дополнительный аппаратный модуль, называемый векторным контроллером прерываний, который обеспечивает переход на адрес обработки прерывания одного из 32 источников прерывания с помощью единственной команды перехода. Смысл его работы сводится к тому, что в состав контроллера входят 32 регистра адреса, в которые предварительно записываются адреса подпрограмм обработки для каждого из 32 возможных источников прерывания.

При возникновении прерывания ядро ARM вызывает передачу управления на адрес, соответствующий внешнему прерыванию. По этому адресу рас полагается инструкция, которая считывает данные из контроллера прерываний, а контроллер в этот момент подставляет значение именно того регистра адреса, который соответствует возникшему прерыванию.

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

Оптимизация доступа к портам ввода вывода

Характерной задачей встраиваемых систем является манипулирование битами на портах ввода вывода. Процедура изменения бита обычно подразумевает чтение всего слова, наложение битовой маски и запись нового значения слова обратно в порт. В RISC процессорах такая операция производится одной командой, выполняющей неразрывный цикл «чтение-модификация-запись».

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

 

MRS    r0,CPSR                                 ; Запрет прерываний на уровне ядра

ORR    r0,r0,#(I_BIT OR _F_BIT)

MSR    CPSR,r0

 

LDR    r0,=PORT_ADDR                  ; Загрузка указателя адресом порта PORT_ADDR

LDR    r1,[r0]                                     ; Чтение значения порта

ORR    r1,r1,#80                                ; Наложение маски

STR     r1,[r0]                                     ; Запись результата в порт

 

MRS    r0,CPSR                                 ; Разрешение прерываний

BIC     r0,r0,#(I_BIT OR _F_BIT)

MSR    CPSR,r0

 

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

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

Последовательность инструкций для этого случая выглядит следующим образом:

 

LDR    r0,=PORT_ADDR                  ; Загрузка указателя адресом порта PORT_ADDR

MOV   r1,#80                                     ; Загрузка маски бита в регистр

STR     r1,[r0,#PORT_SET_offset]    ; Установка бита в регистре «установки», где

; PORT_SET_offset – смещение адреса регистра

; относительно PORT_ADDR

 

Вывод: микроконтроллеры с ядром ARM разрабатывались с учетом требований, предъявляемых системами реального времени.

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

Требования к энергопотреблению, режимы энергосбережения

Интересное исследование [1], касающееся режимов энергопотребления различных микроконтроллеров,
было проведено группой разработчиков из университета Беркли (США).

В их задачу входила разработка беспроводного датчика для исследовательских сетей. Автономное питание датчика накладывало жёсткие требования к энергопотреблению использованных микроконтроллеров. В таблице приведены некоторые результаты этого исследования.
(исходную статью можно найти по ссылке в интернете http://www.moteiv.com/products/docs/an002-telos.pdf)

 
Производитель
Микроконтроллер
RAM, Кб
Flash, Кб
Активный режим, мА
Спящий режим, мА
Год выпуска
 
AT90LS8535
0,5
8
5
15
1998
Atmel
Mega 128
4
128
8
20
2001
 
Mega165/325/645
4
64
2,5
2
2004
General Instruments
PIC
0,025
0.5
19
1
1975
Microchip
PIC Modern
4
128
2,2
1
2002
 
4004 4bit
0,625
4
30
N/A
1971
Intel
8051 8bit Classic
0,5
32
30
5
1995
 
8051 16bit
1
16
45
10
1996
Philips
80C51 16bit
2
60
15
3
2000
 
HC05
0,5
32
6,6
90
1988
Motorola
HC08
2
32
8
100
1993
 
HCS08
4
60
6май
1
2003
 
TSS400 4bit
0,03
1
15
12
1974
Texas Instruments
MSP430F14x 16bit
2
60
1,5
1
2000
 
MSP430F16x 16bit
10
48
2
1
2004
Atmel
AT91 ARM Thumb
256
1024
38
160
2004
Intel
XScale PXA27X
256
N/A
39
574
2004
 Более свежие данные по микроконтроллерам с ядром ARM7 представлены в табл. 5.
 
NXP (Philips)
LPC2103, 10/70 МГц
8
32
7/41
7
2005
NXP (Philips)
LPC2148, 10/60 МГц
40
512
15/40
100
2005
Atmel
AT91SAM7S32/512, 55 МГц
64
512
60
60
2005

 Данные, приведённые в таблицах, можно рассматривать только как ориентировочные,
так как реальное потребление микроконтроллера зависит от комбинации многих факторов,
которые трудно учитывать при анализе. Такими факторами являются: рабочая тактовая частота,
объём памяти FLASH и ОЗУ, количество задействованных периферийных устройств,
нагрузка на выходах портов.

В качестве примера влияния компонентов системы на общее потребление в табл. 6 приведены
данные из спецификации микро контроллеров AT91SAM7S32/512 компании Atmel.

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

На сегодняшний день современные 32разрядные микроконтроллеры с ядром ARM демонстрируют
результаты, не уступающие популярным 8битным микроконтроллерам из семейств 8051, HC08
и даже таким относительно свежим изделиям, как ATMega128. А проигрывают они только современным 8 и 16разрядным микроконтроллерам, лидером среди которых является семейство MSP430, специально разработанное для приложений, требующих минимального потребления. 

Вывод: при принятии решения о замене классических 8разрядных микроконтроллеров, микроконтроллеры ARM можно рассматривать как устройства с аналогичными параметрами энергопотребления. Рассматривать другие варианты в качестве альтернативы имеет смысл только при чрезвычайно жёстких требованиях к энергопотреблению.

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

Таким образом, требования к экономии энергии являются наиболее критичными по отношению к 32разрядным микроконтроллерам.

Популярные микроконтроллеры с ядром ARM7 для систем реального времени.Справочные данные

Микроконтроллеры компании NXP (бывшая Philips)

Серия микроконтроллеров LPC2000 разработана на базе ядра ARM7TDMI S. Микроконтроллеры способны работать на частотах до 75 МГц, сочетая высокую производительность и низкое энергопотребление (см. табл. 7). Микросхемы имеют «на борту» память FLASH до 1 Мб, ОЗУ до 64 Кб, широкий набор периферийных устройств: всевозможные последовательные каналы, включая USB и CAN, десятиразрядные аналого-цифровые и цифро-аналоговые преобразователи, встроенные умножители частоты, часы реального времени, таймеры, универсальные порты ввода вывода.

Контроллеры поставляются в различных вариантах корпусов – от компактных 48выводных для систем с памятью на кристалле, до мощных 144 – 180 выводных с возможностью доступа к внешней шине.

 
Микро
контроллер
Память, Кб
Таймеры
Интерфейсы
Число каналов АЦП
(10 бит)
Число
каналов ЦАП
(10 бит)
Число I/O выводов
Прерывания (внешн.)/ уровни
Внеш няя шина
PLL
Частота, МГц (макс.)
Напря жение, В
Темпера турное испол нение
Тип корпуса
FLASH
RAM
ISP/ IAP
Защита памяти
Число
таймеров*
Число PWM каналов
USB
UART
I2C
CAN
SPI
CPU
I/O
Семейство LPC2800
LPC2888
1024
64
+/+
4
1(1)
1(2)
1(3)
5
79
30/16
+
+
60
1,8
3,3
F
TBGA180
Семейство LPC2200
LPC2294
256
16
+/+
4
6
2
1
4
2
8
112
25(4)/16
+
60
1,8
3,3
H,J
LQFP144
LPC2292
256
16
+/+
4
6
2
1
2
2
8
112
25(4)/16
+
60
1,8
3,3
F
LQFP144
LPC2290
16
4
6
2
1
2
2
8
76
25(4)/16
+
60
1,8
3,3
F
LQFP144, TFBGA144
LPC2220
64
4
6
2
1
2
8
76
16(4)/16
+
75
1,8
3,3
F
LQFP144, TFBGA144
LPC2214
256
16
+/+
4
6
2
1
2
8
112
16(4)/16
+
60
1,8
3,3
F
LQFP144
LPC2212
128
16
+/+
4
6
2
1
2
8
112
16(4)/16
+
60
1,8
3,3
F
LQFP144
LPC2210
16
4
6
2
1
2
8
76
16(4)/16
+
60
1,8
3,3
F
LQFP144
Семейство LPC2100
LPC2194
256
16
+/+
+
4
6
2
1
4
2
4
46
25(4)/16
+
60
1,8
3,3
H,J
LQFP64
LPC2148
512
40
+/+
+
4
6
1
2
2
2
8 + 6
1
45
23(4)/16
+
60
3,3
3,3
F
LQFP64
LPC2146
256
40
+/+
+
4
6
1
2
2
2
8 + 6
1
45
23(4)/16
60
3,3
3,3
F
LQFP64
LPC2144
128
16
+/+
+
4
6
1
2
2
2
8 + 6
1
45
23(4)/16
+
60
3,3
3,3
F
LQFP64
LPC2142
64
16
+/+
+
4
6
1
2
2
2
6
1
45
23(4)/16
+
60
3,3
3,3
F
LQFP64
LPC2141
32
8
+/+
+
4
6
1
2
2
2
6
45
23(4)/16
+
60
3,3
3,3
F
LQFP64
LPC2138
512
32
+/+
+
4
6
2
2
2
2 ? 8
1
47
22(4)/16
+
60
3,3
3,3
F
LQFP64, HVQFN64
LPC2136
256
32
+/+
+
4
6
2
2
2
2 ? 8
1
47
22(4)/16
+
60
3,3
3,3
F
LQFP64
LPC2134
128
16
+/+
+
4
6
2
2
2
2 ? 8
1
47
22(4)/16
+
60
3,3
3,3
F
LQFP64
LPC2132
64
16
+/+
+
4
6
2
2
2
8
1
47
22(4)/16
+
60
3,3
3,3
F
LQFP64, HVQFN64
LPC2131
32
8
+/+
+
4
6
2
2
2
8
47
22(4)/16
+
60
3,3
3,3
F
LQFP64
LPC2129
256
16
+/+
+
4
6
2
1
2
2
4
46
18(4)/16
+
60
1,8
3,3
F
LQFP64
LPC2119
128
16
+/+
+
4
6
2
1
2
2
4
46
18(4)/16
+
60
1,8
3,3
F
LQFP64
LPC2124
256
16
+/+
+
4
6
2
1
2
4
46
16(4)/16
+
60
1,8
3,3
F
LQFP64, HVQFN64
LPC2114
128
16
+/+
+
4
6
2
1
2
4
46
16(4)/16
+
60
1,8
3,3
F
LQFP64
LPC2106
128
64
+/+
4
6
2
1
1
32
16(3)/16
+
60
1,8
3,3
B,F
LQFP48
LPC2105
128
32
+/+
4
6
2
1
1
32
16(3)/16
+
60
1,8
3,3
B
LQFP48
LPC2104
128
16
+/+
4
6
2
1
1
32
16(3)/16
+
60
1,8
3,3
B
LQFP48
LPC2103
32
8
+/+
+
6
14**
2
2
2
8
32
19(3)/16
70
1,8
3,3
F
LQFP48
LPC2102
16
4
+/+
6
14**
2
2
2
8
32
19(3)/16
+
70
1,8
3,3
F
LQFP48
LPC2101
8
2
+/+
+
6
14**
2
2
2
8
32
19(3)/16
+
70
1,8
3,3
F
LQFP48

Микроконтроллеры компании Atmel

Серия микроконтроллеров SAM7 разработана на базе ядра ARM7TDMI.

Микроконтроллеры Atmel напрямую конкурируют с семейством LPC2000 компании NXP (Philips). Они имеют близкий по составу набор периферийных устройств, FLASH и ОЗУ. Среди отличительных особенностей можно выделить наличие блока прямого доступа к памяти (DMA), значительно ускоряющего обмен данными между периферийными устройства ми и памятью, наличие расширенного контроллера прерываний, богатый выбор коммуникационных каналов, среди которых USB, Ethernet, SPI, USART и т.д.

 
Микро контроллер
Flash, Кб
SRAM, Кб
Ethernet (MAC 10/100)
CAN
USB
UART
АЦП (10 бит)
Частота, МГц
PWM, каналов
I/O
PDC, каналов
SDRAM
Таймеров (16 бит)
RTT
SPI
SSC
TWI
MCI
Резо наторов
MMU/ MPU
Тип корпуса
AT91SAM7A1
4
1
3
8
40
4
49
11
9
1
2
LQFP 144
AT91SAM7A2
16
4
2
16
30
4
57
10
10
1
2
LQFP 176
AT91SAM7A3
256
32
2
1
4
16
60
8
62
19
9
1
2
2
1
1
1
MPU
LQFP 100
AT91SAM7S128
128
32
1
3
8
55
4
32
11
3
1
1
1
1
1
QFN 64
AT91SAM7S256
256
64
1
3
8
55
4
32
11
3
1
1
1
1
1
LQFP 64
AT91SAM7S32
32
8
2
8
55
4
21
9
3
1
1
1
1
1
LQFP 48
AT91SAM7S321
32
8
1
2
8
55
4
32
11
3
1
1
1
1
1
QFN 64
AT91SAM7S64
64
16
1
3
8
55
4
32
11
3
1
1
1
1
1
LQFP 64
AT91SAM7SE256
256
32
1
3
8
48
4
88
11
1
3
1
1
1
1
1
MPU
LBGA 144
AT91SAM7SE32
32
8
1
3
8
48
4
32
11
1
3
1
1
1
1
1
MPU
LBGA 144
AT91SAM7SE512
512
32
1
3
8
48
4
88
11
1
3
1
1
1
1
1
MPU
LBGA 144
AT91SAM7X128
128
32
1
1
1
3
8
55
4
60
11
3
1
2
1
1
1
LQFP 100
AT91SAM7X256
256
64
1
1
1
3
8
55
4
60
11
3
1
2
1
1
1
LQFP 100
AT91SAM7XC128
128
32
1
1
1
3
8
55
4
60
11
3
1
2
1
1
1
LQFP 100
AT91SAM7XC256
256
64
1
1
1
3
8
55
4
60
11
3
1
2
1
1
1
LQFP 100
 

Микроконтроллеры компании STMicroelectronics

Микроконтроллеры на базе ядра ARM7TDMI компании STMicroelectronics представлены сериями:
STR710, STR730, STR750 Они имеют богатый выбор периферийных устройств, FLASH и оперативной памяти. В качестве особенностей можно выделить развитые коммуникационные возможности, 12разрядные аналого-цифровые преобразователи, толерантность портов ввода вывода к напряжению 5 В.

 
Микрокон троллер
Память, Кб
Защита памяти
Входы АЦП, число
Таймеры
Интерфейсы
Число входов/ выходов (силовых)
Питание, В
Тип корпуса
Примечания
FLASH
RAM
разрядов
число разрядов (IC/OC/PWM)
Другие
STR711FR0
64+16
16
4 * 12
WDG, RTC
2xSPI/2xI2C/4xUART/ HDLC/SC/USB
30 (0)
3,0...3,6
LQFP64/BGA64
50 МГц, 16 Кб data flash
STR712FR0
64+16
16
4 * 12
4 16 (5/5/3)
WDG, RTC
2xSPI/2xI2C/4xUART/ HDLC/SC/CAN
32 (0)
3,0...3,6
LQFP64/BGA64
STR715FR0
64+16
16
4 12
WDG, RTC
2xSPI/2xI2C/4xUART/ HDLC/SC
32 (0)
3,0...3,6
LQFP64/BGA64
STR751FR0
64+16
16
11 10
WDG, RTC
2xSSP/I2C/3xHS UART/ USB
38 (7)
3,0...3,6
LQFP64
60 МГц, 16 Кб data flash, 4xDMA, AWU, SMI, RCгенератор, ШИМ для управления электродвигателем
STR752FR0
64+16
16
11 10
5 16 (5/5/11)
WDG, RTC
2xSSP/I2C/3xHS UART/ CAN
38 (7)
3,0...3,6 или 4,5...5,5
LQFP64
STR755FR0
64+16
16
11 10
WDG, RTC
2xSSP/I2C/3xHSUART
38 (7)
3,0...3,6 или 4,5...5,5
LQFP64
STR711FR1
128+16
32
4 12
4 16
WDG, RTC
2xSPI/2xI2C/4xUART/ HDLC/SC/USB
30 (0)
3,0...3,6
LQFP64/BGA64
50 МГц, 16 Кб data flash
STR712FR1
128+16
32
+
4 12
(5/5/3)
WDG, RTC
2xSPI/2xI2C/4xUART/ HDLC/SC/CAN
32 (0)
3,0...3,6
LQFP64/BGA64
STR751FR1
128+16
16
+
11 10
WDG, RTC
2xSSP/I2C/3xHS UART/ USB
38 (7)
3,0...3,6
LQFP64
60 МГц, 16Кб data flash, 4xDMA, AWU, SMI, RCгенератор, ШИМ для управления электродвигателем
STR752FR1
128+16
16
+
11 10
5 16 (5/5/11)
WDG, RTC
2xSSP/I2C/3xHS UART/ CAN
38 (7)
3,0...3,6 или 4,5...5,5
LQFP64
STR755FR1
128+16
16
+
11 10
WDG, RTC
2xSSP/I2C/3xHSUART
38 (7)
3,0...3,6 или 4,5...5,5
LQFP64
STR711FR2
256+16
64
+
4 12
4 16
WDG, RTC
2xSPI/2xI2C/4xUART/ HDLC/SC/USB
30 (0)
3,0...3,6
LQFP64/BGA64
50 МГц, 16 Кб data flash
STR712FR2
256+16
64
+
4 12
(5/5/3)
WDG, RTC
2xSPI/2xI2C/4xUART/ HDLC/SC/CAN
32 (0)
3,0...3,6
LQFP64/BGA64
STR751FR2
256+16
16
+
11 10
WDG, RTC
2xSSP/I2C/3xHS UART/ USB
38 (7)
3,0...3,6
LQFP64/BGA64
60 МГц, 16Кб data flash, 4xDMA, AWU, SMI, RCгенератор, ШИМ для управления электродвигателем
STR752FR2
256+16
16
+
11 10
5 16 (6/6/12)
WDG, RTC
2xSSP/I2C/3xHS UART/ CAN
38 (7)
3,0...3,6 или 4,5...5,5
LQFP64/BGA64
STR755FR2
256+16
16
+
11 10
WDG, RTC
2xSSP/I2C/3xHSUART
38 (7)
3,0...3,6 или 4,5...5,5
LQFP64/BGA64
STR731FV0
64
16
+
12 10
15 16
WDG, RTC
3xSPI/2xI2C/4xUART/ 3xCAN
72 (0)
4,5...5,5
LQFP100
36 МГц, 16xDMA channels, onchip RC oscillator
STR736FV0
64
16
+
12 10
(12/12/12)
WDG, RTC
3xSPI/2xI2C/4xUART
72 (0)
4,5...5,5
LQFP100
STR750FV0
64+16
16
+
16 10
5 16
WDG, RTC
2xSSP/I2C/3xHS UART/ CAN/USB
72 (9)
3,0...3,6 или 4,5...5,5 (без USB)
LQFP100
60 МГц, 16Кб data flash, 4xDMA, AWU, SMI, RCгенератор, ШИМ для управления электродвигателем
STR755FV0
64+16
16
+
16 10
(6/6/12)
WDG, RTC
2xSSP/I2C/3xHSUART
72 (9)
3,0...3,6 или 4,5...5,5
LQFP100
STR731FV1
128
16
+
12 10
15 16
WDG, RTC
3xSPI/2xI2C/4xUART/ 3xCAN
72 (0)
4,5...5,5
LQFP100
36 МГц, 16xDMA , RCгенератор
STR736FV1
128
16
+
12 10
(12/12/12)
WDG, RTC
3xSPI/2xI2C/4xUART
72 (0)
4,5...5,5
LQFP100
STR750FV1
128+16
16
16 10
15 16
WDG, RTC
2xSSP/I2C/3xHS UART/ CAN/USB
72 (9)
3,0...3,6 или 4,5...5,5 (без USB)
LQFP100/BGA100
60 МГц, 16Кб data flash, 4xDMA, AWU, SMI, RCгенератор, ШИМ для управления электродвигателем
STR755FV1
128+16
16
16 10
(6/6/12)
WDG, RTC
2xSSP/I2C/3xHSUART
72 (9)
3,0...3,6 или 4,5...5,5
LQFP100
STR731FV2
256
16
12 10
15 16
WDG, RTC
3xSPI/2xI2C/4xUART/ 3xCAN
72 (0)
4,5...5,5
LQFP100
36 МГц, 16xDMA channels, RCгенератор
STR736FV2
256
16
+
12 10
(12/12/12)
WDG, RTC
3xSPI/2xI2C/4xUART
72 (0)
4,5...5,5
LQFP100
STR750FV2
256+16
16
16 10
5 16
WDG, RTC
2xSSP/I2C/3xHS UART/ CAN/USB
72 (9)
3,0...3,6 или 4,5...5,5 (без USB)
LQFP100/BGA100
60 МГц, 16Кб data flash, 4xDMA, AWU, SMI, RCгенератор, ШИМ для управления электродвигателем
STR755FV2
256+16
16
+
16 10
(6/6/12)
WDG, RTC
2xSSP/I2C/3xHSUART
72 (9)
3,0...3,6 или 4,5...5,5
LQFP100/BGA100
STR710RZ
64
4 12
4 16
WDG, RTC
2xSPI/2xI2C/4xUART/ HDLC/SC/CAN/USB
48 (8)
3,0...3,6
LFBGA144/LQFP144
50 МГц, интерфейс внешней памяти
STR710FZ1
128+16
32
4 12
(5/5/3)
WDG, RTC
2xSPI/2xI2C/4xUART/ HDLC/SC/CAN/USB
48 (8)
3,0...3,6
LFBGA144/LQFP144
50 МГц, 16 Кб data flash, интерфейс внешней памяти
STR730FZ1
128
16
16 10
19 16
WDG, RTC
3xSPI/2xI2C/4xUART/ 3xCAN
112 (0)
4,5...5,5
LFBGA144/LQFP144
36 МГц, 16xDMA channels, RCгенератор
STR735FZ1
128
16
16 10
(20/20/16)
WDG, RTC
3xSPI/2xI2C/4xUART
112 (0)
4,5...5,5
LFBGA144/LQFP144
STR710FZ2
256+16
64
4 12
4 16 (5/5/3)
WDG, RTC
2xSPI/2xI2C/4xUART/ HDLC/SC/CAN/USB
48 (8)
3,0...3,6
LFBGA144/LQFP144
50 МГц, 16 Кб data flash, интерфейс внешней памяти
STR730FZ2
256
16
16 10
19 ? 16
WDG, RTC
3xSPI/2xI2C/4xUART/ 3xCAN
112 (0)
4,5...5,5
LFBGA144/LQFP144
36 МГц, 16xDMA channels, RCгенератор
STR735FZ2
256
16
16 10
(20/20/16)
WDG, RTC
3xSPI/2xI2C/4xUART
112 (0)
4,5...5,5
LFBGA144/LQFP144

Микроконтроллеры компании Texas Instruments

Семейство TMS470 разработано на базе ядра ARM7TDMI. Характерной особенностью этих микроконтроллеров является наличие в составе периферии так называемого супертаймера (Highend Timer – HET). Этот таймер представляет собой аппаратный сопроцессор, который имеет собственный набор инструкций, позволяющий управлять 32 линиями ввода вывода микроконтроллера независимо от состояния ядра ARM7.

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

 
Микроконтроллер
Частота, МГц
Память
Периферия
Температурный диапазон, °С
I/O 3,3 В
LQFP (выводы)
Flash/ROM, Кб
RAM, Кб
HighEnd
таймер
Mib АЦП, канал/бит
SPI/SCI
CAN
Доп-но
TMS470R1A64 [1]
48
64/64
8
13
8/10
2/2
с
– –
–40…+125
40
80
TMS470R1A128 [1]
48
128/128
8
16
16/10
2/2
с
– –
–40…+125
50
100
TMS470R1A256 [1]
48
256/256
12
16
16/10
2/2
с
– –
–40…+125
50
100
TMS470R1A288
48
288
16
12
12/10
2/2
2xSCC
MSM, 3x I2C, DMA, EBM
–40…+125
93
100/144
TMS470R1A384
48
384
32
12
12/10
2/2
2xSCC
3xI2C, DMA, EBM
–40…+125
94
100/144
TMS470R1B512
60
512
32
32
16/10
3/2
2xHECC
DMA
–40…+125
87
144
TMS470R1B768
60
768
48
32
16/10
5/2
3xHECC
DMA
–40…+125
87
144
TMS470R1B1M
60
1024
64
12
12/10
2/3
2xHECC
5xDMA, EBM, MSM
–40…+85
93
144

Микроконтроллеры компании Analog Devices

Микроконтроллеры на базе ядра ARM7TDMI компании Analog Devices представлены семейством MicroConverter®. Компания традиционно специализируется на прецизионном аналого-цифровом и цифро-аналоговом преобразовании сигналов, поэтому основной особенностью указанных микроконтроллеров является наличие 12разрядных АЦП и ЦАП в составе периферийных устройств.

 
Микроконтроллер
Быстродействие (MIPS)
Flash, Кб
SRAM, байт
GPIO, выводы
Разрешение, бит
Скорость АЦП, KSPS
АЦП, каналов
Выходов ЦАП (12 бит)
Прочее
ADUC7019
40
62
8192
14
12
1000
5
3
ADUC7020
40
62
8192
14
12
1000
5
4
ADUC7021
40
62
8192
13
12
1000
8
2
ADUC7022
40
62
8192
13
12
1000
10
ADUC7024
40
62
8192
30
12
1000
10
2
ШИМ
ADUC7025
40
62
8192
30
12
1000
12
ШИМ
ADUC7026
40
62
8192
40
12
1000
12
4
ШИМ
ADUC7027
40
62
8192
40
12
1000
16
ШИМ
ADUC7128
40
126
8192
28
12
1000
10
ЦАП 10 бит, ШИМ

Микроконтроллеры компании OKI

Компания предлагает своё семейство микроконтроллеров общего назначения на базе ядра ARM7TDMI. Эти микроконтроллеры обладают достаточно развитым набором функциональных возможностей. Они не имеют каких либо выдающихся характеристик, но являются дополнительным примером высокой популярности ядра ARM7 на мировом рынке микроконтроллеров.

 
Микроконтроллер
Ядро
Напряжение (Vdd), В
Частота, МГц
Flash, Кб
RAM, Кб
Периферия
Тип корпуса
Таймеры
GPIO
АЦП
USB
I2C
UART
SSIO
ML675050
ARM7 32бит MCU
3,3/1,5
64
До 30
+
62
+
USB 2.0 Host, USB 2.0 Device V
+
+
+
176 LQFP, 176 LFBGA
ML6704050
ARM7 32бит MCU
3,3/2,5; 2,5/2,5
33,33
64
16
+
108
+
+
+
+
144 LQFP
ML6704051
ARM7 32бит MCU
3,3/2,5; 2,5/2,5
33,33
128
16
+
108
+
+
+
+
144 LQFP
ML6704060
ARM7 32бит MCU
3,3/2,5; 2,5 /2,5
33,33
64
16
+
40
+
+
+
+
64 WCSP, 64 TQFP, 84 LFBGA
ML6704061
ARM7 32бит MCU
3,3/2,5; 2,5 /2,5
33,33
128
16
+
40
+
+
+
+
64 WCSP, 64 TQFP, 84 LFBGA