Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Содержание

назначение, область применения, принцип работы

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

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

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

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

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

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

Назначение и область применения микроконтроллера

Но давайте разберёмся, чем smd микроконтроллеры 14 pin отличаются от 12 пиновых и как применять микроконтроллеры для чайников.

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

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

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

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

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

Принцип работы

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

  1. Он принимает определённые переменные или другие данные, которые прежде должны быть преобразованы в двоичный сигнал. Это необходимо, поскольку на низшем уровне система способна воспринимать лишь 2 состояния – есть сигнал или нет сигнала. Такой принцип называют аналоговым. Существует аналогичный алгоритм, когда сигнал присутствует постоянно, но меняется по частоте – цифровой. У них множество различий, как в областях применения, так и в особенностях работы сигнала, но суть одна – процессор способен воспринимать лишь значения 0 и 1, или true и false, и не важно, какими путями микропроцессоры и микроконтроллеры будут их считывать.
  2. Во внутренней памяти устройства хранится набор специальных инструкций, который позволяет, путем базовых математических преобразований, выполнять какие-то действия с полученными данными. Именно эти базовые операнды и берутся на вооружение компилируемых языков программирования, когда необходимо написать библиотеку готовых функций. Остальные нюансы языков программирования – это уже синтаксис и теория алгоритмов. Но в результате, всё сводится к базовым операндам, которые превращаются в двоичный код и обрабатываются внутренней системой процессора.
  3. Всё, что было получено и сохранено после обработки, выдается на выход. На самом деле, данный пункт выполняется всегда, единственная разница, что выходом может быть и преобразование состояния объекта какой-то системы. Простейшим примером станет замыкание электрической цепи, в случае, если на специальный датчик подать ток, вследствие чего загорится лампочка. Здесь всё зависит от типа устройства, так, 8051 микроконтроллер может выполнять несколько видов выводов, имея 14 пинов, а какой-то другой – всего один, ведь у него 1 пин на выход. Количество выходов влияет на многопоточные свойства девайса, иными словами, возможность выводить информацию сразу на несколько устройств или совершать несколько действий одновременно.

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

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

Но почему микроконтроллер овен не способен выполнять некоторые действия, характерные для 8051, и какая классификация вообще существует в данной сфере?

Виды микроконтроллеров

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

  1. Количеству аналоговых и цифровых пинов.
  2. Общему количеству пинов.
  3. Количеству ядер, которые присутствуют в МК.
  4. Скорости выполнения операций или герцовке.
  5. Объему оперативной и постоянной внутренней памяти.
  6. Размерам.

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

Особенности микроконтроллеров Ардуино

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

  1. Низкий порог входа. Так как программная среда уже написана и протестирована за вас, никаких «велосипедов» придумывать не нужно.
  2. Оптимизация под конкретные задачи. У создателей есть целая линейка разнообразных чипов, которые сильно различаются по характеристикам, благодаря чему будет проще подобрать подходящий.
  3. Готовая платформа и множество решений различных проблем или задач в открытом доступе.

Подключение и управление

Подключаются чипы через специальные разъемы, называемые пинами. Те, в свою очередь, распределяются на:

  1. Отвечающие за питание. Стандартное сочетание из нуля, фазы и заземления. Последнее чаще всего игнорируют.
  2. Отвечающие за ввод данных.
  3. Отвечающие за вывод данных. Их можно разделить на аналоговые и цифровые, о главном различии уже упоминалось выше, и каждый из выходов имеет свои достоинства и недостатки.

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

Микроконтроллеры для начинающих

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

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

Пример применения микроконтроллера Ардуино

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

  1. Системы смарт-хауса
    . Это различные умные переключатели, занавески, вентиляторы и разнообразные сигнализации. Они позволяют сделать ваше взаимодействие с жильем более интерактивным.
  2. Автоматические теплицы.
  3. Разнообразные датчики, вплоть до специального ошейника для домашнего любимца, показывающего его местоположение и пульс.

В целом же, в вопросе применения вы ограничиваетесь лишь собственной фантазией!

Производители микроконтроллеров

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

Главное, не забывайте читать отзывы об устройствах и заранее прочесывать наш сайт в поисках готовых решений проблем.

arduinoplus.ru

Микроконтроллер | Робототехника

 

