Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр

Как я научился работать с микроконтроллерами — опыт новичка / Хабр

Всем привет. В этой статье хотел рассказать о том, как я научился работать с микроконтроллерами
(далее по тексту — МК) и на какие подводные камни налетел. Сразу скажу — статья не претендует на эксклюзивность, так как любой человек работающий с МК проходил через то, что прошёл я. Прошу строго не судить, а прочитать как историю.

Вместо вступления

Впервые интерес к МК у меня возник, когда я учился в 10 классе. На тот момент был 2009 год. Я умел немного программировать на ПК в QBasic и Visual Basic — школьная программа, но так сложилась жизнь, что я особо не разбирался в программировании, да и отсутствие знающих людей по части электроники и МК рядом сделали своё дело — для меня это была новая ниша. Хотя я с детства ковырялся с платами и микросхемами найденными на помойках, но как оно работало я толком не понимал — толком никто не мог объяснить. Как работает транзистор нормально я узнал только спустя пару лет после описанных событий. Когда я выбирал первый МК то смотрел характеристики на сайте ЧИП-ДИП. Скажу честно — для меня это было как иероглифы. Так что не стоит этого бояться. И да, про Arduino тогда никто понятия не имел.

Как всё началось

Начал ковыряться в яндексах и гуглах. Понимал, что сам контроллер — половина дела, нужна ещё и программа. А как сказано во вступлении — с программированием у меня было не очень. В конце концов попал на какой-то сайт. Как стало позднее ясно, я с этим сайтом реально «попал». Создатель сайта написал ещё и учебник по программированию, я на радостях скачал учебник и первое что там увидел — «В качестве образца для работы я использовал PIC16F84A ». Собственно так я и выбрал свой первый МК. Теперь вопрос — почему я именно «попал». А попал я из-за того, что создатель этого учебника и сайта предлагал программировать МК на АССЕМБЛЕРЕ. Его не все практикующие проггеры то знают, а тут новичок… Контроллер я уже заказал, и только потом начал читать учебник, к сожалению.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр

Как я выходил из положения

После того, как я понял, что ничего не понял, я забросил МК на пару лет, но параллельно всё-таки шарился на форумах типа Схем.нет и прочих, и ко мне постепенно приходило понимание вопроса. Решил учиться кстати на модели PIC16F877A.

Итак, что нужно знать новичку:

Микроконтроллер — это маленький компьютер, в нём есть и Арифметико-логическое устройство — процессор по сути дела, и оперативная память и некое подобие жесткого диска — память программ и данных, но выполнено это всё в одной микросхеме. Соответственно в зависимости от модели и производителя у него следующие характеристики (ориентировочно):

  • Рабочие частоты от единиц до ~100 Мгц, я лично использую в своих устройствах как правило частоты 20 Мгц, именно МЕГАгерц, а не ГИГАгерц. Частота задаётся внешним источником тактирования — кварцевым или керамическим резонатором.
  • Объём ОЗУ — единицы и десятки Килобайт
  • Объём памяти под данные и программу — до нескольких десятков Килобайт. При желании можно расширить память для данных с помощью микросхем памяти. Для того чтобы использовать эти микросхемы для расширения памяти под программу — новичку стоит забыть, не всякий профессионал может это правильно сделать, да и не каждый микроконтроллер позволяет изменять свою прошивку во время работы.
  • Рабочее напряжение от 1 до 5 вольт в зависимости от модели и производителя.

Микроконтроллер рассчитан на работу на плате, скажем так, в конкретной «железке», на плате, в устройстве. Так что не стоит думать, что на нём можно поиграть в CS 🙂

Языки программирования

Начал выбирать язык программирования и среду в которой можно программировать. Так как я хоть как-то знал Basic, то и задумался, что было бы хорошо прогать на нём. Да, он не очень совершенный и ещё куча недостатков, но для начала подходил как нельзя кстати. Мне повезло, оказалось, что есть язык PIC-Basic. По нему есть учебник, автор Чак Хелибайк и переведённое на русский руководство, собственно до всего доходил дальше по учебнику и руководству.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр Среда работает из-под ДОС, но можно прикрутить CodeStudio и всё будет работать из-под Windows.

Программатор

Следующая проблема, стоявшая у меня на пути — чем записать программу в чип. Понятное дело, что нужен программатор, я решил экономить, попробовал собрать несколько схем из этих ваших интернетов. Одной схемы недостаточно, нужна ещё программа которая используя программатор (саму железку) занесёт код в память. Все мои опыты окончились неудачами, по причине малого опыта. Решил я больше не смотреть на то, как от чипов идёт дым и заказал PICKit3, после этого не знал проблем, поигрался пару дней с ним и всё заработало.

  • В настоящее время есть адаптированные языки программирования для МК, тот же Бэйсик, СИ и прочие.
  • После написания программы она компилируется в машинный код — файлик с расширением HEX, его-то и надо прошивать в память МК.
  • Для того, чтобы «прошить МК» — записать в него выполняемый код нужно две вещи:

    1) плата-программатор, которая является промежуточным устройством между разъёмом компьютера и самим чипом

    2) Программа-программатор, которая будет знать как работать с программатором, собранным по конкретной схеме.

    То есть нужно чтобы программа на ПК знала какая схема подключена к ПК чтоб правильно прошить чип. В моём случае это заводское решение — вместе с программатором PicKit идет диск с нужными программами.

  • Памяти в МК ограниченное количество, это надо учитывать, иногда приходится выкраивать каждый байт прошивки, лишь бы влезть в объём памяти чипа. Так же следует понимать, что в МК нет никакой операционной системы, и Ваша прошивка — единственные данные которые знает МК.

Несколько слов про периферию

Для связи с внешним миром и удобства работы и разработки в МК встраивают различные периферийные схемы, например АЦП — аналогово-цифровой преобразователь, так что можно без лишней обвязки измерять напряжение подаваемое на вывод МК, но оно должно быть не выше чем напряжение питания, иначе чип сгорит.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр Используя делитель напряжения можно сделать вольтметр, например. Периферия, количество встроенных функций и их характеристики тоже зависят от модели, как правило чем дороже модель — тем богаче комплектация. Так же следует не забывать, что у контроллера ограниченное число ножек, к которым можно подключиться.

Например у PIC16F877А их 40 штук, причем 7 штук вылетают сразу, т.к. используются для подачи питания, подключения резонатора и управления аварийным сбросом. Так же надо внимательно смотреть документацию на чип. Например тот же АЦП — в PIC16F877А он может измерять напряжение только на 8 конкретных ножках чипа, на других он это делать не может. То есть под каждую встроенную функцию отводятся конкретные выводы и поменять их нельзя.

Суть сей басни такова

Освоить МК реально даже самому и с нуля, но есть места где не очень понятно. Если с программированием никогда не сталкивались, то сначала выучите хотя-бы азы программирования и напишите «Hello World» на компьютере. После этого будет проще. Если не хотите особо заморачиваться — Arduino Ваше всё. МК расчитаны на использование в «железках» — блоки управления, платы, контроллеры итд итп, это не полноценный компьютер, а контроллер. И ожидать от него следует соответственно. Благо сейчас полно примеров на ютубе, и я надеюсь, что мой опыт начинания с нуля будет не таким горьким и моя статья кому-нибудь, да поможет.

Что такое микроконтроллер, зачем он нужен и как его используют

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

История появления

Работы над изобретением микропроцессора велись с начала 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. Она включает в себя несколько уровней:

  1. Физический. Состоит из витой пары, драйверов и трансформаторов, по которым происходит передача данных.
  2. Канальный. Через него передаются Ethernet-фреймы между узлами локальной сети.
  3. Сетевой. По нему происходит передача пакетов. Они могут передаваться через несколько сетей, различающихся по технологиям физического и канального уровней.
  4. Транспортный. Связывает узлы между собой. Перед отправкой данных транспортный уровень представляет их в виде пакета сетевого уровня и передает другому узлу. Он может отправлять и группы пакетов одновременно. Если используется протокол с установкой соединения, то перед отправкой транспортный уровень устанавливает соединение, контролирует его качество, а только потом передает пакет данных.
  5. Прикладной. Решает прикладные задачи, те, ради которых создавался. С внешним миром он обменивается данными по стандартному или эксклюзивному протоколу.

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

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

Управление микроконтроллером

Управление МК может осуществляться двумя способами:

  1. Проводной путь. Управление исполнительными механизмами происходит через электропроводное соединение управляющих цепей и исполнительных механизмов. Включение — по нажатию кнопки на диспетчерском пункте или кнопочном пульте.
  2. Беспроводной путь. Такой способ управления не требует проводного соединения. С передатчика или пульта дистанционного управления (ПДУ) передается сигнал, который идет на приемник.

Сигналы беспроводного соединения могут быть:

  • Оптическими. Подобными сигналами управляется домашняя бытовая техника: телевизоры или кондиционеры.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр
  • Радио. Есть несколько вариантов: Wi-Fi, Bluetooth и др.

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

Обеспечивает поддержку cети Wi-Fi МК ESP 8266. В продаже он может быть в виде микросхемы или распаян, как arduino. У него 32-битное ядро, программировать его нужно через последовательный порт UART. Бывают более продвинутые платы с возможностью прошивки по USB – это NodeMCU. Они могут хранить информацию, записанную, например, с датчиков. Такие платы работают с различными интерфейсами, в т. ч. SPI, I2S.

Поддерживает большое число функций:

  • планировщик задач;
  • таймер;
  • канал АЦП;
  • формирование на выходе ШИМ сигнала;
  • аудиопроигрыватель и многое другое.

Плата может быть использована как самостоятельное устройство и как модуль для беспроводной связи с Ардуино.

Тактирование микроконтроллеров

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

Существуют несколько способов тактирования МК. Они зависят от использования:

  • Внутреннего 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. Перед тем как приступить к написанию кода программы, надо определиться с конечной целью.
  2. Составляется алгоритм работы программы.
  3. Непосредственное написание кода программы. Коды пишутся на языке Си или Ассемблере.
  4. Компиляция программы, т. е. перевод ее в двоичную или шестнадцатеричную систему 1 и 0. Только так ее сможет понять МК.
  5. Откомпилированный код записывают в память контроллера.
  6. Прошивают МК с помощью программатора. Они бывают двух типов подключения: через COM или USB порт. Самый простой и дешевый программатор USBASP.
  7. Тестирование и отладка МК на реальном устройстве.

Радиолюбители иногда обходятся без прописывания алгоритма работы программы на бумаги. Они держат его в голове.

Языки программирования

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

  • Ассемблер. Самый низкий уровень языка. Программы, написанные на нем, получаются громоздкими и труднопонимаемыми. Но несмотря на это он позволяет наиболее полно раскрыть все возможности контроллеров и получить максимальное быстродействие и компактный код. Подходит преимущественно для маленьких 8-битных МК.
  • С/С++. Более высокий уровень языка. Программа, написанная на нем, более понятна человеку.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр На сегодняшний день есть много программных средств и библиотек, позволяющих писать коды на этом языке. Его компиляторы есть практически на любой модели МК. На сегодня это основной язык для программирования контроллеров.
  • Еще более удобный для восприятия и проектирования язык. Но он мало применяется для программирования МК.
  • Старинный язык программирования. На сегодня почти не применяется.

