Микроконтроллеры против систем на чипе. Что выбрать?

Микроконтроллеры против систем на чипе. Что выбрать?

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

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

Ответы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Какой микроконтроллер выбрать начинающему? Arduino или более современный?

Какой микроконтроллер лучше? Опубликованная вчера в блоге на Habr статья «Быстрый старт с ARM Mbed: разработка на современных микроконтроллерах для начинающих» вызвала бурные обсуждения, т.к. она призывает «похоронить» популярную Arduino даже в любительских проектах.

Олег Артамонов и ранее приводил критику использования Arduino в старших классах школы, но на этот раз подробнее описал недостатки платформы, а также продемонстрировал, что работать с ARM Mbed просто — вопреки популярному мнению нет необходимости «долгими бессонными ночами читать бесконечные даташиты на регистры процессора и учить ассемблер».

«Традиционным преимуществом платформы Arduino считалоcь снижение порога входа в микроконтроллерную разработку до уровня базовых знаний C/C++ и электроники в масштабе «подключить светодиод в нужной полярности, — пишет Олег Артамонов, — Спросите примерно у любого активного сторонника Arduino — и вам быстро объяснят, что можно, конечно, писать под STM32 или nRF52, но выгоды в том реальной никакой, зато вас ждут бессонные ночи над сотнями страниц даташитов и бесконечные простыни функций с длинными непонятными названиями. Заслуги Arduino в снижении порога вхождения действительно трудно переоценить — эта платформа появилась на свет в середине нулевых годов, а после 2010 завоевала серьезную популярность среди любителей. Особых альтернатив на тот момент ей не было — процессоры на ядрах Cortex-M только появились, по сравнению с AVR они были довольно сложны даже для профессиональных разработчиков, а отладочные платы у большинства вендоров стоили от сотни долларов и выше (и в общем в индустрии ценник за отладку на 5-долларовом контроллере в $500 никого сильно не удивлял)».

Развитие платформы Arduino за последние 10 лет автор сравнил с изменениями в некоторых моделях. АвтоВАЗа. AVR, как и вообще 8-битные контроллеры, уже не выдерживают конкуренции с 32-битными Cortex-M по соотношению цена/характеристики. А сложность разработки существенно снизилась с появлением микроконтроллерных операционных систем. Благодаря ОС программирование микроконтроллеров становится ближе к написанию софта под большие ПК, и создание многозадачности средствами цикла loop() при наличии современных средств разработки, становится абсурдно. Микроконтроллерные операционные системы дают:

  • HAL — абстрагирование от железа.
  • Многозадачность.
  • Таймеры.
  • IPC — межпроцессное сообщение.
  • Наборы стандартных библиотек и функций — помимо API работы с самим микроконтроллером, ОС может предоставлять вам доступ к стандартным библиотекам, в том числе сторонней разработки.
  • Наборы драйверов — многие ОС предоставляют также «из коробки» наборы драйверов для внешних по отношению к контроллеру датчиков и систем.
Читайте также:  Фигуры для сада своими руками. Птицы: Аист, Глухарь и Павлин из пластиковых бутылок (скачать три подробные инструкции)

Статью прокомментировал разработчик микропроцессоров MIPS Юрий Панчул:

Главная проблема ардуины и ее software (UPD: если вы вздумаете использовать ее профессионально, как люди, с которыми ругается Олег) — это отсутствие многозадачности, из-за чего системы сложнее чем мигание лампочкой либо тормозят, либо процессор все время ожидает и обрабатывает ввод-вывод вместо решения полезных задач, либо имеет место куча спагетти-кода в комбинации с примитивными ардуинскими обработчиками прерываний. Именно это имхо стоило продемонстрировать Олегу с наглядными примерами кода. Ругаться с ардуинщиками по поводу порога входа в их нежно любимую платформу можно, но там речь идет о вкусах и небольшой неэффективности из-за ардуиногого api, а вот отсутствие в ардуине tasks/semaphores и других RTOS-ных примитивов, которые позволяют писать эффективные надежно работающие программы с компактным легко читаемым кодом — это принципиально, и на этом ардуинщиков вполне реально урыть (если они готовы идти дальше мигания лампочкой). Например привести вывод на графический экран двумя процессами с семафором, как мы в MIPS и Microchip сделали три года назад в курсе Connected MCU по программированию PIC32MZ и FreeRTOS