Микроконтроллер – это целая микропроцессорная система в одной микросхеме(на одном кристалле). Данная микросхема предназначена для управления всевозможными электронными устройствами и выполнения множества функций. Взаимодействие между электронными устройствами совершается в соответствии с заложенной в микроконтроллер программой.

                                                             На нашем сайте наиболее часто будет разговор об микроконтролере Arduino и её наиболее продвинутом варианте в виде Arduino Due.
Микроконтроллеры дают возможность управлять разнообразными электронными и электрическими блоками. Как правило, микроконтроллеры, не работают в одиночку, а интегрируются(процесс объединение части в целое) в схему, где подключены различные периферийные устройства(мониторы, клавиатуры, различные датчики и т.п).   Джек Килби и Роберт Нойс             

Миросхемы изобрели практически одновременно Джек Килби (Тексас Инструментс) и Роберт Нойс (Файрчайлд Семикондакторс) примерно в 1958 году. Производить промышленно начали только в начале 70-х годов. Первый процессор (8080) был выпущен в 1974 году. Придуман он был под названием Intel 4040, ещё в 1969 году, но в коммерческое производство пошел только в 1974.

С появлением однокристальных микро-ЭВМ связывают начало эры массового применения компьютерной автоматизации в области управления. Скорее всего, это обстоятельство и определило термин «контроллер» (англ. controller — регулятор, управляющее устройство). В связи с резким спадом отечественного производства и увеличением импорта техники, в том числе вычислительной, термин «микроконтроллер» (МК) вытеснил из употребления термин «однокристальная микро-ЭВМ». Первый патент на однокристальную микро-ЭВМ был выдан в 1971 году инженерам Майклу Кочрену и Гари Буну, сотрудникам американской Texas Instruments. Именно они родоночальники идеи размещения на одном кристалле не только процессор, но и память с устройствами ввода-вывода. В 1976 году американская фирма Intel выпускает микроконтроллер i8048. Через 4 года, в 1980 году, Intel выпускает следующий микроконтроллер: i8051. Удачный набор периферийных устройств, возможность гибкого выбора внешней или внутренней программной памяти и приемлемая цена обеспечили этому микроконтроллеру успех на рынке. С точки зрения технологии микроконтроллер i8051 являлся для своего времени крайне сложным изделием — в кристалле было использовано 128 тысяч транзисторов, что в 4 раза превышало количество транзисторов в 16-разрядном микропроцессоре i8086.

Виды микроконтроллеров

Условно микроконтроллеры можно разделить на три группы: простейшие, встраиваемые и универсальные. 

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

Встраиваемые в приборы и аппаратуру микроконтроллеры запрограммированы на реализацию узкоспецилизированных задач.

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

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

встраиваемые (embedded) 8-разрядные МК,

16- и 32-разрядные МК,

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

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

DIP(Dual Inline Package) – корпус с двумя рядами контактов. Количество ножек в корпусе от 8 до 56.

SOIC(Small Outline Integrated Circuit) – планарная микросхема – ножки припаиваются с той же стороны, где находится корпус. При этом, микросхема лежит корпусом на плате. Количество ножек и их нумерация – такие же, как у DIP.

PLCC(Plastic Leader Chip Carrier) – квадратный корпус. Ножки расположены по всем четырем сторонам, и имеют J – образную форму.

TQFP(Thin Profile Quad Flat Package) – среднее между SOIC и PLCC. Квадратный корпус толщиной около 1 мм, выводы расположены по всем сторонам. Количество ножек – от 32 до 144.

 

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

 

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

 

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

 

Порты ввода-вывода -> позволяют микроконтроллеру связываться с окружающим миром. 