Выбор языка для программирования зависит от решаемых задач и необходимого качества кода. Если нужен компактный код, то подойдет Ассемблер, для решения более глобальных задач выбор ограничится только С/С++.

Среда разработки

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

Вот несколько сред программирования:

  • FlowCode – универсальная графическая среда. Программируется с помощью построения логических структур блок-схем.
  • Algorithm Builder. Тоже графическая среда. Но написание кода проходит в 3–5 раз быстрее, чем в FlowCode. В ней совмещены графический редактор, компилятор, симулятор МК, внутрисхемный программатор.
  • В ней объединены Ассемблер и С/С++. Функционал среды позволяет самостоятельно прошивать МК.
  • Image Craft. Как и предыдущая поддерживает Ассемблер и С/С++ языки. В ее составе есть библиотека, позволяющая работать с отдельными устройствами МК.
  • Популярная среда для любителей. Имеет Си-подобный язык, но отличающийся от других. Он более понятен человеку. Поддерживает библиотеки, в составе которых есть драйвера для подключения некоторых платформ.

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

Основы программирования

Прежде чем приступать к программированию МК, нужно выбрать язык. Начинать лучше с Ассемблера.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр Хотя для понимания он достаточно сложен, но если приложить силы и все-таки понять его логику, то тогда станет ясно, что именно происходит в контроллере.

Если Ассемблер окажется сложен, то можно начинать с Си. Одной из сильных его сторон является то, что он хорошо переносит коды с одного вида МК на другой. Но для этого надо правильно все прописать, разделив рабочие алгоритмы и их реализации в машине по разным частям проекта. Это позволит переносить алгоритм в другой контроллер, переделав всего лишь интерфейсный слой, в котором прописано обращение к «железу», оставив рабочий код без изменений.

Далее действуют по следующей схеме:

  1. Выбор компилятора и установка среды (подробнее о них писалось выше).
  2. Запуск среды и выбор в ней нового проекта. Необходимо будет указать место расположения. Путь нужно выбирать наиболее короткий.
  3. Настройка проекта. Классическим действием будет создание make-файла, в котором прописываются все зависимости. На первой странице указывают еще частоту работы МК.
  4. Настройка путей. В них надо добавить директорию проекта. В нее можно добавлять сторонние библиотеки.
  5. Постановка задачи.
  6. Сборка схемы. На этом этапе надо соединить модуль USB-USART конвертера с аналогичными выводами МК. Это позволит прошить микроконтроллер без программатора. Нужно накинуть джамперы, соединяющие LED1 и LED2. Этим действием мы подключим светодиоды LED 1 и 2 к выводам PD4 и PD5.
  7. Пропись кода.
  8. Добавление библиотек и заголовков с определениями.
  9. Главные функции. Язык Си состоит из одних функций. Они могут быть вложенными и вызываться в любом порядке относительно друг из друга и разными способами. Но все они имеют три обязательных параметра: 1) возвращаемое значение; 2) передаваемые параметры; 3) тело функции. В зависимости отданных, все возвращаемые или передаваемые значения должны быть определенного типа.
  10. Компиляция и запуск эмуляции.
  11. Отладка программы.

После того как прописали программу на языке Си, можно понаблюдать, как и что происходит в МК.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр Это поможет выстроить аналогию с программированием на Ассемблере.

Советы начинающим программистам микроконтроллеров

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

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

Никогда не поздно стать радиолюбителем, будь вам 30 лет или 50. И необязательно иметь профильное высшее образование. Сейчас на просторах интернета много доступной информации, изучая которую можно разобраться в устройстве микроконтроллеров и научиться их программировать.

Как работает микроконтроллер

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

Первыми идею создания микроконтроллера в 1971 году выдвинули сотрудники американской электронной компании Texas Instruments. Именно они предложили собрать на одном кристалле небольшой компьютер, поместив туда процессор, память и устройства ввода/вывода. Через 5 лет эту идею подхватила вездесущая Intel, выпустив первый микроконтроллер i8048.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр

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

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

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

Без применения микроконтроллеров сейчас не возможна работа материнских (системных) плат компьютера, большинства бытовых электроприборов, промышленных устройств автоматики и систем управления оборудованием. Кстати если вы хотите самостоятельно построить какое-то электронное устройство или сделать модернизацию промышленного, можно использовать многофункциональные микроконтроллеры cortex.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр Их разнообразие и простота программирования открывают широкие возможности использования в системах управления простых и сложных электроприборов.

< Предыдущая Следующая >

Всё о микроконтроллерах AVR

Микроконтроллер — микросхема, предназначенная для управления электронными устройствами.

AVR – это название популярного семейства микроконтроллеров, которое выпускает компания Atmel. Кроме АВР под этим брендом выпускаются микроконтроллеры и других архитектур, например, ARM и i8051.

Какими бывают AVR микроконтроллеры?

Существует три вида микроконтроллеров:

  1. AVR 8-bit.
  2. AVR 32-bit.
  3. AVR xMega

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

Микроконтроллеры AVR 8-bit в свою очередь делятся на два популярных семейства:

  • Attiny – из названия видно, что младшее (tiny – юный, молодой, младший), в основном имеют от 8 пинов и более. Объём их памяти и функционал обычно скромнее, чем в следующем;
  • Atmega – более продвинутые микроконтроллеры, имеют большее количество памяти, выводов и различных функциональных узлов;

Самым мощным подсемейством микроконтроллеров является xMega – эти микроконтроллеры выпускаются в корпусах с огромным количеством пинов, от 44 до 100. Столько необходимо для проектов с большим количеством датчиков и исполнительных механизмов. Кроме того, увеличенный объем памяти и скорость работы позволяют получить высокое быстродействие.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр

Расшифровка: Пин (англ. pin – иголка, булавка) – это вывод микроконтроллера или как говорят в народе – ножка. Отсюда же слово «распиновка» — т.е. информация о назначении каждой из ножек.

Для чего нужны и на что способны микроконтроллеры?

Микроконтроллеры применяются почти везде! Практически каждое устройство в 21 веке работает на микроконтроллере: измерительные приборы, инструменты, бытовая техника, часы, игрушки, музыкальные шкатулки и открытки, а также многое другое; одно лишь перечисление займет несколько страниц текста.

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

В распространенных AVR-микроконтроллерах, например, Atmega328, который на 2017 году является сердцем многих плат Arduino, но о них позже. Используется 8 канальный АЦП, с разрядностью 10 бит. Это значит вы сможете считать значение с 8 аналоговых датчиков. А к цифровым выводам подключаются цифровые датчики, что может быть очевидным. Однако цифровой сигнал может являться только 1 (единицей) или 0 (нулем), в то время как аналоговый может принимать бесконечное множество значений.

Пояснение:

Разрядность – это величина, которая характеризует качество, точность и чувствительность аналогового входа. Звучит не совсем понятно. Немного практики: 10 битный АЦП, записать аналоговую информацию с порта в 10 битах памяти, иначе говоря плавно изменяющийся цифровой сигнал микроконтроллером распознается как числовое значение от 0 до 1024.

12 битный АЦП видит тот же сигнал, но с более высокой точностью – в виде от 0 до 4096, а это значит, что измеренные значения входного сигнала будут в 4 раза точнее.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр Чтобы понять откуда взялись 1024 и 4096, просто возведите 2 в степени равную разрядности АЦП (2 в степени 10, для 10 разрядного и т.д.)

Чтобы управлять мощностью нагрузки к вашему распоряжению есть ШИМ-каналы, их можно задействовать, например, для регулировки яркости, температуры, или оборотов двигателя. В том же 328 контроллере их 6.

В общем структура AVR микроконтроллера изображена на схеме:

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

  • АЛУ – арифметико-логическое устройство. Нужно для выполнения вычислении.
  • Регистры общего назначения (РОН) – регистры которые могут принимать данные и хранить их в то время пока микроконтроллер подключен к питанию, после перезагрузки стираются. Служат как временные ячейки для операций с данными.
  • Прерывания – что-то вроде события которое возникает по внутренним или внешним воздействиям на микроконтроллер – переполнение таймера, внешнее прерывание с пина МК и т.д.
  • JTAG – интерфейс для внутрисхемного программирования без снятия микроконтроллера с платы.
  • Flash, ОЗУ, EEPROM – виды памяти – программ, временных рабочих данных, долгосрочного хранения независимая от подачи питания к микроконтроллеру соответственно порядку в названиях.
  • Таймеры и счетчики – важнейшие узлы в микроконтроллере, в некоторых моделях их количество может быть до десятка. Нужны для того, чтобы отчитывать количество тактов, соответственно временные отрезки, а счетчики увеличивают свое значение по какому-либо из событий. Их работа и её режим зависят от программы, однако выполняются эти действия аппаратно, т.е. параллельно основному тексту программы, могут вызвать прерывание (по переполнению таймера, как вариант) на любом этапе выполнения кода, на любой его строке.
  • A/D (Analog/Digital) – АЦП, его назначение мы уже описали ранее.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр
  • WatchDogTime (Сторожевой таймер) – независимый от микроконтроллера и даже его тактового генератора RC-генератор, который отсчитывает определенный промежуток времени и формирует сигнал сброса МК, если тот работал, и пробуждения – если тот был в режиме сна (энергосбережния). Его работу можно запретить, установив бит WDTE в 0.

Выходы микроконтроллера довольно слабые, имеется в виду то, что ток через них обычно до 20-40 миллиампер, чего хватит для розжига светодиода и LED-индикаторов. Для более мощной нагрузки – необходимы усилители тока или напряжения, например, те же транзисторы.

Что нужно чтобы начать изучение микроконтроллеров? 

Для начала нужно приобрести сам микроконтроллер. В роли первого микроконтроллера может быть любой Attiny2313, Attiny85, Atmega328 и другие. Лучше выбирать ту модель, которая описана в уроках, по которым вы будете заниматься.

Следующее что Вам нужно – программатор. Он нужен для загрузки прошивки в память МК, самым дешевым и популярным считается USBASP.

Немногим дороже, но не менее распространенный программатор AVRISP MKII, который можно сделать своими руками – из обычной платы Arduino

Другой вариант – прошивать их через USB-UART переходник, который обычно делается на одном из преобразователей: FT232RL, Ch440, PL2303 и CP2102.

В некоторых случаях для такого преобразователя используют микроконтроллеры AVR с аппаратной поддержкой USB, таких моделей не слишком много. Вот некоторые:

  • ATmega8U2;
  • ATmega16U2;
  • ATmega32U2.

Одно лишь «но» – в память микроконтроллера предварительно нужно загрузить UART бутлоадер. Разумеется, для этого все равно нужен программатор для AVR-микроконтроллеров.

Интересно: Bootloader – это обычная программа для микроконтроллера, только с необычной задачей – после его запуска (подключения к питания) он ожидает какое-то время, что в него могут загрузить прошивку.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр Преимуществом такого метода – можно прошить любым USB-UART переходником, а они очень дешевы. Недостаток – долго загружается прошивка.

Для работы UART (RS-232) интерфейса в микроконтроллерах AVR выделен целый регистр UDR (UART data register). UCSRA (настройки битов приемопередатчика RX, TX), UCSRB и UCSRС – набор регистров отвечающие за настройки интерфейса в целом.

