Что такое микроконтроллер, зачем он нужен и как его используют
Область применения микроконтроллеров безгранична. Их используют в любых электронных устройствах для осуществления контроля. Кроме того, они находятся во всех бытовых приборах – микроволновках, электрочайниках, утюгах, стиральных машинах — микроконтроллер можно запрограммировать под любую функцию.
Содержание
- История появления
- Что такое микроконтроллер
- Принцип работы микроконтроллера
- Назначение и область применения микроконтроллера
- Питание микроконтроллера
- Подключение
- Управление микроконтроллером
- Тактирование микроконтроллеров
- Семейства микроконтроллеров
- Типы корпусов микроконтроллеров
- В чем отличие микроконтроллера от микропроцессора?
- Устройства на микроконтроллерах
- Что нужно для программирования микроконтроллера
- Языки программирования
- Среда разработки
- Основы программирования
- Советы начинающим программистам микроконтроллеров
История появления
Работы над изобретением микропроцессора велись с начала 1970-х годов. Первой компанией, разработавшей его, была компания Intel. Уже в 1971 году ее был выпущен первый микроконтроллер 4004, который состоял из 2300 полупроводниковых транзисторов, а по размеру был не больше ладони. Это стало возможным, после того как для микросхемы был специально разработан кристалл процессора.
Несмотря на маленькие размеры, производительность микропроцессора не уступала компьютеру Eniac, имеющему габариты в 85 м3. Особенностью этого устройства было то, что оно могло обрабатывать только 4 бита информации.
В ближайшие полгода еще несколько компаний заявили о создании аналогичных изделий.
К концу 1973 года Intel выпускает 8-зарядный микропроцессор. Он был настолько удачно разработан, что и сегодня считается классикой.
Через несколько месяцев фирма Motorola выпускает свой 8-битовый микропроцессор 6800. Он стал сильным конкурентом интеловской микросхеме, т. к. имел более значительную систему прерываний и одно напряжение электропитания.
В 8080 их было три.Внутренняя архитектура 6800 тоже отличалась. В ней не было регистров общего назначения, в которых могли сохраняться как адресная информация, так и числовые показатели. Вместо них, в процессоре появился еще один полноценный аккумулятор для обработки данных и 16-разрядные регистры для хранения адресов. Работа с памятью у 6800 выполнялась быстрее и была проще, но 8080 тратил меньше времени на обмен внутренней информацией между регистрами.
Оба эти изделия имели как положительные стороны, так и недоработки. Они стали родоначальниками двух больших семейств микропроцессоров – Интел и Моторола, которые конкурируют между собой до сих пор.
В 1978 году Интел выпустила 16-разрядный микропроцессор, который IBM использовала для разработки персональных компьютеров. Моторола не отстала от своего конкурента и тоже выпустила 16-разрядный микропроцессор, который использовали Atari и Apple.
Сейчас существует более 200 разновидностей микроконтроллеров. Количество компаний, их изготавливающих, перевалило за два десятка. Широкое распространение у разработчиков получили:
- 8-битные микроконтроллеры Pic компании Microchip Technology и AVR от Atmel;
- 16-битовые MSP 430 фирмы TI;
- 32-битные ARM от одноименной компании.
В России пользуются популярностью микроконтроллеры Renesas Electronics, Freescale, Samsung.
Что такое микроконтроллер
Микроконтроллер по сути является микросхемой, который состоит из:
- Центрального процессора. В него входят блок управления, регистры, ПЗУ (постоянное запоминающее устройство).
- Периферии, которая включает порты ввода-вывода, контроллеры прерываний, таймеры, генераторы различных импульсов, аналоговые преобразователи и подобные элементы.
Зачастую микроконтроллер называют микропроцессором. Но это не совсем так. Последний осуществляет только определенные математические и логические операции. А в состав микроконтроллера входит и микропроцессор с другими элементами, являясь лишь частью МК.
Принцип работы микроконтроллера
Несмотря на сложное устройство принцип работы микроконтроллера очень прост. Он основан на аналоговом принципе действия. Система понимает лишь две команды («есть сигнал», «нет сигнала»). Из этих сигналов в его память вписывается код определенной команды. Когда МК считывает команду, он ее выполняет.
В каждом из МК прописаны свои базовые наборы команд. И только их он способен принимать и выполнять. Сочетая отдельные команды между собой, можно написать уникальную программу, по которой будет работать любое электронное устройство именно так, как требуется.
В зависимости от содержащихся в МК набора программ, они делятся на:
CISC – комплекс большого числа базовых команд;
RISC – только необходимые команды.
Большинство контроллеров содержит RISC набор. Объясняется это тем, что такой МК проще изготовить, он дешевле и больше пользуется спросом у разработчиков электронной техники.
Назначение и область применения микроконтроллера
Благодаря тому, что микроконтроллеры AVR очень просты в использовании, обладают высокой способностью интегрирования и низкой потребляемой мощностью, области их применения разнообразны:
- автомобилестроение;
- робототехника;
- самолето- и судостроение;
- промышленное оборудование;
- электронные детские игрушки;
- компьютеры, телефоны;
- электронные музыкальные инструменты;
- бытовая техника;
- медоборудование;
- управление шлагбаумами и воротами;
- светофоры, семафоры;
- железнодорожный транспорт.
Это не полный перечень областей применения МК.
Основное назначение МК – контролировать все процессы, которые происходят на его платформе. От включения или выключения света по хлопку до поднятия штор при изменении освещенности на улице. По сути, МК осуществляет контроль за состоянием неких переменных и изменение системы в динамических условиях.
Питание микроконтроллера
Для работы микроконтроллеру, как и любому электронному устройству, необходима энергия. Напряжение МК Atmel AVR находится в диапазоне 1.8–5.5 Вольт и зависит от модели и серии. Большинство приборов работает от 5 Вольт. Но встречаются и низкочастотные модели (Attiny 2313), нижняя граница у которых от 1,8 В.
Кроме того, на работу МК влияет и частота поступающего тока. Низкое напряжение требует и низких пределов частот. Чем выше частота, тем быстрее работают определенные модели.
Так, чтобы обеспечить работу контроллеров серии AVR, на все плюсовые входы нужно подавать 5 В, а нулевой заземляют.
Если у модели несколько вводов и выводов питания, то подключать их нужно все.
На аналогово-цифровой преобразователь питание подают через дополнительные фильтры. Это поможет избавиться от помех, которые могут изменять показания напряжения. При этом на плюсовой ввод подается напряжение через фильтрующий дроссель. А нулевые выводы разделяют на цифровые и аналоговые. Причем соединяться они могут только в одной точке.
Кроме того, необходимо установить и конденсаторы, лучше керамические, из расчета 1 на 100 нанофарад.
Подключение
Через микроконтроллер можно подключить к локальной сети любой девайс. В качестве таковой можно рассмотреть Ethernet. Прежде всего, определимся с понятиями.Ethernet – это набор стандартов IEEE 802.3, которые описывают разнообразные технологии локальных сетей: общий канальный уровень и набор технологий физического уровня, включающий в себя для передачи информации оптоволокно, витую пару, коаксиал с различными скоростями.
Понять, как работает локальная сеть, можно через модель OSI. Она включает в себя несколько уровней:
- Физический. Состоит из витой пары, драйверов и трансформаторов, по которым происходит передача данных.
- Канальный. Через него передаются Ethernet-фреймы между узлами локальной сети.
- Сетевой. По нему происходит передача пакетов. Они могут передаваться через несколько сетей, различающихся по технологиям физического и канального уровней.
- Транспортный. Связывает узлы между собой. Перед отправкой данных транспортный уровень представляет их в виде пакета сетевого уровня и передает другому узлу. Он может отправлять и группы пакетов одновременно. Если используется протокол с установкой соединения, то перед отправкой транспортный уровень устанавливает соединение, контролирует его качество, а только потом передает пакет данных.
- Прикладной. Решает прикладные задачи, те, ради которых создавался. С внешним миром он обменивается данными по стандартному или эксклюзивному протоколу.
Каждый из последующих уровней обслуживается предыдущим или нижележащим. Так образуются вертикальные межуровневые связи. Особенности обслуживания каждого уровня скрыты от остальных.
При взаимодействии двух сетей каждый из уровней одной сети контактирует с аналогичным уровнем другой. Так образуются горизонтальные связи.
Управление микроконтроллером
Управление МК может осуществляться двумя способами:
- Проводной путь. Управление исполнительными механизмами происходит через электропроводное соединение управляющих цепей и исполнительных механизмов. Включение — по нажатию кнопки на диспетчерском пункте или кнопочном пульте.
- Беспроводной путь. Такой способ управления не требует проводного соединения. С передатчика или пульта дистанционного управления (ПДУ) передается сигнал, который идет на приемник.
Сигналы беспроводного соединения могут быть:
- Оптическими. Подобными сигналами управляется домашняя бытовая техника: телевизоры или кондиционеры.
- Радио. Есть несколько вариантов: Wi-Fi, Bluetooth и др.
Развитие современных средств связи позволяет управлять контроллерами как через ПДУ, находясь в непосредственной близости к прибору, так и по интернету из любой точки мира через локальную сеть.
Обеспечивает поддержку cети Wi-Fi МК ESP 8266. В продаже он может быть в виде микросхемы или распаян, как arduino. У него 32-битное ядро, программировать его нужно через последовательный порт UART.
Поддерживает большое число функций:
- планировщик задач;
- таймер;
- канал АЦП;
- формирование на выходе ШИМ сигнала;
- аудиопроигрыватель и многое другое.
Плата может быть использована как самостоятельное устройство и как модуль для беспроводной связи с Ардуино.
Тактирование микроконтроллеров
Тактовая частота МК – это количество тактов за секунду, выполняемых контроллером. Чем она выше, тем большее количество операций он может выполнить.
Существуют несколько способов тактирования МК. Они зависят от использования:
- Внутреннего RC-генератора. Он может работать только на частоте 1, 2, 4, 8 МГц. Если нужна другая частота, то он не подойдет. При необходимости использования точных временных интервалов тоже нельзя пользоваться этим методом, т. к. его задающая частота колеблется в зависимости от температуры.
- Внешнего кварца. Этот способ имеет более сложное подключение. Емкость конденсатора должна находиться в интервале 15–22 пФ. Один выход присоединяется к резонатору, а другой заземляется.
- Внешнего генератора. Этот генератор также нестабилен при разной температуре, как и внутренний.
- RС-цепочек. Для данной схемы подойдет конденсатор емкостью от 22 пФ, резистор 10–100 кОм.
Для простейших микроконтроллеров подойдут внутренний или внешний генератор и RC-цепочки. Для проектирования более точных МК потребуются стабильные источники тактирования.
Семейства микроконтроллеров
Все МК объединяются в семейства. Основная характеристика, по которой происходит это деление, — структура ядра.
Под ядром МК подразумевают набор определенных команд, цикличность работы процессора, организацию как памяти программ, так и баз данных, систему прерываний и базовый набор периферийных устройств (ПУ).
Различаются представители одного семейства между собой объемом памяти программ и баз данных, а также разнообразием ПУ.
Объединяют все МК в семейства одинаковость двоичного кода программирования.
Семейства делятся на:
- MSC-51, производства Intel. Монокристальный МК на основе Гарвардской архитектуры. Основной представитель этого семейства 80С51, созданный по технологии CMOS. И хотя эти контроллеры разработаны еще в 80-х годах прошлого века, но до сих пор широко применяются. И сегодня многие компании, такие как Siemens, Philips и др. выпускают свои контроллеры с подобной архитектурой.
- PIC (Microchip). МК Гарвардской архитектуры. В его основе лежит архитектура с сокращенным набором команд, встроенная память команд и данных, низкое энергопотребление. В это семейство входят более 500 различных МК (8-ми, 16-ти, 32-битные) с различными наборами периферии, памяти и прочими характеристиками.
- AVR (Atmel). Высокоскоростные контроллеры разработаны на собственной архитектуре. Основой контроллера является Гарвардский RISC-процессор с самостоятельным доступом к памяти программ и баз данных (Flash ПЗУ). Каждый из 32 регистров общего назначения может работать как регистр-аккумулятор и совокупность 16-битных команд. Высокая производительность в 1 MIPS на каждый МГц тактовой частоты обеспечивается за счет порядка выполнения команд, который предусматривает выполнение одной команды и одновременную подготовку к следующей. Для поддержания своей продукции компания Atmel выпускает бесплатную и качественную среду разработки Atmel
- ARM (ARM Limited) разработаны на собственной архитектуре. В семейство входят 32-х и 64-битовые МК. ARM Limited занимается только разработкой ядер и их инструментов, а лицензии на производство продает другим компаниям. Эти процессоры потребляют мало энергии, поэтому находят широкое применение в производстве мобильных телефонов, игровых консолей, маршрутизаторов и т. д. К компаниям, выкупившим лицензии, относятся: STMicroelectronics, Samsung, Sony Ericsson и др.
- STM (STMicroelectronics). 8-разрядные контроллеры (STM8) относятся к категории высоконадежных с низким энергопотреблением изделий. В это же семейство входят контроллеры STM32F4 и STM Их основу составляет-32 битный Cortex. Такие контроллеры обладают отлично сбалансированной архитектурой и имеют большие перспективы развития.
Это не все семейства микроконтроллеров. Здесь мы привели только основные.
Типы корпусов микроконтроллеров
Внешних отличий МК от других микросхем нет. Кристаллы размещены в корпусах с определенным количеством выходов. Все МК выпускаются только в 3-х типах корпусов:
- Корпус DIP имеет два ряда выводов. Расстояние между ними 2,54 мм. Выводы вставляются внутрь отверстий на контактных площадках.
- Корпус SOIC. Он подходит для монтажа, который предполагает поверхностную припайку выходов к контактной площадке. Расстояние между выходами 1,27 мм.
- Корпуса QFP (TQFP). Выводы расположены со всех сторон. Расстояние между ними в 3 раза меньше, чем в DIP. Корпус имеет квадратную форму. Предназначаются только для поверхностной пайки.
- Корпус QFN. Самый маленький по сравнению с предыдущими. Контакты выходят в 6 раз чаще, чем в DIP. Имеют большое распространение в промышленном производстве, т. к. позволяют значительно уменьшить габариты выпускаемых приборов.
Каждый из корпусов имеет свои точки применения. Первые 3 могут использоваться радиолюбителями.
В чем отличие микроконтроллера от микропроцессора?
Весь компьютерный функционал микропроцессора (Micro Processor Unit — MPU) содержится на одном полупроводниковом кристалле. По характеристикам он соответствует центральному процессору компьютера ЦП (Central Processing Unit — CPU). Область его применения – хранение данных, выполнение арифметико-логических операций, управление системами.
МП получает данные с входных периферийных устройств, обрабатывает их и передает выходным периферийным устройствам.
Микроконтроллер совмещает в себе микропроцессор и необходимые опорные устройства, объединенные в одном чипе. Если нужно создать устройство, коммуницирующее с внешней памятью или блоком ЦАП/АЦП, то понадобится только подключить источник питания с постоянным напряжением, цепь сброса и источник тактовой частоты.
Устройства на микроконтроллерах
Каждый из видов контроллеров имеет свои периферические устройства, которые работают автономно, т. е. независимо от центрального ядра. После того как периферийное устройство выполнит свою задачу, оно может сообщить об этом ЦП, а может и не сообщать. Это зависит от того, как оно запрограммировано.
На МК могут быть следующие устройства:
- Аналоговый компаратор. Основная его задача сравнивать поступающее (измеряемое) напряжение с идеальным. Если измеряемое напряжение выше, чем идеальное, то компаратор выдает сигнал логической 1 (прибор отключается), если ниже, то логический 0 (прибор продолжает работать).
- Аналогово-цифровой преобразователь (АЦП). Измеряет аналоговое напряжение в период времени и выдает его в цифровой форме. Есть не у всех МК.
- Таймер/счетчик. Представляет собой сочетание 2-х форм таймера и счетчика. Таймер формирует интервалы времени, а цифровой счетчик считает количество импульсов, идущих от внутреннего генератора частот, или сигналы от внешних источников. Одним из представителей работы таймера /счетчика может быть ШИМ (широтно-импульсный модулятор). Он предназначен для управления средним значением напряжения при нагрузке.
- Сторожевой таймер. Его задача перезапускать программу через определенный временной промежуток.
- Модуль прерываний. Он сообщает МК о наступлении какого-либо события и прерывает выполнение программы. После завершения события возобновляет прерванную программу.
Не все из этих периферийных устройств обязательно есть в каждом МК. Существуют и другие, менее распространенные устройства.
Что нужно для программирования микроконтроллера
Чтобы микроконтроллер мог выполнять необходимые функции и решать определенные задачи, его необходимо запрограммировать.
Путь программирования проходит несколько этапов:
- Перед тем как приступить к написанию кода программы, надо определиться с конечной целью.
- Составляется алгоритм работы программы.
- Непосредственное написание кода программы. Коды пишутся на языке Си или Ассемблере.
- Компиляция программы, т. е. перевод ее в двоичную или шестнадцатеричную систему 1 и 0. Только так ее сможет понять МК.
- Откомпилированный код записывают в память контроллера.
- Прошивают МК с помощью программатора. Они бывают двух типов подключения: через COM или USB порт. Самый простой и дешевый программатор USBASP.
- Тестирование и отладка МК на реальном устройстве.
Радиолюбители иногда обходятся без прописывания алгоритма работы программы на бумаги. Они держат его в голове.
Языки программирования
Языки программирования для МК мало чем отличаются от классических компьютерных. Основное отличие заключается в том, что МК ориентируются на работу с периферией. Архитектура МК требует битово-ориентированных команд. Поэтому для контроллеров создавались особые языки:
- Ассемблер. Самый низкий уровень языка. Программы, написанные на нем, получаются громоздкими и труднопонимаемыми. Но несмотря на это он позволяет наиболее полно раскрыть все возможности контроллеров и получить максимальное быстродействие и компактный код. Подходит преимущественно для маленьких 8-битных МК.
- С/С++. Более высокий уровень языка. Программа, написанная на нем, более понятна человеку. На сегодняшний день есть много программных средств и библиотек, позволяющих писать коды на этом языке. Его компиляторы есть практически на любой модели МК. На сегодня это основной язык для программирования контроллеров.
- Еще более удобный для восприятия и проектирования язык. Но он мало применяется для программирования МК.
- Старинный язык программирования. На сегодня почти не применяется.
Выбор языка для программирования зависит от решаемых задач и необходимого качества кода. Если нужен компактный код, то подойдет Ассемблер, для решения более глобальных задач выбор ограничится только С/С++.
Среда разработки
На сегодня нельзя найти универсальной среды для программирования МК. Это связано с его внутренней структурой и наличием технического обеспечения записи кода в память контроллера.
Вот несколько сред программирования:
- FlowCode – универсальная графическая среда. Программируется с помощью построения логических структур блок-схем.
- Algorithm Builder. Тоже графическая среда. Но написание кода проходит в 3–5 раз быстрее, чем в FlowCode. В ней совмещены графический редактор, компилятор, симулятор МК, внутрисхемный программатор.
- В ней объединены Ассемблер и С/С++. Функционал среды позволяет самостоятельно прошивать МК.
- Image Craft. Как и предыдущая поддерживает Ассемблер и С/С++ языки. В ее составе есть библиотека, позволяющая работать с отдельными устройствами МК.
- Популярная среда для любителей. Имеет Си-подобный язык, но отличающийся от других. Он более понятен человеку. Поддерживает библиотеки, в составе которых есть драйвера для подключения некоторых платформ.
Среды бывают платные и бесплатные. Выбирая конкретную среду, нужно исходить из ее функционала, языка программирования, поддерживаемых интерфейсов и портов.
Основы программирования
Прежде чем приступать к программированию МК, нужно выбрать язык. Начинать лучше с Ассемблера. Хотя для понимания он достаточно сложен, но если приложить силы и все-таки понять его логику, то тогда станет ясно, что именно происходит в контроллере.
Если Ассемблер окажется сложен, то можно начинать с Си. Одной из сильных его сторон является то, что он хорошо переносит коды с одного вида МК на другой. Но для этого надо правильно все прописать, разделив рабочие алгоритмы и их реализации в машине по разным частям проекта. Это позволит переносить алгоритм в другой контроллер, переделав всего лишь интерфейсный слой, в котором прописано обращение к «железу», оставив рабочий код без изменений.
Далее действуют по следующей схеме:
- Выбор компилятора и установка среды (подробнее о них писалось выше).
- Запуск среды и выбор в ней нового проекта. Необходимо будет указать место расположения. Путь нужно выбирать наиболее короткий.
- Настройка проекта. Классическим действием будет создание make-файла, в котором прописываются все зависимости. На первой странице указывают еще частоту работы МК.
- Настройка путей. В них надо добавить директорию проекта. В нее можно добавлять сторонние библиотеки.
- Постановка задачи.
- Сборка схемы. На этом этапе надо соединить модуль USB-USART конвертера с аналогичными выводами МК. Это позволит прошить микроконтроллер без программатора. Нужно накинуть джамперы, соединяющие LED1 и LED2. Этим действием мы подключим светодиоды LED 1 и 2 к выводам PD4 и PD5.
- Пропись кода.
- Добавление библиотек и заголовков с определениями.
- Главные функции. Язык Си состоит из одних функций. Они могут быть вложенными и вызываться в любом порядке относительно друг из друга и разными способами. Но все они имеют три обязательных параметра: 1) возвращаемое значение; 2) передаваемые параметры; 3) тело функции. В зависимости отданных, все возвращаемые или передаваемые значения должны быть определенного типа.
- Компиляция и запуск эмуляции.
- Отладка программы.
После того как прописали программу на языке Си, можно понаблюдать, как и что происходит в МК. Это поможет выстроить аналогию с программированием на Ассемблере.
Советы начинающим программистам микроконтроллеров
Чтобы первый опыт в программировании МК не закончился неудачей и навсегда не отбил охоту заниматься этим делом, нужно следовать некоторым советам:
- Начинать с изучения периферии и ее особенностей.
- Каждую большую задачу надо разделять на максимально количество мелких.
- В начале пути не стоит упрощать себе жизнь и пользоваться кодогенераторами, нестандартными фичами и т. п. вещами.
- Обязательно нужно изучать языки программирования (Си и Ассемблера).
- Читайте Даташит.
- Соберите необходимый набор инструментов. Это стоит определенных денег, но окупит себя экономией времени и качеством работы.
Никогда не поздно стать радиолюбителем, будь вам 30 лет или 50. И необязательно иметь профильное высшее образование. Сейчас на просторах интернета много доступной информации, изучая которую можно разобраться в устройстве микроконтроллеров и научиться их программировать.
Микроконтроллеры. Устройство и особенности. Применение
Современные микроконтроллеры (МК) относятся к полупроводниковым компонентам, основное назначение которых – управление электронными устройствами. Они встраиваются непосредственно в исполнительный модуль, задавая режимы работы обслуживаемых изделий. На их основе реализована оригинальная идея, позволяющая совместить в одном кристалле сразу несколько функций.
Подобно классическому компьютеру они содержат в своем составе не только центральный процессор. Помимо него в МК входят рабочая память, ПЗУ, а также элементы периферии, объединенные в похожем на микросхему корпусе.
Современный микроконтроллер, можно сравнить с основным элементом любого компьютерного устройства – микропроцессором. Последний представляет собой центральную часть ПК, выполненную на основе интегральных схем. Название «микропроцессор» (МП) указывает на то, что именно в этом модуле происходят все вычислительные операции, определяющие производительность системы в целом.
Чтобы получить на его основе полноценную ЭВМ – необходимо дополнить МП целым рядом внешних устройств. Добиться этого удается добавлением к этому модулю оперативной памяти и периферийных портов ввода-вывода информации. В результате получается законченное автономное устройство или компьютер.
Подобно ПК микроконтроллеры содержат в своем составе следующие компоненты:
- Микропроцессор.
- Оперативную память.
- Комплект периферии, состоящей из портов обмена информацией с обслуживаемым устройством.
В отличие от ПК он не является полностью самостоятельным (автономным) изделием. Микроконтроллеры, как правило, встраиваются в гаджеты, игрушки и в другие исполнительные устройства, функционированием которых они управляют.
Устройство МК- Арифметико-логическое устройство служит для производства логических и арифметических операций, выполняет работу процессора совместно с регистрами общего назначения.
- Оперативно запоминающее устройство служит для временного хранения информации во время функционирования микроконтроллера.
- Память программ является одним из основных структурных элементов. Она основана на постоянном запоминающем устройстве с возможностью перепрограммирования, и служит для сохранения микропрограммы управления работой микроконтроллером. Она называется прошивкой.
- Память данных используется в некоторых моделях микроконтроллеров для записи различных постоянных величин, табличных данных и т.д. Эта память имеется не во всех микроконтроллерах.
- Для связи с внешними устройствами существуют порты ввода-вывода. Их также используют для подключения внешней памяти, различных датчиков, исполнительных устройств, светодиодов, индикаторов. Интерфейсы портов ввода-вывода разнообразны: параллельные, последовательные, оборудованные USB выходами, WI FI. Это расширяет возможности применения микроконтроллеров для различных сфер управления.
- Аналого-цифровой преобразователь требуется для введения аналогового сигнала на вход микроконтроллера. Его задачей является преобразование сигнала из аналогового вида в цифровой.
- Аналоговый компаратор служит для выполнения сравнения двух сигналов аналогового вида на входах.
- Таймеры используются для выполнения установки диапазонов и задержки времени в функционировании микроконтроллера.
- Цифро-аналоговый преобразователь исполняет обратную работу по преобразованию из цифрового сигнала в аналоговый.
- Действие микроконтроллера синхронизируется с генератором тактовыми импульсами с помощью блока синхронизации, который работает совместно с микропрограммой. Генератор тактовых импульсов может быть, как внутренним, так и внешним, то есть, тактовые импульсы могут подаваться с постороннего устройства.
Этот элемент микроконтроллера содержит следующие узлы:
- Арифметико-логическое устройство (АЛУ).
- Специальный интерфейс, обеспечивающий распределение потока данных.
- Генератор сигналов, вырабатываемых согласно инструкциям управляющей программы.
Для работы всех модулей микроконтроллера потребуются языки высокого уровня, позволяющие адаптировать простейшие команды к виду, понятному вычислительному устройству.
ПамятьСовременные микроконтроллеры имеют собственную энергонезависимую память, необходимую для хранения рабочих данный и заранее составленных и адаптированных программ. Последние представлены перечнем (списком) инструкций, написанных на машинном языке.
Они в точности указывают процессору, что ему предстоит делать с полученными данными. В ситуации с микроконтроллерами энергонезависимая память чаще всего представлена флеш накопителями (автономными хранилищами информационных массивов), (ПЗУ).
Оперативная память (ОЗУ или RAM) используется для промежуточного хранения машинных данных. Они безвозвратно теряются, когда от микроконтроллера отключается питающее напряжение. Еще одно средство временного хранения информации – внутренние регистры, представленные соответствующими структурами в составе МП.
Периферийные устройстваПонятие «периферия» используется для описания аппаратных средств, позволяющих микроконтроллеру обмениваться информацией с внешними устройствами.
Основные виды периферийных средств это:
- АЦП.
- ЦАП.
- Генераторы опорного напряжения.
Помимо этого, микроконтроллеры включают в свой состав множество функциональных блоков, обеспечивающих выполнение предварительно введенной программы. Последние не относятся к периферийным средствам, как к таковым, поскольку отличаются от них по своему функционалу.
Прошивка и отладка микроконтроллеровДля того, чтобы описываемые устройства могли выполнять свои функции – они предварительно прошиваются с помощью специальных аппаратных средств, называемых программаторами. И только после этого переходят к отладочным операциям.
Процедура отладки функционирования микроконтроллера необходима для того, чтобы разработчик мог контролировать порядок выполнения инструкций. Такой подход к подготовке устройства к работе позволяет найти и устранить возможные ошибки программистов, а также оптимизировать производительность самой программы.
Для контроля функционирования МК потребуется учесть еще одну его особенность, касающуюся операционной процедуры, называемой «прерывание». Под этим термином понимается организация процесса, благодаря которому удается решать сразу несколько задач (выполнять множество операций одновременно).
Прерывания запускаются импульсными посылками, генерируемыми внешними или внутренними аппаратными средствами. Эти посылки «вынуждают» процессор мгновенно переключаться на выполнение внеочередного блока команд, а затем возвращаться к прерванным операциям.
Организация электропитания МКМикроконтроллеры, как и другие электронные устройства, способны выполнять свои функции только при наличии качественного электроснабжения. Для этого в их составе предусматривается целый ряд технических средств это:
- Интегрированные в структуру стабилизаторы напряжения.
- Модули управления и оптимизации потребления электроэнергии.
- Супервизоры.
Первые позволяют генерировать нужное питающее напряжение непосредственно в корпусе МК, а вторые обеспечивают снижение потребления тока в неактивных состояниях.
На микросхемах под названием «супервизоры» реализуются детекторы отклонений напряжения, используемые для защиты микроконтроллера от некачественного питания. При сильных колебаниях сетевого напряжения они переводят процессор в состояние сброса.
Принцип работы микроконтроллераПорядок работы МК удобнее всего представить в виде множества операций, производимых составляющими его элементами. Но прежде важно отметить, что в архитектуру любого микроконтроллера заложена система команд, отличающихся своими кодами. При его работе происходит последовательное считывание командных блоков из внутренней памяти (или из порта ввода информации) с последующим их выполнением.
Ассортимент и количество возможных наборов команд определяется характеристиками конкретного МК, а их выполнение состоит в осуществлении определенной последовательности операций. Алгоритм работы микроконтроллера или его программное обеспечение разрабатывается с применением системных языков типа «Ассемблер» или «Форте». Но чаще всего используются версии «Бейсика», «Паскаля» или «Си». Перед рабочим программированием микроконтроллера он обязательно тестируется с использованием программных или аппаратных эмуляторов.
Разновидности МКМикроконтроллеры производятся многими известными мировыми фирмами в ассортименте, достаточном для удовлетворения запросов потребителя. Среди выпускаемой в различных странах продукции встречаются следующие семейства электронных устройств:
- Современные 32-битные микроконтроллеры.
- Менее «мощная» 16-битная разновидность.
- «Простенькие» 8-битные модели (i8051, например, и ее аналоги).
Внутри каждого такого семейства встречаются схожие модели, различающиеся лишь скоростью работы ЦПУ и заявленными объемами памяти. В настоящее время насчитывается более 200 модификаций МК, совместимых с i8051 и множество других разновидностей.
Известные разработчики МКОсобой популярностью у разработчиков программно-управляемых гаджетов пользуются 8-битные МК PIC от «Microchip Technology». Не менее популярны и такие изделия, как:
- Микропроцессоры AVR фирмы «Atmel».
- 16-битные MSP430 фирмы «TI».
- 32-битные МК архитектуры ARM (разработка фирма «ARM Limited»).
- 16-битное 28-pin PDIP PIC24 изделие.
Микроконтроллеры применяются в различных цифровых устройствах, к которым относятся всевозможные игрушки, электронные часы и подобные им гаджеты. Кроме того, они применяются для управления следующими видами современной техники:
- Станочное оборудование.
- Насосные и вентиляционные системы.
- Большинство домашней техники.
- Автоматические системы различного класса (включая «умный дом» и т. п.).
В станках с ЧПУ микроконтроллеры позволяют автоматически управлять работой основной подачи и шпинделя, а в специальном оборудовании с их помощью удается включать и выключать его по заданной программе. В домашней технике они контролируют режимы работы, например, стиральных машин или управляют комплексом звуковоспроизводящей аппаратуры.
Существенное отличие этого модуля от обычного процессора, определяющее его основное преимущество – возможность менять прошивку и обновлять алгоритм управления обслуживающим устройством.
Таким образом с помощью микроконтроллеров удается гибко управлять устройствами, в которые они встроены. Некоторые МК способны непосредственно переключать обслуживаемые устройства (например, реле елочной гирлянды), обходясь без исполнительного модуля. Благодаря универсальности этих программируемых изделий удается сэкономить на комплектующих, не нуждающихся в обновлении с изменением поставленной задачи.
Похожие темы:
- Arduino Uno. Устройство и применение. Особенности
- Ардуино для проекта «Умный дом». Работа и особенности установки
- Системы автоматики. Виды и особенности применения
- Электронные генераторы. Виды и устройство. Работа и особенности
- Компараторы. Устройство и работа. Виды и применение. Особенности
- Операционные усилители. Виды и принцип действия. Питание
- Программируемый логический контроллер. Типы и работа. Особенности
- КМОП транзисторы. Работа и применение. Особенности
Основы микроконтроллера, работа и его приложения
Носимые устройства и десятки приложений реального времени используют микроконтроллер , отличный от микропроцессора, для основной конструкции всего продукта. И в наши дни почти каждое электронное устройство поставляется с микроконтроллером.
Большинство встроенных приложений используют микроконтроллер (MCU) для выполнения вычислительных операций и логических функций.
В этой статье рассматриваются основы микроконтроллера вместе с его работой, приложениями, преимуществами и недостатками.
Что такое микроконтроллер?
Микроконтроллер (MCU), как следует из названия, представляет собой крошечное устройство, которое выполняет определенные задачи, назначенные пользователем. Задачи могут быть связаны с обычными вычислениями, такими как сложение, вычитание, деление и математика с плавающей запятой.
Кроме этого, микроконтроллер управляет, обрабатывает и хранит информацию в памяти. Объем памяти различается для разных семейств микроконтроллеров.
В некоторых случаях их часто называют « Встроенный микрокомпьютер ». Строительными блоками микроконтроллера являются процессор, память и периферийные устройства.
Давайте обсудим немного подробнее.
Архитектура
Вот взгляд изнутри на архитектуру микроконтроллера.
Он состоит из вспомогательного оборудования, такого как ЦП (центральный процессор), часы, кварцевый генератор, память и аппаратные периферийные устройства, подключенные внутри.
- ЦП
В основном ЦП является центральной частью микроконтроллера. Это мозг, который следует за действием, заданным пользователем. ЦП извлекает команду из памяти (ПЗУ), декодирует ее и выполняет. Этот метод известен как конвейерная обработка . Конвейерная обработка осуществляется с помощью шины данных и адресной шины.
Процессор выполняет инструкции со скоростью мегагерц (МГц) или гигагерц (ГГц).
- Часы
MCU требует, чтобы часы выполняли любую задачу. Чтобы обеспечить синхронизацию микроконтроллера, к центральному процессору подключается кварцевый генератор.
Выбор кристалла определяет скорость, с которой должен работать микроконтроллер. Частотный диапазон кварцевого генератора обычно находится в диапазоне МГц.
- Регистры
Регистр — элемент, хранящий данные. Он хранит двоичное слово длиной 8 бит. Микроконтроллеры оснащены различными регистрами общего и периферийного назначения. Регистры общего назначения включают счетчик программ (ПК) и указатель стека для хранения данных и инструкций. Принимая во внимание, что периферийные регистры полезны для настройки оборудования в микроконтроллере.
- Порты ввода-вывода
Порты ввода-вывода обычно называются портами GPIO (ввод-вывод общего назначения). Это означает, что эти порты могут использоваться либо как входные, либо как выходные. Некоторые микроконтроллеры поддерживают альтернативный GPIO. Их можно использовать для нескольких функций.
Они необходимы для подключения внешних устройств, таких как интерфейсы дисплея (светодиодный, ЖК-дисплей и сенсорный экран), двигателей и т. д. Порты ввода-вывода также используются для измерения входных сигналов и переключения.
- Память
Как известно, память бывает двух видов (RAM и ROM).
ОЗУ (оперативное запоминающее устройство) предназначено для временного хранения данных, а ПЗУ (постоянное запоминающее устройство) предназначено для постоянного хранения.
Для хранения данных в микроконтроллере архитектура процессора делится на гарвардскую и фон-неймановскую. У Гарварда есть отдельные шины памяти (адресная шина и шина данных) для хранения инструкций и данных, тогда как фон-Нейман имеет общую память как для инструкций, так и для данных.
- Таймеры
Таймеры являются наиболее инновационными периферийными устройствами, которые могут обеспечивать точную временную задержку. Он может повторять предварительно определенную задачу в известный период времени.
Некоторые приложения таймера включают в себя управление двигателем, включение/выключение релейной цепи, GPS (система глобального позиционирования), управление бытовой техникой и т. д. события, происходящие за пределами MCU.
Счетчики применяются для измерения пульса, обнаружения объектов и т. д. Они используются для измерения частоты, для подсчета повышения или понижения температуры в микроволновых печах, для измерения установленного времени в стиральных машинах и электрических нагревателях.
- Последовательные интерфейсы
В электронике различные устройства взаимодействуют друг с другом с помощью последовательной связи. Для последовательной связи используются такие интерфейсы, как UART (универсальный асинхронный приемник-передатчик), I2C, SPI и т. д.
Кроме того, в новейших микроконтроллерах используются расширенные протоколы, такие как Ethernet, USB.
- Аналого-цифровой преобразователь (АЦП)
Датчики преобразуют физические параметры, такие как температура, влажность и давление, в аналоговые сигналы. АЦП преобразует этот аналоговый сигнал в цифровые байты. Аналоговые сигналы могут быть в форме напряжения, тока или сопротивления.
Он имеет внутренние часы, которые измеряют тактовые циклы, поступающие от MCU, и производят выборку с помощью собственных часов. Количество тактовых циклов представляет собой цифровое представление аналогового напряжения.
- Цифро-аналоговый преобразователь (ЦАП)
ЦАП (цифро-аналоговое преобразование) является противоположностью АЦП. ЦАП преобразует цифровые данные в аналоговую форму напряжения. Некоторые приложения ЦАП включают цифровую обработку сигналов, управление двигателем, музыкальные проигрыватели, цифровой потенциометр и т. д.
- Прерывания
Прерывание — это событие, которое используется для выполнения более чем одной задачи. Когда вызывается прерывание, микроконтроллер останавливает текущее выполнение (первая задача) и выполняет другие задачи (вторая задача). После выполнения второй задачи он возвращается к первой задаче и выполняет обычные операции.
Микропроцессор и микроконтроллер
В некоторых сценариях термин микропроцессор или микроконтроллер может сбивать с толку. Но оба они имеют схожие функции с дополнительными функциями для микропроцессора.
Некоторые производители определяют термин микропроцессор, отличный от микроконтроллера. Но это может быть не так во всех случаях. Чтобы оправдать это здесь, разница между микроконтроллером и микропроцессором.
Микроконтроллер | Микропроцессор |
---|---|
В нем используется крошечный микропроцессор, работающий на более низкой частоте | В нем используется центральный процессор общего назначения (ЦП), который работает на более высокой частоте |
Низкая скорость работы | Быстрая работа. |
Вся периферия (таймер, счетчик, rtc) присутствует внутри. | Некоторые компоненты находятся за пределами микропроцессора. |
Поддерживает логические операции | Булевы функции не поддерживаются. |
Для доступа к регистрам ЦП требуется меньше времени | Для доступа к регистрам ЦП требуется больше времени. |
В основном используется в приложениях реального времени | Используется в персональных настольных компьютерах и ноутбуках. |
Поддерживает RTOS (операционная система реального времени) | Поддерживает RTOS и сервисы на основе ядра. |
Примеры: 8051, PIC, MSP430, Renesas, микроконтроллер STM и т. д. | Примеры: X86, Motorola, Broadcom, Pentium и т. д. |
Подходит для выполнения побитовых операций | Не поддерживает все типы побитовых операций |
Конструкция аппаратного обеспечения меньше | Сложность аппаратного обеспечения утомительна. |
Не всегда поддерживает многозадачность | Лучше всего подходит для многозадачности |
Дешевле | Высокая стоимость |
Как это работает?
При включении питания кварцевый генератор запускает тактовые импульсы и генерирует частоту. Через некоторое время осциллятор стабилизируется.
Теперь микроконтроллер начинает свою работу от счетчика программ (ПК). Адрес программного счетчика хранится в ПЗУ. ПК сохраняет адрес следующей команды, которая должна быть выполнена. Он выполняет инструкции со стартового адреса (0x00) счетчика программ. Этот адрес отправляется декодеру инструкций, который понимает и выполняет инструкции.
Преимущества
Основным преимуществом микроконтроллера является меньшая стоимость и размер. Интерфейс периферийных устройств упрощается благодаря портам ввода/вывода. И скорость выполнения выше с точки зрения скорости и памяти.
Чтобы использовать микроконтроллер в вашем приложении, кроме процессора, вот ключевые преимущества.
- Идеально подходит для специальных приложений.
- Жесткий по своей природе (т. е. программируемый один раз)
- Время разработки приложения становится проще.
- Практические наблюдения можно проводить с помощью симулятора и эмулятора.
- Простота проектирования и развертывания.
Недостатки
Самое нежелательное при работе с микроконтроллерами, они не выдерживают высокого напряжения. Основным недостатком микроконтроллера является сложность его архитектуры.
Помимо вышеперечисленного, они имеют ограниченный объем оперативной памяти и не подходят для одновременного выполнения параллельных задач.
Приложения
Существует множество применений микроконтроллера. Но вот некоторые из них.
- Функция ШИМ (широтно-импульсная модуляция) в микроконтроллере позволяет управлять двигателями постоянного тока.
- Используется в телекоммуникациях, бытовой электронике, испытательных стендах, интеллектуальных счетчиках электроэнергии, медицинской электронике, оборонной и аэрокосмической промышленности и т. д.
- Устройства человеко-машинного интерфейса.
- Бытовая техника и освещение.
- Автомобильная электроника для электроусилителя руля, торможения и т. д.
- Сенсорные решения.
- На железных дорогах для сигнализации, управления дверями, приведения в движение и торможения.
- Используется в промышленном управлении для автоматизации, ПЛК (программируемые логические контроллеры), контроллерах движения и т. д.
- Системы управления батареями для контроля уровня мощности и токов.
- Используются в альтернативной энергетике (солнечная, ветровая и т.д.) и на транспорте (подъемники и краны).
- Робототехника (для автоматизации)
Заключительные слова
Микроконтроллер сократил человеческие усилия, выполняя повторяющиеся операции.
Если вы хотите внедрить проекты микроконтроллеров для встраиваемых устройств, вы должны понимать архитектуру микроконтроллера.
Вы когда-нибудь хотели работать с микроконтроллером для решения сложных задач? Поделитесь своими мыслями в комментариях ниже.
[no_toc]
Как работают микроконтроллеры — IntervalZero
16 августа 2018 г.
Микроконтроллеры встроены в устройства для управления действиями и функциями продукта. Следовательно, их также можно назвать встроенными контроллерами. Они запускают одну конкретную программу и предназначены для одной задачи. Это маломощные устройства с выделенными входными устройствами и небольшими светодиодными или ЖК-дисплеями. Микроконтроллеры могут принимать входные данные от устройства, которым они управляют, и сохранять контроль, отправляя сигналы устройства в разные части устройства. Хорошим примером является микроконтроллер телевизора. Он принимает входные данные с пульта дистанционного управления и выводит их на экран телевизора.
Загрузить историю успеха клиентов
Как и традиционные компьютеры, микроконтроллеры используют различные функции для выполнения своей работы. Эти функции включают в себя:
ОЗУ
ОЗУ используется для хранения данных, а также других результатов, которые создаются, когда микроконтроллер работает. Однако он не хранит данные постоянно, и его память теряется при отключении питания микроконтроллера. В оперативной памяти находится регистр специальных функций (SFR). Это предварительно сконфигурированная память, предлагаемая производителем микроконтроллера. Он управляет тем, как ведут себя определенные схемы, такие как последовательная связь и аналого-цифровой преобразователь.
ПЗУ
Специальные задачи, которые микроконтроллеры выполняют в виде программ, сохраняются в ПЗУ (постоянное запоминающее устройство) и никогда не изменяются. ПЗУ позволяет микроконтроллерам знать, что определенные действия должны вызывать определенные ответы. Например, ПЗУ позволяет микроконтроллеру телевизора знать, что нажатие кнопки канала должно изменить изображение на экране. Размер программы, хранящейся в ПЗУ, зависит от размера ПЗУ. Некоторые микроконтроллеры допускают добавление ПЗУ в виде внешних микросхем, в то время как другие поставляются со встроенным ПЗУ.
Загрузить технический документ
Счетчик программ
Счетчик программ позволяет миникомпьютеру выполнять программы на основе ряда различных запрограммированных инструкций.