Для достижения более высокого уровня интеграции(процесс объединения частей в целое) и надежности, все микроконтроллеры имеют встроенные дополнительные устройства. Встроенные устройства повышают надежность системы, потому что они не требуют никаких внешних электрических цепей. Они предварительно тестируются производителем и освобождают место на плате, так как все соединительные электрические цепи выполнены на кристале в микроконтроллере. К наиболее распространенным встроенным устройствам относятся устройства памяти и порты ввода/вывода (I/O), интерфейсы связи, таймеры, системные часы. Устройства памяти включают оперативную память (RAM), постоянные запоминающие устройства (ROM), перепрограммируемую ROM (EPROM), электрически перепрограммируемую ROM (EEPROM). Таймеры включают и часы реального времени, и таймеры прерываний. Средства I/O включают последовательные порты связи, параллельные порты (I/O линии), аналого-цифровые преобразователи (A/D), цифроаналоговые преобразователи (D/A), драйверы жидкокристаллического дисплея (LCD) или драйверы вакуумного флуоресцентного дисплея (VFD). Встроенные устройства обладают повышенной надежностью, поскольку они не требуют никаких внешних электрических цепей. 

АЛУ производит операции над числами и возвращает результат операции в виде числа. Данные числа помещаются в регистры общего назначения – своеобразную временную память. У каждого микроконтроллера количество регистров может быть разным. Однако, для нормальной работы микроконтроллера регистров общего назначения недостаточно, т.к., например, 32 байта – очень маленький объем памяти. Для того, чтобы можно было хранить больше информации, используется оперативно-запоминающее устройство (ОЗУ). Регистры общего назначения содержат данные, с которыми АЛУ работает в данный момент, а ОЗУ – остальные. Команды, а точнее последовательность команд, которые выполняет АЛУ, хранятся в постоянно-запоминающем устройстве (ПЗУ). Обычно это Flash-память. Данная последовательность команд является ничем иным, как программой микроконтроллера, которую создает программист. Все команды находятся в ПЗУ по определенным адресам. Для того, чтобы достать какую-то команду из ПЗУ, необходимо обратиться к ее адресу, чем занимается программный счетчик или счетчик команд. Данные из ПЗУ попадают в регистр команд. АЛУ постоянно «смотрит» содержимое регистра команд и если в нем появляется команда, то АЛУ сразу же начинает ее выполнять. Все эти устройства микроконтроллера были бы бесполезны без портов ввода-вывода, с помощью которых микроконтроллер взаимодействует с внешним миром. Порты ввода-вывода можно настраивать таким образом, чтобы они работали как в качестве входов, так и в качестве выходов. Управления портами осуществляется через специальные регистры. По умолчанию все порты микроконтроллера настроены на выход.

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

 

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

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

Собирать устройство на основе микроконтроллера можно как на собственной плате, так и на макетной или даже методом навесного монтажа, в зависимости от того, как вам удобней и от сложности предполагаемого устройства.

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

 

 

www.robots4life.ru

Применение микроконтроллеров. Управление разными устройствами.

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

Здравствуйте, уважаемые читатели и гости сайта Power Coup Electric. В сегодняшней статье мы поговорим про применение микроконтроллеров.

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

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

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

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

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

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

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

   Применение микроконтроллеров в программируемых реле

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

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

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

  • универсальные цифровые порты, настраиваемые либо на ввод, либо на вывод
  • разнообразные интерфейсы ввода-вывода: UART, SPI, I²C, CAN, IEEE 1394, USB, Ethernet
  • цифро-аналоговые и аналого-цифровые преобразователи
  • компараторы
  • широтно-импульсные модуляторы (ШИМ-контроллер)
  • таймеры
  • контроллеры бесколлекторных (и шаговых) двигателей
  • контроллеры клавиатур и дисплеев
  • радиочастотные передатчики и приемники
  • массивы интегрированной флеш-памяти
  • встроенные сторожевой таймер и тактовый генератор

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

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

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

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

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

Измеряется производительность микроконтроллера в миллионах инструкций в секунду — MIPS (Million Instruсtions per Second). Так, популярный контроллер Atmega8, выполняя одну полноценную инструкцию за один такт, достигает производительности 1 MIPS на МГц.

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

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

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

Пример такого универсального контроллера — тот же Atmega8, на котором собирают: таймеры, часы, мультиметры, индикаторы домашней автоматики, драйверы шагового двигателя и т.д.

Среди популярных производителей микроконтроллеров отметим: Atmel, Hitachi, Intel, Infineon Technologies, Microchip, Motorola, Philips, Texas Instruments.

Классифицируются микроконтроллеры в основном по разрядности данных, которые обрабатывает арифметико-логическое устройство контроллера: 4, 8, 16, 32, 64 — разрядные. И 8-разрядные, как отмечалось выше, занимают существенную долю рынка. Следом идут 16-разрядные микроконтроллеры, затем DSP-контроллеры, применяемые для обработки сигналов.