В чем можно писать программы?

Кроме программатора для написания и загрузки программы нужно IDE – среда для разработки. Можно конечно же писать код в блокноте, пропускать через компиляторы и т.д. Зачем это нужно, когда есть отличные готовые варианты. Пожалуй, один из наиболее сильных – это IAR, однако он платный.

Официальным IDE от Atmel является AVR Studio, которая на 6 версии была переименована в Atmel studio. Она поддерживает все микроконтроллеры AVR (8, 32, xMega), автоматически определяет команды и помогает ввести, подсвечивает правильный синтаксис и многое другое. С её же помощью можно прошивать МК.

Наиболее распространённым является — C AVR, поэтому найдите самоучитель по нему, есть масса русскоязычных вариантов, а один из них — Хартов В.Я. «Микроконтроллеры AVR. Практикум для начинающих».

Самый простой способ изучить AVR

Купите или сделайте своими руками плату Arduino. Проект ардуино разработан специально для учебных целей. Он насчитывает десятки плат различных формами и количеством контактов. Самое главное в ардуино – это то что вы покупаете не просто микроконтроллера, а полноценную отладочную плату, распаянную на качественной текстолитовой печатной плате, покрытой маской и смонтированными SMD компонентами.

Самые распространенные – это Arduino Nano и Arduino UNO, они по сути своей идентичны, разве что «Нано» меньше примерно в 3 раза чем «Уно».

Несколько фактов:

  • Ардуино может программироваться стандартным языком – «C AVR»;
  • своим собственным – wiring;
  • стандартная среда для разработки – Arduino IDE;
  • для соединения с компьютером достаточно лишь подключить USB шнур к гнезду micro-USB на плате ардуино нано, установить драйвера (скорее всего это произойдет автоматически, кроме случаев, когда преобразователь на Ch440, у меня на Win 8.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр 1 драйвера не стали, пришлось скачивать, но это не заняло много времени.) после чего можно заливать ваши «скетчи»;
  • «Скетчи» – это название программ для ардуино.

Выводы

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

Ранее ЭлектроВести писали, что в аэропорту «Борисполь» запустили первое электрозарядное устройство на два паркоместа. Об этом сообщил на своей странице в Facebook заместитель гендиректора аэропорта Георгий Зубко.

По материалам: electrik.info.

Что такое AVR микроконтроллер?

AVR микроконтроллеры – это тип устройств, разработанный компанией Atmel, которые имеют определенное преимущество перед обычными микросхемами, но, сначала, давайте разберемся, что такое микроконтроллер?

Самый простой способ понять это – сравнить микроконтроллер с вашим компьютером, в котором установлена материнская плата. На этой плате стоит микропроцессор (на чипе Intel или AMD), который обеспечивает устройство вычислений, память RAM и EEPROM, и интерфейсы остальных систем, например, серийные порты (в настоящее время в основном USB), жесткие диски и графические интерфейсы. В микроконтроллере все эти возможности встроены в один чип, а это значит, что отсутствует потребность в материнской плате и многих других компонентах, например, светодиод может быть подключен напрямую к AVR. В микропроцессорах нет такой возможности!

AVR микроконтроллеры выпускаются в нескольких корпусах, некоторые предназначены для монтажа в отверстия, некоторые для поверхностного. AVR бывают 8-ми и 100-пиновыми, хотя все, что выше 64-х пинов только для монтажа в отверстия. Большинство людей начинают с DIL (Сдвоенный в линию) 28—х пинового чипа, например, ATmega328 или 40-ка пинового ATmega16 или ATmega32.

Компьютерные микропроцессоры бывают минимум 32-х битными, а теперь чаще 64-х битные.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр Это означает, что они могут обрабатывать данные 32-х битными или 64-х битными блоками, если они подключены к шине. AVR гораздо проще и работает с 8-ми битными блоками, пропускная ширина потока 8 бит, хотя сейчас стали появляться AVR32 с 32-х битной шиной.

На компьютере установлена операционная система (Windows или Linux), и именно в ней запускаются программы, такие, как Word, InternetExplorer или 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), коммуникационные интерфейсы, например, I2C (2—х проводной интерфейс), SPI и UART (серийный порт), таймеры и система watchdog, которая восстанавливает систему после сбоя. Все эти периферийные устройства контролируется из-под программы, используя специальные инструкции. Большая часть кода программирования AVR посвящена тому, как устанавливать и контролировать эти аппаратные интерфейсы.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр

Примеры работ
Услуги
Контакты

Время выполнения запроса: 0,00233507156372 секунд.

Устройство микроконтроллера: АЛУ и организация памяти

Процессорное ядро микроконтроллеров:
– арифметико-логическое устройство
– организация памяти

Доброго дня уважаемые радиолюбители!
Приветствую вас на сайте “Радиолюбитель“

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

Основные элементы:

1. Арифметико-логическое устройство

АЛУ – сердце (а может быть и ум, с честью и совестью) микроконтроллера.
Здесь мы не будем входить в роль “маньяка-расчленителя” и ковыряться во внутренностях этого устройства. Усвоим только, что благодаря АЛУ происходит вся работа микроконтроллера. Если у вас когда-нибудь появится желание более глубже узнать как работает “сердце” микроконтроллера (а будет неплохо, если оно появится), то в книгах замечательных авторов Белова, Рюмика, Евстифеева, Ревича, Баранова и многих других, вы всегда найдете подробный ответ.

2. Память микроконтроллера (организация памяти)

Прежде чем рассматривать память микроконтроллера, немного поговорим о памяти вообще.
Человеческая память – с ней все понятно, – она бывает “твердой” (когда находишься в твердой памяти, а иногда еще и в здравом уме) и, как не прискорбно, – “дырявой”. А вся информация хранится в так называемых “нейронах” – маленьких ячейках памяти.
У микроконтроллеров почти все также. Только, если у человека самая маленькая ячейка для хранения информации называется “нейрон”, то для микроконтроллера самая маленькая ячейка памяти для хранения информации называется “бит“.
В одном бите может храниться или одна логическая единица, или один логический ноль.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр
Бит – минимальная единица измерения объема памяти в микропроцессорной технике.
Следующая основная, или самая распространенная, единица измерения памяти – байт.
Байт – это восемь бит информации. В одном байте может храниться только восемь нулей и единиц.
Максимальное число которое можно записать в байт – 255. Если в программе вы будете оперировать большими числами то следует знать (чтобы знать сколько байт потребуется для хранения числа), что максимальное число, которое можно записать в:
– один байт = 255
– два байта = 65 535
– три байта = 16 777 215
– четыре байта – число величиной более 4 миллиардов (если вы не входите хотя бы в сотню журнала “Форбс”, то четыре байта памяти для хранения чисел вам не понадобятся).
Запись в память и чтение из памяти происходит байтами (нельзя записать или считать один бит информации).
Следующая единица измерения – килобайт.
В килобайте помещается 1024 байт информации (именно 1024, а не 1000 байт).
Есть еще и большие величины измерения объема памяти (мегабайт, гигабайт), но в микроконтроллерах они пока не применяются.
Я надеюсь, что с единицами измерения электронной памяти нам все понятно:

Организация памяти в микроконтроллере

Микросхемы AVR имеют три вида памяти:
память программ, она же FLASH-память
память данных, она же ОЗУ (оперативно-запоминающее устройство), она же SRAM
энергонезависимая память, она же ЭСППЗУ, она же EEPROM
В микроконтроллере выделяется три адресных пространства в которых располагаются вышеперечисленные разновидности памяти. Память данных при этом (в смысле выделенного адресного пространства) оказалась немного обделенной – ей приходится делить свое адресное пространство с ячейками памяти в которых хранятся регистры общего назначения и регистры ввода/вывода (о них вы подробно узнаете в следующей статье).Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр Эти регистры физически не относятся к памяти данных, но находятся в том же адресном пространстве. Если начальные адреса памяти программ и энергонезависимой памяти начинаются с нулевого адреса, то начальный адрес памяти данных не начинается с нулевого адреса – с нулевого адреса занимают места регистры общего назначения и регистры ввода/вывода, и только за ними следуют адреса ячеек памяти программ.
В некоторых видах МК ATiny память данных отсутствует.

Память программ (FLASH память)

Память программ предназначена для хранения в ней наших программ, а также любых нужных нам данных, которые не меняются в ходе выполнения программы (константы). При выключении питания микроконтроллера, все данные в памяти программ сохраняются.
Память программ, естественно, имеют все микроконтроллеры. Размер памяти программ, в зависимости от типа МК, варьируется от 1 килобайта до 256 килобайт.
Доступ к памяти программ имеет только программист при программировании МК, у самого МК доступ к памяти программ тоже имеется, но только для чтения данных из памяти, записать туда он ничего не может (мало ли что, вдруг захочет испортить нашу программу). Правда, у МК семейства Mega есть возможность (с разрешения программиста) вносить изменения в памяти программ, но это отдельная история.
Для памяти программ  есть еще два вида измерения объема памяти – “слово” и “страница“.
Дело в том, что память программ состоит из ячеек состоящих из двух байт. Такая ячейка называется “словом”. А сделано это так потому, что почти все команды МК состоят из двух байт, и, соответственно, для их записи нужно два байта в памяти программ. Каждая команда МК – это одно “слово”. Есть несколько команд, для записи которых требуется 4 байта в памяти – два слова, но такие команды встречаются в МК у которых память программ больше 8 килобайт.
Таким образом, в одну ячейку памяти программ можно записать:
– любую команду, состоящую из двух байт
– половину команды, состоящей из 4 байт
– две константы, каждая из которых умещается в один байт, или одну шестнадцатиразрядную константу.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр При этом, если вы записываете в память три однобайтовых константы, они все равно займут в памяти четыре байта (два слова).
Кроме того, запись в память программ осуществляется не только “словами”, но еще и “страницами”. Размер “страницы” составляет от 64 до 256 байт (чем больше объем памяти программ, тем больше объем “страницы”). Что это значит. Если вы создали маленькую программку, объем которой составляет 11 слов (22 байта), в памяти программ она все равно займет место в одну страницу, т.е. как минимум 64 байта. “Лишние” 42 байта при этом будут заполнены или нулями, или единицами. Вот такие вот,  пироги.
Но и это еще не все.
Память программ может иметь три состояния (если можно так выразиться):
1. Вся память находится в распоряжение программиста
В этом случае мы можем забить всю память полностью своей программой и данными. А программа будет стартовать с нулевого адреса памяти.
2. Часть памяти забирает МК
В случае, если при работе МК используются прерывания (а я надеюсь – вы помните, что это такое), часть памяти МК забирает для нужд обработки прерываний и хранит в ней “векторы прерываний“. 
Что это такое.
Когда мы разрешаем МК обрабатывать прерывания, он, начиная с нулевого адреса памяти, забирает часть ячеек для хранения в них адресов, по которым надо перейти МК для выполнения подпрограммы прерывания. Для каждого прерывания МК выделяет два байта памяти (одно слово) в которых хранятся адреса подпрограмм обработки прерываний. Вот эти адреса, которые указывают где находится в памяти подпрограмма обработки того, или иного прерывания, называются “векторами прерываний“. А вся область памяти, в которой хранятся “векторы прерываний”, называется таблицей векторов прерываний. Количество занятых ячеек памяти под прерывания зависит напрямую от количества возможных прерываний данного микроконтроллера (от нескольких штук, до нескольких десятков).Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр Все прерывания располагаются в начале памяти программ, с нулевого адреса, и имеют четкую последовательность. По нулевому адресу всегда располагается вектор прерывания по “сбросу” (Reset). Когда мы включаем устройство, или производим сброс кнопкой, срабатывает прерывание по сбросу. МК считывает с нулевого адреса (с ячейки) адрес, который указывает где в памяти находится начало нашей программы, и перейдя по этому адресу начинает выполнять программу. Сама программа в этом случае будет располагаться в памяти программ сразу за таблицей прерываний.
3. МК забирает еще одну часть памяти программ (точнее не забирает, а выделяет область в конце памяти, в которой программист размещает специальную программу – “загрузчик”).
Такое возможно в МК семейства “MEGA”, у которых есть возможность разрешить МК вносить изменения в памяти программ. Что это значит.
Некоторые МК имеют возможность самопрограммироваться. В практике любителей такая возможность МК используется крайне редко. Возможность перепрограммироваться (самопрограммироваться) нужна, в основном, в случаях промышленного производства какого-то устройства на микроконтроллере, для которого потом может выпускаться обновление программного обеспечения. Мы эту возможность рассматривать не будем, по крайней мере пока. Нам достаточно только знать, что в МК, которые поддерживают самопрограммирование, память программ разделяется на две части:
— верхняя – секция прикладной программы, где располагается наша программа и векторы прерываний
— нижняя – секция загрузчика (Boot Loader Section – по английски), где программист располагает свою программу-загрузчик. Размер секции загрузчика зависит от общего размера памяти программ МК, и может составлять от 128 байт до 4096 байт. Если возможность самопрограммирования МК мы не используем, то эта секция отдается для нашей программы и данных. 
Ну а FLASH-памятью память программ называют потому, что она делается по так называемой Flash-технологии (как и всем нам привычные компьютерные “флешки”)
Память программ допускает 10 тысяч циклов перепрограммирования.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр

Память данных (Статическое ОЗУ, SRAM)

Оперативно-запоминающее устройство, оно же память данных типа SRAM, предназначена для хранения в ней различных данных, получаемых в результате работы программы.
При выключении питания микроконтроллера, все данные хранящиеся в ней теряются.
Память данных есть почти во всех микроконтроллерах (отсутствует у простейших МК семейства Tiny).
Во всех МК семейства Mega (и части МК семейства Tiny) объем встроенной памяти данных колеблется от 128 байт до 8 килобайт, и почти вся она отдана в наше полное распоряжение. Только немножко забирает себе МК для организации стека (что это такое узнаем позднее). В некоторых МК предусмотрено подключение внешней памяти (она может быть любого типа – FLASH, SRAM, EEPROM) объемом до 64 килобайт. В случае подключения внешней памяти в таких МК, она становится как-бы продолжением памяти данных.
Запись в  память данных и чтение из нее происходит побайтно, и в отличии от памяти программ в ней нет деления на страницы и слова.

Энергонезависимая память (EEPROM)

Энергонезависимая память также относится к памяти данных, но в отличие от последней имеет несколько особенностей. Предназначена она для хранения данных и констант, которые должны сохраняться при отсутствии питания.
EEPROM имеют все микроконтроллеры.
При выключении питания микроконтроллера все данные, хранящиеся в энергонезависимой памяти сохраняются (поэтому она и называется энергонезависимой).
Объем энергонезависимой памяти, в зависимости от типа МК, колеблется от 64 байт до 4 килобайт.
Запись и чтение информации в память производится побайтно. Однако в старших моделях семейства MEGA, энергонезависимая память, так же как и память программ, имеет страничную запись. Объем страницы небольшой, составляет всего 4 байта. На практике эта особенность не имеет значения – и запись, и чтение осуществляется все равно побайтно.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр
Число циклов записи и стирания памяти достигает 100 000.
Главная особенность EEPROM заключается в том, что при записи в нее данных она становится очень “медленной” – запись одного байта может продолжаться от 2 до 4 миллисекунд (это очень низкая скорость), и может случиться, к примеру, что во время записи сработает какое-либо прерывание и в этом случае процесс записи данных будет загублен.
Кроме того, не рекомендуется записывать данные в энергонезависимую память с нулевого адреса  (не помню источника этих сведений, но точно помню, что где-то читал) – возможно повреждение данных в ходе работы МК. Иногда программисты отступают на несколько байт от начала памяти, и только в следующих ячейках начинают запись данных.


Предыдущие статьи:

♦ Микроконтроллер и как его победить
♦ Микроконтроллер и системы счисления
♦ Микроконтроллер и логические операции
♦ Общее устройство микроконтроллера

Следующие статьи:

♦ Регистры общего назначения, регистры ввода/вывода, стек, счетчик команд
♦ Регистр состояния SREG
♦ Порты ввода/вывода микроконтроллера



Что такое контроллер, и с чем его едят?

РадиоКот >Обучалка >Микроконтроллеры и ПЛИС >Микроконтроллеры AVR — пишем, компилируем, прошиваем… >

Что такое контроллер, и с чем его едят?



Микроконтроллер – это такая хитрая микросхема, внутри которой находится самый настоящий компьютер. В этом компьютере есть все, что необходимо для самостоятельной работы:

  • процессор
  • оперативная память — ОЗУ
  • постоянная память — ПЗУ
  • генератор тактовой частоты
  • таймеры
  • порты ввода/вывода
  • последовательные интерфейсы
  • и много чего еще.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр ..


Например, в более «навороченных» контроллерах может быть АЦП (аналого-цифровой преобразователь),
ЦАП (наоборот) и прочие прибамбасы. Чего только ни придумают!
Но мы с вами, для начала, рассмотрим более простой вариант. Для примера возьмем контроллер
фирмы Atmel, AT90s2313.


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



Самый главный элемент любого процессора – арифметико-логический узел (АЛУ).
Кстати, по буржуйски он называется так-же – ALU (ariphmetic-logical unit).
В нем-то, как вы уже догадались, и происходят все мыслимые и немыслимые арифметические
и логические операции над числами. Кстати, насчет чисел: контроллер, как и любая другая
цифровая система, работает с двоичными числами. О том, что это такое, я подробно распинался в статье
«Что такое digital».


Тот контроллер, который мы сейчас мучаем, работает с 8-разрядными двоичными числами,
иными словами – он 8-битный. То есть, АЛУ может захавать два 8-битных слова,
произвести над ними какую то арифметическую или логическую операцию, и выплюнуть ответ – опять же,
8-битное слово.


Вопрос: а какие бывают арифметические и логические операции? И че эт ваще такое?


Ну, арифметическим операциям нас всех учили еще в 1 классе – это сложение, вычитание, сравнение 🙂

Логические операции – это операции алгебры логики.
Вот некоторые из них: «И», «ИЛИ», «НЕ», «исключающее ИЛИ», сдвиг влево, сдвиг вправо.

Также существуют операции, которые ни относятся ни к тем ни к другим: сброс в «0», установка в «1» и т.п.


Чтобы произвести операцию, АЛУ должен взять откуда-то два числа.
Выполнив операцию, опять же, должен положить куда-то ответ.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр Для этих целей служат
регистры общего назначения – РОН. Их у нас 16. Каждый регистр – это ячейка памяти емкостью 8 бит.
Иначе говоря – 1 Байт. Именно в них и хранятся числа, с которыми работает АЛУ.


Для каждой команды, которую выполняет АЛУ, необходимо назвать те регистры, с которыми
он будет в данный момент работать.


Пример:

add R16,R17 — сложить значение регистров R16 и R17 и положить ответ в R16

sub R16,R18 — вычесть из R16, R18 и положить ответ в R16

and R24,R17 — произвести операцию «И» с R24 и R17, ответ – в R24

eor R16,R24 — произвести «исключающее ИЛИ» с R16 и R24, ответ – в R16.


Как вы могли заметить, ответ всегда помещается в тот регистр, который назван первым.

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


Оператор копирования – mov


Пример:

mov R16,R17

add R17,R24



Кроме РОН, на схеме присутствует ОЗУ – оперативная память контроллера. Для чего она?

Да для того, чтобы хранить данные при выполнении программы. Регистров ведь – всего 16.
Для полноценной работы этого явно недостаточно. В регистрах хранится обычно только те данные,
которые будут использоваться непосредственно прямо сейчас. Все остальное удобнее положить в память.
Позднее мы поговорим о таких вещах как стек, указатели и пр. Пока что запомним, что память есть.


Ну вот. Откуда АЛУ берет данные для вычислений – разобрались. Теперь разберемся, откуда он берет команды.


А все очень просто!

Для этого существует регистр команд. В этот регистр постепенно выводятся команды той программы,
которую выполняет контроллер.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр
Эти команды касаются всего контроллера, а не только АЛУ (как мы помним, в контроллере просто тьма всего).
Чтобы «выудить» из общей кучи «свою» команду, АЛУ постоянно заглядывает в регистр команд
на предмет, нет ли там что-нить для него. И как только видит – стрелой мчится выполнять.


В регистр команд, команды попадают из программной памяти. Программная память – это ПЗУ
(постоянное запоминающее устройство), в котором по каждому адресу записана одна команда.
Вместе, все эти команды и составляют программу, и записаны в той последовательности,
в какой они стоят в программе.




Чтобы «достать» команду из ПЗУ, надо сказать ему адрес ячейки памяти, в которой лежит эта команда.
В ответ, ПЗУ выдаст содержимое этой ячейки.
Команды записываются в ячейки в той последовательности, в которой стоят в программе.
Поэтому, для того чтобы последовательно «перебирать» команды, достаточно просто каждый раз
прибавлять к адресу «1».


Именно этим и занимается счетчик команд.


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


Для этого существуют порты ввода/вывода (ПВВ).


Порт – это пачка однобитных каналов,
каждый из которых может быть независимо настроен либо на ввод, либо на вывод.


В контроллере AT90s2313 два ПВВ – PortB и PortD.

PortB состоит из 8-ми каналов,

Portd – из 7-ми.


Эта «культяпость» порта D объясняется простой нехваткой ножек микросхемы.
Просто разработчики очень хотели запихнуть все это дело в 20-ножный корпус,
и поэтому урезали PortD на один канал.


Любая программа для контроллера начинается именно с настройки портов.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр
Мы должны определить, какие каналы будут работать на ввод, какие – на вывод.
По умолчанию, все каналы включены на ввод. Но это мы обсудим чуть позже…


Ну в общем-то, вот первоначальные сведения о микроконтроллерах.

Дальше мы поговорим о том как написать, скомпилировать и зашить в контроллер его программу.



—Поехали дальше—>>


Как вам эта статья?

Заработало ли это устройство у вас?

Как работают микроконтроллеры — IntervalZero

16 августа 2018 г. по

Микроконтроллеры

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

Загрузите нашу историю успеха микроконтроллеров с ZF

Как и традиционные компьютеры, микроконтроллеры используют различные функции для выполнения своей работы. Эти функции включают:

RAM

