Что такое микропроцессор, микроконтроллер и программируемый логический контроллер. Разница между микропроцессором и микроконтроллером Основное отличие плис и микроконтроллера


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

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

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

Микропроцессор необходим для выполнения множества задач. Это небольшой компьютер, который используется для выполнения арифметических и логических операций, таких как управление системой, хранение данных и т. Д. Микропроцессор обрабатывает входные или выходные данные периферийных устройств и дает функцию для возврата результатов. Первый коммерческий микропроцессор был выпущен Intel в ноябре 1971 года и получил название 4004; это был 4-битный микропроцессор.

Операции, выполняемые микропроцессором, являются общими по своему назначению. Поэтому считается необходимым выполнять любые логические операции на компьютеризированной машине. Микропроцессоры настроены на микросхемы; он изготовлен из миниатюрных транзисторов и некоторых других элементов схемы на одиночной полупроводниковой ИС для выполнения своих задач в компьютере. Он сокращенно обозначается как «µP» или «uP». Существует пять основных типов процессоров:

  • Комплексный набор инструкций микропроцессоров
  • Микропроцессоры с уменьшенным набором команд
  • Суперскалярные процессоры
  • Специализированная интегральная схема
  • Цифровые сигнальные мультипроцессоры

Микроконтроллер - это встроенный компьютер, оптимизированный для управления электрическими устройствами. Это устройство, которое включает в себя микропроцессор, память и устройства ввода / вывода на одной микросхеме. Говорят, что это сердце встроенной системы.

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

Микроконтроллеры предназначены для выполнения определенных операций, которые помогают управлять конкретными системами. Он сокращенно обозначен как «uC», «µC» или «MCU».

Микроконтроллеры похожи на небольшой компьютер, в котором ЦП, блок памяти, такой как ОЗУ и ПЗУ, периферийные устройства ввода / вывода, таймеры, счетчики, встроены в одну интегральную схему, т.е. IC. Они легко подключаются к внешним периферийным устройствам, таким как последовательные порты, АЦП, ЦАП, Bluetooth, Wi-Fi и т. Д. Здесь процесс сопряжения происходит быстрее по сравнению с сопряжением микропроцессора. В большинстве случаев микроконтроллеры используют архитектуру RISC или CISM для выполнения задач на разных машинах. Различные типы микроконтроллеров:

  • 8-битный микроконтроллер
  • 16-битный микроконтроллер
  • 32-битный микроконтроллер
  • Встроенный микроконтроллер
  • Встроенный микроконтроллер

Сравнение между микропроцессором и микроконтроллером:

Микропроцессор

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

Это сердце компьютерной системы.

Это сердце встроенной системы.

Содержит

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

Он содержит схему микропроцессора и имеет встроенные ПЗУ, ОЗУ, устройства ввода-вывода, таймеры и счетчики.

Память данных

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

Он имеет одну или две инструкции для перемещения данных между памятью и процессором.

Это большой.

Это небольшое.

Стоимость

Стоимость всей системы увеличивается.

Стоимость всей системы низкая.

Битовые инструкции

Он имеет одну или две инструкции по обработке битов.

Он имеет много инструкций по обработке битов.

Регистрационные номера

Имеет меньшее количество регистров; следовательно, операции основаны на памяти.

У этого есть больше количества регистров; следовательно, программы легче писать.

Место хранения

Он основан на архитектуре фон Неймана, где программа и данные хранятся в одном модуле памяти.

Он основан на архитектуре Гарварда, где память программ и память данных хранятся в отдельном модуле.

Время доступа к памяти и устройствам ввода / вывода больше.

Меньше времени доступа к встроенной памяти и устройствам ввода / вывода.

аппаратные средства

Это требует больше оборудования.

Это требует меньше оборудования.

Altera-Cyclone and Arduino

Суть вопроса. Разница между ПЛИС и микроконтроллером

Каждый начинающий микропрогер на определенном этапе своего развития задается вопросом в чем же разница между ПЛИС (фирм Altera или Xilinx) и микроконтроллером (микропроцессором)?

Читаешь форумы — знатоки дела пишут, что это совершенно разные вещи, которые нельзя сравнить, аргументируя это тем, что у них разная архитектура . Читаешь мануал по Verilog или C++ — и тот и другой используют похожие операторы со схожим функционалом, даже синтаксис похож, а почему разные? Заходишь на марсоход — там светодиодами (или даже просто лампочками) с помощью FPGA моргают, смотришь проекты на Arduino — там роботами управляют. СтОп!

А вот теперь остановимся и спросим себя: почему с ПЛИС — тупо лампочка, а Ардуино — умно робот? Ведь и первый и второй вроде как программируемое устройство, неужели у ПЛИС возможностей для робота не хватает?

В какой-то степени суть вопроса «В чем разница между ПЛИС и микроконтроллером ?» раскрывается именно на таком примере.

Отметим сразу. Функционал ПЛИС изначально не уступает микроконтроллеру (и микропроцессору, кстати, тоже), точнее — основные функции у одного и второго по сути идентичны — выдавать логические 0 или 1 при определенных условиях, а если говорить о быстродействии, количестве выводов(ножек) и возможностях конвейерной обработки, то микроконтроллеру до ПЛИС а вообще далеко. Но есть одно «но». Время на разработку одного и того же программного алгоритма на двух разных устройствах (ПЛИС и микроконтроллер ) различается в разы, а то и в десятки раз. Именно ПЛИС здесь в 99% случаев сильно уступает МК. И дело вовсе не в замороченности языков Verilog , VHDL или AHDL , а в устройстве самой ПЛИС .

О взаимодействии программного языка с архитектурой ПЛИС и микроконтроллера

FPGA : в ПЛИС и нет сложных автоматизированных цепочек(делающих часть работы за вас). Есть только железные проводные трассы и магистрали, входы, выходы, логические блоки и блоки памяти. Среди трасс есть особый класс — трасса для тактирования(привязанная к определенным ножкам, через которые рекомендуется проводить тактовую частоту).

Основной состав:

Трасса — металл, напаянный на слои микросхемы, является проводником электричества между блоками.

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

Ячейки — группы от нескольких единиц до нескольких десятков транзисторов.

Транзистор — основной элемент ТТЛ логики.

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

Тактовый генератор — внешняя микросхема, вырабатывающая тактовые импульсы, на которых основывается большая часть работы ПЛИС .

Архитектура ПЛИС. Взаимосвязь составляющих элементов

Трассы подключаются к блокам с помощью специальных КМОП-транзисторов. Эти транзисторы способны сохранять свое состояние(открытое или закрытое) на протяжении длительного периода времени. Изменяется состояние транзистора при подаче сигнала по определенной трассе, которая используется только при программировании ПЛИС . Т.е., в момент прошивки осуществляется именно подача напряжения на некоторый набор КМОП-транзисторов. Этот набор определяется прошивочной программой. Таким образом происходит сложное построение огромной сети трасс и магистралей внутри ПЛИС , связывающей сложным образом между собой огромное количество логических блоков. В программе вы описываете какой именно алгоритм нужно выполнять, а прошивка соединяет между собой элементы, выполняющие функции, которые вы описываете в программе. Сигналы бегают по трассе от блока к блоку. А сложный маршрут задается программой.


Архитектура ПЛИС (FPGA)

Архитектура Микроконтроллера

В этом элементе ТТЛ логики все операции по обработкам отдельных сигнальчиков проводятся независимо от вас. Вы лишь указываете что делать с тем или иным набором принятых сигналов и куда выдавать те сигналы, которые нужно передать. Архитектура микроконтроллера состоит совсем из других блоков, нежели ПЛИС . И связи между блоками осуществляются по постоянным магистралям(а не перепрошиваемым). Среди блоков МК можно выделить основные:

Постоянная память (ПЗУ) — память, в которой хранится ваша программа. В нее входят алгоритмы действий и константы. А так же библиотеки(наборы) команд и алгоритмов.

Оперативная память (ОЗУ) — память, используемая микроконтроллером для временного хранения данных(как триггеры в ПЛИС ). Например, при вычислении в несколько действий. Допустим, нужно умножить первое пришедшее число на второе(1-е действие), затем третье на четвертое(2 действие) и сложить результат(3 действие). В оперативную память при этом занесется результат 1 действия на время выполнения второго, затем внесется результат 2 действия. А затем оба этих результата пойдут из оперативной памяти на вычисление 3 действия.

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

Средства (порты) ввода-вывода и последовательные порты ввода-вывода — ножки микроконтроллера , предназначенные для взаимодействия с внешним миром.

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

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

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

Внутренние магистрали — трассы, проложенные внутри микроконтроллера для информационного обмена между блоками.

Тактовый генератор — внешняя микросхема, вырабатывающая тактовые импульсы, на которых основывается вся работа микроконтроллера .

Взаимосвязь составляющих блоков микроконтроллера

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


Основное отличие ПЛИС и микроконтроллера

ПЛИС прошивается на уровне железа, практически по всей площади кристалла. Сигналы проходят через сложные цепочки транзисторов. Микропроцессор же прошивается на уровне программы для железа, сигналы проходят группами, от блока к блоку — от памяти к процессору, к оперативной памяти, от оперативной к процессору, от процессору к портам ввода-вывода, от портов ввода-вывода к оперативной памяти, от оперативной памяти… и так далее. Вывод: за счет архитектуры ПЛИС выигрывает в быстродействии и более широких возможностях конвеерной обработки, МК выигрывает в простоте написания алгоритмов. За счет более простого способа описания программ, фантазия разработчика Микроконтроллера менее скованна временем на отладку и разработку, и, таким образом, время на программирование того же робота на МК и ПЛИС будет отличаться во многие и многие разы. Однако робот, работающий на ПЛИС будет гораздо шустрее, точнее и проворнее.

Железо и программа.

В ПЛИС всю работу нужно делать самому, вручную: для того, чтобы реализовать какую-либо программу на ПЛИС , нужно отследить каждый сигнальчик по каждому проводку, приходящему в ПЛИС , расположить какие-то сигнальчики в ячейки памяти, позаботиться о том, чтобы в нужный момент именно к этим ячейкам памяти обратился другой сигнальчик, который вы так же отслеживаете или даже генерируете, и в итоге набор сигнальчиков, задержанный в памяти задействовал нужный вам сигнальчик, который, например, пойдет на определенную выходную ножку и включит светодиодик, который к ней подключен. Часть сигнальчиков идет не в память, а например на запуск определенной части алгоритма(программы). То есть, говоря языком микропрогера, эти ножки являются адресными. Например, имеем на нашей плате в нашей программе три адресные ножки для включения неких не связанных(или связанных) друг с другом алгоритмов, которые мы реализовали на языке Verilog в ПЛИС . Также в программе, кроме трех адресных ножек, у нас есть еще например 20 информационных ножек, по которым приходит набор входных сигнальчиков(например с разных датчиков) с какой-либо информацией (например температура воды в аквариуме с датчика температуры воды в аквариуме). 20 ножек = 20 бит. 3 ножки -3 бита. Когда приходит адресный сигнал 001(с трех ножек адреса) — запускаем первый алгоритм, который записывает 20 информационных сигнальчиков в 20 ячеек памяти(20 триггеров), затем следующие 20 сигнальчиков умножаем на полученные ранее 20, а результат умножения записываем в память, а потом отсылаем по другим ножкам например в терморегулятор воды в аквариуме. Но Отошлем мы этот результат только тогда, когда на наши адресные ножки придет код например 011 и запустит алгоритм считывания и передачи. Ну, естественно «отсылаем», «считываем» и еще что-то прописываем в ручную. Ведем каждый сигнальчик в каждый такт работы ПЛИС по определенному пути, не теряем. Обрабатываем или записываем. Складываем или умножаем. Не забываем записать. Не забываем принять следующий сигнал и записать в другие триггеры. Еще добавьте сюда работу, привязанную к тактовой частоте, синхронизацию (которая так же реализуется вручную), неизбежные ошибки на этапах разработки и отладки и кучу других проблем, которые в данной статье рассматривать просто бессмысленно. Трудно. Долго. Но зато на выходе работает супер оперативно, без глюков и тормозов. Железно!

Теперь микроконтроллер . 20 ножек на прием информации — для большинства микроконтроллеров физически невозможная задача. А вот 8 или 16 — да пожалуйста! 3 информационных — в легкую! Программа? По адресу 001 умножить первое пришедшее число на второе, по адресу 011 отсылай результат в терморегулятор. Все! Быстро. Легко. Не супер, но оперативно. Если очень грамотно написать программу- без глюков и тормозов. Программно!

Железо и Программа! Вот главное отличие между ПЛИС и Микроконтроллером .

В микроконтроллере большинство замороченных, но часто используемых алгоритмов уже вшиты железо(в кристалл). Нужно лишь вызвать программным способом нужную библиотеку, в которой этот алгоритм хранится, назвать его по имени и он будет делать всю грязную работу за вас. С одной стороны это удобно, требует меньшего количества знаний о внутреннем устройстве микросхемы. Микрик берет на себя заботу об отслеживании принятых, генерируемых и результирующих сигналов, об их складировании, обработке, задержке. Все делает сам. В большинстве микропрогерских задач это то, что нужно. Но если безграмотно использовать все эти удобства, то возникает вероятность некорректной работы. Железо и Программа!

Заключение

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

По характеристикам выдаваемого сигнала, ПЛИС чаще всего рассчитана на 3,3В, 20мА, Микроконтроллер на 5В, 20мА.

Под микроконтроллер AVR, успешно внедренный в платформу Arduino, написано множество открытых программ, разработано великое множество примочек в виде датчиков, двигателей, мониторчиков, да всего, чего только душе угодно! Arduino в настоящее время больше похож на игровой конструктор для детей и взрослых. Однако не стоит забывать, что ядро этого конструктора управляет «умными домами», современной бытовой электроникой, техникой, автомобилями, самолетами, оружием и даже космическими аппаратами. Несомненно, такой конструктор будет являться одним из лучших подарков для любого представителя сильной половины человечества.

В принципе, все просто!

Остались вопросы? Напишите комментарий. Мы ответим и поможем разобраться =)

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

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

Для начала давайте рассмотрим разницу между микроконтроллером (MCU) и микропроцессором (MPU). Обычно микроконтроллер использует встроенную флэш память, в которой хранятся и выполняется его программа. Благодаря этому, микроконтроллер имеет очень короткое время запуска и может выполнять код очень быстро. Единственное ограничение при использовании встроенной памяти - это ее конечный объем. Большинство микроконтроллеров, доступных на рынке, имеют максимальный объем флэш памяти ~2 мегабайта. Для некоторых приложений это может оказаться критическим фактором.

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

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

Что выбрать MPU или MCU?

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

Один из аспектов, которые сложно определить, это быстродействие, требуемое для работоспособности будущей системы. Количественно оценить этот критерий можно с помощью так называемой вычислительной мощности, которая измеряется в Dhrystone MIPS или DMIPS (Dhrystone - это синтетический тест производительности компьютеров, а MIPS - количество миллионов инструкций в секунду). Например, микроконтроллер Atmel SAM4 на базе ядра ARM Cortex-M4 обеспечивает 150 DMIPS, а микропроцессор на ядре ARM Cortex-A5, такой как Atmel SAM5AD3 может обеспечить до 850 DMIPS. Один из способов оценить требуемый DMIPS - это посмотреть какая производительность нужна для запуска части приложения. Запуск полноценной операционной системы (Linux, Android или Windows CE) для работы вашего приложения потребовал бы около 300 - 400 DMIPS. А если использовать для приложения RTOS, то достаточно всего 50 DMIPS. При использовании RTOS также требуется меньше памяти, поскольку ядро обычно занимает несколько килобайт. К сожалению полноценная операционная система требует для своего запуска блок управления памятью (MMU), что в свою очередь ограничивает тип процессорных ядер, которые могут быть использованы.

Для приложений, которые обрабатывают большие объемы чисел, требуется определенный запас DMIPS. Чем больше приложение ориентировано на числовую обработку, тем выше вероятность использования микропроцессора.

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

Существует несколько факторов относительно пользовательского интерфейса. Во-первых, это дополнительная вычислительная нагрузка. Для такой интерфейсной библиотеки как Qt, которая широко используется на Linux`e, дополнительно потребуется 80-100 DMIPS. Во-вторых - это сложность пользовательского интерфейса. Чем больше вы используете анимации, эффектов и мультимедийного содержимого, чем выше разрешение изображения, тем большая производительность и память вам потребуется. Поэтому вероятнее всего здесь подойдет микропроцессор. С другой стороны, простой пользовательский интерфейс со статическим изображением на дисплее низкого разрешения может быть реализован и на микроконтроллере.

Другой аргумент в пользу микропроцессора - это наличие встроенного TFT LCD контроллера. Мало микроконтроллеров имеют в своем составе такой модуль. Можно поставить внешний TFT LCD контроллер и какие-то другие драйверы к микроконтроллеру, но нужно учитывать получаемую в итоге себестоимость изделия.

На рынке сейчас появляются флэш микроконтроллеры с TFT LCD контроллерами, но все же должно быть достаточное количество встроенной оперативной памяти для управления дисплеем. Например, 16-цветный QVGA 320х240 требует 150 кБ оперативной памяти чтобы выдавать изображение и обновлять дисплей. Это довольно большой объем ОЗУ и может потребоваться внешняя память, что тоже скажется на себестоимости.

Более сложные графические пользовательские интерфейсы, особенно использующие дисплеи размером больше 4,3 дюйма, требуют применения микропроцессоров. Если микропроцессоры доминируют в приложениях, где используется пользовательский интерфейс с цветным TFT экраном, то микроконтроллеры - короли сегментных или точечно-матричных LCD и других экранов с последовательным интерфейсом.

С точки зрения коммуникаций, большинство микроконтроллеров и микропроцессоров имеют в своем составе наиболее популярные . Но высокоскоростные интерфейсы, такие как HS USB 2.0, 10/100 Мбит/с Ethernet порты или гигабитные Ethernet порты, обычно есть только у микропроцессоров, потому что они лучше приспособлены к обработке больших объемов данных. Ключевой вопрос здесь - это наличие подходящих каналов и полосы пропускания для обработки потока данных. Приложения, использующие высокоскоростные подключения и ориентированные на операционную систему, требуют применения микропроцессоров.

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

Заключительная часть нашего обсуждения будет касаться энергопотребления. Хотя у микропроцессора есть режимы пониженного энергопотребления, у типичного микроконтроллера их намного больше. Кроме того, внешнее аппаратное обеспечение микропроцессора осложняет его перевод в эти режимы. Фактическое потребление микроконтроллера значительно ниже, чем микропроцессора. Например, в режиме энергосбережения с сохранением регистров и оперативной памяти, микроконтроллер может потреблять в 10-100 раз меньше.

Заключение

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

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

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

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

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

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

Что такое микропроцессор

Микропроцессор (в ангоязычной литературе MPU — Micro Processor Unit) содержит функционал компьютерного центрального процессора, или ЦП (CPU — Central Processing Unit) на одном полупроводниковом кристалле (ИМС — интегральная микросхема или на западный манер — Integrated Circuit).

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

Микропроцессор обрабатывает данные, поступающие с входных периферийных устройств и передает обработанные данные на выходные периферийные устройства.

Существует четыре основных типа процессоров, различающихся своей архитектурой.

Микропроцессоры с полным набором команд (Complex Instruction Set Computer, CISC -архитектура). Характеризуются нефиксированным значением длины команды, кодированием арифметических действий одной командой, небольшим числом регистров, выполняющих строго определённые функции. Примером такого типа процессоров служит семейство x86.

Микропроцессоры с сокращенным набором команд (Reduced Instruction Set Computer, RISC -архитектура). Обладают, как правило, повышенным быстродействием за счёт упрощения инструкций, что позволяет упростить процесс декодирования и, соответственно, сократить время их выполнения. Большинство графических процессоров разрабатываются, используя этот тип архитектуры.

Микропроцессоры с минимальным набором команд (Minimal Instruction Set Computer, MISC -архитектура). В отличие от RISC-архитектуры, в них используются длинные командные слова, что позволяет выполнять достаточно сложные действия за один цикл работы устройства. Формирование длинных «командных слов» стало возможным благодаря увеличению разрядности микропроцессорных устройств.

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

Отдельно хочу выделить микропроцессоры специального назначения (ASIC — Application S pecific I ntegrated C ircuit). Как следует из названия, предназначены для решения конкретной задачи. В отличие от микропроцессоров общего назначения, применяются в конкретном устройстве и выполняют определенные функции, характерные только для данного устройства. Специализация на выполнении узкого класса функций приводит к увеличению скорости работы устройства и, как правило, позволяет снизить стоимость такой интегральной схемы. Примерами таких микропроцессоров может быть микросхема, разработанная исключительно для управления мобильным телефоном , микросхемы аппаратного кодирования и декодирования аудио- и видеосигналов - так называемые цифровые сигнальные процессоры (Digital Signal Processing, DSP multiprocessors). Могут быть реализованы в виде ПЛИС (программируемая логическая интегральная схема). При разработке таких процессоров для описания их функциональности используют языки описания аппаратных устройств (HDL — Hardware D escription L anguage) , такие как Verilog и VHDL .

Системы на основе микропроцессоров строят примерно следующим образом.

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

Теперь, давайте, рассмотрим микроконтроллер.

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

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

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

Ядро микроконтроллера (центральный процессор), как правило строится на основе RISC-архитектуры.

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

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

Микропроцессор Микроконтроллер
Использование Компьютерные системы Встраиваемые системы
Устройство Содержит центральный процессор, регистры общего назначения, указатели стека, счетчики программы, таймер и цепи прерываний Cодержит схему микропроцессора и имеет встроенные ПЗУ, ОЗУ, устройства ввода/вывода, таймеры и счетчики.
Память данных Имеет много инструкций для перемещения данных между памятью и процессором. Имеет одну-две инструкции для перемещения данных между памятью и процессором.
Электрические цепи Высокая сложность Достаточно простые
Затраты Стоимость всей системы увеличивается Низкая стоимость системы
Число регистров Имеет меньшее количество регистров, операции в основном производятся в памяти. Имеет большее число регистров, поэтому проще писать программы
Запоминающее устройство Основано на архитектуре фон Неймана. Программа и данные хранятся в том же модуле памяти. Основано на Гарвардской архитектуре. Программы и данные хранятся в разных модулях памяти.
Время доступа Время доступа к памяти и устройствам ввода/вывода больше. Меньшее время доступа для встроенной памяти и устройств ввода/вывода.
Железо Требует большее количество аппаратного обеспечения. Требует меньшее количество аппаратного обеспечения.

Микропроцессор обычно не имеет RAM, ROM и IO контактов. Он обычно использует свои контакты в качестве шины для взаимодействия с периферийными устройствами, такими как RAM, ROM, последовательные порты, цифровой и аналоговый ввода-вывода. Из-за этого он расширяется на уровне доски.

Микроконтроллер - это «все в одном», процессор, RAM, IO на одном чипе, поэтому вы не можете (скажем) увеличить объем доступной RAM или количество портов ввода-вывода. Управляющая шина является внутренней и недоступной дизайнеру платы.

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

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

However, as I mentioned, the line gets blurry. For example, recent Intel/AMD processors add a memory controller on the chip (previously it was in the chipset).

2024 samgupsnn.ru. Samgupsnn - Немного о компьютере и современных гаджетах.