Советы по выбору микроконтроллеров

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

Основными факторами подбора микроконтроллера являются:
  1. Способность работы с прикладной системой. Возможность реализации этой системы на однокристальном микроконтроллере, или на специализированной микросхеме.
  2. Наличие в микроконтроллере необходимого количества портов, контактов, так как при их нехватке он не будет способен выполнить задачу, а если будут лишние порты, то стоимость будет завышена.
  3. Наличие необходимых устройств периферии: различных преобразователей, интерфейсов связи.
  4. Наличие других вспомогательных устройств, ненужных для работы, из-за которых повышается стоимость.
  5. Обеспечение требуемой производительности: мощность вычислений, дающую возможность обработки запросов системы на определенном прикладном языке программирования.
  6. Имеется ли в проекте бюджета достаточно финансов, чтобы применять дорогостоящий микроконтроллер. Если он не подходит по цене, то остальные вопросы не имеют смысла, и разработчик должен искать другой микроконтроллер.
  7. Надежность завода изготовителя.
  8. Информационная поддержка.
  9. Доступность. В этот фактор входят следующие пункты:
  • Выпускается ли в настоящее время.
  • Наличие поддержки разработчика.
  • Наличие языков программирования, внутрисхемных эмуляторов, средств отладки и компиляторов.

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

Смотрите также по этой теме:

   Dc Dc преобразователь. Устройство и принцип работы основных схем.

 

Будем рады, если подпишетесь на наш Блог!

[wysija_form id=»1″]

powercoup.by

Архитектура микроконтроллеров: основные типы и архитектура

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

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

Основные типы микроконтроллеров и их архитектура

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

  1. Встраиваемый 8-разрядный микроконтроллер.
  2. 16 и 32-х битные контроллеры соответственно. Их выделяют в отдельный класс, но в интернет-магазинах, зачастую, объединяют, для удобства поиска.
  3. Цифровые процессоры на основе сигнальной системы.

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

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

Для «оживления» любого МК достаточно подать ток определённой частоты на соответствующие контакты, после чего устройство будет доступно для работы. Если разбирать, каким образом выглядит информация для микроконтроллеров в простой аналогии, то это будет двоичный код. То есть, в зависимости от того, подаётся ли напряжение на пин или нет, процессор трактует это, как 1 и 0 соответственно.

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

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

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

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

  1. Схемы для стартовых запусков процессора.
  2. Специальные генераторы, способные отображать информацию в цифровом сигнале – тактовых импульсах.
  3. Главный компьютер – процессор, построенный вокруг кристалла.
  4. Постоянная память. И, по-хорошему, в ней уже должна находиться какая-то заготовленная или оптимальная прошивка под конкретные задачи. Ведь производитель должен был как-то протестировать свой девайс, прежде чем выставлять его на продажу.
  5. Пины, которые послужат для ввода и вывода данных.
  6. Таймер, как условный, так и цифровой. Он необходим для фиксирования количества выполняемых командных циклов. Но, в случае необходимости, всегда можно создать свой, через функции и методы ООП.

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

  1. Устройство вывода – монитор или отладчик для программ, который упростит последующее программирование микроконтроллера. Подойдёт для сложных проектов, где программных отладчиков уже не хватает, или же языков, вроде С-подобных, где они, в принципе, отсутствуют, как инструмент.
  2. Дополнительные блоки памяти, которую можно выделить под буфер обмена, или оперативную память в программах.
  3. Датчик для обработки прерываний, исходящих от других девайсов.
  4. Аналоговые вводы и выводы, которые пригодятся в работе со старой техникой.
  5. Синхронные и асинхронные пины, а также параллельные и последовательные. Наличие позволит улучшить эргономику конечного устройства, например, установить несколько аккумуляторов в параллельном подключении. Такая находка, к тому же, уменьшит минимальное значение заряда на них, увеличив общую емкость.
  6. Дополнительный модуль для внешней памяти. Это будет крайне удобно, если в системе планируется применять тяжелые медиафайлы. Например, для разговаривающих нейросетей и проигрывания музыки.
Пример схемы микроконтроллера

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