RAM используется для хранения данных, а также других результатов, которые создаются, когда микроконтроллер работает. Однако он не хранит данные постоянно, и его память теряется при отключении питания микроконтроллера.В RAM размещается регистр специальных функций (SFR). Это предварительно сконфигурированная память, предлагаемая производителем микроконтроллера.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр Он контролирует поведение определенных цепей, таких как последовательная связь и аналого-цифровой преобразователь.

ПЗУ

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

Загрузить Как превратить Windows в программный микроконтроллер реального времени Технический документ

Счетчик программ

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

Входы и выходы

В отличие от компьютера, которым вы управляете с помощью мыши или клавиатуры, микроконтроллеры имеют уникальные способы взаимодействия с людьми через вводы и выводы. Типичные устройства ввода и вывода на микроконтроллерах включают светодиодные дисплеи, переключатели и датчики, которые определяют влажность, температуру и уровни освещенности. Большинство встроенных систем не имеют экранов или клавиатур для прямого взаимодействия человека с компьютером.Вместо этого микроконтроллеры имеют широкий спектр входных и выходных контактов или GPIO, которые настроены для различных устройств ввода и вывода.

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

Подпишитесь на пробную версию микроконтроллера реального времени
Поделиться статьей:
  • Твиттер
  • Facebook
  • Электронная почта
  • Подробнее

Как работают микроконтроллеры? | ОРЕЛ

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

Дорогая, я сжал компьютер!

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

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

Возьмем, к примеру, вашу машину, стоящую на улице. Скорее всего, внутри него находится микроконтроллер, который будет считывать данные с датчиков кислорода и детонации, когда ваша машина работает, и затем контролировать такие вещи, как смесь вашего топлива и время зажигания ваших свечей зажигания.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр А как насчет микроконтроллера в вашем телевизоре? Он ожидает входов от вашего пульта дистанционного управления, а затем показывает вам различные выходы в виде различных телевизионных каналов и настроек громкости.

Эти два примера — лишь некоторые из неограниченного числа применений микроконтроллеров. Список может быть исчерпывающим, и в основном все, что требует цифрового ввода и вывода, скорее всего, использует микроконтроллер за кулисами.

Микроконтроллеры и компьютеры

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

  • Способ обработки данных — Микроконтроллеру необходим способ выполнения программ и задач через центральный процессор (ЦП), как и ваш компьютер.
  • Способ хранения вещей — Микроконтроллеру также необходим способ загрузки программ и хранения данных с использованием оперативной памяти (RAM).
  • Способ взаимодействия — Вам также нужен способ связи с микроконтроллером, и вместо физической клавиатуры и мыши вы можете использовать светодиоды, реле, датчики и другие устройства.
  • Способ не сбиться с пути — Микроконтроллеру нужен способ контролировать скорость своего процессора, и он делает это с помощью генератора или часов, которые действуют как двигатель для управления вашим MCU.

Конечно, размер всех этих аппаратных средств намного меньше, чем у традиционного компьютера.Я могу открыть корпус на своем настольном компьютере и вытащить оперативную память и процессор, но в микроконтроллере все уложено в один маленький черный ящик. Именно из-за этого размера микроконтроллеры встраиваются в более крупные устройства.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр

Видите черную прямоугольную рамку на этой Arduino? Это микроконтроллер ATmega 328. (Источник изображения)

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

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

Малый размер, небольшие затраты

Использование микроконтроллера в определенных приложениях, таких как моя стиральная машина, вместо традиционной компьютерной системы дает некоторые преимущества, а именно:

  • Экономия денег — За счет интеграции памяти, вычислительной мощности и периферийных устройств на одном кристалле вы получаете готовую печатную плату, для которой требуется гораздо меньше собираемых микросхем, что помогает сэкономить труд и общие затраты.
  • Платы меньшего размера — Поскольку вы можете разместить все необходимое для работы компьютера на одной микросхеме, вы также можете значительно уменьшить объем места и количество проводов, необходимых на печатной плате, которая могла быть занята кучей отдельных компонентов .
  • Specialized Tasks — Поскольку микроконтроллеры работают только со специализированными приложениями, у вас есть преимущество в том, что для работы этих микроконтроллеров не требуется максимальная мощность или производительность памяти, что делает вычисления доступными за небольшую часть стоимости традиционного компьютера.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр

Мы также не можем забывать, что многие из этих микроконтроллеров предназначены для работы в довольно агрессивных средах. Например, микроконтроллер, работающий в вашем автомобиле, вероятно, будет иметь дело с температурами от -30 ° F зимой на Аляске до чего-то столь же жаркого в 134 ° F в Долине Смерти в разгар лета.

Кристалл 16-битного микроконтроллера производства Texas Instruments, посмотрите на все эти плотно упакованные следы! (Источник изображения)

Микроконтроллеры в действии

Как микроконтроллер начинает работать, преобразуя такие входные данные, как температура и свет, в какое-то полезное действие? Как и в случае с традиционным компьютером, микроконтроллер использует несколько функций для выполнения своих вычислительных действий, в том числе:

RAM

Как и в компьютере, ОЗУ будет использоваться в микроконтроллере для хранения данных и других результатов, которые создаются во время работы вашего микроконтроллера.А когда вы отключаете питание микроконтроллера, память в вашей оперативной памяти стирается.

В ОЗУ микроконтроллера у вас также есть что-то, называемое регистром специальных функций (SFR). Эта память предварительно настроена производителем вашего микроконтроллера и управляет поведением определенных схем, таких как аналого-цифровой преобразователь, последовательная связь и многое другое.

ПЗУ

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

Размер программы, которая может храниться в ПЗУ, полностью зависит от ее размера. Некоторые микроконтроллеры поставляются со встроенным ПЗУ, в то время как другие могут принимать ПЗУ, добавленное в качестве внешнего чипа.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр Это зависит от каждого микроконтроллера.

Счетчик программ

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

Входы и выходы

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

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

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

Некоторые контакты GPIO на Raspberry PI, которые позволяют ему взаимодействовать с нашим физическим миром. (Источник изображения)

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

Работа в реальном времени

Микроконтроллеры

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

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

Организация микроконтроллеров

При работе с микроконтроллерами над собственными проектами электроники вы обнаружите, что они разделены на несколько категорий.Все эти категории основаны на нескольких переменных, включая количество бит, объем и тип памяти, тип набора команд и используемую архитектуру памяти. Вот несколько примеров:

  • 8051 Микроконтроллеры — эта категория была впервые произведена в 1985 году корпорацией Intel и остается наиболее популярным выбором как для любителей, так и для профессионалов и включает в себя различные возможности RAM и ROM.
  • Контроллер периферийного интерфейса (PIC) Микроконтроллеры — Эта категория очень популярна среди любителей и промышленников и известна своей доступностью, низкой стоимостью и 3 вариантами архитектуры — 8-битной, 16-битной и 32-битной.
  • Микроконтроллеры AVR — Эта категория основана на гарвардской 8-битной архитектуре и была изобретена в 1966 году компанией Atmel, а также является одним из первых микроконтроллеров, использующих встроенную флэш-память для хранения программ.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр
  • ARM Микроконтроллеры — Эта категория включает 32-битную архитектуру и специально разработана для таких микроконтроллеров, как ваш смартфон, что делает ее одной из самых мощных категорий микроконтроллеров, но также и самой сложной в использовании.

После прочтения этих категорий вы можете спросить, как узнать, какой микроконтроллер выбрать для вашего собственного проекта? Этот процесс выбора требует рассмотрения ряда критериев и включает в себя такие вещи, как знание того, с каким оборудованием вам нужно взаимодействовать, сколько памяти вам нужно, какая архитектура вам нужна и сколько вы готовы платить. Все эти и многие другие соображения суммированы в сообществе ARM в его сообщении в блоге «10 шагов к выбору микроконтроллера».

На ладони

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

Хотите работать с микроконтроллером в своем собственном электронном проекте? Autodesk EAGLE включает в себя массу готовых к использованию библиотек микроконтроллеров совершенно бесплатно! Попробуйте Autodesk EAGLE бесплатно сегодня, чтобы начать работу.

Что такое микроконтроллер и как он работает?

Микроконтроллер — это компактная интегральная схема, предназначенная для управления определенной операцией во встроенной системе. Типичный микроконтроллер включает в себя процессор, память и периферийные устройства ввода-вывода (I / O) на одном кристалле.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр

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

Как работают микроконтроллеры?

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

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

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

Какие элементы микроконтроллера?

Основные элементы микроконтроллера:

  • Процессор (CPU) — Процессор можно рассматривать как мозг устройства.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр Он обрабатывает и реагирует на различные инструкции, управляющие работой микроконтроллера. Это включает в себя выполнение основных арифметических, логических операций и операций ввода-вывода. Он также выполняет операции передачи данных, которые передают команды другим компонентам в более крупной встроенной системе.
  • Память — память микроконтроллера используется для хранения данных, которые процессор получает и использует для ответа на инструкции, которые он запрограммировал выполнять. Микроконтроллер имеет два основных типа памяти:
    1. Программная память, в которой хранится долгосрочная информация об инструкциях, выполняемых ЦП. Программная память — это энергонезависимая память, то есть она хранит информацию с течением времени без использования источника питания.
    2. Память данных, которая требуется для временного хранения данных во время выполнения инструкций.Память данных энергозависима, то есть данные, которые она хранит, являются временными и поддерживаются только в том случае, если устройство подключено к источнику питания.
  • Периферийные устройства ввода / вывода

  • — Устройства ввода и вывода являются интерфейсом для процессора с внешним миром. Порты ввода получают информацию и отправляют ее процессору в виде двоичных данных. Процессор получает эти данные и отправляет необходимые инструкции устройствам вывода, которые выполняют задачи, внешние по отношению к микроконтроллеру.

Хотя процессор, память и периферийные устройства ввода-вывода являются определяющими элементами микропроцессора, есть и другие элементы, которые часто используются. Термин «периферийные устройства ввода-вывода» просто относится к вспомогательным компонентам, которые взаимодействуют с памятью и процессором. Существует множество вспомогательных компонентов, которые можно отнести к категории периферийных устройств. Наличие некоторого проявления периферийных устройств ввода-вывода является элементарной задачей для микропроцессора, потому что они являются механизмом, через который применяется процессор.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр

Прочие вспомогательные элементы микроконтроллера включают:

  • Аналого-цифровой преобразователь (АЦП) — АЦП — это схема, преобразующая аналоговые сигналы в цифровые. Это позволяет процессору в центре микроконтроллера взаимодействовать с внешними аналоговыми устройствами, такими как датчики.
  • Цифро-аналоговый преобразователь (ЦАП)

  • — ЦАП выполняет обратную функцию АЦП и позволяет процессору в центре микроконтроллера передавать свои исходящие сигналы внешним аналоговым компонентам.
  • Системная шина — Системная шина — это соединительный провод, который связывает вместе все компоненты микроконтроллера.
  • Последовательный порт — Последовательный порт является одним из примеров порта ввода-вывода, который позволяет микроконтроллеру подключаться к внешним компонентам. Он имеет функцию, аналогичную USB или параллельному порту, но отличается способом обмена битами.

Характеристики микроконтроллера

