Стремительное развитие электроники быстро меняет нашу жизнь, и мы замечаем это, прежде всего, в социальной сфере, сферах коммуникации (общение) и связи. Первое, что приходит в голову в этой связи, - это компьютер, Интернет и сотовые телефоны. Мы свободны в поисках необходимой информации, имеем возможность выйти на связь с желаемым абонентом, несмотря на наше местонахождение. Мы можем получать дистанционное образование и объединяться в группы по профессиональным, социальным или культурным интересам. Все это стало возможным в значительной степени благодаря изобретению микропроцессора и созданию микропроцессорных систем. Помогла и другая вычислительная техника.
А есть и другие проявления прогресса микроэлектроники, которые не так заметны, но отыгрывают важную роль в нашей жизни.
Что такое микроконтроллер
Так, микропроцессоры и микроконтроллеры широко используются в бытовой технике, автомобильной электронике, аэрокосмической и военной отраслях и, конечно же, в промышленном производстве.
Микроконтроллер - это микроэлектронное программируемое устройство, предназначенное для обработки информации и управления процессами обмена этой информацией в составе микропроцессорной системы (компьютера).
Почему «микроэлектронное»? Потому что процессоры изготавливаются с помощью технологий современной микроэлектроники на основе полупроводникового кристалла. Информация в микропроцессорной системе передается электрическими импульсами. В одной микросхеме есть много всего - и цифровые порты, и аналогово-цифровые преобразователи для измерений и всякие таймеры и так далее.
Какие бывают микроконтроллеры
Сложно определить, какая именно классификация микроконтроллеров является наиболее приемлемой, ведь на сегодня существует более сорока семейств и более 300 разновидностей данного миниатюрного устройства. Перечислим некоторые из них.
Какие бывают микроконтроллеры:
- Microchip PIC,
- Atmel AVR;
- ATTiny26L;
- ATMega8515 и пр.
Atmel AVR имеют главный нюанс - выполнение каждой команды по 1 или 2 периода тактовой частоты. Им можно сделать несколько простеньких программок в "графическом программировании" Alghorytm Builder.
Стоит обязательно упомянуть о такой подразновидности как ARDUINO, микроплата которого построена на базе контроллера ATMega168, то есть это тот самый AVR, но бутлоадер, что позволяет прошивать его через USB и программировать на упрощенном СИ, который назвали Processing.
Стоит она немало по сравнению с обычным контроллером, код, генерируемый компилятором Processing не слишком оптимальный по объему и быстродействию. И самое главное - программирование под ардуино не дает знаний того, что творится внутри реального контроллера.
А что же такое-то микроконтроллер (МК)? Если сказать по-простому, то фактически это целый компьютер в одной микросхеме! Просто он очень простой по характеристикам (по сравнению с современными ПК, так как есть микроконтроллеры, явно мощнее старые Спектрум и даже за и 486. И предназначен для решения задач в различных "встроенных" системах.
Как устроен микроконтроллер
То есть в микроконтроллере являются:
- арифметико-логическое устройство (процессор), который выполняет вычисления и логические операции;
- Оперативная память (RAM)
- Память программ (Flash), что является аналогом жесткого диска ПК, в ней хранится программа-прошивка;
- энергонезависимая память (EEPROM), туда программа может сохранять данные, которые не будут исчезать при отключении питания. Память программ также энергонезависимая, но сохранять туда данные во время работы программа не может (в принципе это возможно, но так не делают по причине ограниченного количества циклов записи-стирания (10000 для AVR))
- Порты ввода-вывода, которые используются для связи с "внешним миром". Если в ПК порты стандартизированы и имеют каждый свое назначение, то это просто выводы, которые можно настроить программно в зависимости от пожеланий разработчика устройства на МК.
- Другая периферия, например, аналогово-цифровой преобразователь (фактически измеряет значение напряжения на входе, выводя результат в цифровой форме), аналоговый компаратор (сравнивает напряжения аналоговых сигналов и выдает значение больше / меньше чем 1 или 0), таймеры, которые используются для отмеривания отрезков времени, задержек и других функций.
- Также много МК имеют встроенные интерфейсы UART (последовательный порт), JTAG (протокол для отладки программы внутри контроллера), USB и другие.
Назначение микроконтроллеров
А теперь поговорим о область применения МК. Здесь только не придумаешь:
- Использование для замены сложных логических схем. Если нет требований к быстродействию, потому что все же программа, будет вычислять вашу логическую функцию может вносить задержку значительно больше, чем схема, построенная на элементах дискретной логики (микросхемы серии К155, К176 и аналогичные).
- Одним из примеров является, например, схема, реализующая динамическую индикацию на светодиодных семисегментных индикаторах. На логических элементах 4-х разрядная схема динамической индикации выглядит примерно так:
Как видим, работа с датчиками, а также приводами и управление освещением осуществляется с помощью микроконтроллера С8051. А он, в свою очередь связан с ПК, планшетом или другим устройством с полноценной операционной системой. - Применение в различных роботизированных устройствах, включая беспилотные летательные аппараты;
- Например, квадрокоптер руководствуется платой «Crius MultiWii SE», которая построена на микроконтроллере AVR ATMEGA328P. Он обрабатывает сигналы с датчиков углов наклона, ускорений, давления, магнитного поля (компас), и позволяет осуществлять стабилизацию полета
- Просто разные интересные гаджеты, типа часов, термометров, один из примеров - это часы, представленны здесь:
- Блоки управления бытовой техники (стиральная машина, кухонные комбайны, микроволновые печи и т.д.), аудио техникой (регулировка с пультов д / у). также часто используются в качестве управляющих устройств в стабилизаторах напряжения. Например, релейные стабилизаторы в основном построены на микроконтроллере, который, измеряя представленную на вход АЦП напряжение, делает вывод, как следует включить обмотки трансформатора, чтобы на выходе было около 220.
- Различные программаторы и другие устройства, выступают преобразователями интерфейса от ПК к другим устройствам. Например, K-Line адаптер для диагностики инжекторных двигателей.
Так, что МК можно использовать для самых разнообразных целей.
Принцип работы микроконтроллеров
Для микроконтроллеров AVR семейства Tiny характерно наличие одного или двух таймеров. Сказываются они Timer0 и Timer1. Обычно один из таймеров имеет упрощенный набор функций (Timer0), а второй - расширенный (Timer1). Если в МК только один таймер, то он в большинстве случаев имеет расширенный набор функций.
Этот таймер оснащен расширенным набором функций. В микроконтроллере ATtiny 26 он 8-ми разрядный, как и Timer0. Список функций, которые может выполнять данный узел:
- Отсчет временных интервалов
- Генерация прерывания по переполнению счетчика.
- Аппаратная генерация Сигнал с широтно-импульсной модуляцией (ШИМ) (2 канала).
- Выполнение сравнения значения счетчика с предварительно заданными значениями регистров OCR1A, OCR1B и генерация соответствующих прерываний при совпадении.
- Возможность тактирования как от системного тактового генератора (fc) (синхронный режим), так и от внутренней схемы ФАПЧ с частотой 64 МГц (fpck). (Асинхронный режим). Конструктивно процессор выполняется в виде одной микросхемы (иногда - нескольких). Микросхема состоит из пластикового или керамического корпуса, внутри которого содержится миниатюрная полупроводниковая подложка (рис. 1). На этой подложке лазером «начертаны» все электронные схемы микропроцессора. Входы и выходы схемы на подложке соединены с металлическими выводами, расположенных по бокам или снизу корпуса микросхемы.
Рассмотрим самый простой метод - счетчик считает в обычном режиме - циклически из-за переполнения. Задействовано также прерывания по сравнению, допустим с регистром OCR1A. В прерывании по переполнению мы будем включать выход OUT, подавая на него лог.1. В прерывании сравнения Timer1CompA будем выключать выход, подавая на него лог.0.
Итак, мы получим последовательность импульсов, которые идут с одинаковым периодом (равным периоду переполнения счетчика, который можно вычислить как 256 / fт), где fт - частота тактирования таймера. Длина импульса будет пропорциональна значение в регистре OCR1A, чем больше значение, тем позже выключится выход, тем длиннее будет импульс и меньше пауза.
На самом деле описан метод это фактически программное формирования ШИМ, Timer1 же содержит аппаратный ШИМ модулятор, который сам включает и выключает выходы в описанных условиях. Сигналы прерывания также формируются, но обычно при работе в ШИМ режиме прерывания от таймера не используются и запрещаются в настройках управляющих регистров.
Для включения аппаратного ШИМ модулятора существует соответствующий флаг в управляющих регистрах. При переходе в ШИМ режиме работа таймера несколько отличается от стандартного режима. Здесь по умолчанию таймер считает не до переполнения, а до значения, что записано в регистре OCR1С. При достижении равенства значений TCNT1 и OCR1C счетчик сбрасывается в 0. Это позволяет точно устанавливать частоту импульсов, она здесь зависит не только от частоты тактирования, а и от значения OCR1C.
Наличие двух регистров сравнения OCR1A и OCR1B позволяет получить два канала ШИМ модулятора (но с одинаковой частотой). То есть можно легко управлять двумя однотипными нагрузками, например, независимо изменять яркость двух светодиодных ламп.
Следует заметить, что значение регистров OCR1A и OCR1B могут лежать в диапазоне от 0 до значения OCR1C. Конечно, никто не запрещает записать туда значение которых превышает регистр OCR1C, но в таком случае мы будем иметь на выходе сигнал с постоянным уровнем а не импульсную последовательность, так как значение TCNT1 никогда не достигнет условия равенства с регистром сравнения, согласно сигнал на выходе не будет меняться.
ШИМ модулятор в МК ATTiny 26 имеет как прямые выходы OC1A, OC1B так и инверсные OC1A, OC1B. При том уровне на инверсных выходах в ШИМ режиме изменяются не одновременно с изменением уровней прямых выходов. Переход из 0 в 1 инверсного импульса происходит на один период тактовой частоты таймера позже, чем переход из 1 в 0 на прямом выходе, а обратный переход из 1 в 0 на инверсном выходе происходит наоборот раньше на период чем переход из 0 в 1 на прямом. Включение прямых и инверсных выходов, а также порядок изменения сигнала на них можно изменять с помощью управляющих регистров. Стандартное формирования ШИМ сигнала таймером ATTiny 26 показано на рисунке: Следует отметить, что значение в регистрах OCR1A и OCR1B меняются в момент обнуления счетчика. Это реализовано аппаратно с помощью так называемых буферных регистров, то есть программа может изменить значение в любой момент времени, но запись его в регистры сравнения произойдет в момент перехода счетчика через 0, до этого момента они хранятся в буфере.
Выводы
Словом, в современном мире практически все приборы так или иначе связаны с такими устройствами как микроконтроллер и микропроцессор, которые за многие десятки лет, с 1971 года, трансформировались из крупных приспособлений на транзисторах. Без них невозможно представить себе сейчас программирование. Ведь все вычислительные процессы базируются именно на них. Они проникли также и в сферу детских игрушек, которые нынче благодаря развитию микроконтроллеров может похвастаться роботоинжинирингом для детей на базе Arduino STEMbot.
ПОДХОДЯЩИЕ ТОВАРЫ
Комментарии к статье "Что такое микроконтроллеры - назначение и устройство"
Оставьте свой комментарий
Крутая статья, подробная, написана в интересном стиле, есть схемы искать уже нет их надобности в интернете. Спасибо.