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

189

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

эндолиты
источник
2
Также см. Эту статью Atmel.
Sudoer
в основном цена :-)
Хильмар
1
@Hilmar, «в основном цена» - неправильно.
cp.engr

Ответы:

191

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

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

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

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

JohnC
источник
4
Многие микроконтроллеры делают шину памяти доступной для внешнего кода и данных; эти контакты могут или не могут использоваться для других целей, если внешняя память не используется. На мой взгляд, определяющим отличием является то, будет ли устройство ( ) способно работать хотя бы несколько полезно без внешней шины памяти. ( ) 8051, безусловно, способен, так что это явно "микроконтроллер". 8031 - это тот же чип, что и 8051, но содержимое ПЗУ не указано. Отсутствие полезного ПЗУ сделало бы его микропроцессором, но поскольку это тот же чип, что и 8051, его можно назвать микроконтроллером.
суперкат
2
«Управляющая шина является внутренней и недоступна для разработчика платы». Это не обязательно правда. Существуют микроконтроллеры с внешним адресом / шиной данных для обеспечения дополнительной памяти.
Stevenvh
Итак, можем ли мы сказать, что микроконтроллер - это, по сути, компьютер, а микропроцессор - просто однокристальная реализация процессора?
doubleOrt
@doubleOrt: Вы могли бы выразиться так, но границы размыты. В наши дни существует довольно много микросхем, которые включают энергозависимую память данных (SRAM), но не содержат энергонезависимой памяти кода (Flash). Их также часто называют MPU (микропроцессор). Таким образом, в наши дни это различие, по-видимому, связано в основном с Flash-чипами. NXP продает то, что они называют «кроссоверным» процессором с оперативной памятью, но без Flash. Это связано с растущей сложностью интеграции Flash в чипе с еще меньшими транзисторами. Предел тока, кажется, составляет около 28 нм.
sh-
29

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

На последнем Boston Barcamp (MIT 2009) я выступил с докладом «Введение в микроконтроллеры». Копия раздаточного материала находится на

http://www.luciani.org/not-quite-ready/doc/intro-to-uC.pdf

jluciani
источник
25

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

  • обычно 8-битные, но могут быть 4-, 16- или 32-битными
  • работать на скорости менее 200 МГц
  • использовать очень мало энергии
  • может обеспечить достаточный ток для работы светодиода
  • полезны для взаимодействия с датчиками и моторами
  • легко заменяются, будучи недорогими (от 0,10 до 10 долларов)
  • действительно ограничены для оперативной памяти и постоянного хранения (флэш-памяти)
  • действительно хороши для любителей электроники

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

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

Мне интересно, что набор LEGO Mindstorms NXT имеет микропроцессор [32-битный основной микропроцессор AT91SAM7S256 (ARM7TDMI) @ 48 МГц (256 КБ флэш-памяти, 64 КБ ОЗУ)] для мышления и микроконтроллер [8-битный ATmega48 микроконтроллер @ 4 МГц (4 КБ флэш-памяти, 512 байт ОЗУ)] для взаимодействия с датчиками и двигателями. Смотрите технические характеристики в Википедии .

Клинтон Блэкмор
источник
2
8-битный является доминирующим микропроцессором, но он далеко не самый распространенный, я думал, что читал в начале этого года, что они больше не составляют более 50% доли рынка.
Кортук
3
На самом деле, я хотел бы сказать, что я не согласен с большим количеством списка микроконтроллеров. Большинство дешевых, которые они устанавливают в системах, не стоят доллара, многие, в зависимости от марки, не могут обеспечить ток для питания светодиода. Есть также очень большая группа, которая ломает 20 МГц, но в целом соответствует этой спецификации. Я думаю, что они также отлично подходят для любителей.
Кортук
Я включил некоторые изменения и сделал свой ответ вики-сообществом - помогите мне сделать это правильно!
Клинтон Блэкмор
3
AT91SAM7S256 - определенно ни микроконтроллер, ни микропроцессор.
2010 года
4
Я начал редактировать это, публикуя, но я не думаю, что это действительно подлежит обмену. Принятый ответ на этот вопрос имеет суть разницы, которая в основном заключается в «встроенной памяти» или «нет встроенной памяти». Боюсь, что этот список в основном представляет собой список обобщений, некоторые из которых просто неверны.
13

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

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

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

Некоторые микропроцессоры и микроконтроллеры все еще можно назвать микроконтроллерами, когда дизайнеры четко придерживаются той или иной философии. Intel Core i7 - явно процессор, PIC и AVR - явно контроллеры. Однако на данный момент, учитывая количество логики, которую можно поместить в один чип, вы можете легко встроить всю микропроцессорную систему 1990 года в один чип. Что вы называете 400 МГц PPC604 с контроллером прерываний, контроллером SDRAM, поддержкой Ethernet и множеством других периферийных устройств, все на одном чипе ?