Процессор микроконтроллера зависит от приложения. Варианты варьируются от простых 4-битных, 8-битных или 16-битных процессоров до более сложных 32-битных или 64-битных процессоров.Микроконтроллеры могут использовать энергозависимые типы памяти, такие как оперативная память (RAM) и энергонезависимые типы памяти — сюда входят флэш-память, стираемая программируемая постоянная память (EPROM) и электрически стираемая программируемая постоянная память (EEPROM).

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

Архитектура микроконтроллера

может быть основана на архитектуре Гарварда или архитектуре фон Неймана, обе предлагают различные методы обмена данными между процессором и памятью.Микроконтроллер как устроен: Как я научился работать с микроконтроллерами — опыт новичка / Хабр В гарвардской архитектуре шина данных и инструкция разделены, что позволяет осуществлять одновременную передачу. В архитектуре фон Неймана одна шина используется как для данных, так и для инструкций.

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

могут быть основаны на вычислениях со сложным набором команд (CISC) или на вычислениях с сокращенным набором команд (RISC).CISC обычно имеет около 80 инструкций, в то время как RISC имеет около 30, а также больше режимов адресации, 12-24 по сравнению с RISC 3-5. Хотя CISC может быть проще в реализации и более эффективно использует память, производительность может снижаться из-за большего количества тактовых циклов, необходимых для выполнения инструкций. RISC, который уделяет больше внимания программному обеспечению, часто обеспечивает лучшую производительность, чем процессоры CISC, которые уделяют больше внимания аппаратному обеспечению из-за упрощенного набора инструкций и, следовательно, повышенной простоты конструкции, но из-за упора на программное обеспечение, программное обеспечение может быть более сложным.Какой ISC используется, зависит от приложения.

Когда они впервые стали доступны, микроконтроллеры использовали исключительно язык ассемблера. Сегодня популярным вариантом является язык программирования C. Другие распространенные языки микропроцессоров включают Python и JavaScript.

Микроконтроллеры

оснащены входными и выходными контактами для реализации периферийных функций. К таким функциям относятся аналого-цифровые преобразователи, контроллеры жидкокристаллических дисплеев (LCD), часы реального времени (RTC), универсальный синхронный / асинхронный приемный передатчик (USART), таймеры, универсальный асинхронный приемный передатчик (UART) и универсальная последовательная шина ( USB) возможность подключения.Датчики, собирающие данные, связанные, в частности, с влажностью и температурой, также часто присоединяются к микроконтроллерам.

Типы микроконтроллеров

Стандартные микроконтроллеры

включают Intel MCS-51, часто называемый микроконтроллером 8051, который был впервые разработан в 1985 году; микроконтроллер AVR, разработанный Atmel в 1996 году; контроллер программируемого интерфейса (PIC) от Microchip Technology; и различные лицензированные микроконтроллеры Advanced RISC Machines (ARM).

Ряд компаний производят и продают микроконтроллеры, включая NXP Semiconductors, Renesas Electronics, Silicon Labs и Texas Instruments.

Приложения микроконтроллера

Микроконтроллеры

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

Одно из очень специфических применений микроконтроллера — его использование в качестве процессора цифровых сигналов. Часто входящие аналоговые сигналы имеют определенный уровень шума.Шум в этом контексте означает неоднозначные значения, которые нельзя легко преобразовать в стандартные цифровые значения. Микроконтроллер может использовать свои АЦП и ЦАП для преобразования входящего аналогового сигнала с шумом в ровный исходящий цифровой сигнал.

Простейшие микроконтроллеры облегчают работу электромеханических систем, используемых в предметах повседневного обихода, таких как духовки, холодильники, тостеры, мобильные устройства, брелоки, системы видеоигр, телевизоры и системы полива газонов. Они также распространены в офисной технике, такой как копировальные аппараты, сканеры, факсы и принтеры, а также в интеллектуальных счетчиках, банкоматах и ​​системах безопасности.

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

Сравнение микроконтроллеров и микропроцессоров

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

Микроконтроллер Microchip Technology ATtiny817.

Микроконтроллеры

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

Выбор подходящего микроконтроллера

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

Помимо стоимости, важно учитывать максимальную скорость, объем RAM или ROM, количество или типы контактов ввода-вывода на MCU, а также энергопотребление, ограничения и поддержку разработки.Обязательно задавайте такие вопросы, как:

  • Какие аппаратные периферийные устройства требуются?
  • Нужны ли внешние коммуникации?
  • Какую архитектуру использовать?
  • Какие сообщества и ресурсы доступны для микроконтроллера?
  • Каков рынок микроконтроллера?

Основы работы с микроконтроллером и его применение

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

Большинство встроенных приложений используют микроконтроллер (MCU) для выполнения вычислительных операций и логических функций.

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

Что такое микроконтроллер?

Микроконтроллер

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

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

В некоторых случаях их часто называют «встроенным микрокомпьютером ». Строительными блоками микроконтроллера являются процессор, память и периферийные устройства.

Обсудим подробнее.

Архитектура

Вот вид архитектуры микроконтроллера изнутри.

Он состоит из вспомогательного оборудования, такого как ЦП (центральный процессор), тактовая частота, кварцевый генератор, память и аппаратные периферийные устройства, подключенные внутри.

По сути, ЦП — это центральная часть микроконтроллера. Это мозг, который следует за действием, данным пользователем. ЦП извлекает инструкцию из памяти (ПЗУ), декодирует ее и выполняет.Этот метод известен как конвейерная обработка . Конвейерная обработка выполняется с помощью шины данных и шины адреса.

ЦП обрабатывает инструкции со скоростью мегагерц (МГц) или гигагерц (ГГц).

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

Выбор кристалла определяет скорость, с которой микроконтроллер хочет работать. Частотный диапазон кварцевого генератора обычно находится в диапазоне МГц.

Регистр — это данные, хранящие элемент. Он хранит двоичное слово длиной 8 бит. Микроконтроллеры оснащены различными регистрами общего назначения и периферийными. Регистры общего назначения включают в себя счетчик программ (ПК) и указатель стека для хранения данных и инструкций. В то время как периферийные регистры полезны для настройки оборудования в микроконтроллере.

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

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

Как известно, память бывает двух типов (RAM и ROM).

RAM (память с произвольным доступом) предназначена для временного хранения данных, а ROM (постоянное запоминающее устройство) — для постоянного хранения.

Для хранения данных в микроконтроллере архитектура процессора разделена на архитектуру Гарварда и архитектуру фон-Неймана.Гарвард имеет отдельные шины памяти (адресную шину и шину данных) для хранения инструкций и данных, тогда как Von-Neumann имеет общую память как для инструкций, так и для данных.

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

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

Счетчик — это периферийное устройство, которое подсчитывает события, происходящие вне MCU.

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

В электронике разные устройства взаимодействуют друг с другом с помощью последовательной связи. Для обеспечения последовательной связи используются такие интерфейсы, как UART (универсальный асинхронный приемник-передатчик), I2C, SPI и т. Д.

Кроме того, в последних микроконтроллерах используются продвинутые протоколы, такие как Ethernet, USB.

  • Аналого-цифровой преобразователь (АЦП)

Датчики преобразуют физические параметры, такие как температура, влажность и давление, в аналоговые сигналы. АЦП преобразует этот аналоговый сигнал в цифровые байты. Аналоговые сигналы могут быть в форме напряжения, тока или сопротивления.

Он имеет внутренние часы, которые измеряют тактовые циклы, подаваемые MCU, и отсчеты с его собственными часами. Количество тактов представляет собой цифровое представление аналогового напряжения.

  • Цифро-аналоговый преобразователь (ЦАП)

ЦАП (цифро-аналоговое преобразование) является противоположностью АЦП. ЦАП преобразует цифровые данные в аналоговую форму напряжения. Некоторые из приложений ЦАП включают цифровую обработку сигналов, управление двигателем, музыкальные плееры, цифровой потенциометр и т. Д.

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

Микропроцессор против микроконтроллера

В некоторых случаях термин «микропроцессор» или «микроконтроллер» может сбивать с толку. Но оба они имеют схожие функции с дополнительными функциями для микропроцессора.

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

Микроконтроллер Микропроцессор
Здесь используется крошечный микропроцессор, который работает на более низкой частоте Он использует центральный процессор (ЦП) общего назначения, который работает на более высокой частоте
Низкая скорость работы Быстрее работа.
Вся периферия (таймер, счетчик, rtc) находится внутри него. Некоторые компоненты находятся вне микропроцессора.
Поддерживает логические операции Не поддерживает логические функции.
Меньше времени требуется для доступа к регистрам ЦП Для доступа к регистрам ЦП требуется больше времени.
В основном используется в приложениях реального времени Используется в персональных настольных компьютерах и портативных компьютерах.
Поддерживает RTOS (операционная система реального времени) Поддерживает RTOS и службы на основе ядра.
Примеры: 8051, PIC, MSP430, Renesas, микроконтроллер STM и т. Д. Примеры: X86, Motorola, Broadcom, Pentium и т. Д.
Подходит для выполнения побитовых операций Не поддерживает все типы побитовых операций
Аппаратная часть меньше Аппаратная сложность утомительна.
Не всегда поддерживает многозадачность Лучше всего подходит для многозадачности
Дешевле Стоимость высокая

Как это работает?

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

Теперь микроконтроллер начинает свою работу с Программного счетчика (ПК). Адрес программного счетчика хранится в ПЗУ. ПК сохраняет адрес следующей инструкции, которая должна быть выполнена. Он выполняет инструкции с начального адреса (0x00) программного счетчика. Этот адрес отправляется декодеру команд, который поймет и выполнит инструкции.

Преимущества

Основное преимущество микроконтроллера — меньшая стоимость и размер.Интерфейс периферийных устройств упрощается с помощью портов ввода / вывода. И скорость выполнения выше с точки зрения скорости и памяти.

Чтобы использовать в приложении микроконтроллер, отличный от процессора, вот основные преимущества.

  1. Идеально для специализированных приложений.
  2. Жесткий по своей природе (т.е. однократно программируемый)
  3. Время разработки приложений упрощается.
  4. Практические наблюдения можно проводить с помощью симулятора и эмулятора.
  5. Простота проектирования и развертывания.

Недостатки

Самое нежелательное при работе с микроконтроллерами, они не выдерживают высоких напряжений. Главный недостаток микроконтроллера — сложность для понимания архитектуры.

Помимо вышеуказанного, они имеют ограниченный объем ОЗУ и не подходят для одновременного выполнения параллельных задач.

Приложения

Существует множество применений микроконтроллера. Но вот несколько из них.

  • Функция ШИМ (широтно-импульсная модуляция) в микроконтроллере позволяет управлять двигателями постоянного тока.
  • Используется в телекоммуникациях, бытовой электронике, испытательных щитах, интеллектуальных счетчиках энергии, медицинской электронике, оборонной и авиакосмической промышленности и т. Д.
  • Устройства человеко-машинного интерфейса.
  • Бытовая техника и освещение.
  • Автомобильная электроника для электроусилителя руля, тормозов и т. Д.
  • Решения для распознавания прикосновения.
  • На железных дорогах для сигнализации, управления дверьми, приведения в движение и торможения.
  • Используется в промышленном управлении для автоматизации, ПЛК (программируемых логических контроллерах), контроллерах движения и т. Д.
  • Системы управления батареями для контроля уровня мощности и токов.
  • Они работают в альтернативной энергетике (солнечная, ветровая и т. Д.) И в транспорте (лифты и краны).
  • Робототехника (для автоматизации)

