Что такое разрядность микроконтроллера

Классификация и выбор микроконтроллеров

Все микроконтроллеры можно условно разделить на 3 класса в соответствии с их разрядностью:

8-разрядные микроконтроллеры имеют относительно низкую производительность, которая вполне достаточна для решения широкого круга задач управления различными объектами. Это простые и дешевые микроконтроллеры, ориентированные на использование в относительно несложных устройствах массового выпуска. Основными областями их применения являются бытовая и измерительная техника, промышленная автоматика, автомобильная электроника, теле-, видео- и аудиоаппаратура, средства связи. Для этих микроконтроллеров характерна реализация Гарвардской архитектуры, где используется отдельная память для хранения программ и данных. Внутренняя память программ обычно имеет объем от нескольких единиц до десятков килобайт. Для хранения данных используется регистровый блок, организованный в виде нескольких регистровых банков, или внутреннее ОЗУ. Объем внутренней памяти данных составляет от нескольких десятков байт до нескольких килобайт. Ряд микроконтроллеров этой группы позволяет, в случае необходимости, дополнительно подключать внешнюю память команд и данных, объемом до 64…256 килобайт. Микроконтроллеры этой группы обычно выполняют относительно небольшой набор команд (30-100), использующих наиболее простые способы адресации. Такие микроконтроллеры обеспечивают выполнение большинства команд за один такт машинного времени.

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

32-разрядные микроконтроллеры содержат высокопроизводительный процессор, соответствующий по своим возможностям младшим моделям микропроцессоров общего назначения. В ряде случаев процессор, используемый в этих микроконтроллерах, аналогичен CISC- или RISC-процессорам, которые выпускаются или выпускались ранее в качестве микропроцессоров общего назначения. Например, в 32-разрядных микроконтроллерах компании Intel используется процессор i386, в микроконтроллерах компании Motorola широко применяется процессор 68020, в ряде других микроконтроллеров в качестве процессорного ядра служат RISC-процессоры типа PowerPC. На базе данных процессоров были реализованы различные модели персональных компьютеров. Введение этих процессоров в состав микроконтроллеров позволяет использовать в соответствующих системах управления огромный объем прикладного и системного программного обеспечения, созданный ранее для соответствующих персональных компьютеров. Кроме 32-разрядного процессора на кристалле микроконтроллера размещается внутренняя память команд емкостью до десятков килобайт, память данных емкостью до нескольких килобайт, а также сложно-функциональные периферийные устройства – таймерный процессор, коммуникационный процессор, модуль последовательного обмена и ряд других. Микроконтроллеры работают с внешней памятью объемом до 16 Мбайт и выше. Они находят широкое применение в системах управления сложными объектами промышленной автоматики (двигатели, робототехнические устройства, средства комплексной автоматизации производства), в контрольно-измерительной аппаратуре и телекоммуникационном оборудовании. Во внутренней структуре этих микроконтроллеров реализуется Принстонская или Гарвардская архитектура. Входящие в их состав процессоры могут иметь CISC- или RISC-архитектуру, а некоторые из них содержат несколько исполнительных конвейеров, образующих суперскалярную структуру.