Архитектура ядра микропроцессора

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

Внутри Intel 8742 (8-разрядный микроконтроллер с процессором, работающим на частоте 12 МГц, 128 байт ОЗУ, 2048 байт EPROM и I / O в одном чипе)

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

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

Аппаратные средства

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

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

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

arduinoplus.ru

Что такое микроконтроллер? – РадиоСхема

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

Где используются микроконтроллеры?

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

PIC18F8720 Microcontroller

Почему мы используем микроконтроллеры?

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

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

Различные типы микроконтроллеров.

Существует широкий спектр микроконтроллеров, доступных на рынке. Различные компании, как Atmel, ARM, Microchip, Texas Instruments, Renesas, Freescale, NXP Semiconductors, etc. и др. налажено производство различных видов микроконтроллеров с различными видами функций. Глядя на различные параметры, такие как программируемая память, объем флэш-памяти, напряжение питания, ввода/вывода, скорость, и т. д., можно правильно выбрать микроконтроллер для их применения.

Давайте посмотрим на эти параметры и различные типы микроконтроллеров по этим параметрам.

Шина данных (Разрядность):

Если классифицировать по бит-Размер, большинство микроконтроллеров от 8-бит до 32 бит (более высокие разрядные микроконтроллеров также доступны). В 8-разрядного микроконтроллера своя шина данных состоит из 8 линий данных, а в 16-разрядный микроконтроллер его шина данных состоит из 16 линий данных и так далее для 32 бит и выше микроконтроллеров.

 Память:

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

 Количество входных/выходных контактов:

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

 Набор Команд:

Есть два вида наборов инструкций — на RISC и cisc. Микроконтроллер может использовать процессор RISC (сокращенный набор инструкций компьютера) или с CISC (комплекс команд ЭВМ). Как подсказывает название, RISC сокращает время операции, определяющие такт инструкции; а CISC позволяет прикладывать одну инструкцию в качестве альтернативы многие инструкции.

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

Существует два типа микроконтроллеров – Гарвардская архитектура памяти микроконтроллеров и Принстон архитектура памяти микроконтроллеров.

 Вот несколько популярных микроконтроллеров среди студентов и любителей.

Серии 8051 микроконтроллеров (8-бит)

Микроконтроллеры AVR от компании Atmel (ATtiny, серии atmega)

Микрочип-это серия pic микроконтроллеров

Тексас инструментс», микроконтроллеры msp430 фирмы

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

 Особенности микроконтроллеров

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

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

Процессор или центральный процессор

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

 Памяти

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

 Порты Ввода-Вывода

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

 Последовательные Порты

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

 АЦП и ЦАП

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

 Таймеры

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

 Прерывание Контроля

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

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

[Читайте также: разница между микропроцессором и микроконтроллером]

<<< Техническая информация

radioschema.ru

Две стороны повсеместного применения микроконтроллеров / Habr

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

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

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

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

Упрощение схемотехники


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

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

Унификация


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

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

Простота внесения изменений


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

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


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

Снижение надежности


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

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

Проигрывают они по устойчивости к сбоям. Сбои, как правило, вызываются внешними воздействиями: температурой, электромагнитными помехами, радиацией. Особенно чувствительны контроллеры к электромагнитным воздействиям, которые вызывают зависания и самопроизвольные перезагрузки. Для обеспечения помехозащищенности микроконтроллерных схем требуются специальные меры: разделение шин питания, сторожевые таймеры, дополнительные слои металлизации на плате и т.п. Подробнее — см. [1].

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

Кажущаяся простота разработки


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

Порог входа для программирования гораздо ниже. Можно за один вечер изучить основы любого языка и научиться писать «Hello world»ы. Ясно, что между «программистом» и «хорошим программистом» лежит огромная пропасть, но легкость, с которой можно начать писать, подкупает.

Точно также низок порог входа для разработки устройств на контроллерах. Сейчас полно отличных Arduino-подобных комплектов, огромный выбор периферийных модулей к ним, осталось потратить тот самый вечер на освоение IDE (среды разработки) — и можно приступать к своему первому проекту.

