микроконтроллер против системы на чипе


24

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

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

Благодарность!


4
Спасибо, что приняли мой ответ, но я очень рекомендую подождать в следующий раз, прежде чем принять. Другие, вероятно, имеют разные взгляды и идеи, но часто могут пропустить вопрос, на который уже есть принятый ответ - я знаю, что знаю. Вы хотите оставить некоторое время для достижения консенсуса, особенно для вопроса, который касается серой области.
Олин Латроп

@ Олин Круто, запомни это в следующий раз!
Разд

Ответы:


27

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

Что касается системы на чипе, это менее четко определенный термин. Кипр называет некоторые свои части PSOC (Программируемая система на чипе). Это в основном микроконтроллер с небольшой FPGA на одном чипе. Вместо встроенных периферийных устройств вы можете делать все, что захотите, в пределах доступных ресурсов ПЛИС.

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


20

Система на чипе (или SoC) - это всеобъемлющая фраза, которую используют маркетологи, и она мало что значит. Есть также много вариантов, как:

PSoC: программируемая система на чипе, Cypress Semiconductor.

SOPC: система на программируемом чипе от Altera

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

Что еще хуже: существует множество примеров того, что называется SoC, для работы которого все еще требуется несколько чипов. Часто вы будете иметь некоторую форму периферийных устройств ЦП +, которые по-прежнему требуют внешней флэш-памяти, оперативной памяти и питания. Так что даже название SoC вводит в заблуждение.

MCU, вероятно, является наиболее кратким примером того, каким должен быть SoC, но это очень ограниченный пример.


@ David-kesner +1 для SoC как маркетинговая фраза.
Фрэнк

12

В общем, микроконтроллер рассматривается как встроенное устройство, которое внутренне запрограммировано для выполнения конкретной задачи. Существует минимальное взаимодействие с пользователем и мало или нет гибкости. Микроконтроллер, как правило, довольно маломощный, с небольшим объемом памяти и ПЗУ (флэш-память).

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

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

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

ps, не цитируйте меня по этому поводу - как я уже сказал, между ними много пересечений.


5

Различие в некотором смысле больше связано с маркетингом, чем с техническим, но я хотел бы предположить, что в целом «программируемая» часть микроконтроллера ограничена одним, относительно узким, «потоком сознания». По сути, в любой данный момент следующая относительно небольшая операция микроконтроллера будет определяться тем, как он запрограммирован, но вся остальная логика в системе является аппаратной и будет работать так, как она построена. Некоторые вещи, такие как таймеры, могут предоставлять некоторые параметры конфигурации (например, подсчет с фиксированной скоростью в сравнении с подсчетом импульсов на входе), но в целом проводка системы будет фиксированной. Если желательно иметь некоторое изменение выходного сигнала в ответ на некоторый входной сигнал, и не существует явного оборудования для этого, Программа должна будет периодически просматривать входной сигнал и, если он изменился, переключать выходной сигнал. Если требуется изменение выходного аналогового напряжения в ответ на входное аналоговое напряжение, процессор может сэмплировать входное напряжение, вычислить желаемый отклик и запросить желаемое выходное напряжение. Практически тип желаемого стимула / отклика может быть получен, если процессор будет анализировать входы и вычислять выходы, но время отклика, как правило, будет на несколько порядков медленнее, чем можно было бы получить с помощью специального оборудования.

Общая идея системы «на кристалле» состоит в том, чтобы обеспечить схему достаточным количеством мультиплексоров и других средств маршрутизации, чтобы сигналы можно было направлять по цепям для создания многих полезных типов шаблонов стимулов / откликов без вмешательства процессора. Такие схемы не могут генерировать шаблоны стимулов / откликов, которые настолько близки к тому, что может производить процессор, но во многих случаях они могут быть на несколько порядков быстрее, чем то, что может сделать процессор.


2

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

  1. NFC
  2. GPS
  3. Акселерометр и гироскоп
  4. Вай-фай
  5. Процессор и графический процессор

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


0

Да, SoC - это, в основном, маркетинговый термин, который используется чаще всего. Существует терминология «устройство» и «хост». Это крупные производители ПК, такие как Dell, HP, IBM и т. Д. Они используют внутри них процессоры, обычно производимые Intel, AMD и т. Д. в основном предоставляет CPU или SoC на материнской плате (так называемый CPU), некоторые также предоставляют CPU + SoC (для определенной цели, чтобы снять нагрузку с периферийных устройств - таких как датчики или устройства GPS, которые в противном случае были бы очень энергоемкими, если бы они были подключены напрямую к ЦП) .SoC также иногда называют сопроцессором, работа которого такая же, как я написал ранее. Теперь к материнским платам подключаются различные периферийные устройства (которые подключаются в основном к CPU или SoC), эти периферийные устройства в основном либо подключаются напрямую к ним (SOC или CPU) через шину sum - i2c, SPI, USB, либо они обычно подключаются к микроконтроллерам. , производителей контроллеров), а также производителей ПК, поскольку они получают лучшие устройства (периферийные устройства + микроконтроллер). Итак, весь смысл в том, что термин «микроконтроллер» вы будете чаще видеть на стороне устройства (тот, который связан с SoC (теперь вы знаете, что такое SOC, не так ли) и SoC на стороне хоста (на стороне ПК). ). Вы можете сказать, что CPU является отцом, который делегировал SoE своей работы в SoC для улучшения возможностей устройств (Micro + периферия). В основном у Socs есть больше памяти для размещения ОС, не поддерживающей микроконтроллеры, которые в большинстве своем могут поддерживать RTO.


1
ВОТ ЭТО ДА ! Действительно нравится понижать голос, когда люди делают это, не заявляя много нужных комментариев!
Раульп

3
Это очень неясно. Я не могу делать входы и выходы в этом потоке сознания.
ivan_pozdeev

0

Резюмируя вышесказанное, мне кажется:

MCU обеспечивает много памяти, интерфейсы, такие как VGA, и возможности, такие как GPU, используя несколько разных чипов, которые обеспечивают разные вещи.

MCU подходит для всего на одном кристалле, предоставляя только минимальную память, интерфейсы и т. Д.

SoC подходит всем на одном чипе, расширяя границы того, что можно сделать на одном чипе.

Микроконтроллеры обеспечивают ценность за счет минимизации затрат, а микроконтроллеры обеспечивают ценность за счет максимизации функциональности как на одном кристалле. Если он конкурирует с логикой TLL, это, вероятно, MCU. Если конкурировать с микропроцессорами (AMD, Intel), это, вероятно, SoC.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.