Цифровые сигнальные процессоры (ЦСП, DSP) представляют особый класс специализированных микропроцессоров, ориентированных на цифровую обработку поступающих аналоговых сигналов. Специфической особенностью алгоритмов обработки аналоговых сигналов является необходимость последовательного выполнения ряда команд умножения-сложения с накоплением промежуточного результата в регистре-аккумуляторе. Поэтому архитектура ЦСП ориентирована на реализацию быстрого выполнения операций такого рода. Набор команд этих процессоров содержит специальные команды MAC (Multiplication with Accumlation), реализующие эти операции. Значения поступившего аналогового сигнала может быть представлено в виде числа с фиксированной или с “плавающей” точкой. В соответствии с этим ЦСП делятся на процессоры, обрабатывающие числа с фиксированной или плавающей точкой. Более простые и дешевые ЦСП с фиксированной точкой обычно обрабатывают 16-разрядные операнды, представленные в виде правильной дроби. Однако ограниченная разрядность в ряде случаев не позволяет обеспечить необходимую точность преобразования. Поэтому в ЦСП с фиксированной точкой, выпускаемых компанией Motorola, принято 24-разрядное представление операндов. Наиболее высокая точность обработки обеспечивается в случае представления данных в формате с «плавающей» точкой. В ЦСП, обрабатывающих данные с «плавающей» точкой, обычно используется 32-разрядный формат их представления. Для повышения производительности при выполнении специфических операций обработки сигналов в большинстве ЦПС реализуется Гарвардская архитектура с использованием нескольких шин для передачи адресов, команд и данных. В ряде ЦПС нашли применение также некоторые черты VLIW-архитектуры: совмещение в одной команде нескольких операций, обеспечивающих обработку имеющихся данных и одновременную загрузку в исполнительный конвейер новых данных для последующей обработки.

Выбор микроконтроллера

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

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

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

Для уменьшения количества ошибок в программах существуют так называемые примеры использования (Application Note). Эти документы создают производители микроконтроллеров. В них описывается практическое применение микроконтроллеров, приведены схемы устройств, полные тексты или части кода программ, описание работы устройства.

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

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

Симуляторы – совокупность программных средств, моделирующих работу других программ или их отдельных частей.

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

Источник

Микроконтроллер: определение, задачи, разновидности, применение

Что такое разрядность микроконтроллера. Смотреть фото Что такое разрядность микроконтроллера. Смотреть картинку Что такое разрядность микроконтроллера. Картинка про Что такое разрядность микроконтроллера. Фото Что такое разрядность микроконтроллера

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

История появления

Работы над изобретением микропроцессора велись с начала 1970-х годов. Первой компанией, разработавшей его, была компания Intel. Уже в 1971 году ее был выпущен первый микроконтроллер 4004, который состоял из 2300 полупроводниковых транзисторов, а по размеру был не больше ладони. Это стало возможным, после того как для микросхемы был специально разработан кристалл процессора.

Что такое разрядность микроконтроллера. Смотреть фото Что такое разрядность микроконтроллера. Смотреть картинку Что такое разрядность микроконтроллера. Картинка про Что такое разрядность микроконтроллера. Фото Что такое разрядность микроконтроллера

В ближайшие полгода еще несколько компаний заявили о создании аналогичных изделий.

К концу 1973 года Intel выпускает 8-зарядный микропроцессор. Он был настолько удачно разработан, что и сегодня считается классикой.

Через несколько месяцев фирма Motorola выпускает свой 8-битовый микропроцессор 6800. Он стал сильным конкурентом интеловской микросхеме, т. к. имел более значительную систему прерываний и одно напряжение электропитания. В 8080 их было три.

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

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

В 1978 году Интел выпустила 16-разрядный микропроцессор, который IBM использовала для разработки персональных компьютеров. Моторола не отстала от своего конкурента и тоже выпустила 16-разрядный микропроцессор, который использовали Atari и Apple.

В России пользуются популярностью микроконтроллеры Renesas Electronics, Freescale, Samsung.

Что такое микроконтроллер

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

Принцип работы микроконтроллера

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

В каждом из МК прописаны свои базовые наборы команд. И только их он способен принимать и выполнять. Сочетая отдельные команды между собой, можно написать уникальную программу, по которой будет работать любое электронное устройство именно так, как требуется.

Что такое разрядность микроконтроллера. Смотреть фото Что такое разрядность микроконтроллера. Смотреть картинку Что такое разрядность микроконтроллера. Картинка про Что такое разрядность микроконтроллера. Фото Что такое разрядность микроконтроллера

В зависимости от содержащихся в МК набора программ, они делятся на:

CISC – комплекс большого числа базовых команд;

RISC – только необходимые команды.

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

Назначение и область применения микроконтроллера