JustJeff
источник
> Что вы называете 400 МГц PPC604 с контроллером прерываний, контроллером SDRAM, поддержкой Ethernet и множеством других периферийных устройств, все на одном чипе? => Я бы назвал это "жирным микропроцессором". Нет ПЗУ и ОЗУ, поэтому точно не микроконтроллер.
Wouter van Ooijen
2
@Wouter van Ooijen - я думаю, я должен был упомянуть, я бы назвал это «системой на чипе».
JustJeff
5

В основном маркетинг.

Есть некоторые другие странные термины; Аналоговые устройства имеют (или имели) то, что они называли «микроконверторами», которые были похожи на АЦП / ЦАП со встроенным микропроцессором. В настоящее время TI вызывает некоторые из своих ЦСП (серии C2000) для цифровых сигнальных контроллеров.

Иначе, что сказал Джон Си.

Джейсон С
источник
Где я могу найти больше об этих "микроконверторах"? Самая близкая вещь, которую я нашел, это TAS3202.
эндолит
возможно, они перестали называть их так. analog.com/en/analog-microcontrollers/analog-microcontrollers/… Меня никогда не впечатлили микропроцессоры ADI, их аналоговые компоненты хороши, а их DSP должны быть хорошими, но у меня нет опыта работы с ними ,
Джейсон С
Максимальная частота дискретизации 8 кГц, поэтому бесполезна для звука. : /
эндолит
2
Я не согласен, что это в основном маркетинг. Я согласен с ответом JohnC.
Даниэль Грилло
5

Я бы предположил, что микроконтроллер - это устройство, которое содержит достаточно внутренней памяти и схем, чтобы, по крайней мере, в некоторых вариантах, он мог выполнять некоторую полезную функцию без внешней памяти. По такому определению, 8051 будет иметь достаточно схем, чтобы быть полезным сам по себе, а 8031 ​​не будет; однако 8031 ​​- это просто 8051, в котором содержимое внутреннего ПЗУ не определено (хотя вполне возможно, что некоторые микросхемы и варианты «без ПЗУ» 8031 ​​оставляют место в ПЗУ, я бы ожидал, что есть и другие, которые, для согласования макета матрицы с версиями, которые включают ПЗУ, включают бесполезный пустой массив ПЗУ).

Supercat
источник
4

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

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

Хотя тело имеет мозг и другие периферийные устройства, т.е. микроконтроллер :)

Swanand
источник
3

Линия несколько размыта, но обычно она выглядит так:

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

  • микроконтроллеры добавляют ОЗУ (SRAM), обычно некоторое ПЗУ (может быть маской или Flash / EEPROM) для хранения кода (но также может быть без ПЗУ) и набор базовых периферийных устройств (SPI / I2C, UART, GPIO, возможно, даже USB или Ethernet и тд). Иногда это называется System-on-Chip (SoC), а иногда SoC является чем-то еще более интегрированным. Некоторые японские компании также любят термин « микрокомпьютер ».

    Однако, как я уже говорил, линия становится размытой. Например, последние процессоры Intel / AMD добавляют контроллер памяти на чипе (ранее он был в чипсете).

    Кстати, я бы на самом деле назвал 8086 микропроцессором (микроконтроллеры Intel включают, например, 8051 или 80186).

Игорь Скочинский
источник
2

Разница между микроконтроллером и микропроцессором

  1. Микропроцессор = процессор; Микроконтроллер = процессор + периферия + периферия памяти = порты + часы + таймеры + uarts + преобразователи adc + драйверы lcd + dac + другое; Память = eeprom + sram + eprom + flash

  2. В микропроцессоре больше оп-кодов, немного инструкций по обработке битов. Но в микроконтроллере: меньше операционных кодов, больше инструкций по обработке битов.

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

Нилам Сингх
источник
3
Эта информация немного случайна и не так хорошо сформулирована для вопроса с таким количеством ответов. Возьмем пример: кто сказал, что микроконтроллер должен иметь драйверы АЦП, ЦАП и ЖКД? У многих они есть, но это не правило. То же самое для обработки битов и работы в реальном времени.
Клабаккио
@neelamSingh, Добро пожаловать на сайт, ваше сообщение плохо отформатировано и, кажется, частично обрезано, оно может использовать какую-то работу!
Кортук
2
Ваш третий пункт недействителен. Способность в реальном времени определяется ОС, а не типом процессора. Нет причин, по которым ОСРВ не будет работать на микропроцессоре. И микроконтроллеры не обязательно имеют больше инструкций по обработке битов.
Stevenvh
1

Микропроцессор - это простой центральный процессор (ЦП) на одной микросхеме (помните слово «Single Chip»). Он включает в себя блок арифметической логики (ALU), блок управления (CU), регистры, декодеры команд, схему управления шиной и т. Д., Но все должно быть на одном кристалле.

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

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

Все ответы верны, так как эта разница больше блоков, имеющих в mC и mP, см. Таблицу ниже,

введите описание изображения здесь

Пракаш Дарджи
источник
0

Длинный ответ коротко:
Микропроцессор - делает «мышление», в основном чип, который обрабатывает математику.
Микроконтроллер - система с микропроцессором, способная взаимодействовать с электронными компонентами для разработки встроенных систем.

гигаджоули
источник