Позже Юрий Панчул добавил в свой пост информацию о существовании RTOS для Arduino: » … пусть живет. Все написанное отменяется.». Прогресс не стоит на месте и мир микроконтроллерных плат для любителей больше не ограничивается Arduino и ESP. А что думаете вы?

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

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

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

13 ответов

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

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

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

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

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

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

  • обычно бывают 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 байт ОЗУ)] для взаимодействия с датчиками и двигателями. См. технические характеристики в Википедии .

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

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

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

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

МИКРОКОНТРОЛЛЕРЫ: КРАТКИЙ ОБЗОР

Первый микроконтроллер


Закон Мура
Выступая в 1965 году на конференции International Electron Devices Meeting, один из будущих основателей Intel Гордон Мур (Gordon Moore) отметил, что новые модели микросхем разрабатывались спустя более-менее одинаковые периоды времени — 18-24 месяца — после появления их предшественников, а емкость их при этом возрастала каждый раз примерно вдвое.
Наблюдение Мура, еще не возведенное в то время в ранг закона, впоследствии блестяще подтвердилось, а обнаруженная им закономерность наблюдается и в наши дни. За 30 лет, истекшие с момента появления микропроцессора 4004 в 1971 году и вплоть до выпуска процессора Pentium® 4, количество транзисторов выросло более чем в 18000 раз – с 2 300 до 42 миллионов.

Закон Рока
Дополнение Артура Рока (Arthur Rock) к закону Мура: стоимость основных фондов, используемых в производстве полупроводников, удваивается каждые четыре года.


Перый микроконтроллер появился на свет в 1976 году, через 5 лет после создания первого микропроцессора. Это была микросхема фирмы Intel, получившая имя 8048.
Помимо центрального процессора, на кристалле находились 1 КБайт памяти программ, 64 байта памяти данных, два восьмибитных таймера, генератор часов и 27 портов ввода/вывода.
Микроконтроллеры семейства 8048 использовались в игровых консольных приставках Magnavox Odyssey, в клавиатурах первых IBM PC и в ряде других устройств.
Существует также мнение, что первым микроконтроллером был 4-х pазpядный TMS1000 от Texas Instruments, котоpый содеpжал ОЗУ (32 байта), ПЗУ (1К), часы и поддеpжку ввода-вывода, что позволяло считать его именно первым микpоконтpоллеpом. Выпущенный в 1972 году, он имел новую по тем временам возможность – добавление новых инструкций.

Следующий микроконтроллер Intel 8051, выпущенный в 1980 году, стал поистине классическим образцом устройств данного класса. Этот 8-битный чип положил начало целому семейству микроконтроллеров, которые господствовали на рынке вплоть до недавнего времени.
Аналоги 8051 выпускали советские предприятия в Минске, Киеве, Воронеже, Новосибирске, на них выросло целое поколение отечественных разработчиков.
Большинство фирм производителей микроконтроллеров и сегодня выпускают устройства, основанные на этой архитектуре. Среди них Atmel, Maxim, Philips, Dallas, OKI, Siemens — можно перечислить более полутора десятков имен. Но 51-е семейство сдает свои позиции более молодым и совершенным микроконтроллерам.

Motorola и Zilog

Другими яркими представителями восьмиразрядных микроконтроллеров явились изделия компаний Motorola (68HC05, 68HC08, 68HC11) и Zilog (Z8).
Motorola длительное время не предоставляла средств, позволяющих дешево и быстро начать работать с ее контроллерами, что явно не способствовало их популярности у некорпоративных разработчиков. Однако стоит заметить, что за рубежом микроконтроллеры от Motorola занимают лидирующее положение на рынке. В нашей стране их популярность не очень высока, возможно, еще в силу отсутствия достаточного количества доступных учебных материалов и средств разработки.
Микроконтроллеры фирмы Zilog, основанной бывшими сотрудниками Intel, еще недавно казавшиеся столь многообещающими, не выдержали гонки в стремительно развивающемся секторе рынка, и сегодня система команд Z8 выглядит достаточно устаревшей.

