May 13th, 2021

Микрокомпьютер и микроконтроллер, в чем разница?

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

Зацепились за определения микрокомпьютера и микроконтроллера.
Я считаю, что назвать плату с микроконтроллером микрокомпьютером может только тот, кто не имеет к этим устройствам никакого отношения.

Как же этот специалист, с таким уровнем знаний, может подбирать качественный товар на полки своего магазина?
Ведь коллега меня заверял, что главная цель этой компании - качество товара!

Хотя на Вики говорят ровно в этом же ключе https://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80

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


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

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

Более того, цена, размеры, наборы интерфейсов и прочее обычно достаточно сильно отличаются.

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

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

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

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