Так почему же хороший программист встраиваемых систем — сравнительная редкость? Дело в том, что помимо непосредственно умения писать код, он должен знать все особенности своей архитектуры. Ему необходимо представлять, как работают цифровые устройства, разбираться в кодировании сигналов, знать, как поведет себя устройство в каких-либо нестандартных условиях. Программист, работающий с контроллерами, находится гораздо ближе к «железу», чем прикладной программист. Соответственно, без знания принципов работы этого железа ему не обойтись.

Получается, что легкость разработки под контроллеры — только иллюзия. Микроконтроллер гораздо чувствительнее к ошибкам программиста, чем «большие» компьютеры. Ограниченный объем памяти, требования к быстродействию «по тактам» и почти полное отсутствие «защит от дурака» требуют высокой квалификации разработчика.

Функциональная перегруженность и неудобные интерфейсы


— Как выглядит идеальный интерфейс? Одна кнопка с надписью «Сделай мне хорошо».
— Нет, никаких кнопок, просто надпись «Тебе уже хорошо».

Шутка с долей правды.


Для решения той или иной задачи микроконтроллер всегда выбирается c запасом по параметрам. Соответственно, часть ресурсов контроллера (иногда до 90%) остается свободной. Это приводит к тому, что добавить несколько дополнительных функций можно практически «бесплатно», дописав пару десятков строк в коде прошивки. И такой возможностью часто злоупотребляют. В результате нарушается принцип K.I.S.S., объявляющий простоту системы одним из основных приоритетов в проектировании. Получается устройство, большая часть возможностей которого никогда не используется, а о половине из них пользователь даже не знает.

Наличие ненужных функций — лишь вершина айсберга. Казалось бы, не используется — и ладно, может когда-нибудь пригодится… Но функциональная сложность приводит к сложности пользовательских интерфейсов. Тут возможно два пути. Можно попытаться «втиснуть» управление всеми функциями в ограниченный набор элементов ввода-вывода. Так появляются меню с N-надцатью уровнями вложенности, или кнопки с десятками альтернативных действий. Как пример сумеречного инженерного гения в этом направлении можно привести телефон-АОН «Русь». У кого был этот агрегат, тот знает, что его настройка похожа на программирование в машинных кодах.

Второй путь — сделать интерфейс удобным для пользователя путем применения большого цветного экрана (лучше сенсорного) или добавления своей кнопки для каждой функции. Этот вариант уже лучше, но увеличиваются габариты, уменьшается время автономной работы, снижается надежность устройства. И не забываем о цене. Даже если затраты на производство возрастают незначительно, наличие «супер-пупер экрана с 5000000 цветов» позволяет без лишних угрызений совести накрутить +50…250% к конечной стоимости устройства.

Недокументированные функции


В крупном торговом комплексе ни с того ни с сего открываются фрамуги дымоудаления (большие окна с электроприводом) и выдают неисправность на реле управления. Ночью обещали дождь; не починим — зальёт полкомплекса.
Вызываю из фирмы спеца, который релюху эту программировал. Он на город один, зараза, сам всё паяет и ставит. Описал проблему; он ответил, мол, всё понятно, сейчас приеду и сделаю.
Приезжает, уверенной походкой идет к релюхе, снимает с неё плату, тыкает в переходник. Открывает редактор какой-то — всё в шестнадцатиричном коде, ни черта не понять. Что же, думаю, он делать будет? Наблюдаю как бы случайное движение мышки в правый нижний угол — навёл, каналья, дату посмотрел, открыл конвертер, перевёл какие-то числа в hex, поиском нашёл их в коде и заменил на другие. «Чё, — спрашиваю, — таймер отработал?»

IThappens.ru


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

Какова вероятность того, что помимо основных функций, в прошивке не присутствуют какие-либо дополнительные? Это может быть отправка статистики производителю, намеренно сделанная ошибка, модуль перехвата данных, backdoor — все, что угодно. Причем «закладку» не обязательно добавлять во время разработки, можно внести изменения в прошивку любого существующего устройства. В качестве примера можно привести червя StuxNet, который внедрял свой код в ПЛК ядерно-обогатительных предприятий [2]. Если вы не обогащаете уран, это еще не значит, что вам ничего не угрожает. Уже разработаны механизмы атаки на принтеры [3] и роутеры [4], использующие смену прошивки. Учитывая, с какой легкостью перепрошивается большинство устройств, в ближайшем будущем следует ожидать появления новых «программно-аппаратных» вирусов и разновидностей атак.