PIC от Microchip

Первые значительные перемены произошли с появлением PIC-контроллеров фирмы Microchip. Эти чипы предлагались по рекордно низким ценам, что позволило им в короткий срок захватить значительную часть рынка микроконтроллеров. К тому же кристаллы от Microchip оказались не уступающими, а нередко и превосходящими микроконтроллеры х51 по производительности и не требовали дорогостоящего программатора.
Вместе с контроллерами появились дешевые комплекты PICSTART, содержащие все, что было нужно для того, чтобы, не имея ни средств, ни навыков работы с PIC-контроллерами, быстро создать и отладить на нем продукт.
Эти микроконтроллеры имели хорошие порты, но все остальное было сделано весьма неудобно. Архитектура оставляла желать лучшего, система команд была крайне ограничена. Тем не менее, PIC-контроллеры остаются популярными в тех случаях, когда требуется создать недорогую систему, не предъявляющую высоких требований по ее управлению.

На волне успеха PIC-контроллеров появились очень похожие на них изделия фирмы Scinex. Они обладали уже 52-мя командами против PIC-овских 33-х. Были добавлены хорошие инструкции для работы с памятью, улучшена архитектура, каждая команда выполнялась за один такт, что при прочих равных условиях было вчетверо быстрее, чем у Microchip, и к тому же их тактовая частота достигала 100 МГц.
Столь высокая скорость контроллера позволяет его создателям отказаться от различной периферии — таймеров, счетчиков, регистров сдвига в приемопередатчиках, — все это рекомендуется реализовывать чисто программными средствами, благо быстродействия для этого хватает: внутри — лишь сверхбыстрое ядро, память да порты ввода/вывода.

Настоящая революция в мире микроконтроллеров произошла в 1996 году, когда корпорация Atmel представила свое семейство чипов на новом прогрессивном ядре AVR. Более продуманная архитектура AVR, быстродействие, превосходящее контроллеры Microchip, привлекательная ценовая политика способствовали оттоку симпатий многих разработчиков от недавних претендентов на звание контроллера номер 1.

Микроконтроллеры AVR имеют более развитую систему команд, насчитывающую до 133 инструкций, производительность, приближающуюся к 1 MIPS/МГц, Flash ПЗУ программ с возможностью внутрисхемного перепрограммирования. Многие чипы имеют функцию самопрограммирования. AVR-архитектура оптимизирована под язык высокого уровня Си. Кроме того, все кристаллы семейства совместимы “снизу вверх”.

Огромную роль сыграла доступность программного обеспечения и средств поддержки разработки. У Atmel много бесплатно распространяемых программных продуктов. Хорошо известно, что развитые средства поддержки разработок при освоении и знакомстве с любым микроконтроллерным семейством играют не менее значимую роль, чем сами кристаллы. Фирма Atmel уделяет этому вопросу большое внимание и выпускает чрезвычайно удачную и совершенно бесплатную среду разработки Atmel Studio, работающую под Windows.
Сторонние производители выпускают полный спектр компиляторов, программаторов, ассемблеров, отладчиков, разъемов и адаптеров.

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

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

STM от STMicroelectronics

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

Чуть раньше, в 2004 году, Acorn разработали 32-разрядное процессорное ядро ARM Cortex-M3 и компания STMicroelectronics стала одной из первых, кто вывел на рынок семейство микроконтроллеров на этом ядре, получивших название STM32. Сегодня ARM Cortex-M3 становится, возможно, самым популярным 32-разрядным процессорным ядром для встраиваемых систем, а микроконтроллеры на его базе имеют универсальную, хорошо сбалансированную архитектуру. Многие специалисты считают STM32 одним из самых распространенных, дешевых и перспективных 32-разрядных микроконтроллеров.

В списке микроконтроллеров, рассмотренных на этой странице, конечно, следовало бы также упомянуть появившееся еще в 1999 году замечательное семейство 16-разрядных микроконтроллеров MSP430 компании Texas Instruments, инженеры которой вдохновились при разработке микроконтроллеров ставшей сегодня уже легендарной системой команд и архитектурой компьютера PDP-11 компании DEC.

А среди производителей микроконтроллеров следовало бы выделить Cypress, Dallas Semiconductor, Philips, Infineon (Siemens), Futjitsu, Mitsubishi Electronics, Temic, National Semoconductor, Oki Semiconductor и др.

Отдельного упоминания заслуживают мощные контроллеры фирмы Toshiba. Хотя у них и отсутствует внутренняя память программ, нужен кристалл внешнего ПЗУ, но они имеют хорошо развитую периферию и способны поддерживать модули памяти типа SIMM. За рубежом эти контроллеры ставятся в DVD-проигрыватели, CD-проигрыватели, автоответчики, — словом, туда, где надо работать с большими объемами памяти.

Также следует сказать о самых маленьких в мире микроконтроллерах ACE. Это 8-разрядные чипы размерами около 3х4 мм, из 8 выводов 6 – это порты ввода/вывода. По возможностям они похожи на Microchip или AVR, но в очень маленьком корпусе. Им можно сделать минимальное обрамление и поместить в ручку какого-нибудь изделия.

И, конечно же, нельзя пройти мимо широко развитой линии микроконтроллеров H8 фирмы Hitachi. Это большая семья микроконтроллеров, включающая H8/300, H8/300H, H8/500 и H8S серии. Основа архитектуры H8 базируется, почти как и в случае с MSP430, на решениях фирмы DEC и их компьютере PDP-11. Несколько компаний выпускают для этих микроконтроллеров компиляторы ассемблера и языков высокого уровня. H8 могут быть найдены в цифровых фотокамерах, контроллерах принтеров и различных автоматических подсистемах. Также они трудятся в контроллерных блоках RCX конструкторов роботов Lego MindStorms.

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

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

NodeMCU (ESP8266)

Плата, на которой установлен микроконтроллерный модуль ESP8266 с процессором Tensilica Xtensa L106, работающим на частоте 80 МГц (можно разогнать до 160 МГц). Плата имеет 4 мегабайта Flash-памяти. Размер NodeMCU всего 6 х 3 см. NodeMCU умеет работать с локальной сетью или с интернетом через Wi-Fi. Программы загружаются через разъем Micro USB на плате. Наличие интерфейса UART-USB позволяет легко подключить плату к компьютеру. NodeMCU может программироваться на языке Си. Существует множество прошивок, дающих возможность писать программы для ESP8266 на языках высокого уровня: Lua, MicroPython, JavaScript, Basic, Лисп. Кроме того, написаны специальные прошивки для интернета вещей и домашней автоматизации. NodeMCU часто используется для создания систем умного дома или роботов, управляемых на расстоянии.

Arduino Uno R3

Плата из семейства Arduino, ориентированного на непрофессиональных пользователей. Программирование встроенного микроконтроллера ATmega328 от Atmel производится на специальном языке Arduino с помощью бесплатной одноименной среды программирования. Uno R3 имеет 32 КБ памяти для программ, 2 КБ ОЗУ и 1 КБ энергонезависимой памяти EEPROM. Программы для Arduino называются скетчами. При загрузке скетча используется Загрузчик Arduino — небольшая программа, заранее загруженная в микроконтроллер на плате. Запрограммировать Arduino Uno R3 можно просто подключив плату к компьютеру обычным USB-кабелем. Для китайских клонов Arduino необходимо установить драйвер CH340.

STM8S-Discovery

Официальная отладочная плата от STMicroelectronics с 8-разрядным микроконтроллером STM8S105C6T6. Имеет 32 КБ Flash-памяти для прогамм, 2 КБ оперативной памяти, 1 КБ энергонезависимой памяти EEPROM; пользовательский светодиод и сенсорные кнопки, а также удобную макетную площадку для монтажа дополнительных элементов схемы. В плату интегрирован программатор/отладчик ST-Link, позволяющий загружать программы в память микроконтроллера, подключив плату к порту USB. Программатор может быть легко отделен от платы, а плата может использоваться в законченном устройстве.

STM32VL-Discovery

Мощная отладочная плата от ST имеет на борту программатор/отладчик ST-LINK и производительный 32-разрядный ARM-микроконтроллер STM32F100RBT со 128 КБ Flash-памяти и 8 КБ ОЗУ. На плате присутствуют два пользовательских светодиода и кнопка. Часто рекомендуется в качестве начального средства для знакомства с ARM-микрконтроллерами на ядре Cortex-M3.

MSP430 LaunchPad

Плата от Texas Instruments для быстрого знакомства с 16-разрядными микроконтроллерами MSP430. Поставляется с установленным микроконтроллером MSP430G2553 (16 КБ Flash-памяти для программ, 512 Байт ОЗУ) и дополнительным MSP430G2452. Для составления программ на языке Си можно использовать бесплатную Code Composer Studio от производителя платы. Кроме того, существует бесплатная ардуиноподобная среда Energia.

Lego RCX
В основе RCX лежит микроконтроллер Hitachi H8/3297 (семейство процессоров H8/300 с 32Kb оперативной памяти). Микроконтроллер используется для управления тремя моторами, тремя сенсорами и инфракрасным портом.
Встроенная в чип 16Kb ROM содержит драйвер, который запускается при первом включении RCX. Возможности прошитого драйвера расширяются при загрузке в RCX 16Kb программного обеспечения (firmware). Вместе они позволяют выполнять команды, полученные с компьютера через ИК порт. Программы, созданные пользователем, загружаются в RCX как байт-код и хранятся в отведенном для них 6Kb участке памяти.

Lego NXT
Контроллерный блок NXT работает под управлением 32-битного микроконтроллера семейства ARM7 (Atmel AT91SAM7S256) на частоте 48 MHz. Имеет 256 Kb Flash-памяти программ и 64 Kb RAM.

Кроме того, в NXT трудится 8-битный микроконтроллер Atmel AVR с 4 Kb FLASH-памяти и 512 Byte RAM. NXT имеет встроенный Bluetooth-модуль, порт USB, 4 порта для датчиков, 3 порта для моторов, графический LCD-дисплей (100 x 64) и громкоговоритель.

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

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

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

6 ответов

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

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

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

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

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

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

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

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

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

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

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

Между ними довольно много кроссовера – когда он перестает быть микроконтроллером и начинает быть Системой на чипе? Из-за чего возникает путаница.

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

p.s., не цитируйте меня на этом, поскольку я говорю, что между ними существует много кроссоверов.

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

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

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

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

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

Да SoC – это в основном маркетинговый термин, используемый чаще всего. Существует устройство и терминология хоста. Хост – это крупные производители ПК, такие как Dell, HP, IBM и т. д. Они использовали встроенный в них процессор, как правило, от Intel, AMD и т. д. . Так что они в основном обеспечивают CPU или SoC на материнской плате (так называемый CPU), некоторые также обеспечивают CPU + SoC (для определенной цели – разгрузить активность периферийных устройств, например датчиков или устройства GPS, что в противном случае было бы очень когда они были подключены непосредственно к ЦП) .SoC также иногда называют Co-Processor, чья работа такая же, как и то, что я написал ранее. Теперь к MotherBoards подключены различные периферийные устройства (которые подключены в основном к процессору или SoC), эти периферийные устройства в основном либо подключены непосредственно к ним (SOC или CPU) через шину sum – i2c, SPI, USB, либо они обычно подключены к MicroControllers .SO либо микроконтроллер сопряжен с SoC, либо эти устройства подключаются непосредственно к шине. Теперь Qs – это то, почему периферийные устройства будут подключены к микроконтроллерам, а не к шине напрямую, хорошо, есть причина, если производители периферийных устройств также производители микроконтроллера, которые они намеренно попытаются подтолкнуть свои периферийные устройства вместе с микроконтроллерами не только к лучшей прибыли, но и к лучшим решениям, поскольку подвиги в микроконтроллере будут давать двойной импульс их решению. Имейте в виду, если они предоставляют bluetooth, но подключение его с микроконтроллером заставит их дать маломощное голодное, быстрое решение на базе микроконтроллера bluetooth. Это беспроигрышный решение для устройства (периферийных устройств, контроллеров), а также производителей ПК, поскольку они получают лучшие устройства (периферийные + микроконтроллеры). Итак, все дело в терминах микроконтроллера, который вы увидите чаще всего на стороне устройства (тот, который сопряжен с SoC (теперь вы знаете, что такое SOC? Dont you) и SoC на стороне хоста (сторона ПК ). Вы можете сказать, что процессор – это отец, делегирующий soem своей работы в SoC для улучшения возможностей питания устройств (микро + периферийные устройства). В основном у систем больше памяти для размещения микроконтроллеров OS-совместимых ОС, которые могут в наибольшей степени поддерживать RTO.

Какой выбрать микроконтроллер?

Какой МК выбрать любителям

Если вспомнить олимпийский девиз: «Быстрее, выше, сильнее» (лат. «Citius, Altius, Fortius»), то применительно к МК он прозвучит так: «Выше тактовая частота, больше объём памяти, меньше энергопотребление». Но не надо в спешке выбирать по каталогу самую «крутую» микросхему. Это не поможет. Радиолюбительская практика ограничивается тремя важными факторами: стоимостью, технологией пайки, доступностью программного обеспечения.

Стоимость ультрасовременных «навороченных» МК доходит до нескольких десятков долларов США. В простых любительских конструкциях нет смысла ориентироваться на большие деньги. Одну и ту же не очень сложную задачу дешёвый и дорогой М К решают с одинаковым успехом. Зачем платить больше?

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

в корпусах SOIC, QFP, рассчитанных на автоматизированный поверхностный монтаж. Расстояние между выводами составляет 0.5. 1.27 мм. Не каждый монтажник без специальных приспособлений и микроскопа сможет качественно запаять все 44. 208 выводов такой микросхемы.

В домашних условиях имеется большой риск повредить и сам чип, и тонкие дорожки печатной платы. Следовательно, двухрядная чёрная китайская панелька с шагом между выводами 2.54 мм останется ещё долгое время объективной реальностью в радиолюбительском деле.

Если всё-таки понадобится использовать более совершенный МК, то стоит задуматься о приобретении так называемого «отладочного комплекта». Он состоит из печатной платы, на которой уже распаяны: МК, кварцевый резонатор, стабилизатор питания, разъёмы для подключения периферийных устройств, а зачастую и ЖК-индикатор с кнопочной тастатурой. Кроме того, в комплект поставки входят средства проектирования — программный компилятор и отладчик. В целом получается хороший стартовый набор при относительно небольшой цене от 15 до 100 долларов США в зависимости от периферии.

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

Житейская мудрость определила ряд здоровых принципов отбора МК. Во-первых, не гнаться за экзотикой, во-вторых,не связываться с единственным семейством, в-третьих, не экономить на средствах отладки и программирования. Теперь понятно, почему на сегодняшний день наиболее популярными среди любителей являются 8-битные МК семейств ATmega, ATtiny, PIC 12, PIC 16, PIC 18. Сравнительно низкие цены, доступность на рынке, хорошие технические характеристики, наличие микросхем в DIP-корпусе, множество учебников и примеров — вот залог успеха.

Какой МК выбрать профессионалам

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

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

Таблица 1.1. Рекомендации по выбору МК

Рекомендуемые МК разрядностью 8/16/32 бита

Atmel ARM, NXP LP210x, Microchip PIC24/dsPIC, Ubicom SX

Читайте также:  Катамаран, сделанный своими руками из велосипеда и пластиковых бутылей
Ссылка на основную публикацию