Что такое микроконтроллер и как он работает. Какие бывают типы микроконтроллеров. Для чего используются микроконтроллеры в современной технике. Как научиться программировать микроконтроллеры.
Что такое микроконтроллер и как он устроен
Микроконтроллер — это миниатюрный компьютер, выполненный в виде интегральной схемы. Он объединяет в одном корпусе процессор, память, порты ввода-вывода и другие периферийные устройства. По сути, это «компьютер на одном чипе», предназначенный для управления различными электронными устройствами и системами.
Основные компоненты микроконтроллера:
- Центральный процессор (ЦПУ) — выполняет вычисления и обработку данных
- Память программ (ПЗУ) — хранит управляющую программу
- Оперативная память (ОЗУ) — используется для временного хранения данных
- Порты ввода-вывода — для подключения внешних устройств
- Таймеры — для отсчета временных интервалов
- АЦП и ЦАП — для работы с аналоговыми сигналами
- Интерфейсы — для обмена данными с другими устройствами
Чем микроконтроллер отличается от микропроцессора
Главное отличие микроконтроллера от микропроцессора заключается в том, что микроконтроллер — это законченная система на одном кристалле, а микропроцессор требует подключения внешних компонентов для работы. Сравним их основные особенности:
Микроконтроллер | Микропроцессор |
---|---|
Содержит ЦПУ, память и периферию на одном чипе | Только ЦПУ, требует внешних компонентов |
Предназначен для встраиваемых систем управления | Используется как вычислительное ядро компьютеров |
Низкое энергопотребление | Высокое энергопотребление |
Ограниченные вычислительные возможности | Высокая вычислительная мощность |
Основные семейства и производители микроконтроллеров
На рынке представлено множество семейств микроконтроллеров от разных производителей. Наиболее популярные из них:- AVR — 8-битные микроконтроллеры от Microchip (ранее Atmel)
- PIC — 8/16/32-битные микроконтроллеры от Microchip
- STM32 — 32-битные ARM-микроконтроллеры от STMicroelectronics
- MSP430 — 16-битные микроконтроллеры от Texas Instruments
- ESP8266/ESP32 — микроконтроллеры со встроенным Wi-Fi от Espressif
При выборе микроконтроллера учитывают такие параметры как разрядность, тактовая частота, объем памяти, набор периферии, энергопотребление и цена. Для начинающих часто рекомендуют 8-битные AVR или PIC микроконтроллеры из-за их простоты и доступности.
Области применения микроконтроллеров
Микроконтроллеры нашли широкое применение в самых разных областях техники и электроники. Вот некоторые примеры их использования:
- Бытовая техника (стиральные машины, микроволновки, кондиционеры)
- Автомобильная электроника (системы управления двигателем, климат-контроль)
- Промышленная автоматика (ПЛК, системы мониторинга)
- Измерительные приборы и датчики
- Портативная электроника (смартфоны, фитнес-трекеры)
- Системы «умный дом» и IoT устройства
- Робототехника и беспилотные системы
Микроконтроллеры позволяют создавать компактные, энергоэффективные и недорогие устройства с широкими функциональными возможностями. Это делает их незаменимыми во многих современных технологиях.
Как программировать микроконтроллеры
Для программирования микроконтроллеров используются различные языки и среды разработки. Наиболее распространенные подходы:
- Программирование на языке ассемблера — низкоуровневый язык, обеспечивающий прямой доступ к аппаратным ресурсам.
- Использование языка C/C++ — позволяет писать более структурированный и переносимый код.
- Применение специализированных сред разработки (IDE) от производителей микроконтроллеров.
- Использование платформ вроде Arduino, упрощающих процесс программирования.
Процесс разработки программы для микроконтроллера обычно включает следующие этапы:
- Написание исходного кода программы
- Компиляция кода в машинные инструкции
- Загрузка скомпилированной программы в память микроконтроллера
- Отладка и тестирование работы программы
Для загрузки программы в микроконтроллер используются специальные устройства — программаторы. Они подключаются к компьютеру и микроконтроллеру, обеспечивая передачу данных.
Преимущества и недостатки микроконтроллеров
Как и любая технология, микроконтроллеры имеют свои сильные и слабые стороны. Рассмотрим основные преимущества и недостатки их использования:
Преимущества:
- Компактность и интеграция всех компонентов в одном чипе
- Низкое энергопотребление
- Относительно невысокая стоимость
- Простота применения в устройствах
- Широкий выбор моделей для разных задач
Недостатки:
- Ограниченные вычислительные возможности
- Меньший объем памяти по сравнению с компьютерами
- Сложность разработки ПО для некоторых задач
- Ограниченные возможности расширения
Несмотря на ограничения, в большинстве встраиваемых систем преимущества микроконтроллеров перевешивают их недостатки.
Перспективы развития микроконтроллеров
Микроконтроллеры продолжают активно развиваться, следуя общим тенденциям в электронике. Основные направления развития включают:
- Увеличение производительности и объема памяти
- Снижение энергопотребления
- Интеграция беспроводных интерфейсов (Wi-Fi, Bluetooth, LoRa)
- Повышение уровня защиты данных и безопасности
- Развитие специализированных микроконтроллеров для IoT и AI
Ожидается, что микроконтроллеры будут играть все большую роль в развитии «интернета вещей», автономных систем и периферийных вычислений. Это открывает широкие возможности для инженеров и разработчиков в создании новых инновационных устройств и систем.
Что такое микроконтроллер. Применение микроконтроллеров.
Цель курса – познакомиться с микропроцессорной техникой, научиться писать программы для микроконтроллеров и отлаживать их на реальном оборудовании. В курсе описано устройство микроконтроллера, показано, как он взаимодействует с окружающим миром. Курс предназначен для учащихся школ, нетехнических колледжей, техникумов и ВУЗов.
Для освоения курса не требуется каких-либо специализированных знаний в электротехнике и программировании, не нужно ничего паять (хотя в будущем было бы неплохо научиться ;), не нужно покупать дорогостоящих отладочных плат. Для начала работы нам понадобится персональный компьютер (ПК) с выходом в интернет. Вся практическая часть курса выполняется в лаборатории с удаленным доступом, которая представлена макетной платой с микроконтроллером и направленной на нее вебкамерой. Любой желающий может, сидя у себя дома, запрограммировать микроконтроллер и через вебкамеру понаблюдать за его работой.
Программы мы будем писать на языке С в среде программирования Keil-C компании ARM. Сразу оговоримся, среда разработки Keil-C платная, но для выполнения всех наших работ достаточно демонстрационной версии этого продукта, demo версию можно скачать либо с официального сайта компании ARM www.keil.com, либо у нас в разделе файлы. В своих примерах я буду использовать версию v812.
Что же такое микроконтроллер? Микроконтроллер можно сравнить с персональным компьютером, он также имеет свой процессор, оперативную память, память для долгосрочного хранения информации, порты ввода-вывода и многие другие периферийные устройства, например, аналого-цифровые (АЦП) и цифроаналоговые преобразователи (ЦАП). Только, в отличие от персонального компьютера, все эти компоненты объединены в одной микросхеме, поэтому микроконтроллер можно назвать «компьютером в одной микросхеме». Конечно, быстродействие такого компьютера не сравниться с быстродействием ПК, но для большинства задач мониторинга и управления его достаточно.
Рисунок 1 — Внешний вид микрокнтроллера ADuC842 в различных корпусахМикроконтроллер может задавать режим работы стиральной машины, контролировать температуру в бассейне, выводить на жидкокристаллический дисплей текст или изображение, управлять мощностью освещения, измерять напряжение, ток или любую другую физическую величину. Микроконтроллер можно встретить в сотовом телефоне, телевизоре, микроволновой печи, фотоаппарате, автомобиле, клавиатуре, наручных часах, то есть в любых устройствах, где так или иначе приходится чем-либо управлять, что-то измерять или обрабатывать информацию.
Также как и для персонального компьютера, для работы микроконтроллера требуется программа, но если в ПК, как правило, программа рассчитана на взаимодействие с операционной системой, то в микропроцессоре (тоже, как правило, но совсем не обязательно) такой операционной системы нет. В персональном компьютере операционная система организует доступ пользовательской программы ко всем внутренним и внешним устройствам компьютера через драйвер. Когда мы пишем программу для микроконтроллера, то никаких драйверов устройств нет, и нам необходимо самостоятельно организовывать программный доступ к каждому устройству.
Для обмена информацией с внешним миром в контроллере предусмотрены порты ввода и вывода информации. Часто порт ввода объединяется с портом вывода, и образуют порт ввода-вывода информации.
С внешним миром микроконтроллер обменивается информацией в цифровом виде. Основой логики работы микропроцессора служит двоичная система счисления, состоящая всего из двух цифр – единицы «1» и нуля «0». Эти две цифры двоичной системы позволяют записывать практически любые числа. Для электрических сигналов, несущих эту цифровую информацию, двоичная система счисления соответствует двум состояниям, или двум «логическим» уровням: высокому и низкому. Как правило, напряжение высокого логического уровня близко к напряжению питания микросхемы, например, 5 В или 3 В. Напряжение низкого логического уровня – логического ноля «0» — может составлять несколько десятых вольта, например, 0,3 В, и в идеальном случае равняется 0 В.
Получать информацию микроконтроллер может из подключаемых к его портам устройств, таких как: кнопки, клавиатуры, различные датчики, цифровые микросхемы и других микроконтроллеры, и даже ПК. Для вывода информации к портам контроллера можно подключать светодиоды, жидкокристаллические индикаторы, семисегментные индикаторы и многое другое.
Все порты ввода-вывода можно разделить на две группы: это параллельные порты и последовательные. При параллельном способе передачи информации каждый бит передаваемого слова имеет отдельный провод, таким образом, при передаче данных байтами нам понадобиться шлейф из восьми проводов. При таком способе передачи у микропроцессора для функции ввода-вывода должно быть зарезервировано восемь ножек. При последовательном способе передачи данных используется всего лишь один информационный проводник, на нем последовательно, друг за другом, устанавливаются биты передаваемого слова. На другой стороне приемник также последовательно считывает эти биты. То есть для реализации последовательной передачи данных может быть использована всего одна ножка контроллера.
Рисунок 2 — Структурная схема микроконтроллераЛюбой микроконтроллер в своем составе должен иметь микропроцессор. Микропроцессор — это «мозг» микроконтроллера, помимо вычислений он обеспечивает взаимодействие всех периферийных устройств микроконтроллера. Когда мы пишем программу, мы как бы указываем микропроцессору, какие инструкции и в какой последовательности ему следует выполнять.
Также как и в персональном компьютере, в микропроцессоре есть память. Структурно память состоит из пронумерованных ячеек, номер ячейки принято называть адресом, а совокупность всех возможных адресов памяти называют адресным пространством. Процессору в произвольный момент времени доступна любая ячейка.
Всю память можно разделить две большие группы: это ПЗУ — постоянно запоминающее устройство, и ОЗУ — оперативно запоминающее устройство, или просто — оперативная память. В персональном компьютере роль ПЗУ выполняют жесткие диски, оптические диски, карты памяти и флешки. Особенность этого типа памяти заключается в том, что после отключения питания устройства записанная информация сохраняется на носителе, и после возобновления подачи питания снова может быть считана. В оперативной же памяти информация сохраняется только пока подано питание. Но быстродействие ОЗУ может превосходить быстродействие ПЗУ в десятки и даже сотни раз. Поэтому удобно исполняемую программу держать в ПЗУ, а все переменные, к которым требуется быстрый доступ — в ОЗУ. Если в ПК объем памяти измеряется в ГБ (приставка Гига – 109), то в микроконтроллерах все гораздо скромнее. Так, в микроконтроллере ADuC842, который мы будем использовать в практической части урока, имеется всего 62 кБ (килобайта) ПЗУ и 256 байт ОЗУ.
Еще одна особенность микроконтроллеров заключается в том, что большая часть из них выполнена по так называемой Гарвардской архитектуре, а это значит, что для хранения программ и данных используется две различные памяти: память программ и память данных. В памяти программ хранится непосредственно исполняемый код, который определяет алгоритм действия системы. Этот код никоим образом не может быть изменен исполняемой программой. Загружая исполнительный код в память микроконтроллера, программист определяет алгоритм функционирования микроконтроллерной системы. Часто процесс загрузки программы в память называют «прошивкой» контроллера.
После загрузки программы в память мы перезапускаем микроконтроллер. После перезагрузки микропроцессор обращается в самую первую ячейку памяти программ за командой. Адрес самой первой ячейки — 0. Затем считанная команда выполняется, и процессор начинает считывать следующую по порядку команду. Таким образом, команды выполняются последовательно, одна после завершения другой. Но существуют команды, способные изменить последовательность выполнения команд в зависимости от каких-либо условий, такие команды называются командами условного перехода. С помощью таких команд реализуются разветвленные алгоритмы работы.
Рисунок 3 — Порядок выполнения командВ данном курсе мы научимся создавать собственные «прошивки» для микроконтроллеров. Каждый урок будет состоять из двух частей. Первая часть — это теория, где я расскажу о способах подключения различных устройств к микроконтроллеру и особенностях функционирования встроенной периферии. Во второй части покажу, как программно организовать работу описанной в первой части системы. Кроме того, в конце каждого урока полагается домашнее задание, где будет предложено решить прикладную задачу: написать, отладить и испытать на реальном оборудовании программу.
Фрунзе А.В. Микроконтроллеры? Это же просто! Том 1
Фрунзе А.В. Микроконтроллеры? Это же просто! Том 1
Предисловие
Идея написания этой книги возникла у меня довольно неожиданно. Так сложилось, что в течение одной-двух недель сразу четверо авторов из тех, кто регулярно публикует свои материалы в журнале «СХЕМОТЕХНИКА», в разговоре со мной коснулись темы полного отсутствия литературы, по которой люди, не имеющие опыта работы с микроконтроллерами, смогли бы освоить их. Примерно в это же время я услышал подобные сетования и от двух моих знакомых инженером-электронщиком, специалистов в аналоговой электронике – они тоже столкнулись с тем, что хотели бы освоить работу с микроконтроллерами, но не представляют, где найти литературу, рассчитанную на новичков, самостоятельные начинающих почти с нуля. Мне казалось, что подобной литературы если не навалом, то во всяком случае очень много, и просто нужно пару раз съездить в книжные магазины, торгующие научно-технической литературой – от обилия предлагаемых ими книг и них просто рябит в глазах, и не может быть, чтобы выбрать было не из чего. Но когда я сам посмотрел на появившиеся в последние несколько лет книги по микроконтроллерной тематике, а также публикации в журналах, я понял, что практически все они ориентированы на тех, кто уже освоил эту предметную область. Статей и книг, рассчитанных на новичков и позволяющих им шаг за шагом освоить микроконтроллеры, не перегружая их раньше времени данными, но необязательными и первый момент подробностями, увы, нет. Так родилась идея написать для начинающих цикл статей по микроконтроллерам, знакомство с которым позволило бы им осознать, что такое микроконтроллеры, как они устроены, функционируют, как писать, отлаживать и заносить в них программы, и т.д. Тем более, что в свое время подобные книги были достаточно вспомнить, например, замечательную книгу Дж. Коффрона «Технические средства микропроцессорных систем», вышедшую в 1983 г. в издательстве «Мир» – с ней знакомы практически все отечественные специалисты по микроконтроллерной технике, начинавшие в 80-х с незабвенного КР580ИК80 …
Первоначально я планировал просто написать цикл статей для журнала «СХЕМОТЕХНИКА», полагая, что вряд ли стоит делать книгу из материала, в основе которого лежат тысячу раз описанные микроконтроллеры разработанного еще в конце 80-х годов прошлого столетия семейства х51. Однако несколько десятков отзывов, которые я получил от читателей в ходе публикации первых частей подготовленного материала, и отклики авторов, имеющих опыт издания книг, убедили меня в том, что подобная книга может быть интересна широкому кругу читателей. Поэтому после публикации в «СХЕМОТЕХНИКЕ» первых трех глав я решил, что этот материал должен появиться в виде книги, и готовил его далее уже с учетом принятого решения.
…
Микроконтроллер что это такое
ATMEGA128 (128KB FLASH) – $0.72 FREE SHIPPINGAVR микроконтроллеры – это тип устройств, разработанный компанией Atmel, которые имеют определенное преимущество перед обычными микросхемами , но, сначала, давайте разберемся, что такое микроконтроллер?
Самый простой способ понять это – сравнить микроконтроллер с вашим компьютером, в котором установлена материнская плата. На этой плате стоит микропроцессор (на чипе Intel или AMD ), который обеспечивает устройство вычислений , память RAM и EEPROM , и интерфейсы остальных систем, например, серийные порты (в настоящее время в основном USB ), жесткие диски и графические интерфейсы. В микроконтроллере все эти возможности встроены в один чип, а это значит, что отсутствует потребность в материнской плате и многих других компонентах, например, светодиод может быть подключен напрямую к AVR . В микропроцессорах нет такой возможности !
AVR микроконтроллеры выпускаются в нескольких корпусах , некоторые предназначены для монтажа в отверстия , некоторые для поверхностного. AVR бывают 8-ми и 100-пиновыми, хотя все, что выше 64-х пинов только для монтажа в отверстия . Большинство людей начинают с DIL (Сдвоенный в линию) 28—х пинового чипа, например, ATmega 328 или 40-ка пинового ATmega 16 или ATmega 32.
Компьютерные микропроцессоры бывают минимум 32-х битными, а теперь чаще 64-х битные. Это означает, что они могут обрабатывать данные 32-х битными или 64-х битными блоками, если они подключены к шине. AVR гораздо проще и работает с 8-ми битными блоками, пропускная ширина потока 8 бит, хотя сейчас стали появляться AVR 32 с 32-х битной шиной.
На компьютере установлена операционная система ( Windows или Linux ), и именно в ней запускаются программы, такие, как Word , Internet Explorer или Chrome . На 8-ми битном микроконтроллере, например, на таком, как AVR обычно нет установленной операционной системы, хотя, при необходимости, она может быть установлена. Вместо этого реализована возможность запуска одной программы.
Также, как и ваш компьютер, который будет бесполезным, если на нем не установлена ни одна программа, также, и AVR требует установки программ. Программа хранится во встроенной памяти AVR , а не на внешнем жестком диске, как на компьютере. Загрузка этой программы в AVR происходит при помощи программатора AVR , обычно, когда AVR является частью системы, и программируется разработчиком или системным программистом.
Так что же это за программа? Она состоит из серии инструкций, очень простых, и направленных на обработку данных. В большинстве приложений, которые вы будете использовать с AVR , например, в контроллере промышленного оборудования , необходимо, чтобы считывалась информация со входов, проводилась проверка состояния и, соответственно, происходило переключение на выходы. Иногда вам нужно менять данные, управлять ими, или передавать их на другое устройство, например, на ЖК дисплей или на серийный порт. Чтобы выполнять эти простые задачи, используется серия простых бинарных инструкций, каждая из которых соответствует команде на ассемблере , понятн ой пользователю. Самый простой способ написать программу для AVR – использовать ассемблер (хотя, если хотите оставаться педантичным, можете записывать двоичные числа).
Использование ассемблера позволяет вам понять больше о том, как действует AVR , и как это все соединено воедино. Также, это дает возможность использовать очень маленький и быстрый код. Недостаток в том, что вы, как программист, должны делать все сами, включая управление памятью и структурой программ, что может быть очень утомительно.
Чтобы этого избежать, для написания программ для AVR были использованы языки программирования более высокого уровня, основным считается Cи, а также, можно использовать Basic и Java. Высокий уровень означает, что каждая строка Cи (или Basic, или Java) кода может переводиться в множество строк ассемблера. Компилятор также разбирается со структурой программы и управлением памятью, так что все становится гораздо проще. Наиболее часто используемые процессы, например, задержки или вычисления, могут храниться в библиотеках, и доступ к ним очень простой.
Мне кажется, что написание программ на Си для AVR сравнимо с управлением автомобилем. Да, вы очень легко можете это делать, но, если что-то идет не так, то вы понятия не имеете, как быть, и как справиться со сложной ситуацией, например, со скользкой дорогой. Написание простейших программ на ассемблере дает вам понять, что происходит «под капотом», как это работает, и что с этим можно сделать. Потом вы переходите на Си, но, к этому моменту, вы уже знаете, как функционирует AVR , и знаете его ограничения.
Также, как у вашей программы есть в памяти код, также у AVR есть вторая память, которая называется EEPROM , где вы можете хранить данные, например, серийные номера, данные калибровок и другую, необходимую под рукой, информацию. Доступ туда осуществляется по инструкциям в вашей программе .
У AVR также есть I / O , которое используется, чтобы контролировать аппаратные средства микроконтроллера. К аппаратным средствам относятся порты, АЦП ( ADC ) , коммуникационные интерфейсы, например, I 2 C (2—х проводной интерфейс), SPI и UART (серийный порт), таймеры и система watchdog , которая восстанавливает систему после сбоя. Все эти периферийные устройства контролируется из-под программы, используя специальные инструкции. Большая часть кода программирования AVR посвящена тому, как устанавливать и контролировать эти аппаратные интерфейсы.
Время выполнения запроса: 0,0029559135437 секунд.
Микроконтроллер — это специальная микросхема, предназначенная для управления различными электронными устройствами. Микроконтроллеры впервые появились в том же году, что и микропроцессоры общего назначения (1971).
Разработчики микроконтроллеров придумали остроумную идею – объединить процессор, память, ПЗУ и периферию внутри одного корпуса, внешне похожего на обычную микросхему. С тех пор производство микроконтроллеров ежегодно во много раз превышает производство процессоров, а потребность в них не снижается.
Микроконтроллеры выпускают десятки компаний, причем производятся не только современные 32-битные микроконтроллеры, но и 16, и даже 8-битные (как i8051 и аналоги). Внутри каждого семейства часто можно встретить почти одинаковые модели, различающиеся скоростью работы ЦПУ и объемом памяти.
Дело в том, что микроконтроллеры применяются преимущественно во встроенных системах, в игрушках, в станках, в массовой домашней технике, в домашней автоматике – там, где нужна не мощность процессора, а, скорее, баланс между ценой и достаточной функциональностью.
Именно поэтому самые старые типы микроконтроллеров еще до сих пор в ходу – они многое могут: от автоматического открывания дверей и включения полива газонов до интеграции в систему «умный дом». При этом существуют и более мощные микроконтроллеры, способные выполнять сотни миллионов операций в секунду и обвязанные периферией «до зубов». У них и задачи соответствующие. Таким образом, разработчик сначала оценивает задачу, а уж потом выбирает под нее подходящее «железо».
На сегодняшний день существует более 200 модификаций микроконтроллеров, совместимых с i8051, выпускаемых двумя десятками компаний, и большое количество микроконтроллеров других типов. Популярностью у разработчиков пользуются 8-битные микроконтроллеры PIC фирмы Microchip Technology и AVR фирмы Atmel, 16-битные MSP430 фирмы TI, а также 32-битные микроконтроллеры, архитектуры ARM, которую разрабатывает фирма ARM Limited и продаёт лицензии другим фирмам для их производства.
Микроконтроллер характеризуется большим числом параметров, поскольку он одновременно является сложным программно-управляемым устройством и электронным прибором (микросхемой). Приставка «микро» в названии микроконтроллера означает, что выполняется он по микроэлектронной технологии.
В ходе работы микрконтроллер считывает команды из памяти или порта ввода и исполняет их. Что означает каждая команда, определяется системой команд микроконтроллера. Сиситема команд заложена в архитектуре микрконтроллера и выполнение кода команды выражается в проведении внутренними элементами микросхемы определенных микроопераций.
Микроконтроллеры позволяют гибко управлять различными электронными и электрическими устройствами. Некоторые модели микроконтроллеров настолько мощны, что могут непосредственно переключать реле (к примеру, на елочных гирляндах).
Микроконтроллеры, как правило, не работает в одиночку, а запаивается в схему, где, кроме него, подключаются экраны, клавиатурные входы, различные датчики и т.д.
Софт для микроконтроллеров может привлечь внимание тех, кто обожает «гоняться за битами», так как обычно память в микроконтроллерах составляет от 2 до 128 Кб. Если меньше, то писать приходится на ассемблере или Форте, если есть возможность, то используют специальные версии Бейсика, Паскаля, но в основном – Си. Прежде чем окончательно запрограммировать микроконтроллер, его тестируют в эмуляторах – программных или аппаратных.
Тут может возникнуть вопрос: микропроцессор и микроконтроллер это просто разное название одного и того же устройства, или это все-таки разные вещи?
Микропроцессор это центральное устройство любой ЭВМ, выполненный по интегральной технологии. Само название говорит о том, что именно в нем происходят вычислительные процессы. Чтобы из него получилась ЭВМ, пусть даже не очень современная и мощная (вспомните любительские конструкции Радио-86 или Синклер), его надо дополнить внешними устройствами. В первую очередь это оперативная память и порты ввода вывода информации.
Микроконтроллер имеет внутри себя процессор, оперативную память, память программ, а кроме этого целый набор периферийных устройств, которые превращают процессор в полнофункциональную ЭВМ. По старой терминологии советских времен подобные устройства назывались Однокристальными Микро ЭВМ. Но советская вычислительная техника, как известно, зашла в тупик, а вместе с ней и ОМЭВМ.
Зарубежная же вычислительная техника на месте не стояла, поэтому ОМЭВМ стали называться контроллерами (от англ. Control – управлять, управление). И в самом деле, контроллеры оказались весьма пригодны для управления различной техникой, даже не очень сложной.
МИКРОКОНТРОЛЛЕР — это уже не процессор, но ещё и не компьютер.
Центральный процессор, имеющийся в каждом компьютере — главный вычислитель. Хотя компьютер и не предназначен исключительно для вычислительной нагрузки, процессор является в нём головным элементом. Но не только в компьютере имеется процессор.
Если вдуматься и присмотреться, то можно обнаружить, что процессоры применяются в большинстве приборов бытового предназначения. Только там используются не такие процессоры как в компьютере, а микропроцессоры и даже микроконтроллеры.
Так что же такое микроконтроллер и чем отличается от собственно процессора или это совершенно различные электронные компоненты?
Большие интегральные микросхемы или микросхемы с большой степенью интеграции и есть процессоры. Микропроцессоры, по сути те же процессоры, но из-за приставки «микро» определяется их суть, что они миниатюрнее своих «больших» собратьев. В своё историческое время процессор со своим размером мог занимать не одну комнату, впору их назвать как вымерших динозавров макро-процессорами, чтобы и их как-то упорядочить в современном представлении об электронике.
Уменьшенный в габаритах и скомпонованный процессор занимает меньше места и его можно поместить в более компактное изделие, это и есть микропроцессор. Но сам процессор мало что способен делать, кроме как данные пересылать между регистрами и совершать какие-то арифметические и логические действия над ними.
Чтобы микропроцессор мог переслать данные в память, эта самая память должна присутствовать либо на самом кристалле, на котором находится сам процессорный элемент, либо подключаться к внешней оперативной памяти выполненной в виде отдельного кристалла или модуля.
Кроме памяти процессор должен взаимодействовать с внешними устройствами – периферией. Иначе какой пользы можно ожидать от работы процессора, перемешивающего и перемещающего данные туда-сюда. Смысл возникает тогда, когда процессор взаимодействует с устройствами ввода-вывода. У компьютера это клавиатура, манипулятор мышь и устройства отображения как дисплей, опционально – принтер и, например, сканер опять же для ввода информации.
Чтобы управлять устройствами ввода-вывода, непременно необходимы соответствующие буферные схемы и элементы. На их основе реализуются интерфейсные так называемые аппаратные средства. Способы взаимодействия с интерфейсными элементами предполагают наличие схем портов ввода-вывода, дешифраторов адреса и формирователей шин с буферными схемами, для увеличения нагрузочной способности микропроцессора.
Интеграция процессора со всеми необходимыми дополнительными элементами, для того чтобы это изделие выливалось в какой-то завершённый конструктив и приводит к образованию микроконтроллера. Микросхема или микроконтроллерный чип реализует на одном кристалле процессор и интерфейсные схемы.
Самодостаточный чип, который содержит практически всё, чтобы этого хватало для построения законченного изделия и есть пример типового микроконтроллера. Например наручные электронные часы или часы-будильник имеют внутри микроконтроллер, который реализует все функции такового устройства. Отдельные периферийные устройства подключаются непосредственно к ножкам микросхемы микроконтроллера, либо совместно используются дополнительные элементы или микросхемы малой либо средней степени интеграции.
Разница между микроконтроллером и микропроцессором. Микроконтроллер это Сравнение микроконтроллера и центрального процессора
Altera-Cyclone and Arduino
Каждый начинающий микропрогер на определенном этапе своего развития задается вопросом в чем же разница между ПЛИС (фирм Altera или Xilinx) и микроконтроллером (микропроцессором)?
Читаешь форумы — знатоки дела пишут, что это совершенно разные вещи, которые нельзя сравнить, аргументируя это тем, что у них разная архитектура . Читаешь мануал по Verilog или C++ — и тот и другой используют похожие операторы со схожим функционалом, даже синтаксис похож, а почему разные? Заходишь на марсоход — там светодиодами (или даже просто лампочками) с помощью FPGA моргают, смотришь проекты на Arduino — там роботами управляют. СтОп!
А вот теперь остановимся и спросим себя: почему с ПЛИС — тупо лампочка, а Ардуино — умно робот? Ведь и первый и второй вроде как программируемое устройство, неужели у ПЛИС возможностей для робота не хватает?
В какой-то степени суть вопроса «В чем разница между ПЛИС и микроконтроллером ?» раскрывается именно на таком примере.
Отметим сразу. Функционал ПЛИС изначально не уступает микроконтроллеру (и микропроцессору, кстати, тоже), точнее — основные функции у одного и второго по сути идентичны — выдавать логические 0 или 1 при определенных условиях, а если говорить о быстродействии, количестве выводов(ножек) и возможностях конвейерной обработки, то микроконтроллеру до ПЛИС а вообще далеко. Но есть одно «но». Время на разработку одного и того же программного алгоритма на двух разных устройствах (ПЛИС и микроконтроллер ) различается в разы, а то и в десятки раз. Именно ПЛИС здесь в 99% случаев сильно уступает МК. И дело вовсе не в замороченности языков Verilog , VHDL или AHDL , а в устройстве самой ПЛИС .
FPGA : в ПЛИС и нет сложных автоматизированных цепочек(делающих часть работы за вас). Есть только железные проводные трассы и магистрали, входы, выходы, логические блоки и блоки памяти. Среди трасс есть особый класс — трасса для тактирования(привязанная к определенным ножкам, через которые рекомендуется проводить тактовую частоту).
Основной состав:
Трасса — металл, напаянный на слои микросхемы, является проводником электричества между блоками.
Блоки — отдельные места в плате, состоящие из ячеек. Блоки служат для запоминания информации, умножения, сложения и логических операций над сигналами вообще.
Ячейки — группы от нескольких единиц до нескольких десятков транзисторов.
Транзистор — основной элемент ТТЛ логики.
Выводы (ножки микросхемы) — через них происходит обмен ПЛИС с окружающим миром. Есть ножки специального назначения, предназначенные для прошивки, приема тактовой частоты, питания, а так же ножки, назначение которых устанавливаются пользователем в программе. И их, как правило, гораздо больше, чем у микроконтроллера .
Тактовый генератор — внешняя микросхема, вырабатывающая тактовые импульсы, на которых основывается большая часть работы ПЛИС .
Трассы подключаются к блокам с помощью специальных КМОП-транзисторов. Эти транзисторы способны сохранять свое состояние(открытое или закрытое) на протяжении длительного периода времени. Изменяется состояние транзистора при подаче сигнала по определенной трассе, которая используется только при программировании ПЛИС . Т.е., в момент прошивки осуществляется именно подача напряжения на некоторый набор КМОП-транзисторов. Этот набор определяется прошивочной программой. Таким образом происходит сложное построение огромной сети трасс и магистралей внутри ПЛИС , связывающей сложным образом между собой огромное количество логических блоков. В программе вы описываете какой именно алгоритм нужно выполнять, а прошивка соединяет между собой элементы, выполняющие функции, которые вы описываете в программе. Сигналы бегают по трассе от блока к блоку. А сложный маршрут задается программой.
Архитектура ПЛИС (FPGA)
В этом элементе ТТЛ логики все операции по обработкам отдельных сигнальчиков проводятся независимо от вас. Вы лишь указываете что делать с тем или иным набором принятых сигналов и куда выдавать те сигналы, которые нужно передать. Архитектура микроконтроллера состоит совсем из других блоков, нежели ПЛИС . И связи между блоками осуществляются по постоянным магистралям(а не перепрошиваемым). Среди блоков МК можно выделить основные:
Постоянная память (ПЗУ) — память, в которой хранится ваша программа. В нее входят алгоритмы действий и константы. А так же библиотеки(наборы) команд и алгоритмов.
Оперативная память (ОЗУ) — память, используемая микроконтроллером для временного хранения данных(как триггеры в ПЛИС ). Например, при вычислении в несколько действий. Допустим, нужно умножить первое пришедшее число на второе(1-е действие), затем третье на четвертое(2 действие) и сложить результат(3 действие). В оперативную память при этом занесется результат 1 действия на время выполнения второго, затем внесется результат 2 действия. А затем оба этих результата пойдут из оперативной памяти на вычисление 3 действия.
Процессор — это калькулятор микроконтроллера . Он общается с оперативной памятью, а так же с постоянной. С оперативной происходит обмен вычислениями. Из постоянной процессор получает команды, которые заставляют процессор выполнять определенные алгоритмы и действия с сигналами на входах.
Средства (порты) ввода-вывода и последовательные порты ввода-вывода — ножки микроконтроллера , предназначенные для взаимодействия с внешним миром.
Таймеры — блоки, предназначенные для подсчета количества циклов при выполнении алгоритмов.
Контроллер шины — блок, контролирующий обмен между всем блоками в микроконтроллере . Он обрабатывает запросы, посылает управляющие команды, организовывает и упорядочивает общение внутри кристалла.
Контроллер прерываний — блок, принимающий запросы на прерывание от внешних устройств. Запрос на прерывание — сигнал от внешнего устройства, информирующий о том, что ему необходимо совершить обмен какой-либо информацией с микроконтроллером .
Внутренние магистрали — трассы, проложенные внутри микроконтроллера для информационного обмена между блоками.
Тактовый генератор — внешняя микросхема, вырабатывающая тактовые импульсы, на которых основывается вся работа микроконтроллера .
В микроконтроллере , в отличии от ПЛИС , работа происходит между вышеперечисленными блоками, имеющими сложную архитектуру , облегчающую процесс разработки программ. При прошивке вы изменяете только постоянную память, на которую опирается вся работа МК.
ПЛИС прошивается на уровне железа, практически по всей площади кристалла. Сигналы проходят через сложные цепочки транзисторов. Микропроцессор же прошивается на уровне программы для железа, сигналы проходят группами, от блока к блоку — от памяти к процессору, к оперативной памяти, от оперативной к процессору, от процессору к портам ввода-вывода, от портов ввода-вывода к оперативной памяти, от оперативной памяти… и так далее. Вывод: за счет архитектуры ПЛИС выигрывает в быстродействии и более широких возможностях конвеерной обработки, МК выигрывает в простоте написания алгоритмов. За счет более простого способа описания программ, фантазия разработчика Микроконтроллера менее скованна временем на отладку и разработку, и, таким образом, время на программирование того же робота на МК и ПЛИС будет отличаться во многие и многие разы. Однако робот, работающий на ПЛИС будет гораздо шустрее, точнее и проворнее.
В ПЛИС всю работу нужно делать самому, вручную: для того, чтобы реализовать какую-либо программу на ПЛИС , нужно отследить каждый сигнальчик по каждому проводку, приходящему в ПЛИС , расположить какие-то сигнальчики в ячейки памяти, позаботиться о том, чтобы в нужный момент именно к этим ячейкам памяти обратился другой сигнальчик, который вы так же отслеживаете или даже генерируете, и в итоге набор сигнальчиков, задержанный в памяти задействовал нужный вам сигнальчик, который, например, пойдет на определенную выходную ножку и включит светодиодик, который к ней подключен. Часть сигнальчиков идет не в память, а например на запуск определенной части алгоритма(программы). То есть, говоря языком микропрогера, эти ножки являются адресными. Например, имеем на нашей плате в нашей программе три адресные ножки для включения неких не связанных(или связанных) друг с другом алгоритмов, которые мы реализовали на языке Verilog в ПЛИС . Также в программе, кроме трех адресных ножек, у нас есть еще например 20 информационных ножек, по которым приходит набор входных сигнальчиков(например с разных датчиков) с какой-либо информацией (например температура воды в аквариуме с датчика температуры воды в аквариуме). 20 ножек = 20 бит. 3 ножки -3 бита. Когда приходит адресный сигнал 001(с трех ножек адреса) — запускаем первый алгоритм, который записывает 20 информационных сигнальчиков в 20 ячеек памяти(20 триггеров), затем следующие 20 сигнальчиков умножаем на полученные ранее 20, а результат умножения записываем в память, а потом отсылаем по другим ножкам например в терморегулятор воды в аквариуме. Но Отошлем мы этот результат только тогда, когда на наши адресные ножки придет код например 011 и запустит алгоритм считывания и передачи. Ну, естественно «отсылаем», «считываем» и еще что-то прописываем в ручную. Ведем каждый сигнальчик в каждый такт работы ПЛИС по определенному пути, не теряем. Обрабатываем или записываем. Складываем или умножаем. Не забываем записать. Не забываем принять следующий сигнал и записать в другие триггеры. Еще добавьте сюда работу, привязанную к тактовой частоте, синхронизацию (которая так же реализуется вручную), неизбежные ошибки на этапах разработки и отладки и кучу других проблем, которые в данной статье рассматривать просто бессмысленно. Трудно. Долго. Но зато на выходе работает супер оперативно, без глюков и тормозов. Железно!
Теперь микроконтроллер . 20 ножек на прием информации — для большинства микроконтроллеров физически невозможная задача. А вот 8 или 16 — да пожалуйста! 3 информационных — в легкую! Программа? По адресу 001 умножить первое пришедшее число на второе, по адресу 011 отсылай результат в терморегулятор. Все! Быстро. Легко. Не супер, но оперативно. Если очень грамотно написать программу- без глюков и тормозов. Программно!
Железо и Программа! Вот главное отличие между ПЛИС и Микроконтроллером .
В микроконтроллере большинство замороченных, но часто используемых алгоритмов уже вшиты железо(в кристалл). Нужно лишь вызвать программным способом нужную библиотеку, в которой этот алгоритм хранится, назвать его по имени и он будет делать всю грязную работу за вас. С одной стороны это удобно, требует меньшего количества знаний о внутреннем устройстве микросхемы. Микрик берет на себя заботу об отслеживании принятых, генерируемых и результирующих сигналов, об их складировании, обработке, задержке. Все делает сам. В большинстве микропрогерских задач это то, что нужно. Но если безграмотно использовать все эти удобства, то возникает вероятность некорректной работы. Железо и Программа!
ЗаключениеСовременные разработчики процессоров и микропроцессоров изначально разрабатывают свои устройства на ПЛИС . Да-да, вы правильно догадываетесь: сначала они имитируют создаваемую архитектуру микроконтроллера с помощью разработки и прошивки программы на ПЛИС , а затем измеряют скорость выполнения алгоритмов при том или ином расположении имитируемых блоков МК и том или ином наборе функционала каждого блока отдельно.
По характеристикам выдаваемого сигнала, ПЛИС чаще всего рассчитана на 3,3В, 20мА, Микроконтроллер на 5В, 20мА.
Под микроконтроллер AVR, успешно внедренный в платформу Arduino, написано множество открытых программ, разработано великое множество примочек в виде датчиков, двигателей, мониторчиков, да всего, чего только душе угодно! Arduino в настоящее время больше похож на игровой конструктор для детей и взрослых. Однако не стоит забывать, что ядро этого конструктора управляет «умными домами», современной бытовой электроникой, техникой, автомобилями, самолетами, оружием и даже космическими аппаратами. Несомненно, такой конструктор будет являться одним из лучших подарков для любого представителя сильной половины человечества.
В принципе, все просто!
Остались вопросы? Напишите комментарий. Мы ответим и поможем разобраться =)
Когда вы приступаете к изучению микропроцессоров и микроконтроллеров, то первый вопрос, который может у вас возникнуть это «эй…а в чем же между ними разница?». В этой статье будут приведены основные сходства и различия между микроконтроллерами и микропроцессорами. По сути, это будет простое сравнение обоих микровычислительных устройств.
Основное назначение микропроцессоров и микроконтроллеров заключается в выполнении определенных операций — выборки инструкций (или команд) из памяти, выполнении этих инструкций (выполнение арифметических, логических операций) и выдачи результата на устройства вывода. Оба устройства способны непрерывно выбирать команды из памяти и продолжать выполнение этих команд тех пор, пока не будет отключено питание. Команды представляют собой набор битов. Эти команды всегда извлекаются из области хранения, называемой памятью. Теперь давайте взглянем на блок-схемы микропроцессорной системы и микроконтроллерной системы.
При внимательном рассмотрении этой блок-схемы можно увидеть, что микропроцессор имеет много вспомогательных устройств, вроде постоянно запоминающего устройства (ПЗУ), оперативно запоминающего устройства (ОЗУ), интерфейсов последовательной передачи данных, таймеров, портов ввода/вывода и т.п. Все эти устройства взаимодействуют с микропроцессором посредством системной шины. То есть, все вспомогательные устройствав микропроцессорной системе являются внешними. Системная шина состоит из шины адреса, шины данных и шины управления.
На этой блок-схеме представлена микроконтроллерная система. Итак, какое основное отличие мы видим? Все вспомогательные устройства, такие как ПЗУ, ОЗУ, последовательный интерфейс, порты ввода/вывода, являются внутренними. В данном случае нет необходимости сопряжения этих устройств, такой подход может сэкономить много времени для разработчиков систем. То есть, микроконтроллер ни что иное, как микропроцессорная система со всеми вспомогательными устройствами внутри одной микросхемы. Здесь не требуется какого-либо обязательного внешнего взаимодействия, если только не нужно работать с внешней памятью, модулями АЦП/ЦАП и прочими подобными устройствами. Для обеспечения работы микроконтроллера нужно только подвести к нему питающее напряжение постоянного тока, подключить цепь сброса и при необходимости кварцевый генератор для тактирования.
Итак, теперь нам ясны базовые различия между микроконтроллерами и микропроцессорами. Сейчас давайте сравним некоторые особенности обеих систем.
Сравнение
Как вы уже знаете, вспомогательные устройства в микропроцессорной системе являются внешними, а в микроконтроллерной — внутренними. В микроконтроллерах обеспечивается защита программного кода, в то время как в микропроцессорной системе не предлагается системы защиты. То есть, в микроконтроллерах можно «заблокировать» внутреннюю память программ для предотвращения ее считывания с помощью внешней схемы. Хорошо, но это только основные различия, в процессе работы с этими устройствами вы обнаружите больше. Так, например, поскольку в микропроцессорной системе требуется внешнее взаимодействие с вспомогательными устройствами, то время на создание схемы будет затрачено больше, размер устройства будет больше, а также возрастет энергопотребление по сравнению с микроконтроллерной системой.
Стремительное развитие электроники быстро меняет нашу жизнь, и мы замечаем это, прежде всего, в социальной сфере, сферах коммуникации (общения) и связи. Первое, что приходит на ум в этой связи, – это компьютеры, Интернет и сотовые телефоны. Мы свободны в поисках необходимой информации, имеем возможность выйти на связь с желаемым абонентом, невзирая на наше местоположение. Мы можем получать дистанционное образование и объединяться в группы по профессиональным, социальным или культурным интересам. Все это стало возможным в значительной мере благодаря появлению микропроцессора и созданию микропроцессорных систем.
А существуют ли другие проявления прогресса микроэлектроники, не такие заметные на первый взгляд, но играющие значительную роль в нашей жизни?
Да! микропроцессоры и микроконтроллеры широко применяются в бытовой технике, автомобильной электронике, аэрокосмической и военной отраслях и, конечно же, в промышленном производстве.
Эта статья раскрывает некоторые аспекты применения микропроцессорных систем в технике и промышленности. Если дальнейший текст покажется вам слишком тяжелым и непонятным, рекомендуем предварительно ознакомиться со статьей «Основы информатики. Компоненты микропроцессорных систем ».
- Что такое микропроцессор?
- Что такое микроконтроллер? Каковы его особенности?
- Где используются микроконтроллеры?
- Чем микроконтроллер отличается от микропроцессора?
- Что такое сигнальный процессор?
- Что такое программируемый логический контроллер (ПЛК)? Как он построен?
- Как программируют ПЛК?
Вы уже наверняка знаете, что любой компьютер – это машина для обработки информации, не взирая на то, какую конкретно задачу он выполняет. Центральным элементом компьютера является микропроцессор. Если спросить у ученика средней школы: – Что такое микропроцессор?, – то, скорее всего, получите ответ «Микропроцессор – это сердце компьютера».
Микропроцессор – это микроэлектронное программируемое устройство, предназначенное для обработки информации и управления процессами обмена этой информацией в составе микропроцессорной системы (компьютера).
Почему «микроэлектронное»? Потому что микропроцессоры производятся с помощью технологий современной микроэлектроники на основе полупроводникового кристалла. Информация в микропроцессорной системе передается электрическими импульсами. Конструктивно микропроцессор исполняется в виде одной микросхемы (иногда – нескольких). Микросхема состоит из пластикового или керамического корпуса, внутри которого размещается миниатюрная полупроводниковая подкладка (рис. 1). На этой подкладке лазером «начерчены» все электронные схемы микропроцессора. Входы и выходы схемы на подкладке соединены с металлическими выводами, расположенными по бокам или снизу корпуса микросхемы.
а) | б) |
Рис. 1. Интегральная микросхема (а) и ее внутреннее строение (б)
Почему микропроцессор – это «программируемое устройство»? Потому что микропроцессорные системы в общем случае универсальны, т. е. способны выполнять широкий круг задач по обработке информации. А на выполнение конкретной задачи микропроцессор «настраивают» с помощью программы – последовательного перечня машинных команд.
Обязательными компонентами микропроцессора являются регистры, арифметико-логическое устройство (АЛУ) и блок управления. Регистры предназначены для временного хранения данных, арифметико-логическое устройство – для выполнения арифметических и логических операций (т. е. для обработки данных). Блок управления отвечает за последовательное выполнение команд программы и правильное перенаправление потоков данных.
Микропроцессор не может работать сам по себе. Он является центральным звеном микропроцессорной системы, в которую также входят устройства постоянной и оперативной памяти, устройства ввода и вывода информации, накопители на жестких магнитных дисках (так называемые «винчестеры»), и т. д. Такие микропроцессорные системы собственно и называют компьютерами.
Персональный компьютер может иметь множество применений, однако это достаточно дорогое и громоздкое устройство. А как же наделить элементами интеллекта бытовую технику, автомобили, медицинские приборы? Как сделать их «умными»? Понятно, что в бытовой кондиционер нельзя вмонтировать системный блок обычного компьютера. Это повысит его стоимость в два-три раза. И в составе так называемого смарт-телевизора мы не найдем отдельного персонального компьютера в его обычном виде. Для автоматизации такого рода техники разработаны и изготавливаются специальные процессорные устройства – однокристальные микроконтроллеры (англ.: «Microcontroller»). Английское слово «control» обозначает «контролировать», «управлять». Таким образом, микроконтроллер – это специальный микропроцессор, предназначенный для автоматизации разнообразных устройств и управления их работой.
Итак, микроконтроллер – это специализированное микроэлектронное программируемое устройство, предназначенное для использования в управляющих узлах всевозможных технических изделий, системах передачи данных и системах управления технологическими процессами.
Микроконтроллеры применяют в бытовой технике, медицинских приборах, системах управления лифтами, телефонах, рациях и прочих средствах связи, электронных музыкальных инструментах и автомагнитолах, компьютерной периферии (клавиатурах, джойстиках, принтерах и т. п.), светофорах, автоматических воротах и шлагбаумах, интерактивных детских игрушках, автомобилях, локомотивах и самолетах, роботах и промышленных станках.
Рис. 2. Сферы применения микроконтроллеров.
Микроконтроллеры также широко используются в автомобильной электронике. Например, автомобиль «Peugeot 206» имеет на борту 27 микроконтроллеров, а в автомобилях высокого класса, таких как, например, «BMW» седьмой серии, используется более 60 микроконтроллеров. Они регулируют жесткость адаптивной подвески, управляют впрыском топлива, светотехникой, двигателями дворников, стеклоподъемников и зеркал заднего вида и т. п. (рис. 3).
Рис. 3. Использование микроконтроллеров в автомобильной электронике
(по материалам Microchip Technology).
Микроконтроллер, в отличие от микропроцессора, обычно имеет небольшую разрядность (8 – 16 бит) и богатый набор команд манипулирования отдельными битами. Битовые команды дают возможность управлять дискретным оборудованием (поднять/опустить шлагбаум, включить/выключить лампу, нагреватель, запустить/остановить двигатель, открыть/закрыть клапан, и проч.) Средства, обеспечивающие возможность оперировать отдельными битами, вводить и выводить дискретные сигналы называют «битовым процессором».
Еще одно из основных отличий микроконтроллера от микропроцессора заключается в том, что в составе микросхемы контроллера наличествуют все необходимые элементы для построения простой (а иногда – и достаточно сложной) системы управления. Так, внутри микроконтроллера есть память данных (оперативная память), память программ (постоянная память), генератор тактовых импульсов, таймеры, счетчики, параллельные и последовательные порты. Поэтому система минимальной конфигурации на основе микроконтроллера может состоять из блока питания, непосредственно микросхемы контроллера и нескольких пассивных элементов (резисторов, конденсаторов и кварцевого резонатора). И это фактически есть ничто иное, как одноплатный мини-компьютер на основе одной микросхемы, подходящий для встраивания в объект управления. Средняя стоимость системы минимальной конфигурации составляет несколько десятков долларов (сравните со средней стоимостью персонального компьютера).
Типовая архитектура микроконтроллера (рис. 4) содержит систем систему синхронизации и управления (1), арифметико-логическое устройство (2), регистры общего назначения (3), память данных (4) и память программ (5), порты (6), функциональные устройства (таймеры, счетчики, широтно-импульсные модуляторы, интерфейсы) и регистры для их настройки (7), рис. 4.
Рис. 4. Архитектура типичного микроконтроллера.
Программы для микроконтролеров создают в специальных интегрованных инструментальных средах (англ .: I ntegrated D evelopment E nvironment, IDE) языками Асемблера (машинных команд) или C++.
Остается добавить, что ежегодно в мире продаются миллиарды микроконтроллеров, а обычный житель развитой страны в течение дня десятки раз соприкасается с микроконтроллерами, являющимися неотъемлемой частью современной технологичной окружающей среды.
Кроме микропроцессоров общего назначения и микроконтроллеров на рынке предлагаются так называемые сигнальные процессоры, специально предназначенные для обработки сигналов в режиме реального времени. Они используются в измерительных приборах, средствах связи, передачи и воспроизведения аудио- и видеопотоков, системах локации, космической и военной технике.
Сигнальные процессоры (англ .: D igital S ignal P rocessor, DSP) характеризуются высокой разрядностью и быстродействием, имеют в системе команд специальные инструкции для реализации типовых алгоритмов цифровой обработки сигналов (ЦОС). Также на одном кристалле, кроме собственно процессорной части, реализуются аналогово-цифровые и цифро-аналоговые преобразователи. А налого-Ц ифровой П реобразователь (АЦП) заменяет непрерывный входной сигнал соответствующим потоком цифровых данных (отсчетов). Далее эти данные обрабатываются процессорной частью, после чего с помощью Ц ифро-А налогового П реобразователя (ЦАП) обработанные цифровые данные снова воспроизводятся в аналоговый сигнал. Таким способом сигнальный процессор может углублять четкость изображения, или, наоборот, размывать его, шифровать и дешифровать аудио- и видеопотоки, воспроизводить на экране виртуальную или дополненную реальность, отслеживать движущиеся объекты даже в условиях значительных помех и неполной входной информации.
Микропроцессоры общего назначения | Микроконтроллеры | Сигнальные процессоры | Другие (нейрочипы, секционные и гибридные процессоры) |
---|---|---|---|
Применяются: для построения персональных компьютеров, серверов и многопроцессорных систем. | Применяются: для реализации несложных функций управления и автоматизации. | Применяются: для реализации сложных алгоритмов потоковой обработки данных в режиме реального времени. | Применяются: для построения уникальных экспериментальных или специфических систем. |
Особенности: высокая разрядность, | Особенности: встроенная память программ и память данных, битовый процессор, таймеры, счетчики, порты, интерфейсы. | Особенности: высокая вычислительная производительность, команды для реализации типовых алгоритмов обработки сигналов, встроенные АЦП, ЦАП или медиа-интерфейсы. | Особенности: построение одного процессора на нескольких микросхемах, комбинация нескольких видов процессоров в одном изделии, специфическая архитектура |
Еще один тип микропроцессорных устройств, которые за последние 30 – 40 лет заняли свою рыночную нишу – так называемые программируемые логические контроллеры.
П рограммируемый Л огический К онтроллер (ПЛК; англ .: P rogrammable L ogic C ontroller или PLC) – это специализированная микропроцессорная система, которая используется для автоматизации технологических процессов и общепромышленных установок и комплексов (конвейеров, рольгангов, подъемных кранов, дробилок, мельниц, классификаторов, смесителей, прессов, упаковочных машин, робототехнических и гибких производственных комплексов, и т. п.)
Т. е. основная сфера применения ПЛК – это сфера промышленного производства. Однако они также используются для автоматизации зданий (контроль доступа в помещение, управление освещением, обогревом, вентиляцией и кондиционированием воздуха, управление лифтами, эскалаторами и т. п.) Также ПЛК могут применяться для создания микроклимата в тепличном хозяйстве, на птицефабриках, животноводческих фермах.
В общем случае ПЛК – это одноплатный мини-компьютер, построенный на основе однокристального микроконтроллера и расположенный в типовом корпусе размерами с кирпич. Также существуют модульные контроллеры (рис. 5). Ко входам ПЛК можно подсоединить кнопки, контакты джойстика, переключатели (т. е. органы управления), датчики и исполнительные механизмы (двигатели, лампы, нагревательные элементы, клапаны, вентили, актуаторы и т. п.) ПЛК циклически опрашивает входные сигналы (органы управления и датчики), выполняет программу пользователя (пересчитывает значения переменных) и выдает полученные выходные значения на исполнительные механизмы. Т. е. ПЛК циклически, раз за разом выполняет одну и ту же программу (программу пользователя).
Рис. 5. Программируемые логические контроллеры.
Кроме аппаратной унификации (использования стандартных размеров, уровней напряжений, видов сигналов), прорывному распространению ПЛК поспособстваволо то, что для них были разработаны интуитивные «общеинженерные» языки программирования. Теперь для разработки программы пользователя не обязательно приглашать программиста высокого класса. С этим может справиться (иногда – и лучше) и технолог, и электрик, и химик, и, конечно, специалист по автоматизации. А в случае сложных задач эти языки программирования стирают грань недопонимания между программистом и инженером. Они одинаково понятны и заказчику (инженеру) и исполнителю (программисту).
Таких языков программирования – 6 (5 стандартизированных), причем 4 из них – визуальные (т. е. программа вводится не в виде текста, а как набор соединенных друг с другом графических элементов (блоков), (рис. 6).
Обычно один и тот же контроллер можно программировать на нескольких языках на выбор пользователя. Для этого используют инструментальные программные комплексы, позволяющие не только разработать программу, но и отладить ее с помощью программной модели контроллера (на «симуляторе») или в режиме мониторинга (когда программу пользователя исполняет реальный контроллер, а на дисплее компьютера можно следить за его работой).
Аппаратная и программная унификация ПЛК дает возможность легко переходить на контроллеры другого производителя, переносить программы с одной платформы на другую. Это повышает гибкость систем автоматизации, способствует конкурентному инновационному развитию рынка.
Подробно изучить работу микропроцессорных систем, научиться разрабатывать и программировать прикладные мини-компьютеры и программируемые логические контроллеры для задач автоматизации можно на Национального горного университета.
Выбор подходящего устройства, на котором будет основана ваша новая разработка, бывает не простым. Необходимо найти баланс между ценой, производительностью и энергопотреблением, а также учесть долгосрочные последствия этого выбора. Например, если используемое устройство, будь то микроконтроллер или микропроцессор, станет основой целого ряда новых продуктов.
Для начала давайте рассмотрим разницу между микроконтроллером (MCU) и микропроцессором (MPU). Обычно микроконтроллер использует встроенную флэш память, в которой хранятся и выполняется его программа. Благодаря этому, микроконтроллер имеет очень короткое время запуска и может выполнять код очень быстро. Единственное ограничение при использовании встроенной памяти — это ее конечный объем. Большинство микроконтроллеров, доступных на рынке, имеют максимальный объем флэш памяти ~2 мегабайта. Для некоторых приложений это может оказаться критическим фактором.
Микропроцессоры не имеют ограничений на размер памяти, поскольку для хранения программы и данных они используют внешнюю память. Программа обычно хранится в энергонезависимой памяти, такой как NAND или последовательная флэш память. При запуске программа загружается во внешнюю динамическую оперативную память и затем выполняется. Микропроцессор не способен запускаться так же быстро, как микроконтроллер, но объем оперативной и энергонезависимой памяти, которую можно подключить к процессору, может достигать сотен и даже тысяч мегабайт.
Другое отличие между микроконтроллером и микропроцессором — это система питания. Благодаря встроенному регулятору напряжения, микроконтроллеру необходимо только одно значение внешнего напряжения. Тогда как микропроцессору требуется несколько разных напряжений для ядра, периферии, портов ввода-вывода и т.д. О наличии этих напряжений на плате должен заботиться разработчик.
Выбор микроконтроллера или микропроцессора определяется некоторыми аспектами спецификации разрабатываемого устройства. Например, требуется такое количество периферийный интерфейсных каналов, которое не может предоставить микроконтроллер. Или требования относительно пользовательского интерфейса невозможно выполнить, используя микроконтроллер, потому что у него не хватает памяти и быстродействия. Приступая к первой разработке, мы знаем, что продукт в дальнейшем может сильно измениться. В этом случае возможно лучшим решением будет использование какой-то готовой платформы. Так мы учтем запас вычислительной мощности и интерфейсных возможностей для будущих модификаций устройства.
Один из аспектов, которые сложно определить, это быстродействие, требуемое для работоспособности будущей системы. Количественно оценить этот критерий можно с помощью так называемой вычислительной мощности, которая измеряется в Dhrystone MIPS или DMIPS (Dhrystone — это синтетический тест производительности компьютеров, а MIPS — количество миллионов инструкций в секунду). Например, микроконтроллер Atmel SAM4 на базе ядра ARM Cortex-M4 обеспечивает 150 DMIPS, а микропроцессор на ядре ARM Cortex-A5, такой как Atmel SAM5AD3 может обеспечить до 850 DMIPS. Один из способов оценить требуемый DMIPS — это посмотреть какая производительность нужна для запуска части приложения. Запуск полноценной операционной системы (Linux, Android или Windows CE) для работы вашего приложения потребовал бы около 300 — 400 DMIPS. А если использовать для приложения RTOS, то достаточно всего 50 DMIPS. При использовании RTOS также требуется меньше памяти, поскольку ядро обычно занимает несколько килобайт. К сожалению полноценная операционная система требует для своего запуска блок управления памятью (MMU), что в свою очередь ограничивает тип процессорных ядер, которые могут быть использованы.
Для приложений, которые обрабатывают большие объемы чисел, требуется определенный запас DMIPS. Чем больше приложение ориентировано на числовую обработку, тем выше вероятность использования микропроцессора.
Серьезного обсуждения требует использование пользовательского интерфейса, будь то бытовая или промышленная электроника. Потребителям уже привычно пользоваться интуитивно понятными графическими интерфейсами, да и в промышленности все чаще используется этот метод взаимодействия с оператором.
Существует несколько факторов относительно пользовательского интерфейса. Во-первых, это дополнительная вычислительная нагрузка. Для такой интерфейсной библиотеки как Qt, которая широко используется на Linux`e, дополнительно потребуется 80-100 DMIPS. Во-вторых — это сложность пользовательского интерфейса. Чем больше вы используете анимации, эффектов и мультимедийного содержимого, чем выше разрешение изображения, тем большая производительность и память вам потребуется. Поэтому вероятнее всего здесь подойдет микропроцессор. С другой стороны, простой пользовательский интерфейс со статическим изображением на дисплее низкого разрешения может быть реализован и на микроконтроллере.
Другой аргумент в пользу микропроцессора — это наличие встроенного TFT LCD контроллера. Мало микроконтроллеров имеют в своем составе такой модуль. Можно поставить внешний TFT LCD контроллер и какие-то другие драйверы к микроконтроллеру, но нужно учитывать получаемую в итоге себестоимость изделия.
На рынке сейчас появляются флэш микроконтроллеры с TFT LCD контроллерами, но все же должно быть достаточное количество встроенной оперативной памяти для управления дисплеем. Например, 16-цветный QVGA 320х240 требует 150 кБ оперативной памяти чтобы выдавать изображение и обновлять дисплей. Это довольно большой объем ОЗУ и может потребоваться внешняя память, что тоже скажется на себестоимости.
Более сложные графические пользовательские интерфейсы, особенно использующие дисплеи размером больше 4,3 дюйма, требуют применения микропроцессоров. Если микропроцессоры доминируют в приложениях, где используется пользовательский интерфейс с цветным TFT экраном, то микроконтроллеры — короли сегментных или точечно-матричных LCD и других экранов с последовательным интерфейсом.
С точки зрения коммуникаций, большинство микроконтроллеров и микропроцессоров имеют в своем составе наиболее популярные . Но высокоскоростные интерфейсы, такие как HS USB 2.0, 10/100 Мбит/с Ethernet порты или гигабитные Ethernet порты, обычно есть только у микропроцессоров, потому что они лучше приспособлены к обработке больших объемов данных. Ключевой вопрос здесь — это наличие подходящих каналов и полосы пропускания для обработки потока данных. Приложения, использующие высокоскоростные подключения и ориентированные на операционную систему, требуют применения микропроцессоров.
Другой ключевой аспект, определяющий выбор между микроконтроллером и микропроцессором, это требование по детерминированному времени реакции приложения. Из-за процессорного ядра, встроенной флэш памяти и программного обеспечения в виде RTOS (операционной системы реального времени) или чистого Си кода, микроконтроллер будет определенно лидировать по этому критерию.
Заключительная часть нашего обсуждения будет касаться энергопотребления. Хотя у микропроцессора есть режимы пониженного энергопотребления, у типичного микроконтроллера их намного больше. Кроме того, внешнее аппаратное обеспечение микропроцессора осложняет его перевод в эти режимы. Фактическое потребление микроконтроллера значительно ниже, чем микропроцессора. Например, в режиме энергосбережения с сохранением регистров и оперативной памяти, микроконтроллер может потреблять в 10-100 раз меньше.
Выбор между микроконтроллером и микропроцессором зависит от многих факторов, таких как производительность, возможности и бюджет разработки.
Вообще говоря, микроконтроллеры обычно используются в экономически оптимизированных решениях, где важное значение имеет стоимость изделия и энергосбережение. Они, например, широко используются в приложениях с ультра низким энергопотреблением, где требуется длительное время работы от батарей. Например, в пультах дистанционного управления, потребительских электросчетчиках, охранных системах и т.п. Также они используются там, где необходима высоко детерминированное поведение системы.
Микропроцессоры, как правило, применяются для создания функциональных и высокопроизводительных приложений. Они идеально подходят для промышленных и потребительских приложений на основе операционных систем, где интенсивно используются вычисления или требуется высокоскоростной обмен данными или дорогой пользовательский интерфейс.
И последнее. Выбирайте поставщика, предлагающего совместимые микроконтроллеры или микропроцессоры, чтобы иметь возможность мигрировать вверх или вниз, увеличивая повторное использование программного обеспечения.
Микропроцессор обычно не имеет RAM, ROM и IO контактов. Он обычно использует свои контакты в качестве шины для взаимодействия с периферийными устройствами, такими как RAM, ROM, последовательные порты, цифровой и аналоговый ввода-вывода. Из-за этого он расширяется на уровне доски.
Микроконтроллер — это «все в одном», процессор, RAM, IO на одном чипе, поэтому вы не можете (скажем) увеличить объем доступной RAM или количество портов ввода-вывода. Управляющая шина является внутренней и недоступной дизайнеру платы.
Это означает, что микропроцессор, как правило, может быть встроен в более крупные приложения общего назначения, чем микроконтроллер. Микроконтроллер обычно используется для более специализированных приложений.
Все это очень общие утверждения. Есть чипы, которые размывают границы.
However, as I mentioned, the line gets blurry. For example, recent Intel/AMD processors add a memory controller on the chip (previously it was in the chipset).
Микропроцессор или микроконтроллер? Что выбрать для своей разработки?
Выбор подходящего устройства, на котором будет основана ваша новая разработка, бывает не простым. Необходимо найти баланс между ценой, производительностью и энергопотреблением, а также учесть долгосрочные последствия этого выбора. Например, если используемое устройство, будь то микроконтроллер или микропроцессор, станет основой целого ряда новых продуктов.
Для начала давайте рассмотрим разницу между микроконтроллером (MCU) и микропроцессором (MPU). Обычно микроконтроллер использует встроенную флэш память, в которой хранятся и выполняется его программа. Благодаря этому, микроконтроллер имеет очень короткое время запуска и может выполнять код очень быстро. Единственное ограничение при использовании встроенной памяти — это ее конечный объем. Большинство микроконтроллеров, доступных на рынке, имеют максимальный объем флэш памяти ~2 мегабайта. Для некоторых приложений это может оказаться критическим фактором.
Микропроцессоры не имеют ограничений на размер памяти, поскольку для хранения программы и данных они используют внешнюю память. Программа обычно хранится в энергонезависимой памяти, такой как NAND или последовательная флэш память. При запуске программа загружается во внешнюю динамическую оперативную память и затем выполняется. Микропроцессор не способен запускаться так же быстро, как микроконтроллер, но объем оперативной и энергонезависимой памяти, которую можно подключить к процессору, может достигать сотен и даже тысяч мегабайт.
Другое отличие между микроконтроллером и микропроцессором — это система питания. Благодаря встроенному регулятору напряжения, микроконтроллеру необходимо только одно значение внешнего напряжения. Тогда как микропроцессору требуется несколько разных напряжений для ядра, периферии, портов ввода-вывода и т.д. О наличии этих напряжений на плате должен заботиться разработчик.
Выбор микроконтроллера или микропроцессора определяется некоторыми аспектами спецификации разрабатываемого устройства. Например, требуется такое количество периферийный интерфейсных каналов, которое не может предоставить микроконтроллер. Или требования относительно пользовательского интерфейса невозможно выполнить, используя микроконтроллер, потому что у него не хватает памяти и быстродействия. Приступая к первой разработке, мы знаем, что продукт в дальнейшем может сильно измениться. В этом случае возможно лучшим решением будет использование какой-то готовой платформы. Так мы учтем запас вычислительной мощности и интерфейсных возможностей для будущих модификаций устройства.
Один из аспектов, которые сложно определить, это быстродействие, требуемое для работоспособности будущей системы. Количественно оценить этот критерий можно с помощью так называемой вычислительной мощности, которая измеряется в Dhrystone MIPS или DMIPS (Dhrystone — это синтетический тест производительности компьютеров, а MIPS — количество миллионов инструкций в секунду). Например, микроконтроллер Atmel SAM4 на базе ядра ARM Cortex-M4 обеспечивает 150 DMIPS, а микропроцессор на ядре ARM Cortex-A5, такой как Atmel SAM5AD3 может обеспечить до 850 DMIPS. Один из способов оценить требуемый DMIPS — это посмотреть какая производительность нужна для запуска части приложения. Запуск полноценной операционной системы (Linux, Android или Windows CE) для работы вашего приложения потребовал бы около 300 — 400 DMIPS. А если использовать для приложения RTOS, то достаточно всего 50 DMIPS. При использовании RTOS также требуется меньше памяти, поскольку ядро обычно занимает несколько килобайт. К сожалению полноценная операционная система требует для своего запуска блок управления памятью (MMU), что в свою очередь ограничивает тип процессорных ядер, которые могут быть использованы.
Для приложений, которые обрабатывают большие объемы чисел, требуется определенный запас DMIPS. Чем больше приложение ориентировано на числовую обработку, тем выше вероятность использования микропроцессора.
Серьезного обсуждения требует использование пользовательского интерфейса, будь то бытовая или промышленная электроника. Потребителям уже привычно пользоваться интуитивно понятными графическими интерфейсами, да и в промышленности все чаще используется этот метод взаимодействия с оператором.
Существует несколько факторов относительно пользовательского интерфейса. Во-первых, это дополнительная вычислительная нагрузка. Для такой интерфейсной библиотеки как Qt, которая широко используется на Linux`e, дополнительно потребуется 80-100 DMIPS. Во-вторых — это сложность пользовательского интерфейса. Чем больше вы используете анимации, эффектов и мультимедийного содержимого, чем выше разрешение изображения, тем большая производительность и память вам потребуется. Поэтому вероятнее всего здесь подойдет микропроцессор. С другой стороны, простой пользовательский интерфейс со статическим изображением на дисплее низкого разрешения может быть реализован и на микроконтроллере.
Другой аргумент в пользу микропроцессора — это наличие встроенного TFT LCD контроллера. Мало микроконтроллеров имеют в своем составе такой модуль. Можно поставить внешний TFT LCD контроллер и какие-то другие драйверы к микроконтроллеру, но нужно учитывать получаемую в итоге себестоимость изделия.
На рынке сейчас появляются флэш микроконтроллеры с TFT LCD контроллерами, но все же должно быть достаточное количество встроенной оперативной памяти для управления дисплеем. Например, 16-цветный QVGA 320х240 требует 150 кБ оперативной памяти чтобы выдавать изображение и обновлять дисплей. Это довольно большой объем ОЗУ и может потребоваться внешняя память, что тоже скажется на себестоимости.
Более сложные графические пользовательские интерфейсы, особенно использующие дисплеи размером больше 4,3 дюйма, требуют применения микропроцессоров. Если микропроцессоры доминируют в приложениях, где используется пользовательский интерфейс с цветным TFT экраном, то микроконтроллеры — короли сегментных или точечно-матричных LCD и других экранов с последовательным интерфейсом.
С точки зрения коммуникаций, большинство микроконтроллеров и микропроцессоров имеют в своем составе наиболее популярные периферийные интерфейсы. Но высокоскоростные интерфейсы, такие как HS USB 2.0, 10/100 Мбит/с Ethernet порты или гигабитные Ethernet порты, обычно есть только у микропроцессоров, потому что они лучше приспособлены к обработке больших объемов данных. Ключевой вопрос здесь — это наличие подходящих каналов и полосы пропускания для обработки потока данных. Приложения, использующие высокоскоростные подключения и ориентированные на операционную систему, требуют применения микропроцессоров.
Другой ключевой аспект, определяющий выбор между микроконтроллером и микропроцессором, это требование по детерминированному времени реакции приложения. Из-за процессорного ядра, встроенной флэш памяти и программного обеспечения в виде RTOS (операционной системы реального времени) или чистого Си кода, микроконтроллер будет определенно лидировать по этому критерию.
Заключительная часть нашего обсуждения будет касаться энергопотребления. Хотя у микропроцессора есть режимы пониженного энергопотребления, у типичного микроконтроллера их намного больше. Кроме того, внешнее аппаратное обеспечение микропроцессора осложняет его перевод в эти режимы. Фактическое потребление микроконтроллера значительно ниже, чем микропроцессора. Например, в режиме энергосбережения с сохранением регистров и оперативной памяти, микроконтроллер может потреблять в 10-100 раз меньше.
Выбор между микроконтроллером и микропроцессором зависит от многих факторов, таких как производительность, возможности и бюджет разработки.
Вообще говоря, микроконтроллеры обычно используются в экономически оптимизированных решениях, где важное значение имеет стоимость изделия и энергосбережение. Они, например, широко используются в приложениях с ультра низким энергопотреблением, где требуется длительное время работы от батарей. Например, в пультах дистанционного управления, потребительских электросчетчиках, охранных системах и т.п. Также они используются там, где необходима высоко детерминированное поведение системы.
Микропроцессоры, как правило, применяются для создания функциональных и высокопроизводительных приложений. Они идеально подходят для промышленных и потребительских приложений на основе операционных систем, где интенсивно используются вычисления или требуется высокоскоростной обмен данными или дорогой пользовательский интерфейс.
И последнее. Выбирайте поставщика, предлагающего совместимые микроконтроллеры или микропроцессоры, чтобы иметь возможность мигрировать вверх или вниз, увеличивая повторное использование программного обеспечения.
Atmel «Microprocessor (MPU) or Microcontroller (MCU)?». Вольный перевод ChipEnable.Ru
что это? Отвечаем на вопрос.
В наши дни микроконтроллеры можно встретить практически в каждом экземпляре бытовой техники и электроники. Например, если в микроволновой печи есть светодиодный или ЖК-экран и клавиатура, то она обязательно оборудована специальной управляющей микросхемой.
Многообразие применений
Все современные автомобили содержат по крайней мере один микроконтроллер и могут быть оборудованными несколькими для двигателя, антиблокировочной системы, круиз-контроля и т. д. Любое устройство с ПДУ почти наверняка имеет управление микроконтроллером. В эту категорию попадают телевизоры, плееры и высококачественные стереосистемы. Цифровые компактные и зеркальные камеры, сотовые телефоны, видеокамеры, автоответчики, лазерные принтеры, стационарные телефоны с возможностью идентификации вызывающего абонента и памятью на 20 номеров, многофункциональные холодильники, посудомоечные и стиральные машины, сушилки. В принципе, любая бытовая техника или устройство, которое взаимодействует с пользователем, имеет встроенный микроконтроллер.
Что это такое?
Микроконтроллер – это компьютер. Все компьютеры, независимо от того, являются ли они персональными или большими мэйнфреймами, обладают некоторыми общими чертами. У них есть центральный процессор (ЦПУ), который выполняет программы, загружая команды из какого-либо хранилища данных. На ПК, например, это жесткий диск. Компьютер также оборудован оперативным запоминающим устройством (ОЗУ). Для коммуникации с внешним миром должны предусматриваться специальные средства. На ПК клавиатура и мышь являются устройствами ввода информации, а монитор и принтер используются для ее вывода. Жесткий диск объединяет в себе обе эти функциональные возможности, поскольку работает как с входными, так и выходными данными.
ЦПУ
Тип используемого в микроконтроллере процессора зависит от конкретного приложения. Доступны варианты от простых 4-, 8- или 16-разрядных до более сложных 32- или 64-битных. Что касается памяти, то могут использоваться ОЗУ, флэш-память, EPROM или EEPROM. Как правило, микроконтроллеры рассчитаны на использование без дополнительных вычислительных компонентов, поскольку они спроектированы с достаточным объемом встроенной памяти, а также имеют контакты для общих операций ввода-вывода, чтобы напрямую взаимодействовать с датчиками и другими компонентами.
Архитектура ЦПУ может быть как гарвардской, так и фон-неймановской, предлагая различные методы обмена информацией между процессором и памятью. В первом случае шины данных и команд разделены, что позволяет осуществлять одновременную их передачу. В архитектуре фон Неймана для этого используется общая.
Программирование
Процессоры микроконтроллеров могут базироваться на расширенном (CISC) или сокращенном наборе команд (RISC). CISC обычно включает около 80 инструкций (RISC – около 30), а также большее число режимов адресации – 12–24 по сравнению с 3–5 у RISC. Хотя расширенный набор команд проще реализовать и он эффективнее использует память, его производительность ниже из-за большего количества тактовых циклов, необходимых для их выполнения. RISC-процессоры уделяют больше внимания программному обеспечению и более производительны.
Первоначально языком микроконтроллеров был ассемблер. Сегодня популярным вариантом является язык C.
При наличии соответствующего кабеля, программного обеспечения и ПК запрограммировать микроконтроллер своими руками несложно. Необходимо подключить контроллер кабелем к параллельному порту компьютера, запустить приложение и загрузить набор команд.
Определяющие характеристики
Как отличить компьютер от микроконтроллера? Если первый представляет собой устройство общего назначения, которое может запускать тысячи различных программ, то второй является специализированным, ориентированным на одно приложение. Существует и ряд других характеристик, которые позволяют отличить микроконтроллеры. Для начинающих пользователей это проблемой не будет – достаточно установить наличие у чипа большинства нижеперечисленных качеств, чтобы можно было смело отнести его к данной категории.
- Микроконтроллеры являются элементами какого-либо другого устройства (часто бытовой техники) для управления его функциями или работой. Еще их называют встроенными контроллерами.
- Устройство предназначено для выполнения одной задачи и запуска одной конкретной программы, хранящейся в ПЗУ, которая обычно не изменяется.
- Микроконтроллеры – это маломощные чипы. Их мощность при питании от батареи составляет около 50 мВт. Настольный компьютер почти всегда подключен к розетке и потребляет 50 Вт и больше.
- Микроконтроллер отличается наличием специального блока ввода и часто (но не всегда) небольшого светодиода или ЖК-дисплея для вывода. Принимает входные данные от устройства, которым он управляет, посылая сигналы различным его компонентам. Например, микроконтроллер телевизора получает сигналы с ПДУ и отображает вывод на экране телевизора. Он управляет селектором каналов, динамиками и некоторыми настройками изображения, такими как контраст и яркость. Контроллер автомобильного двигателя принимает входные сигналы от датчиков кислорода и детонации, регулирует создание топливной смеси и синхронизирует работу свечей зажигания. В микроволновой печи он принимает ввод с клавиатуры, отображает вывод на ЖК-дисплее и управляет реле включения и отключения СВЧ-генератора.
- Микроконтроллеры – это зачастую небольшие и недорогие устройства. Компоненты выбираются таким образом, чтобы минимизировать размеры и максимально удешевить производство.
- Часто, но не всегда, работа микроконтроллера осуществляется в неблагоприятных условиях. Например, устройство управления двигателем автомобиля должно работать в экстремальных температурах, при которых обычный компьютер вообще не может функционировать. На севере микроконтроллер автомобиля должен функционировать при температуре -34 °C, а на юге — при 49 °C. В моторном отсеке температура может достигать 65–80 °C. С другой стороны, микроконтроллер, встроенный в проигрыватель Blu-ray, вообще не должен быть особо прочным.
Требования к ЦПУ
Процессоры, используемые в микроконтроллерах, могут сильно различаться. Например, в сотовых телефонах применялся 8-разрядный микропроцессор Z-80, разработанный в 1970-х годах и первоначально использовавшийся в домашних компьютерах. GPS-навигатор Garmin оборудовался маломощной версией Intel 80386, которую также первоначально устанавливали в настольных ПК.
Большая часть бытовой техники, такой как микроволновые печи, нетребовательна к процессорам, но их цена является важным фактором. В этих случаях производители обращаются к специализированным микроконтроллерам, разработанным из недорогих, небольших и маломощных ЦПУ. Motorola 6811 и Intel 8051 являются хорошими примерами таких чипов. Также выпускается серия популярных контроллеров PIC компании Microchip. По сегодняшним меркам эти процессоры невероятно минималистичны, но они чрезвычайно дешевы и часто могут полностью удовлетворить потребности конструктора.
Экономичность
Типичный микроконтроллер – это чип с 1000 байтов ПЗУ, 20-ю байтами ОЗУ и 8-ю контактами ввода-вывода. При выпуске большими партиями их стоимость невысока. Конечно, запустить Microsoft Word на таком чипе невозможно – для этого потребуется не менее 30 МБ ОЗУ и процессор, выполняющий миллионы операций в секунду. Но для управления микроволновой печью этого и не нужно. Микроконтроллер выполняет одну конкретную задачу, а низкая стоимость и энергопотребление являются его главными преимуществами.
Как работает?
Несмотря на большое разнообразие микроконтроллеров и еще большее количество программ для них, научившись обращаться с одним из них, можно познакомиться со всеми. Типичный сценарий работы выглядит следующим образом:
- При отключенном питании устройство никак себя не проявляет.
- Подключение микроконтроллера к источнику энергии запускает блок логики системы управления, который отключает все другие схемы, кроме кварцевого кристалла.
- Когда напряжение достигает своего максимума, частота генератора стабилизируется. Регистры заполняются битами, отражающими состояние всех схем микроконтроллера. Все контакты конфигурируются как входы. Электроника начинает работать согласно ритмической последовательности тактовых импульсов.
- Счетчик команд обнуляется. Инструкция по этому адресу отправляется в декодер команд, который ее распознает, после чего она немедленно выполняется.
- Значение счетчика команд увеличивается на 1, и весь процесс повторяется со скоростью миллион операций в секунду.
Что означает 8-битный RISC FLASH микроконтроллер?
Многие из нас называют AVR 8-битным микроконтроллером. Но что это означает?
Это означает, что микропроцессор МК оперирует 8-битными числами или данными. Двоичное число 1111 1111 является наибольшим 8-битным числом и равно десятичному 255 и шестнадцатеричному FF.
Для указания конкретной системы счисления в программах используются различные способы записи (ведь десятичное число 11111111 очень сильно отличается от двоичного числа 11111111!). Двоичные числа записываются в виде 0b00101000 (т.е. 0b…). Десятичная система счисления используется по умолчанию, а шестнадцатеричные числа начинаются с символов 0x или знака доллара (0хЗА, или $ЗА). Следовательно, 0b00101011 равно 43, которое равно 0x2В.
При работе с входами и выходами микроконтроллеров AVR как правило используют двоичную систему счисления, при этом каждый входной или выходной контакт соответствует конкретному биту. Бит, установленный в 1, соответствует состоянию, называемому логическая единица. Это означает, что напряжение на выводе микроконтроллера равно напряжению питания (например, +5 В).
Бит, сброшенный в 0, соответствует состоянию логического нуля, или 0 В. Для входных сигналов порогом между состояниями логического 0 и логической 1 является половина напряжения питания (например, +2.5 В).
Микроконтроллеры AVR также называют RISC-микроконтроллерами. Это означает, что они принадлежат к классу микроконтроллеров с сокращенным набором команд (Reduced Instruction Set Computer). Такая архитектура немного усложняет жизнь программистам, однако микросхема при этом получается более простой и более быстродействующей.
Иногда микроконтроллеры AVR называют FLASH-микроконтроллерами. Это означает, что написанная программа хранится в FLASH-памяти, которую можно перезаписывать снова и снова. Соответственно, возможно многократно программировать один и тот же кристалл AVR — для радиолюбителей это означает возможность длительного использования одной и той же микросхемы.
Что такое микроконтроллер?: Основные сведения и многое другое
Как и в случае с пауками, вы, вероятно, всегда находитесь в пределах 6ʹ от микроконтроллера. Это потому, что в Интернете вещей развернуты миллиарды микроконтроллеров. К сожалению, мало кто из неспециалистов знает много об этих замечательных, повсеместных устройствах. Вот несколько ключевых фактов о микроконтроллерах, которые должен знать каждый.
Как и в случае с пауками, вы, вероятно, всегда находитесь в пределах 6ʹ от микроконтроллера (MCU).Это потому, что в Интернете вещей развернуты миллионы микроконтроллеров. К сожалению, мало кто из неспециалистов знает много об этих замечательных, повсеместных устройствах. Вот несколько ключевых фактов о микроконтроллерах, которые должен знать каждый.Мощный микроконтроллер
Что такое микроконтроллер? Что отличает микроконтроллер от микропроцессора (MPU)? Как дизайнеры используют микроконтроллеры? Являются ли микроконтроллеры Arduinos и Raspberry Pis?
Инженеры-электрикизнают ответы на эти вопросы, потому что они внедряют микроконтроллеры в продукты, которые они разрабатывают практически для каждой отрасли, от аэрокосмической до здравоохранения.К сожалению, многие нетехнические руководители, менеджеры по маркетингу, торговые представители и разработчики программного обеспечения не знакомы с микроконтроллерными технологиями. Не инженеры часто путают термины «микроконтроллер», «микропроцессор», «система на кристалле», «микрочип» и «IC» — и иногда они используют их как синонимы. Чтобы решить эту проблему, я составил список из пяти основных вещей, которые каждый должен знать о микроконтроллерах. Если вы профессиональный инженер или профессиональный разработчик, вы можете пропустить эту статью — просто обязательно поделитесь ею со своими коллегами, не имеющими технических знаний.
Основы микроконтроллера- Контроллер — это не то же самое, что процессор. Микроконтроллер — это компьютер на одной микросхеме, который включает в себя ядро процессора, память и периферийные устройства ввода-вывода, и он обычно используется для определенной функции во встроенной системе. Например, вы можете использовать микроконтроллеры для управления датчиками, записи данных, управления светодиодами, связи с другими микроконтроллерами и многого другого. Память микроконтроллера, порты ввода / вывода и ПЗУ / ОЗУ расположены внутри микросхемы.Периферийные устройства микропроцессора находятся вне его. Итак, ПЗУ / ОЗУ, последовательный интерфейс, таймеры и порты ввода-вывода подключены к микропроцессору.
- Микроконтроллеры сверхфокусные . Микроконтроллеры зависят от приложения и используются для заранее определенных задач. Например, вы можете использовать микроконтроллер для управления двигателем в роботизированной системе. Напротив, микропроцессоры используются для приложений, требующих интенсивной обработки, таких как запуск больших графических программ на ноутбуках.По сути, вы не используете Intel CORE i5 для выполнения работы микроконтроллера.
- Микроконтроллеры могут многое сделать с очень небольшим. Микроконтроллер не предлагает высокую скорость и большую память микропроцессора. Подумай об этом. У микроконтроллера есть задача, зависящая от приложения, и поэтому не требуется головокружительной скорости и тонны памяти, в то время как микропроцессор будет задействован для выполнения сложных, ресурсоемких задач. Тактовая частота микроконтроллера может составлять 300 МГц по сравнению с тактовой частотой процессора 4 ГГц.
- 8 бит не сдох. В начале 2000-х некоторые технические журналисты заявили, что «8 бит мертв» из-за распространения захватывающей новой 32-битной технологии. Конечно, все изменилось. С развитием Интернета вещей недорогие 8-битные микроконтроллеры пользуются большим спросом для использования в самых разных приложениях, включая автомобильные системы управления, аэрокосмические приложения, промышленную автоматизацию, носимые электронные устройства, робототехнику и медицинское оборудование.
- Микроконтроллеры везде. Интернет вещей включает миллиарды 8-, 16- и 32-битных устройств. Проще говоря, микроконтроллеры используются везде: в автомобилях, самолетах, бытовой технике, игрушках, системах наблюдения, промышленных предприятиях и медицинских устройствах. Помните старую поговорку, что вы всегда на расстоянии 6ʹ от паука? В эпоху Интернета вещей можно с уверенностью предположить, что прямо сейчас у вас есть несколько микроконтроллеров.
Как работают микроконтроллеры — IntervalZero
16 августа 2018 г. по телефону
Микроконтроллерывстроены в устройства для управления действиями и функциями продукта.Следовательно, их также можно назвать встроенными контроллерами. Они запускают одну конкретную программу и посвящены одной задаче. Это маломощные устройства со специальными устройствами ввода и небольшими выходами для светодиодных или ЖК-дисплеев. Микроконтроллеры могут принимать входные данные от устройства, которым они управляют, и сохранять контроль, отправляя сигналы устройства в различные части устройства. Хороший пример — микроконтроллер телевизора. Он принимает входные данные с пульта дистанционного управления и выводит их на экран телевизора.
Загрузите нашу историю успеха микроконтроллеров с ZF
Как и традиционные компьютеры, микроконтроллеры используют различные функции для выполнения своей работы.Эти функции включают:
RAM
RAM используется для хранения данных, а также других результатов, которые создаются, когда микроконтроллер работает. Однако он не хранит данные постоянно, и его память теряется при отключении питания микроконтроллера. В RAM размещается регистр специальных функций (SFR). Это предварительно сконфигурированная память, предлагаемая производителем микроконтроллера. Он контролирует поведение определенных цепей, таких как последовательная связь и аналого-цифровой преобразователь.
ПЗУ
Специальные задачи, которые микроконтроллеры выполняют как программы, хранятся в ПЗУ (постоянное запоминающее устройство) и никогда не меняются. ПЗУ позволяет микроконтроллерам знать, что определенные действия должны вызывать определенные реакции. Например, ПЗУ позволяет микроконтроллеру телевизора знать, что нажатие кнопки канала должно изменить отображение на экране. Размер программы, хранящейся в ПЗУ, зависит от размера ПЗУ. Некоторые микроконтроллеры допускают добавление ПЗУ в виде внешних микросхем, в то время как другие поставляются со встроенным ПЗУ.
Загрузить Как превратить Windows в программный микроконтроллер реального времени Технический документ
Счетчик программ
Счетчик программ позволяет миникомпьютеру выполнять программы на основе ряда различных запрограммированных инструкций. Счетчик программ увеличивается на 1 каждый раз, когда выполняется строка инструкций. Это помогает отслеживать место счетчика в строке кода.
Входы и выходы
В отличие от компьютера, которым вы управляете с помощью мыши или клавиатуры, микроконтроллеры имеют уникальные способы взаимодействия с людьми через вводы и выводы.Типичные устройства ввода и вывода на микроконтроллерах включают светодиодные дисплеи, переключатели и датчики, которые определяют влажность, температуру и уровни освещенности. Большинство встроенных систем не имеют экранов или клавиатур для прямого взаимодействия человека с компьютером. Вместо этого микроконтроллеры имеют широкий спектр входных и выходных контактов или GPIO, которые настроены для различных устройств ввода и вывода.
Например, у вас может быть один контакт, настроенный как вход на микроконтроллер, который работает, измеряя температуру, а другой контакт настроен как выход и подключен к термостату, который запускает кондиционер или нагреватель для включения и выключения в зависимости от предварительной -установленные диапазоны температур.Динамика ввода и вывода является чисто межмашинной и не требует прямого взаимодействия человека для принятия решений.
Подпишитесь на пробную версию микроконтроллера реального времени
Поделиться статьей:
- Твиттер
- Электронная почта
- Подробнее
Определение микроконтроллера Merriam-Webster
ми · кро · контроль · лер | \ ˈMī-krō-kən-ˌtrō-lər \ : интегральная схема, которая содержит микропроцессор вместе с памятью и связанными схемами и которая управляет некоторыми или всеми функциями электронного устройства (такого как бытовой прибор) или системы.Что такое микроконтроллер? Как это работает ?
Микроконтроллер — это интегральная схема (ИС), которая представляет собой небольшой, недорогой и автономный компьютер, предназначенный для решения конкретной задачи во встроенных системах.Проще говоря, микроконтроллер (MCU или Microcontroller Unit) — это небольшой компьютер, интегрированный в один чип. Мы также можем объяснить это как программируемый кремниевый чип, который управляется тактовой частотой, основан на регистрах, принимает ввод и обеспечивает вывод после его обработки в соответствии с инструкциями, хранящимися в памяти.
Компьютер — это устройство общего назначения, которое мы можем использовать для обработки текста, просмотра фильмов, редактирования видео, просмотра веб-страниц, разработки программного обеспечения и т. Д. В то время как микроконтроллер предназначен для выполнения некоторых конкретных задач, таких как управление стиральной машиной, управление кондиционером и т. Д. .
Микроконтроллер обрабатывает данные, поступающие на его входные контакты, используя свой ЦП, и выдает выходной сигнал через выходные контакты. Он запускается или управляется синхронной последовательной логической схемой.
Согласно теории цифровых схем, последовательная схема — это логическая схема, выход которой зависит не только от текущих входов, но и от прошлой истории входов. А в синхронных последовательных схемах состояние устройства изменяется только с дискретной синхронизацией, определяемой тактовым сигналом. Основное преимущество синхронной системы — это простота по сравнению с асинхронной системой.
Надеюсь, вы знаете о задержке распространения. Микроконтроллер использует огромное количество логических вентилей для обработки данных. Этим воротам требуется некоторое время, чтобы изменить свое выходное состояние в зависимости от их входов, что называется задержкой распространения. Таким образом, интервал между каждым тактовым сигналом должен быть больше, чем эта задержка распространения, чтобы логическая схема была стабильной и надежной. Таким образом, это определяет максимальную рабочую скорость микроконтроллера, которая будет варьироваться в зависимости от микроконтроллера.
Внутри микроконтроллераКак мы объясняли выше, в микроконтроллер встроены различные элементы, такие как ЦП, ОЗУ, ПЗУ и т. Д.
ЦП
ЦПаналогичен процессору в компьютере, который в основном состоит из арифметического и логического блока (ALU), блока управления и массива регистров. Как видно из названия, ALU выполняет все арифметические и логические операции с данными, полученными от устройств ввода или памяти. Массив регистров состоит из ряда регистров, таких как аккумулятор (A), B, C, D и т. Д., Которые действуют как временные ячейки памяти быстрого доступа для обработки данных. Как видно из названия, блок управления управляет потоком инструкций и данных в системе.
RAM
RAM означает оперативную память. Подобно компьютеру, ОЗУ используется для динамического хранения данных, пока микроконтроллер выполняет инструкции. Это энергозависимая память, это означает, что при отключении питания все данные исчезают.
ПЗУ или программная память
ROM означает постоянную память. В старых микроконтроллерах флэш-память была одноразовой программируемой, поэтому ее называют ПЗУ. Но в последних микроконтроллерах он перепрограммируется, т.е. EEPROM (электрически стираемая программируемая постоянная память).ПЗУ используется для хранения программы или инструкций, которые необходимо выполнить.
Порты ввода-вывода (I / Os)
Микроконтроллерыимеют несколько контактов ввода-вывода общего назначения (GPIO), которые могут быть настроены как входные или выходные контакты путем записи в определенные регистры конфигурации. Эти выводы могут считывать или записывать ВЫСОКОЕ или НИЗКОЕ состояние с / на свои выводы, что позволяет взаимодействовать с внешним миром.
Часы
Микроконтроллеру требуются часы, поскольку он выполняется и управляется последовательной логикой, как объяснено выше.Источник синхронизации может быть внешним, например кварцевым генератором, или внутренним, например, RC-генератором. У разных микроконтроллеров будут разные варианты тактирования. Некоторые продвинутые микроконтроллеры даже имеют внутреннюю схему ФАПЧ (ФАПЧ) или ФАПЧ (ФАПЧ) для увеличения тактовой частоты до более высоких частот.
Периферийные устройства
Микроконтроллерытакже будут иметь другие периферийные устройства, как показано ниже.
- UART, SPI, I2C для последовательной связи.
- Таймеры / счетчики
- Модули захвата / сравнения / ШИМ
- Аналого-цифровой преобразователь
Микроконтроллер можно запрограммировать для выполнения определенной задачи на основе набора команд и возможностей.Иногда решения очень сложные, схемы также становятся очень сложными, если мы пытаемся решить их только с помощью оборудования.
Представьте, что вы хотите построить большое здание, использование КИРПИЧА сделает процесс строительства простым и экономичным. И это также даст вам свободу делать здание по форме и размеру, которые вам нравятся. Набор инструкций в микроконтроллере — это кирпичики, которые вы можете использовать для решения вашей проблемы. Используя эти инструкции, вы можете легко решить сложную программу.
Просто приостановите чтение и осмотритесь в своем доме.Вы можете видеть телевизор, пульт от телевизора, телеприставку, микроволновую печь на кухне, стиральную машину, кондиционер, машину, припаркованную на крыльце и т. Д., Все использует микроконтроллер.
На рынке доступны различные микроконтроллеры, произведенные разными компаниями.
8051 Микроконтроллеры
Серия микроконтроллеров8051 — одна из самых популярных микроконтроллеров общего назначения. Впервые он изготовлен Intel. В настоящее время мы можем видеть множество клонов микроконтроллеров 8051 с разницей в ОЗУ, ПЗУ, периферийных устройствах и т. Д., производимые различными компаниями, такими как Atmel, Texas Instruments, Philips, Infineon и др. Микроконтроллеры серии 8051 популярны среди любителей и в образовательных целях.
Микроконтроллеры PIC
PIC расшифровывается как Peripheral Interface Controller. Это серия микроконтроллеров производства Microchip Inc., популярная среди профессионалов, студентов и любителей электроники. Он недорогой и широко доступен на рынке, а также имеет 8-битную, 16-битную и 32-битную архитектуры.
ARM Микроконтроллеры
ARM расшифровывается как Advanced RISC Machine, это микроконтроллер компьютера с сокращенным набором команд (RISC). Микроконтроллеры ARM пользуются наибольшей популярностью у профессионалов. Микроконтроллеры ARM производятся разными компаниями, такими как NXP Semiconductors, STMicroelectronics, Microchip Inc., Atmel и др.
Микроконтроллеры AVR
Микроконтроллеры AVRшироко распространены среди любителей и студентов. Микроконтроллеры AVR разработаны Atmel, позже приобретены Microchip.В популярных платах Arduino используется микроконтроллер AVR.
Малый размер
В отличие от компьютерного микропроцессора, микроконтроллер предназначен для решения некоторых специфических задач. Таким образом, аппаратные требования, такие как ОЗУ, ПЗУ и другие периферийные устройства, очень низкие. Таким образом, все встроено в один чип, что значительно снижает общий размер.
Низкая стоимость
Микроконтроллерыочень дешевы по сравнению с микропроцессорами, поскольку микроконтроллер имеет меньше ОЗУ, ПЗУ и периферийных устройств, встроенных в один чип.
Меньше энергопотребление
Потребляемая мощность намного меньше, поскольку микроконтроллер использует меньший набор оборудования, такого как RAM, ROM, другие периферийные устройства, встроенные в один чип.
Что подходит для вашего нового продукта?
Узнайте, как выбрать лучший микроконтроллер или микропроцессор для вашего конкретного электронного продукта.
Практически любой новый электронный продукт требует каких-то «мозгов». Однако вопрос в том, какой тип мозга действительно нужен вашему продукту? Есть два варианта: микроконтроллер (MCU) или микропроцессор (MPU).
Как следует из названия, микроконтроллер отлично справляется с «управлением» другими аппаратными компонентами (датчиками, переключателями, двигателями и т.д.), тогда как микропроцессор отлично справляется с «обработкой» больших объемов данных очень быстро.
При этом микроконтроллеры также могут обрабатывать данные, а микропроцессоры могут управлять другими устройствами. Но каждый выделяется в одной области.
Выбор правильного варианта — один из самых важных первых шагов в разработке вашего нового электронного продукта.
Микроконтроллер содержит центральный процессор (ЦП), память и периферийные устройства, встроенные в одну микросхему. Микроконтроллер — это компьютерный чип с высокой степенью интеграции, предназначенный в основном для автономной работы без необходимости использования внешних вспомогательных микросхем.
Центральный процессор внутри микроконтроллера по сути такой же, как микропроцессор. По сути, микропроцессор — это просто ЦП. С другой стороны, MCU включает в себя ЦП, память и периферийные устройства, так что:
Микропроцессор (MPU) = CPU
Микроконтроллер (MCU) = ЦП + память + периферийные устройства
Первое правило, которое следует запомнить: по возможности используйте микроконтроллер! Рассматривайте микропроцессор только в том случае, если он абсолютно необходим.Я считаю, что, вероятно, 90% представленных мне идей продуктов можно лучше всего реализовать с помощью микроконтроллера.
Только около 10% продуктов действительно достаточно сложны, чтобы требовать более быстрого микропроцессора.
Я рекомендую подходить к этому решению, предполагая, что ваш продукт может использовать микроконтроллер, пока вы не докажете обратное.
Хотя будут некоторые приложения, которые лучше всего обслуживаются как с микроконтроллером, так и с микропроцессором. Например, продвинутому роботу с искусственным интеллектом, распознаванием лиц, обработкой речи и сложным графическим пользовательским интерфейсом потребуется быстрый микропроцессор.
С другой стороны, робот также должен иметь датчики и двигатели. Эти функции лучше всего контролируются микроконтроллером отдельно от микропроцессора ядра. Микроконтроллер будет действовать как подсистема, которая взаимодействует с микропроцессором.
Arduino / Raspberry Pi
Если у вас уже есть прототип Proof-of-Concept (POC) на базе Arduino, то ваш выбор намного проще.
В основе Arduino лежит микроконтроллер, причем довольно простой.Если вы смогли создать прототип своего продукта с помощью Arduino, то микроконтроллер, вероятно, будет правильным выбором для производства.
Рисунок 1. Если вы уже создали прототип Proof-of-Concept на базе Arduino или Raspberry Pi, тогда ваш выбор значительно упростится.
Если, с другой стороны, вы создали свой прототип POC с помощью набора для разработки микропроцессора, такого как Raspberry Pi, то ваш выбор не совсем ясен. Я видел большое количество проектов, построенных на Raspberry Pi, которые на самом деле было бы проще создать с помощью Arduino.
Итак, то, что вы использовали Raspberry Pi, не обязательно означает, что вашему производственному продукту требуется такой высокоскоростной процессор.
Элемент | Предпочтительное решение |
Bluetooth | Микроконтроллер |
Wi-Fi | MCU / MPU |
Сотовая связь | Микроконтроллер |
Датчики | Микроконтроллер |
GPS | Микроконтроллер |
Управление двигателем / соленоидом | Микроконтроллер |
SD-камера | Микроконтроллер |
Камера HD 720p | MCU / MPU |
Камера HD 1080 | Микропроцессор |
AMOLED-дисплей | MPU или STM32F69 MCU |
USB 3.0 | Микропроцессор |
Обработка в реальном времени | Микроконтроллер |
Длительный срок службы батареи | Микроконтроллер |
Расширенная обработка данных | Микропроцессор |
Графические интерфейсы пользователя | MCU или MPU |
3 rd — подключение сторонней сети | Микропроцессор |
Таблица 1 — Предпочтительное решение для различных функций / возможностей
Видео
Для видео стандартной четкости с этой задачей обычно справляется микроконтроллер.Фактически, быстрый микроконтроллер прекрасно справляется даже с видео высокой четкости 720p. Однако, как только вы превысите 720p и перейдете к 1080, становится необходимо использовать более продвинутый микропроцессор.
Когда дело доходит до видео, решение о том, использовать ли микроконтроллер или микропроцессор, часто сводится к доступным интерфейсам связи, а не обязательно к скорости обработки.
Существует множество протоколов, которые используются для взаимодействия камер и дисплеев с мозгом вашего продукта.Многие, но не все из них поддерживаются микроконтроллерами.
Для камер с более низким разрешением приемлемым вариантом является относительно простой последовательный протокол, такой как SPI. Однако для камер с более высоким разрешением становится необходимым использовать параллельный интерфейс для обеспечения необходимой скорости передачи данных.
Параллельный интерфейс камеры может прекрасно использоваться с большинством микроконтроллеров с разрешением до 720p. Как только вы превысите разрешение камеры 720p, скорость передачи данных должна быть намного выше.
Большинство камер с разрешением выше 720p используют высокоскоростной последовательный видеоинтерфейс, известный как MIPI (на самом деле это название организации, которая наблюдает за этим стандартом).
ПРИМЕЧАНИЕ: Обязательно загрузите бесплатное руководство в формате PDF. 15 шагов для разработки нового электронного оборудования .
В частности, камеры используют интерфейс, известный как MIPI-CSI, а дисплеи используют протокол интерфейса, известный как MIPI-DSI. Эти два протокола используются практически во всех современных смартфонах для связи между дисплеем и камерами.
По этой причине существует множество дисплеев и камер, доступных только с интерфейсом MIPI.
Рисунок 2 — Для подключения к камере используется несколько протоколов связи. Однако интерфейс MIPI-CSI является наиболее распространенным вариантом для камер более высокого класса.
Еще пару лет назад интерфейсы MIPI использовались только в высокоскоростных микропроцессорах (иногда также называемых процессорами приложений). Если вы разрабатывали продукт, в котором используется усовершенствованный AMOLED-дисплей с высоким разрешением, вам приходилось использовать микропроцессор.
К счастью, ST Microelectronics изменила все это с помощью своего микроконтроллера STM32F469 (серия STM32 — в целом моя любимая линейка микроконтроллеров). STM32F469 основан на невероятно быстром 32-битном процессоре ARM Cortex-M4. STM32F469 — первый в мире микроконтроллер с интерфейсом MIPI-DSI.
Итак, если вашему продукту требуется расширенный дисплей с интерфейсом MIPI-DSI, теперь вы можете использовать микроконтроллер. К сожалению, STM32F469 не поддерживает интерфейс MIPI-CSI, поэтому выбор HD-камер по-прежнему ограничен.
Если вам, например, требуется камера 1080, вам все равно потребуется микропроцессор, а не микроконтроллер.
USB 3.0
Хотите включить в свой продукт новый безумно быстрый стандарт USB 3.0? Если это так, вам нужно будет установить его с очень быстрым микропроцессором. USB 2.0 имеет максимальную теоретическую скорость 480 Мбит / с (60 МБ / с).
Большинство более медленных микроконтроллеров поддерживают только полноскоростной режим USB 2.0, скорость которого составляет всего 12 Мбит / с.Существует множество микроконтроллеров более высокого уровня, которые могут поддерживать высокоскоростной режим USB 2.0 со скоростью до 480 Мбит / с.
Новый стандарт USB 3.0 опровергает эти характеристики с максимальной пропускной способностью примерно в 10 раз быстрее, чем USB 2.0, со скоростью 5 Гбит / с (640 МБ / с).
Нет доступных микроконтроллеров, способных обрабатывать такую невероятно высокую скорость передачи данных. Если вы хотите использовать USB 3.0, вам нужно использовать гораздо более быстрый микропроцессор.
Сверхбыстрая обработка
Если вашему продукту требуется быстрая обработка сложных данных, скорее всего, потребуется микропроцессор.Один из способов обойти это требование — переложить ваши требования к обработке на смартфон.
Например, вы потенциально можете использовать микроконтроллер в своем устройстве для сбора необходимых данных. Затем перенесите эти данные в мобильное приложение для выполнения любых дополнительных требований к обработке.
микроконтроллер / микропроцессор | Макс. тактовая частота (МГц) | Тест (DMIPS) |
Arduino Uno | 16 | 5.2 |
STM32F0 (Cortex M0) | 48 | 38 |
STM32F4 (Cortex M4) | 180 | 225 |
STM32F7 (Cortex M7) | 216 | 462 |
STM32H7 (Cortex M7) | 400 | 856 |
Raspberry Pi 3 | 1,200 | 2,760 |
Таблица 2 — Сравнение скоростей для различных микроконтроллеров
Очевидно, что процессор в вашем смартфоне очень быстрый.Это может быть простой уловкой для некоторых приложений, которая позволит вам обойтись более простым и недорогим микроконтроллером, который не разряжает вашу батарею так быстро.
Графические интерфейсы пользователя (GUI)
Для простого графического интерфейса вполне возможно использование микроконтроллера. Однако по мере увеличения сложности и разрешения этого графического интерфейса возрастают и потребности в скорости обработки.
Рисунок 3. Расширенный графический интерфейс пользователя (GUI) может потребовать значительной скорости обработки.
Использование микроконтроллера более высокого уровня позволяет разрабатывать довольно сложные пользовательские интерфейсы. Например, микроконтроллер STM32F469 включает аппаратный графический ускоритель, позволяющий использовать его для создания очень сложных графических пользовательских интерфейсов.
Однако может наступить момент, когда возникнет необходимость использовать еще более быстрый микропроцессор для действительно продвинутых пользовательских интерфейсов с очень высоким разрешением.
Срок службы батареи
Когда дело доходит до продления срока службы батареи, микроконтроллер — явный победитель.Более низкие скорости микроконтроллера приводят к меньшему потреблению тока.
Например, Arduino Uno потребляет максимальный ток около 45 мА, тогда как Raspberry Pi 3 потребляет около 580 мА.
Рисунок 4 — Микропроцессоры потребляют значительно больше энергии, чем микроконтроллеры. Поэтому, если срок службы батареи или небольшой размер имеют решающее значение для вашего продукта, микроконтроллер, вероятно, станет лучшим выбором.
Однако большинство микроконтроллеров также реализуют различные режимы низкого энергопотребления, которые позволяют переходить в режим ожидания или спящий режим.Потребление тока может упасть с десятков или сотен миллиампер при работе до нескольких микроампер в режиме ожидания. Для пробуждения микроконтроллера можно использовать внешнее прерывание.
Если срок службы батареи или сверхмалый размер имеют решающее значение для вашего продукта, вы, скорее всего, захотите использовать микроконтроллер. Вот почему во многих умных часах используются микроконтроллеры.
Память
Если вам нужен доступ к большим объемам действительно быстрой памяти, то микропроцессор, вероятно, станет вашим лучшим вариантом.Микроконтроллер уже встроен в память, поэтому выбор памяти меньше, чем у микропроцессора.
Максимальный объем флэш-памяти, доступной для большинства микроконтроллеров, обычно составляет около 2 МБ. Однако в систему микроконтроллера можно включить дополнительную внешнюю флэш-память.
Эта память обычно взаимодействует с микроконтроллером через довольно быстрый последовательный интерфейс SPI (более быстрые микроконтроллеры даже поддерживают quad-SPI).
Требуется много высокоскоростной оперативной памяти? Тогда вам, скорее всего, понадобится микропроцессор.Добавление высокоскоростной памяти DDR RAM в микроконтроллерную систему нецелесообразно, и это является областью микропроцессора.
Операционная система
Одно из основных различий между MCU и MPU заключается в том, что для микропроцессора требуется операционная система, например Windows, Android или Linux. С другой стороны, микроконтроллер может запускать прямую прошивку без использования операционной системы.
Это не означает, что микроконтроллер не может запускать операционную систему, но выбор более ограничен, обычно это какая-то операционная система реального времени (RTOS).Во-первых, операционная система требует довольно много ресурсов процессора и памяти.
Например, запуск полной операционной системы, такой как Windows, Android или Linux, потребует 300+ DMIPS накладных расходов на скорость процессора.
Принимая во внимание, что для ОСРВ может потребоваться всего около 50 DMIPS скорости обработки и несколько килобайт памяти для ядра ОС.
Заключение
Если ваш продукт должен включать HD-видео с разрешением выше 720p, вам определенно понадобится микропроцессор.
То же самое верно, если вы хотите иметь возможность использовать максимальные скорости передачи, возможные с новым стандартом USB 3.0.
Наконец, если вам нужно обработать большой объем данных или сложные данные, вам понадобится MPU.
Для любого другого типа продукта и функции микроконтроллер — правильный ответ. Диапазон производительности микроконтроллеров довольно велик, и у вас под рукой огромный выбор.
Наконец, не забудьте скачать бесплатно PDF : Ultimate Guide to Develop and Sell Your New Electronic Hardware Product .Вы также будете получать мой еженедельный информационный бюллетень, в котором я делюсь премиальным контентом, недоступным в моем блоге.Другой контент, который может вам понравиться:
Разница между встроенным процессором и микроконтроллером | Малый бизнес
По мере того, как компьютерные системы становятся все более и более повсеместными в производстве предметов повседневного обихода, их работа потребует некоторого рода цифрового контроля. Контроллеры, которые раньше работали с большими механическими системами, теперь работают внутри небольших цифровых и механических устройств.Однако эти микроконтроллеры не то же самое, что встроенные компьютерные процессоры. Обладая схожими функциями, оба по-разному интегрируются в свои роли в компьютерах и по разным причинам.
Контроллеры
Контроллеры — это особые части цифрового оборудования, которые управляют некоторыми аспектами своей среды в соответствии с ответами этой среды. Типичные типы контроллеров включают контроллеры для домашних систем регулирования температуры или систем безопасности.Контроллер можно рассматривать как автономный компьютер, который управляет другой системой. Часто старые контроллеры представляли собой большие части оборудования, находящиеся вне системы, которой они управляли.
Микроконтроллеры
По мере миниатюризации компьютеров с середины до конца 1900-х годов контроллеры становились все меньше и меньше. Все части контроллера, включая память и устройства ввода-вывода, стали стандартно интегрированы с контроллером. В конце концов, когда все устройства контроллера смогли уместиться на отдельных микросхемах, они стали известны как «микроконтроллеры».«Микроконтроллер содержит все необходимое для управления внешней системой и ничего больше. Такое ограничение функциональности микроконтроллера базовыми требованиями блока управления делает внедрение микроконтроллеров дешевым и простым.
Встроенные процессоры
« Встроенный »процессор — это просто вычислительное устройство, размещенное внутри системы, которую он контролирует. Встроенный в систему процессор обрабатывает все вычисления и логические операции компьютера. Встроенный процессор также выполняет такие задачи, как хранение и извлечение данных из памяти, а также обработка данных с любых входов или выходов.Встроенные процессоры часто работают как часть компьютерной системы вместе с памятью и устройствами ввода-вывода.
Различия
Основное различие между микронтроллерами и встроенными процессорами заключается в компоновке и интеграции. Встроенные процессоры, хотя в некотором смысле «управляют» системой, частью которой они являются, для этого требуются внешние ресурсы, такие как ОЗУ и регистры. Процессор — это не «система» управления. С другой стороны, микроконтроллеры содержат все необходимое для управления системой в одном кристалле.Микроконтроллер может содержать встроенный процессор как часть своей структуры, но также может объединять другие части компьютера, такие как память и регистры сигналов, в одном кристалле.
Ссылки
Writer Bio
Джексон Джексон специализируется на темах, связанных с литературой, компьютерами и технологиями. Он имеет степень бакалавра искусств по английскому языку и информатике в Университете Южного Иллинойса в Эдвардсвилле.
Микроконтроллеры — обзор | Темы ScienceDirect
BASIC Stamp
Микроконтроллеры обычно программируются с помощью ПК, на котором запущена программа на ассемблере.Однако есть и другие более простые способы программирования. Примером такого способа является BASIC Stamp, который, как следует из названия, программируется на BASIC. Stamp-1 — это законченная микроконтроллерная система, основанная на PIC16C56, которая проиллюстрирована на странице 166. PIC видна справа как 20-контактная ИС. Он имеет 1 Кбайт одноразовой программируемой памяти, в которую записан специальный компилятор BASIC. В нем есть много команд, которые также можно найти в других версиях BASIC, а также есть специальные команды, применимые к использованию PIC в качестве контроллера.Чип также имеет 25 байтов оперативной памяти для хранения данных. Чип 93LC56, показанный на фотографии, представляет собой EEPROM емкостью 2 КБ, который используется для хранения текущей программы.
Штамп-2 — это расширенная версия, которую можно увидеть на заглавной фотографии этой главы. Его процессор — PIC16C57 с 2 КБ для хранения BASIC. BASIC имеет несколько дополнительных команд. ОЗУ увеличено до 72 байтов. Чип имеет 28 контактов, что обеспечивает большее количество линий ввода-вывода, чем в Stamp-1. Кроме того, чип работает на частоте 20 МГц по сравнению с 4 МГц у Stamp-1, поэтому его действие происходит намного быстрее.Микросхема 24LC16B представляет собой EEPROM емкостью 16 Кбайт для программ. В обоих штампах память в микросхеме PIC используется для хранения компилятора BASIC, и в систему должна быть включена дополнительная память для хранения программы. Однако в большинстве приложений микроконтроллеров программа хранится во встроенной памяти. Это может быть разовое программирование для контроллеров, запрограммированных в количестве для использования в определенных приложениях. Контроллеры других типов имеют EEPROM или флэш-память, что позволяет их перепрограммировать.
Доступно несколько других систем микроконтроллеров, одна из которых запускается из компилятора C вместо BASIC.
Взаимодействие с микроконтроллерами часто бывает очень простым, потому что во многих системах используются только однобитовые входы и выходы. Например, входной сигнал может поступать от датчика, такого как фотодиод с триггером Шмитта (стр. 101), чтобы выдавать входной сигнал высокого или низкого уровня в зависимости от уровня освещенности. Переключатель, прижимной коврик, микровыключатель или кнопка могут быть соединены с помощью только простого подтягивающего резистора.
На стороне выхода однобитовые выходы микроконтроллера могут переключать лампу, двигатель, сирену, соленоид или другое устройство через транзисторный переключатель, как на странице 94.Все, что нужно, — это подключить выходной контакт непосредственно к затвору полевого МОП-транзистора или через резистор к базе BJT. Транзистор включается, когда выходной сигнал изменяется с низкого на высокий. Это активирует устройство в цепи стока или коллектора.
Микроконтроллеры широко используются для полуавтоматического управления, которое не требует такого сложного контроллера, как микропроцессор. Их небольшой размер и низкое энергопотребление делают их идеальными для портативного оборудования с батарейным питанием. Домашние устройства, которые могут управляться микроконтроллером, включают посудомоечные машины, стиральные машины, электрические обогреватели, мобильные телефоны, телевизионные пульты дистанционного управления, системы безопасности и компьютерные принтеры.Каждый день разрабатываются и продаются так называемые «умные» версии существующих устройств. Автомобильная электроника — еще одна быстрорастущая область, в которой микроконтроллеры играют значительную роль. Некоторые применения микроконтроллеров в промышленности описаны в главе 26.
Интересный пример все более широкого использования микроконтроллеров можно найти в системе управления A320 и A330 Airbus. У этого самолета есть главный управляющий компьютер в кабине экипажа, которым управляет пилот.Но вычисления, задействованные в управлении машиной, не ограничиваются главным компьютером. Каждый из приводов, которые перемещают поверхности полета (элероны, прорези, интерцепторы, рули высоты и руль направления), имеет свой собственный микроконтроллер. Когда поверхность полета необходимо переместить из одного положения в другое, от главного компьютера передается сигнал на соответствующий микроконтроллер в крыльях или хвостовых стабилизаторах. Это простой сигнал, эквивалентный «переместить поверхность из угла A в угол B». Получив этот сигнал, микроконтроллер управляет током, протекающим на приводной электродвигатель полетной поверхности.Датчики сообщают микроконтроллеру о фактическом положении поверхности, и ток, подаваемый на двигатель, мгновенно регулируется соответствующим образом. Микроконтроллер время от времени сообщает главному компьютеру о положении поверхности и, наконец, сообщает, когда действие было успешно завершено. Эта система известна как распределенная обработка , а — в отличие от центральной обработки, выполняемой одним центральным компьютером.