А вы уверены, что прямо сейчас ваша микроволновка не следит за вами? 🙂


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

Основной вывод, который хотелось бы сделать — а он подходит для любой технологии — необходимо умело пользоваться преимуществами, которые дает эта технология, но не забывать об их оборотной стороне. Благодарю за внимание, и да пребудет с вами Сила!

Литература


[1] — Г. Горюнов. «Почему одни микроконтроллеры надежнее других».
[2] — «Как Symantec взломала Stuxnet». Хабрахабр.
[3] — «Десятки миллионов принтеров HP LaserJet уязвимы». Хакер.
[4] — «Троян в роутере: заражение D-link 500T в домашних условиях». Хакер №7/10

habr.com

что это такое и зачем нужны

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

Для работы с микроконтроллерами, такими как Ардуино или Iskra JS и подобными, нужны дополнительные знания, которые мы постепенно будем познавать.

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

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

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

Подключение микроконтроллера

Нижеописанная схема является упрощенным вариантом подключения микроконтроллера AVR.

AVR — это семейство восьмибитных микроконтроллеров фирмы Atmel. Год разработки — 1996.

По-хорошему, необходимо добавить еще несколько дополнительных внешних элементов в схему.

Упрощенная схема подключения микроконтроллера

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

Вывод AREF используется как вход для опорного напряжения АЦП – сюда подается напряжение, относительно которого будет высчитываться АЦП. Допустимо использование внутреннего источника опорного напряжения на 2.56В, или же использовать напряжение от AVCC.

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

На вывод AREF рекомендуется подключить конденсатор, который позволит увеличить качество напряжения АЦП и, тем самым, позволит провести правильные измерения АЦП. Между AVCC и GND установлен конденсатор и дроссель, а между GND и VCC установлен керамический конденсатор с емкостью 100 нФ (поближе к выводам питания схемы) для сглаживания кратких импульсов помех, образующихся в результате работы микросхемы.

Также между GND и VCC устанавливается ещё один конденсатор с емкостью в 47 мкФ для того, чтобы сгладить возможные броски напряжения.

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

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

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

Регистровая память предусматривает наличие 32 регистров общего назначения, которые объединены в файл, а также служебные регистры для ввода и вывода. И первые, и вторые располагаются в пространстве ОЗУ, однако не являются его частью.

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

Устройства на микроконтроллерах

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

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

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

  • Регистратор температуры на Atmega168;
  • Кухонный таймер на Attiny2313;
  • Термометр;
  • Измеритель частоты промышленной сети на 50 Гц;
  • Контроллер светодиодного стоп-сигнала на Attiny2313;
  • Светодиодные лампы и светильники, реагирующие на температуру или звук;
  • Электронные или сенсорные выключатели.

Отметим, что для разных устройств используются разные модели микроконтроллеров. Так, 32-разрядные микроконтроллеры AVR UC3 (а также XMEGA, megaAVR, tinyAVR и т.д.) подойдут для систем общего назначения с технологиями picoPower, QTouch, EEPROM, системами обработки событий и самопрограммированием.

Микроконтроллеры для начинающих

Если вы собираетесь программировать микроконтроллеры, такие как Ардуино, например, а также собирать устройства, которые предусматривают их наличие в схеме, необходимо учитывать некоторые правила и рекомендации:

  • Перед решением любых задач следует делить их на более мелкие, вплоть до базовых действий.
  • Не следует пользоваться кодогенераторами и прочими “упрощающими” материалами, хотя бы на начальных этапах.
  • Рекомендуется изучить язык С и Ассемблер – это упростит понимание принципа работы микроконтроллеров и программ.

Для того, чтобы новичок мог заниматься микроконтроллерами, рекомендуется изучать базовые материалы. К таким материалам можно отнести следующие книги:

  • “Применение микроконтроллеров AVR: схемы, программы и алгоритмы” Баранов В.Н., 2006 год,
  • “Микроконтроллеры AVR: вводный курс”, Дж. Мортон, 2008 год,
  • “Программирование микроконтроллеров ATMEL на языке С” Прокопенко В.С, 2012 год.

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

arduinoplus.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *