Ответы:
Микропроцессор обычно не имеет контактов ОЗУ, ПЗУ и ввода-вывода. Обычно он использует свои контакты в качестве шины для взаимодействия с периферийными устройствами, такими как ОЗУ, ПЗУ, последовательные порты, цифровой и аналоговый ввод-вывод. Это расширяется на уровне доски из-за этого.
Микроконтроллер «все в одном», процессор, оперативная память, ввод-вывод - все на одном чипе, поэтому вы не можете, скажем, увеличить объем доступной оперативной памяти или количество портов ввода-вывода. Управляющая шина является внутренней и недоступной для разработчика платы.
Это означает, что микропроцессор, как правило, может быть встроен в более крупные приложения общего назначения, чем микроконтроллер. Микроконтроллер обычно используется для более специализированных приложений.
Все это очень общие утверждения. Доступны чипы, которые стирают границы.
Как уже упоминалось, микроконтроллеры - это, по сути, системы на чипе. За исключением некоторых специализированных периферийных устройств, все в одной упаковке. Интерфейс к внешней периферии почти всегда выполняется с помощью последовательных соединений. Это сохраняет размеры пакетов маленькими (меньше контактов) и размер печатной платы маленькими (меньше контактов для подключения между пакетами).
На последнем Boston Barcamp (MIT 2009) я выступил с докладом «Введение в микроконтроллеры». Копия раздаточного материала находится на
Микропроцессоры:
Микропроцессоры:
Мне интересно, что набор LEGO Mindstorms NXT имеет микропроцессор [32-битный основной микропроцессор AT91SAM7S256 (ARM7TDMI) @ 48 МГц (256 КБ флэш-памяти, 64 КБ ОЗУ)] для мышления и микроконтроллер [8-битный ATmega48 микроконтроллер @ 4 МГц (4 КБ флэш-памяти, 512 байт ОЗУ)] для взаимодействия с датчиками и двигателями. Смотрите технические характеристики в Википедии .
Это различие гораздо труднее провести в наши дни, так как между крайностями возник целый спектр устройств, но если есть один идентификатор, который, кажется, работает, это посмотреть на распиновку и посмотреть, что разработчики сделал с булавками . Это в основном индивидуальные вводы / выводы? Или автобусы доминируют?
На мой взгляд, микроконтроллер традиционно представлял собой одночиповое решение; поместите один на печатную плату с несколькими неизбежными дискретными данными и несколькими разъемами, напишите небольшое количество программного обеспечения, и у вас будет система. Микроконтроллер содержит всю память, энергозависимую и нет, которая нужна системе, цена, уплаченная за это удобство, заключается в том, что под рукой не было бы много. Большинство контактов предназначено для функций ввода / вывода.
Принимая во внимание, что, с другой стороны, микропроцессор является своего рода зверем, чтобы максимально разгрузить поддержку чипов, чтобы выделять кремний для максимизации пропускной способности ядра процессора. Большинство выводов на этом типе устройств - это адрес и строки данных, необходимые для подключения к памяти и устройствам ввода-вывода, которых не хватает в ядре.
Некоторые микропроцессоры и микроконтроллеры все еще можно назвать микроконтроллерами, когда дизайнеры четко придерживаются той или иной философии. Intel Core i7 - явно процессор, PIC и AVR - явно контроллеры. Однако на данный момент, учитывая количество логики, которую можно поместить в один чип, вы можете легко встроить всю микропроцессорную систему 1990 года в один чип. Что вы называете 400 МГц PPC604 с контроллером прерываний, контроллером SDRAM, поддержкой Ethernet и множеством других периферийных устройств, все на одном чипе ?
В основном маркетинг.
Есть некоторые другие странные термины; Аналоговые устройства имеют (или имели) то, что они называли «микроконверторами», которые были похожи на АЦП / ЦАП со встроенным микропроцессором. В настоящее время TI вызывает некоторые из своих ЦСП (серии C2000) для цифровых сигнальных контроллеров.
Иначе, что сказал Джон Си.
Я бы предположил, что микроконтроллер - это устройство, которое содержит достаточно внутренней памяти и схем, чтобы, по крайней мере, в некоторых вариантах, он мог выполнять некоторую полезную функцию без внешней памяти. По такому определению, 8051 будет иметь достаточно схем, чтобы быть полезным сам по себе, а 8031 не будет; однако 8031 - это просто 8051, в котором содержимое внутреннего ПЗУ не определено (хотя вполне возможно, что некоторые микросхемы и варианты «без ПЗУ» 8031 оставляют место в ПЗУ, я бы ожидал, что есть и другие, которые, для согласования макета матрицы с версиями, которые включают ПЗУ, включают бесполезный пустой массив ПЗУ).
Просто чтобы добавить все выше превосходно написанные ответы, аналогия: микропроцессор - мозг. в то время как микроконтроллер - это все тело.
Мозг способен выполнять все инструкции, но мы должны прикрепить глаза, руки (то есть периферийные устройства) снаружи.
Хотя тело имеет мозг и другие периферийные устройства, т.е. микроконтроллер :)
Линия несколько размыта, но обычно она выглядит так:
Микропроцессоры содержат процессорное ядро (модуль выборки / декодирования, ALU, регистры и т. д.) и, возможно, пару более базовых блоков, но обычно не намного больше.
микроконтроллеры добавляют ОЗУ (SRAM), обычно некоторое ПЗУ (может быть маской или Flash / EEPROM) для хранения кода (но также может быть без ПЗУ) и набор базовых периферийных устройств (SPI / I2C, UART, GPIO, возможно, даже USB или Ethernet и тд). Иногда это называется System-on-Chip (SoC), а иногда SoC является чем-то еще более интегрированным. Некоторые японские компании также любят термин « микрокомпьютер ».
Однако, как я уже говорил, линия становится размытой. Например, последние процессоры Intel / AMD добавляют контроллер памяти на чипе (ранее он был в чипсете).
Кстати, я бы на самом деле назвал 8086 микропроцессором (микроконтроллеры Intel включают, например, 8051 или 80186).
Микропроцессор = процессор; Микроконтроллер = процессор + периферия + периферия памяти = порты + часы + таймеры + uarts + преобразователи adc + драйверы lcd + dac + другое; Память = eeprom + sram + eprom + flash
В микропроцессоре больше оп-кодов, немного инструкций по обработке битов. Но в микроконтроллере: меньше операционных кодов, больше инструкций по обработке битов.
Микропроцессор также не может быть запрограммирован для выполнения задач в реальном времени, в то время как микроконтроллер, например, в устройствах, которые должны контролировать температуру воды или, возможно, измерять температуру в помещении, требует мониторинга в реальном времени, и поэтому с его встроенным набором инструкций микроконтроллер работает сам по себе.
Микропроцессор - это простой центральный процессор (ЦП) на одной микросхеме (помните слово «Single Chip»). Он включает в себя блок арифметической логики (ALU), блок управления (CU), регистры, декодеры команд, схему управления шиной и т. Д., Но все должно быть на одном кристалле.
Микроконтроллер. Микроконтроллер - это объединение микропроцессора и периферийных устройств ввода-вывода, поддержки схем и памяти (как данных, так и программ). Не обязательно быть на одном чипе (помните об этом, а не на одном чипе).
Длинный ответ коротко:
Микропроцессор - делает «мышление», в основном чип, который обрабатывает математику.
Микроконтроллер - система с микропроцессором, способная взаимодействовать с электронными компонентами для разработки встроенных систем.