Это не полный перечень областей применения МК.

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

Питание микроконтроллера

Для работы микроконтроллеру, как и любому электронному устройству, необходима энергия. Напряжение МК Atmel AVR находится в диапазоне 1.8–5.5 Вольт и зависит от модели и серии. Большинство приборов работает от 5 Вольт. Но встречаются и низкочастотные модели (Attiny 2313), нижняя граница у которых от 1,8 В.

Кроме того, на работу МК влияет и частота поступающего тока. Низкое напряжение требует и низких пределов частот. Чем выше частота, тем быстрее работают определенные модели.

Так, чтобы обеспечить работу контроллеров серии AVR, на все плюсовые входы нужно подавать 5 В, а нулевой заземляют.

Если у модели несколько вводов и выводов питания, то подключать их нужно все.

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

Кроме того, необходимо установить и конденсаторы, лучше керамические, из расчета 1 на 100 нанофарад.

Подключение

Через микроконтроллер можно подключить к локальной сети любой девайс. В качестве таковой можно рассмотреть Ethernet. Прежде всего, определимся с понятиями.

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

Что такое разрядность микроконтроллера. Смотреть фото Что такое разрядность микроконтроллера. Смотреть картинку Что такое разрядность микроконтроллера. Картинка про Что такое разрядность микроконтроллера. Фото Что такое разрядность микроконтроллера

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

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

Управление микроконтроллером

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

Обеспечивает поддержку cети Wi-Fi МК ESP 8266. В продаже он может быть в виде микросхемы или распаян, как arduino. У него 32-битное ядро, программировать его нужно через последовательный порт UART. Бывают более продвинутые платы с возможностью прошивки по USB – это NodeMCU. Они могут хранить информацию, записанную, например, с датчиков. Такие платы работают с различными интерфейсами, в т. ч. SPI, I2S.

Плата может быть использована как самостоятельное устройство и как модуль для беспроводной связи с Ардуино.

Тактирование микроконтроллеров

Тактовая частота МК – это количество тактов за секунду, выполняемых контроллером. Чем она выше, тем большее количество операций он может выполнить.

Что такое разрядность микроконтроллера. Смотреть фото Что такое разрядность микроконтроллера. Смотреть картинку Что такое разрядность микроконтроллера. Картинка про Что такое разрядность микроконтроллера. Фото Что такое разрядность микроконтроллера

Для простейших микроконтроллеров подойдут внутренний или внешний генератор и RC-цепочки. Для проектирования более точных МК потребуются стабильные источники тактирования.

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

Все МК объединяются в семейства. Основная характеристика, по которой происходит это деление, — структура ядра.

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

Различаются представители одного семейства между собой объемом памяти программ и баз данных, а также разнообразием ПУ.

Объединяют все МК в семейства одинаковость двоичного кода программирования.

Это не все семейства микроконтроллеров. Здесь мы привели только основные.

Типы корпусов микроконтроллеров

Что такое разрядность микроконтроллера. Смотреть фото Что такое разрядность микроконтроллера. Смотреть картинку Что такое разрядность микроконтроллера. Картинка про Что такое разрядность микроконтроллера. Фото Что такое разрядность микроконтроллера

Каждый из корпусов имеет свои точки применения. Первые 3 могут использоваться радиолюбителями.

В чем отличие микроконтроллера от микропроцессора?

Весь компьютерный функционал микропроцессора (Micro Processor Unit — MPU) содержится на одном полупроводниковом кристалле. По характеристикам он соответствует центральному процессору компьютера ЦП (Central Processing Unit — CPU). Область его применения – хранение данных, выполнение арифметико-логических операций, управление системами.

МП получает данные с входных периферийных устройств, обрабатывает их и передает выходным периферийным устройствам.

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

Устройства на микроконтроллерах

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

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

Что нужно для программирования микроконтроллера

Чтобы микроконтроллер мог выполнять необходимые функции и решать определенные задачи, его необходимо запрограммировать.