Заключительные слова

Микроконтроллер

сократил человеческие усилия, выполняя повторяющиеся задания.

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

Вы когда-нибудь хотели работать с микроконтроллером для решения сложных задач? Поделитесь своими мыслями в комментариях ниже.

Учебное пособие по микроконтроллеру

(1/5): Что такое микроконтроллер?

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

Моя цель — сделать схему максимально простой и не требующей внешних программистов или отладчиков.У вас должна быть возможность просто подключить его к USB-порту на вашем компьютере и запрограммировать.

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

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

Бонус: Загрузите это руководство из 5 частей в формате PDF, которое шаг за шагом покажет вам, как сделать плату микроконтроллера, которую вы можете построить дома, используя стандартные инструменты для хобби.

Что такое микроконтроллер?

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

Микроконтроллер — это интегральная схема, и она может выглядеть так:

Но он может иметь и множество других форм.

Что можно делать с микроконтроллером?

О, с чего мне начать?

С микроконтроллером можно делать так много всего.

Можно построить робота. Или MP3-плеер. Или мобильный телефон. Или дверной замок, который автоматически отпирает вашу дверь, когда вы вводите код на своем смартфоне.

Возможности безграничны!

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

Теперь все, что вам нужно сделать, это создать программу, которая считывает данные с инфракрасного датчика и управляет двигателем.В вашем коде вы можете убедиться, что робот останавливается, если он видит что-то перед собой, и заставить его повернуться либо влево, либо вправо, прежде чем продолжить.

Когда вы знаете, как создавать схемы микроконтроллеров, ваши возможности практически не ограничены! И, следуя этому руководству по микроконтроллерам, вы научитесь использовать микроконтроллеры в своих собственных проектах =)

Более пристальный взгляд на микроконтроллер

Микроконтроллер имеет несколько контактов. Большинство этих контактов являются так называемыми входными и выходными контактами.И с помощью этих контактов микроконтроллер может взаимодействовать с внешним миром.

Микроконтроллер сам по себе ничего не делает. Вам нужно сказать ему, что делать, создав программу, которую вы загрузите в него. Это часто называют программированием, микроконтроллером.

Из программы, которую вы пишете, вы можете управлять входными и выходными контактами.

Итак — подключив что-нибудь, например светоизлучающий диод (LED) к выходному контакту, вы сможете включать и выключать свет из своей программы.

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

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

Программирование микроконтроллера

Программирование микроконтроллера может показаться немного сложным, потому что нужно сделать много запутанных решений.Я помню, что чувствовал вначале. Со всеми доступными компиляторами, IDE, программистами и методами программирования — неудивительно, что вы запутаетесь!

Итак, давайте разберемся.

Это три шага, необходимые для программирования микроконтроллера:

1. Напишите код
2. Скомпилируйте свой код в машинный код
3. Загрузите машинный код в свой микроконтроллер

Что именно делать на каждом этапе зависит от микроконтроллера к микроконтроллеру. Но не волнуйтесь — я проведу вас через точные шаги, которые потребуются, когда мы туда доберемся.

Далее в руководстве по микроконтроллерам

Пора найти микроконтроллер и приступить к работе. Найти микроконтроллер не обязательно так просто, как вам хотелось бы. Их, наверное, 58 миллиардов. Ладно, может, чуть меньше. Но много.

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

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

Бонус: Загрузите это руководство из 5 частей в формате PDF, которое шаг за шагом покажет вам, как сделать плату микроконтроллера, которую вы можете построить дома, используя стандартные инструменты для хобби.

Перейти к части 2 руководства по микроконтроллеру >>

Основы микроконтроллеров — структура, приложения, плюсы и минусы

Что такое микроконтроллер?

PS: Этот пост является продолжением поста ВВЕДЕНИЕ В PIC .

Микроконтроллер — это однокристальный микрокомпьютер, изготовленный на базе СБИС. Микроконтроллер также называется встроенным контроллером, потому что микроконтроллер и его вспомогательные схемы часто встроены или встроены в устройства, которыми они управляют. Доступны микроконтроллеры с разной длиной слова, такие как микропроцессоры (сегодня доступны 4-битные, 8-битные, 16-битные, 32-битные, 64-битные и 128-битные микроконтроллеры).

Микроконтроллер Чип

1) Микроконтроллер в основном содержит один или несколько следующих компонентов:

  • Центральный процессор (ЦП)
  • Оперативная память) (RAM)
  • Постоянное запоминающее устройство (ПЗУ)
  • Порты ввода / вывода
  • Таймеры и счетчики
  • Управление прерываниями
  • Аналого-цифровые преобразователи
  • Цифровые аналоговые преобразователи
  • Последовательные порты интерфейса
  • Цепи колебательные

2) Внутренний микроконтроллер состоит из всех функций, необходимых для вычислительной системы, и функционирует как компьютер без добавления в него каких-либо внешних цифровых частей.

3) Большинство контактов в микросхеме микроконтроллера могут быть сделаны программируемыми пользователем.

4) Микроконтроллер имеет множество инструкций обработки битов, которые могут быть легко поняты программистом.

5) Микроконтроллер может обрабатывать логические функции.

6) Более высокая скорость и производительность.

7) Встроенная в микроконтроллер структура ПЗУ обеспечивает лучшую защиту микропрограмм.

8) Простота проектирования при низкой стоимости и небольшом размере.

Структура микроконтроллера

Базовая структура и структурная схема микроконтроллера показаны на рисунке (1.1).

Структура микроконтроллера

Изображение взято из

CPU — это мозг микроконтроллера. ЦП отвечает за выборку инструкции, ее декодирование и, наконец, выполнение. ЦП объединяет каждую часть микроконтроллера в единую систему. Основная функция ЦП — выборка и декодирование инструкций. Команда, полученная из памяти программ, должна быть декодирована ЦП.

Функция памяти в микроконтроллере такая же, как и в микропроцессоре. Он используется для хранения данных и программ. Микроконтроллер обычно имеет определенный объем RAM и ROM (EEPROM, EPROM и т. Д.) Или флэш-памяти для хранения исходных кодов программ.

  • Параллельные порты ввода / вывода

Параллельные порты ввода / вывода в основном используются для управления различными устройствами, такими как ЖК-дисплеи, светодиоды, принтеры, память и т. Д., С микроконтроллером.

Последовательные порты обеспечивают различные последовательные интерфейсы между микроконтроллером и другими периферийными устройствами, такими как параллельные порты.

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

  • Аналого-цифровой преобразователь (АЦП)

Преобразователи АЦП используются для преобразования аналогового сигнала в цифровую форму. Входной сигнал в этом преобразователе должен быть в аналоговой форме (например, выход датчика), а выход этого устройства — в цифровой форме. Цифровой выход может использоваться для различных цифровых приложений (например, для измерительных устройств).

  • Цифро-аналоговый преобразователь (ЦАП)

ЦАП выполняет операцию обратного преобразования АЦП.ЦАП преобразует цифровой сигнал в аналоговый формат. Обычно используется для управления аналоговыми устройствами, такими как двигатели постоянного тока, различные приводы и т. Д.

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

  • Блок специального функционирования

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

Сравнение микропроцессора и микроконтроллера

Основное сравнение микропроцессора и микроконтроллера, показанное на рис. (1.2)

Сравнение микропроцессора и микроконтроллера

Источник изображения

Микропроцессоры Микроконтроллеры
1 Это только универсальный компьютер с процессором Сам микрокомпьютер
2 Память, порты ввода / вывода, таймеры, прерывания недоступны внутри микросхемы Все интегрированы внутри микросхемы микроконтроллера
3 Это должно иметь много дополнительных цифровых компонентов для выполнения своей работы Может работать как микрокомпьютер без каких-либо дополнительных компонентов.
4 Системы становятся громоздче и дороже. Сделайте систему простой, экономичной и компактной
5 Не поддерживает логические функции Обработка логических функций
6 Требуется большее время доступа Низкое время доступа
7 Программируется очень мало контактов Большинство контактов программируются
8 Очень мало инструкций по обработке битов Множество инструкций по обработке битов
9 Широко используется в современных ПК и ноутбуках широко используется в небольших системах управления
E.грамм. INTEL 8086, INTEL Pentium серии INTEL8051,89960, PIC16F877

Преимущества микроконтроллеров

Приведены основные преимущества микроконтроллеров.

a) Микроконтроллеры действуют как микрокомпьютер без каких-либо цифровых компонентов.

b) Поскольку более высокая степень интеграции внутри микроконтроллера снижает стоимость и размер системы.

c) Использование микроконтроллера просто, легко устраняет неисправности и обслуживает систему.

d) Большинство контактов программируются пользователем для выполнения различных функций.

e) Простое сопряжение с дополнительной RAM, ROM, портами ввода / вывода.

е) Низкое время, необходимое для выполнения операций.

Недостатки микроконтроллеров

a) Микроконтроллеры имеют более сложную архитектуру, чем микропроцессоры.

б) Выполнять одновременно ограниченное количество выполнений.

c) В основном используется в микрооборудовании.

d) Невозможно напрямую связать устройства большой мощности.

Приложения

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

Некоторые основные применения микроконтроллера приведены ниже.

а) Используется в биомедицинских инструментах.

б) Широко используется в системах связи.

c) Используется как периферийный контроллер в ПК.

г) Используется в робототехнике.

д) Используется в автомобильных областях.

статей Рекомендуем прочитать:

1. Базовый ПИК

2. Введение в PIC 167F877

3. PIC 16F877 — АРХИТЕКТУРА И ОРГАНИЗАЦИЯ ПАМЯТИ

4.РЕГИСТРАЦИЯ ОРГАНИЗАЦИИ ПАМЯТИ НА ПОС 16F877

типов и применения микроконтроллеров — EIT | Инженерный технологический институт: EIT

Введение в микроконтроллер:
Микроконтроллер (микроконтроллер или микроконтроллер) — это микрокомпьютер с одиночной микросхемой, изготовленный на базе СБИС. Микроконтроллер также известен как встроенный контроллер. Сегодня на рынке доступны различные типы микроконтроллеров с разной длиной слова, такие как 4-битные, 8-битные, 64-битные и 128-битные микроконтроллеры.Микроконтроллер — это сжатый микрокомпьютер, предназначенный для управления функциями встроенных систем в офисных машинах, роботах, бытовой технике, автомобилях и ряде других устройств. Микроконтроллер состоит из таких компонентов, как память, периферийные устройства и, самое главное, процессор. Микроконтроллеры в основном используются в устройствах, которым требуется определенная степень контроля со стороны пользователя устройства.

Основы микроконтроллера:
Любое электрическое устройство, которое хранит, измеряет, отображает информацию или вычисляет, состоит из микросхемы микроконтроллера
внутри себя.Базовая структура микроконтроллера состоит из: —
1. ЦП — Мозг микроконтроллера называется ЦП. ЦП — это устройство, которое используется для получения данных, их декодирования и успешного завершения поставленной задачи. С помощью центрального процессора все компоненты микроконтроллера объединены в единую систему. Выборка инструкции
, редактируемая программируемой памятью, декодируется ЦП.
2. Память — В микроконтроллере микросхема памяти работает так же, как микропроцессор. Чип памяти хранит все программы и данные.Микроконтроллеры построены с определенным объемом ПЗУ или ОЗУ (EPROM, EEPROM и т. Д.) Или флэш-памятью для хранения исходных кодов программ.
3. Порты ввода / вывода — порты ввода / вывода в основном используются для взаимодействия или управления различными устройствами, такими как — принтеры, ЖК-дисплеи, светодиоды и т. Д.

4. Последовательные порты — эти порты предоставляют последовательные интерфейсы между микроконтроллером и различными другими периферийными устройствами. например, параллельный порт.
5. Таймеры — микроконтроллер может быть встроен с одним или несколькими таймерами или счетчиками.Таймеры и счетчики контролируют все операции подсчета и синхронизации в микроконтроллере. Таймеры используются для подсчета внешних импульсов. Основными операциями, выполняемыми таймерами, являются генерация импульсов, функции часов, измерение частоты, модуляция, создание колебаний и т. Д.
6.ADC (аналого-цифровой преобразователь) –ADC используется для преобразования аналоговых сигналов в цифровые. Входные сигналы должны быть аналоговыми для АЦП. Производство цифровых сигналов можно использовать в различных цифровых приложениях (например, в измерительных устройствах).

7.DAC (цифро-аналоговый преобразователь) — этот преобразователь выполняет функции, противоположные функциям АЦП. Это устройство обычно используется для контроля аналоговых устройств, таких как двигатели постоянного тока и т. Д.
8. Интерпретируемое управление. Этот контроллер используется для обеспечения отложенного управления рабочей программой. Интерпретация может быть внутренней или внешней.
9. Специальный функциональный блок — Некоторые специальные микроконтроллеры, изготовленные для специальных устройств, таких как космические системы, роботы и т. Д., Содержат этот специальный функциональный блок.Этот специальный блок имеет дополнительные порты для выполнения некоторых специальных операций.

Типы микроконтроллеров:
Микроконтроллеры делятся на категории в соответствии с их памятью, архитектурой, битами и наборами команд
. Итак, давайте обсудим типы микроконтроллеров:

бит:
8-битный микроконтроллер выполняет логические и арифметические операции. Примером 8-битного микроконтроллера является Intel 8031/8051.
16-битный микроконтроллер работает с большей точностью и производительностью в отличие от 8-битного.
Примером 16-битного микроконтроллера является Intel 8096.

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

Память:

  • Микроконтроллер внешней памяти — когда встроенная структура построена с микроконтроллером, который не включает в себя все функционирующие блоки, существующие на микросхеме, она называется микроконтроллером внешней памяти.Для иллюстрации — микроконтроллер 8031 ​​не имеет памяти программ на микросхеме.
  • Микроконтроллер со встроенной памятью — когда встроенная структура построена с микроконтроллером, который состоит из всех функциональных блоков, существующих на микросхеме, он называется микроконтроллером встроенной памяти. Для иллюстрации — микроконтроллер 8051 имеет всю память программ и данных, счетчики и таймеры, прерывания, порты ввода / вывода и, следовательно, свой микроконтроллер встроенной памяти.

Набор команд:
CISC-CISC означает компьютер со сложным набором команд, он позволяет пользователю применять 1 инструкцию как
в качестве альтернативы многим простым инструкциям.

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

Архитектура памяти:

  • Гарвардская архитектура памяти Микроконтроллер
  • Принстонская архитектура памяти Микроконтроллер

Микроконтроллер 8051:
Наиболее широко используемый набор микроконтроллеров относится к семейству 8051. Микроконтроллеры 8051 по-прежнему остаются идеальным выбором для огромной группы любителей и экспертов.В течение 8051 года человечество стало свидетелем самого революционного набора микроконтроллеров. Первоначально микроконтроллер 8051 был изобретен Intel. Двумя другими членами этого семейства 8051 являются:

  • 8052. Этот микроконтроллер имеет 3 таймера и 256 байтов ОЗУ. Кроме того, он имеет все функции традиционного микроконтроллера 8051. Микроконтроллер 8051 является подмножеством микроконтроллера 8052.
  • 8031 ​​- Этот микроконтроллер меньше ПЗУ, за исключением того, что он имеет все функции традиционного микроконтроллера 8051.Для исполнения в его микросхему можно добавить внешнее ПЗУ размером 64 Кбайт.

Микроконтроллер 8051 задействует 2 типа памяти, такие как NV-RAM, UV-EPROM и Flash.

Архитектура микроконтроллера 8051:
Микроконтроллер 8051 — это восьмиразрядный микроконтроллер, выпущенный в 1981 году корпорацией Intel. Он доступен в 40-контактном DIP-корпусе (двухрядный корпус). Он имеет 4 КБ ПЗУ (программируемое пространство на кристалле) и 128 байтов встроенного ОЗУ, при желании 64 КБ внешней памяти могут быть связаны с микроконтроллером.Есть четыре параллельных 8-битных порта, которые легко программируются, а также адресуются. Встроенный кварцевый генератор интегрирован в микроконтроллер с тактовой частотой 12 МГц. В микроконтроллере есть последовательный порт ввода / вывода, который имеет 2 контакта. В него также встроены два таймера по 16 бит; эти таймеры могут использоваться как таймеры для внутреннего функционирования, а также как счетчики для внешнего функционирования. Микроконтроллер состоит из 5 источников прерываний, а именно: прерывание от последовательного порта
, прерывание от таймера 1, внешнее прерывание 0, прерывание от таймера 0, внешнее прерывание 1.Режим программирования этого контроллера micro-
включает в себя GPR (регистры общего назначения), SFR (регистры специальных функций) и SPR (регистры специального назначения).

Микроконтроллер PIC:
Контроллер периферийного интерфейса (PIC), предоставленный Micro-chip Technology для классификации своих микроконтроллеров с одиночным чипом. Эти устройства оказались чрезвычайно успешными в 8-битных микроконтроллерах. Основная причина этого заключается в том, что Micro-Chip Technology постоянно модернизирует архитектуру устройства и включает в микроконтроллер столь необходимые периферийные устройства, чтобы удовлетворить потребности клиентов.Микроконтроллеры PIC очень популярны среди любителей и промышленников; это единственная причина широкой доступности, низкой стоимости, большой базы пользователей и возможности последовательного программирования.

Архитектура микроконтроллера PIC:
Архитектура 8-битных микроконтроллеров PIC может быть классифицирована следующим образом:
1. Архитектура базовой линии — В базовую архитектуру микроконтроллеры PIC семейства PIC10F включены, кроме этой части PIC12 и PIC16 семьи также включены. Эти устройства используют 12-битную архитектуру программного слова с альтернативами от шести до двадцати восьми выводов.
Кратко определенный набор атрибутов базовой архитектуры позволяет получать наиболее прибыльные продуктовые решения. Эта архитектура идеально подходит для гаджетов с батарейным питанием. Серия PIC10F200 — еще один недорогой 8-битный микроконтроллер флэш-памяти с 6-контактным корпусом.

2. Архитектура среднего диапазона — в эту среднюю линию добавлены семейства PIC12 и PIC16, которые атрибутируют архитектуру 14-битного программного слова. Гаджеты среднего уровня PIC16 предлагают широкий спектр альтернативных пакетов (от 8 до 64 пакетов) с низким и высоким уровнем включения периферийных устройств
.Это устройство PIC16 поддерживает различные аналоговые, цифровые и последовательные периферийные устройства, такие как SPI, USART, I2C, USB, ЖК-дисплеи и аналого-цифровые преобразователи. Микроконтроллеры PIC16 среднего уровня обладают функцией приостановки управления с восьмиуровневой аппаратной нагрузкой.
3. Высокопроизводительная архитектура. Высокопроизводительная архитектура включала семейство устройств PIC18. Эти микроконтроллеры используют 16-битную архитектуру программного слова вместе с альтернативами от 18 до 100 выводов.Устройства PIC18 представляют собой высокопроизводительные микроконтроллеры со встроенными аналого-цифровыми преобразователями. Все микроконтроллеры PIC18 объединяют высокоразвитую архитектуру RISC, которая поддерживает флеш-устройства. PIC18 имеет улучшенные атрибуты фундамента, 32 уровня глубокой нагрузки и несколько внутренних и внешних прерываний.

Микроконтроллер AVR:
AVR, также известный как Advanced Virtual RISC, представляет собой 8-битный микроконтроллер с одиночным чипом RISC с 8-разрядной архитектурой Гарварда. Он был изобретен Атмелем в 1966 году.Архитектура Гарварда означает, что программа и данные накапливаются в разных местах и ​​используются одновременно. Это было одно из передовых семейств микроконтроллеров, в которых встроенная флэш-память использовалась в основном для хранения программ, в отличие от одноразовых программируемых EPROM, EEPROM или ROM, используемых другими микроконтроллерами одновременно. Флэш-память — это энергонезависимая (постоянная при отключении питания) программируемая память. Архитектура микроконтроллера AVR: Архитектура микроконтроллера AVR
была разработана Альф-Эгилем Богеном и Вегардом Волланом.Название AVR происходит от имен разработчиков архитектуры микроконтроллера. AT90S8515 был передовым микроконтроллером, основанным на архитектуре AVR; с другой стороны, первым микроконтроллером, который вышел на коммерческий рынок, был AT90S1200, который был запущен в 1997 году.

SRAM, Flash и EEPROM объединены в один чип, что устраняет необходимость в любой другой внешней памяти в максимум устройств.Несколько устройств содержат альтернативу параллельной внешней шины, чтобы добавить дополнительные устройства памяти данных. Приблизительно все устройства, за исключением микросхем TinyAVR, имеют последовательный интерфейс, который используется для связи больших последовательных микросхем Flash и EEPROM.

Микроконтроллер AMR:
AMR — это название компании, которая разрабатывает архитектуру микропроцессоров. Он также занимается лицензированием их для производителей, которые производят настоящие чипы. На самом деле AMR — это настоящая 32-битная архитектура RISC.Первоначально он был разработан в 1980 году компанией Acorn Computers Ltd. Этот базовый микропроцессор AMR не имеет встроенной флэш-памяти. ARM специально разработан для устройств с микроконтроллерами, его легко обучить и использовать, но он достаточно мощный для самых сложных встраиваемых устройств.

Архитектура микроконтроллера AMR:
Архитектура AMR представляет собой 32-битный RISC-процессор, разработанный ARM Ltd. Благодаря своим характеристикам энергосбережения центральные процессоры ARM преобладают на рынке мобильной электроники, где меньшие затраты энергии являются жизненно важной целью проектирования. .Архитектура ARM состоит из нижележащих элементов RISC: —

  • Максимальное функционирование за один цикл
  • Постоянный регистровый файл размером 16 × 32 бита.
  • Загрузить или сохранить архитектуру.
  • Предварительно установленная ширина команды 32 бита для упрощения конвейерной обработки и декодирования при минимальной плотности кода.
  • Для смещенного доступа к памяти нет поддержки.

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