Что такое разрядность микроконтроллера. Смотреть фото Что такое разрядность микроконтроллера. Смотреть картинку Что такое разрядность микроконтроллера. Картинка про Что такое разрядность микроконтроллера. Фото Что такое разрядность микроконтроллера

Радиолюбители иногда обходятся без прописывания алгоритма работы программы на бумаги. Они держат его в голове.

Языки программирования

Среда разработки

На сегодня нельзя найти универсальной среды для программирования МК. Это связано с его внутренней структурой и наличием технического обеспечения записи кода в память контроллера.

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

Основы программирования

Прежде чем приступать к программированию МК, нужно выбрать язык. Начинать лучше с Ассемблера. Хотя для понимания он достаточно сложен, но если приложить силы и все-таки понять его логику, то тогда станет ясно, что именно происходит в контроллере.

Что такое разрядность микроконтроллера. Смотреть фото Что такое разрядность микроконтроллера. Смотреть картинку Что такое разрядность микроконтроллера. Картинка про Что такое разрядность микроконтроллера. Фото Что такое разрядность микроконтроллера

Если Ассемблер окажется сложен, то можно начинать с Си. Одной из сильных его сторон является то, что он хорошо переносит коды с одного вида МК на другой. Но для этого надо правильно все прописать, разделив рабочие алгоритмы и их реализации в машине по разным частям проекта. Это позволит переносить алгоритм в другой контроллер, переделав всего лишь интерфейсный слой, в котором прописано обращение к «железу», оставив рабочий код без изменений.

После того как прописали программу на языке Си, можно понаблюдать, как и что происходит в МК. Это поможет выстроить аналогию с программированием на Ассемблере.

Советы начинающим программистам микроконтроллеров

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

Источник

Почему стоит переходить на 32-разрядную архитектуру микроконтроллеров

В последние годы наблюдается активный переход разработчиков встраиваемых систем на использование 32-разрядной архитектуры. В статье рассматриваются причины такого перехода и преимущества, которые при этом получают разработчики. Анализируются особенности 32-разрядных микроконтроллеров и, в частности, микроконтроллеров на базе ядра Cortex-M, в сравнении с 8- и 16-разрядными процессорами. Обсуждаются проблемы портирования программного обеспечения на 32-разрядные микроконтроллеры. Статья представляет собой перевод [1].

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

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

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

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

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

Разрядность команд процессора

Многие полагают, что 8-разрядные МК используют 8-битовые команды, а 32-разрядные — 32-битовые команды. На самом деле, многие команды 8-разрядных МК имеют разрядность 16, 24 бит или другую, например, микроконтроллер PIC18 имеет длину команд 16 бит.

Даже для устаревшей архитектуры 8051 наряду с командами длиной 1 байт, существую команды длиной 2 или 3 байта. То же самое относится и к 16-разрядной архитектуре: некоторые команды для микроконтроллера MSP430 имеют длину 6 байт (или даже 8 байт для MSP430X).

ARM-процессоры Cortex-M3 и Cortex-M0 основаны на технологии Thumb-2, которая обеспечивает превосходную плотность кода. Данная технология поддерживает набор команд Thumb, который включает 16-битные команды, а также 32-битные команды, которые обладают функциональностью расширенной 16-битной версии команд. В большинстве случаев компилятор C будет использовать 16-битную версию команды, несмотря на то, что операция может выполняться только с помощью 32-битной версии. Рисунок 1 иллюстрирует разрядность команд различных процессоров.

Рис. 1. Длина команды в различных процессорах

Что такое разрядность микроконтроллера. Смотреть фото Что такое разрядность микроконтроллера. Смотреть картинку Что такое разрядность микроконтроллера. Картинка про Что такое разрядность микроконтроллера. Фото Что такое разрядность микроконтроллера

В программе, скомпилированной для процессоров Cortex-M, число 32-битных команд занимает лишь небольшую часть от общего количества команд. Например, 32-битные команды в программе теста Dhrystone, скомпилированной для Cortex-M3, занимают только 15,8% от всего числа команд (средняя длина команды равна 18,53 бит).

Для Cortex-M0 доля 32-битных команд еще меньше — 5,4% (средняя длина команды равна 16,9 бит).

Эффективность набора команд

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

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

Все ARM-процессоры весьма эффективны при манипуляции с 8- и 16-битными данными. В распоряжении имеется весь набор компактных команд доступа к памяти для 8-, 16- и 32-битных данных со знаком и без знака. Кроме того, имеется ряд команд, специально предназначенных для преобразования типов данных. В общем, обработка 8- и 16-битных данных в ARM-процессорах также проста и эффективна, как и 32-битных данных.

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

Как Cortex-M0, так и Cortex-M3 поддерживает 32-битные однотактные множественные операции. Кроме того, микроконтроллеры на базе Cortex-M3 также поддерживают операции целочисленного деления, операции с насыщением, операции 32- и 64-битного умножения и аккумулирования (MAC), а также ряд операций над битовым полем.

Мифы 8-разрядных приложений

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

Та же ситуация применима и к указателям. В большинстве 8- и 16-разрядных МК необходимо, по крайней мере, 16 бит для указателя адреса. Это число может увеличиться при использовании групповых указателей памяти в 8051-процессоре или использовании переключения банков памяти или подобные ему методы, чтобы преодолеть барьер памяти объемом 64 Кбайт. В результате, в 8-разрядных системах обработка указателей памяти может быть весьма неэффективна.

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

Как это выглядит при выполнении какого-либо определенного теста? На-
пример, результаты компилирования программы теста Dhrystone для различных архитектур с оптимизацией размера кода представлены в таблице 1.

Таблица 1. Результаты компилирования программы Dhrystone на различных процессорах

Keil µVision 3.8PK51 8.18

Объем выходного двоичного кода, число байт

Большинство приложений выигрывают при переходе на микроконтроллеры на базе Cortex-M благодаря уменьшению объема кода и, как следствие, снижению стоимости устройства из-за меньшей требуемой памяти. Уменьшенный размер кода ARM-микроконтроллеров влияет на производительность, а также потребляемую мощность и стоимость.

Производительность и потребляемая мощность

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

Сравним производительность МК различных архитектур. Распространенным способом сравнения производительности процессоров является использование теста Dhrystone. Он является бесплатным, кроме того, простым и достаточно компактным для использования в микроконтроллерах с весьма небольшим объемом памяти (хотя это и не идеальный тестовый пакет).

Производительность первых процессоров 8051 была всего 0,0094 DMIPS/МГц. Новые модификации процессора 8051 имеют несколько лучшие показатели. Например, процессор Maxim 80C310 имеет производительность 0,027 DMIPS/МГц, а самые быстрые микропроцессоры 8051 — 0,1 DMIPS/МГц. Это все же намного меньше производительности микроконтроллеров на базе ARM Cortex-M: для процессора Cortex-M3 этот показатель равен 1,25 DMIPS/МГц, а для Cortex-M0 — 0,9 DMIPS/МГц.

Производительность микроконтроллера PIC18 равна 0,02 DMIPS/МГц, т.е. меньше, чем у некоторых процессоров 8051. 16-разрядные процессоры Microchip также более чем наполовину уступают микроконтроллерам на базе ARM Cortex-M3.

Ограничения 8- и 16-разрядных МК

Проблемой, которая вызывает неэффективность многих 8- и 16-разрядных микроконтроллеров, является ограниченный набор команд и моделей программирования. Например, работа процессора 8051 в значительной степени основана на использовании аккумулятора (ACC) и указателя данных (DPTR) для передачи и обработки данных. В результате, появляется необходимость в использовании команд перемещения данных в/из ACC и DPTR, что приводит к увеличению размера кода и количества тактов исполнения команд.

Интерфейс памяти также ограничивает производительность 8- и 16-разрядных процессоров. Например, многие команды процессора 8051 имеют длину несколько байт. Так как интерфейс памяти программ является 8-разрядным, то для выборки таких команд нужно выполнить несколько циклов считывания.

Производительность 8- и 16-разрядных МК еще больше снижается, если требуется осуществить доступ к памяти, превышающей 64 Кбайт. Данная архитектура разработана для работы с 16-битными адресами (используются 16-битные счетчики программ, 16-битные указатели данных, а набор команд разработан для поддержки адресного пространства 64 Кбайт). Если требуется память более 64 Кбайт, то необходимы аппаратные и командные издержки для генерации дополнительных адресных бит.

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

Мощность потребления МК

ARM-микроконтроллеры на базе ядра Cortex-M потребляют меньше энергии, чем многие 8- и 16-разрядные микроконтроллеры. В ARM-процессорах реализованы многие методы, позволяющие снизить потребляемую мощность. Например, процессоры Cortex-M0 и Cortex-M3 поддерживают различные дежурные режимы работы и функцию sleep-on-exit (которая позволяет процессору возвращаться в спящий режим сразу по завершении обработки прерывания).

Для того, чтобы понять, почему МК на базе Cortex-M могут снизить энергопотребление встраиваемой системы, рассмотрим структуру типичного МК. В современных микроконтроллерах процессорное ядро не занимает самую большую часть площади кристалла (см. рис. 2).

Что такое разрядность микроконтроллера. Смотреть фото Что такое разрядность микроконтроллера. Смотреть картинку Что такое разрядность микроконтроллера. Картинка про Что такое разрядность микроконтроллера. Фото Что такое разрядность микроконтроллера

Рис. 2. Использование ARM-процессоров на базе Cortex-M позволяет уменьшить площадь кристалла

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

Эффективность доступа к памяти

Использование 32-разрядной шины снижает энергопотребление за счет уменьшения числа требуемых циклов обращения к памяти. Для копирования того же объема данных в память 8-разрядный МК требует в четыре раза больше циклов обращения к памяти при большем числе вызовов команд, необходимых для этой операции. Следовательно, даже при одном и том же объеме памяти, 8-разрядный МК потребляет больше энергии для выполнения той же задачи.

Выборка команд в МК на базе Cortex-M также намного более эффективна, чем у 8- и 16-разрядных МК, так как каждая выборка команды является 32-разрядной, что позволяет выбирать до двух 16-разрядных команд Thumb за один такт и обеспечивает большую полосу пропускания шины при доступе к данным. При одинаковой длине последовательности команд для 8-разрядного МК необходимы четыре цикла обращения к памяти, а для 16-разрядного — в два раза больше вызовов команд. В результате, 8- и 16-разрядные МК потребляют намного больше энергии, чем микроконтроллеры на базе ARM.

Снижение потребляемой мощности за счет уменьшения рабочей частоты

Высокая производительность 32-разрядных МК позволяет снизить потребляемую мощность за счет работы приложения на более низкой тактовой частоте. Например, приложение с рабочей частотой 30 МГц на процессоре 8051 может быть запущено на ARM-микроконтроллере Cortex-M3 на тактовой частоте 3 МГц, обеспечив при этом тот же уровень производительности.

Снижение потребляемой мощности за счет уменьшения активных циклов

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

Что такое разрядность микроконтроллера. Смотреть фото Что такое разрядность микроконтроллера. Смотреть картинку Что такое разрядность микроконтроллера. Картинка про Что такое разрядность микроконтроллера. Фото Что такое разрядность микроконтроллера

Разработка программного обеспечения

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

Портирование программного обеспечения с 8- и 16-разрядных МК на ARM-микроконтроллеры

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

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

Важно корректно использовать типы данных для конкретной архитектуры процессора: они оказывают существенно влияние на размер кода и производительность системы. Данные разных типов для микроконтроллеров на базе ARM и 8- и 16-разрядных микроконтроллеров отличаются по длине (см. табл. 2).

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

Источник

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

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