Микроконтроллер: определение, задачи, разновидности, применение
Содержание:
- Системы на микроконтроллерах и БИС программируемой логики
- Примечания
- Три условия для желающих освоить микроконтроллер
- Arduino
- Что такое программа
- История
- Микропроцессор
- Выбор языка программирования и среды разработки для программирования
- MCS-96 (16-разр.)
- Применение
- The Introduction to Programmable Logic Controllers for Beginners
- Что такое микроконтроллер?
- Корпуса для AVR микросхем
- Литература
- Основные узлы микроконтроллера
- MCS-51 (8-разр.)
- Пример программы зажигания светодиода, подключенного к выводу микроконтроллера AVR
- Заключение
Системы на микроконтроллерах и БИС программируемой логики
Рассматривается технология проектирования микроэлектронных систем на основе микроконтроллеров и БИС программируемой логики (ПЛИС). Описаны «ядра» MCS-51 и AVR современных микроконтроллеров, микроконвертер ADjaC812 фирмы Analog Devices, семейства ПЛИС на примере изделий фирмы Altera. Рассмотрено проектирование цифровых устройств на основе ПЛИС с использованием языка AHDL. Описаны различные средства программирования и отладки микропроцессорных контролеров. Книга включает многочисленные примеры схем и фрагменты программ, которые могут быть использованы в практической работе.
Примечания
- Васильев А. Е. , Микроконтроллеры: разработка встраиваемых приложений, изд. «БХВ-Петербург» 2008
- Renesas, Gartner, Chart created by Renesas Electronics based on Gartner data. (25 March 2010). Дата обращения 30 августа 2011.
- Микропроцессоры и микропроцессорные комплекты интегральных микросхем / под редакцией Шахнова В. А.. — М.: «Радио и связь», 1988. — Т. 2.
- Одноплатные микроЭВМ / Под. ред. В. Г. Домрачева.. — Микропроцессорные БИС и их применение. — М.: Энергоатомиздат, 1988. — С. 128. — ISBN 5-283-01489-4.
- Глава 2. Элементная база отечественных персональных ЭВМ // Справочник по персональным ЭВМ / Под. ред. чл.-корр. АН УССР Б. Н. Малиновского.. — К.: Тэхника, 1990. — С. 384. — ISBN 5-335-00168-2.
- Молчанов А. А., Корнейчук В. И., Тарасенко В. П. и др. Справочник по микропроцессорным устройствам. — К.: Тэхника, 1987. — С. 288.
Три условия для желающих освоить микроконтроллер
1. Желание и настойчивость в достижении поставленной цели
Этот пункт, на мой взгляд, — самый главный. Не будет желания, а еще хуже — настойчивого желания, то и не будет результата. Главное не пасовать и не останавливаться, проявите настойчивость — и все получится (и не только в деле освоения микроконтроллеров).2. Знание устройства микроконтроллера.
Немаловажный фактор. Ведь, согласитесь, не зная как устроен микроконтроллер, что он имеет в своем распоряжении, как это все работает, — мы не сможем использовать все возможности микроконтроллера, выжать из него все, на что он способен.
Возможно и не стоит очень глубоко копаться во «внутренностях» микроконтроллера, но основное, так сказать — азы, мы знать должны (этим мы и будем заниматься на страницах сайта — изучать азы работы с микроконтроллером).3. Знание команд управления микроконтроллерам.
Микроконтроллер, как собака (такое вот интересное сравнение), будет смотреть на нас умными глазами и вилять своим хвостом, пока не подадим ему команду на выполнение каких-то действий.
В отличие от умной собаки, микроконтроллер понимает намного больше команд — более 130 штук.
Так вот, чтобы микроконтроллер не только вилял хвостом, но и выполнял нужную нам работу, — необходимо знать команды управления им.
Сразу хочу сказать, для начала не надо зубрить все 130 команд, достаточно будет знания и половины (и даже меньше). К тому же, многие команды дублируют друг-друга. Но чем больше команд мы будем знать, тем эффективней мы сможем управлять микроконтроллером и тем красивее и элегантнее будут выходить из-под нашего пера программы.
Итого, если у вас есть настойчивое желание освоить микроконтроллер, тогда продолжаем.
Arduino
Также на микроконтроллерах AVR сейчас работает Arduino — электронный конструктор, платформа для быстрой и удобной разработки различных устройств автоматизации и управления. Данное решение состоит из комплекса программ и аппаратных составляющих — печатных плат с компонентами, центральную и главную роль в которых играет плата с микроконтроллером AVR — ATmega328, ATmega168, ATmega2560, ATmega32U4, ATTiny85 (в старых моделях — ATmega8, ATmega1280 и другие).
Рис. 3. Основная плата Arduino и дополнительные модули.
Данный обзор очень краток, на самом деле областей применения AVR микроконтроллеров гораздо больше. Однажды разобрав какое-то устройство у себя дома вы сможете увидеть внутри него AVR чип и здесь нет ничего сверхъестественного, микроконтроллеры набирают все большую популярность и более широко применяются в самых разных областях.
Что такое программа
Какие задачи вы возлагаете на микроконтроллер, и как он будет их выполнять, определяется заложенной в него программой – программой которую для микроконтроллера составляете вы сами.
К примеру, мы хотим, чтобы микроконтроллер помигал светодиодом. Довольно простая задача, но тем не менее, для того, чтобы микроконтроллер выполнил ее, мы, предварительно, должны шаг за шагом описать все действия микроконтроллера — написать программу, которую он должен выполнить для получения нужного нам результата – мигающий светодиод.
Что-то вроде такого:
Зажечь светодиод:
— настроить вывод микроконтроллера,к которому подключен светодиод, для работы на вывод информации
— подать на этот вывод логический уровень, который позволит зажечь светодиод
Подождать некоторое время:
— перейти к подпрограмме формирующей паузу (которую тоже нужно “прописать”)
— по выполнению подпрограммы паузы вернуться в основную программу
Погасить светодиод:
— подать на вывод микроконтроллера логический уровень, гасящий светодиод
и так далее.
С термином Программа неразрывно связан другой термин – Алгоритм.
История
С появлением однокристальных микро-ЭВМ связывают начало эры массового применения компьютерной автоматизации в области управления. По-видимому[источник не указан 195 дней], это обстоятельство и определило термин «контроллер» (англ. controller — регулятор, управляющее устройство).
В связи со спадом отечественного производства и возросшим импортом техники, в том числе вычислительной, термин «микроконтроллер» (МК) вытеснил из употребления ранее использовавшийся термин «однокристальная микроЭВМ».
Первый патент на однокристальную микроЭВМ был выдан в 1971 году инженерам М. Кочрену и Г. Буну, сотрудникам американской Texas Instruments. Именно они предложили на одном кристалле разместить не только процессор, но и память с устройствами ввода-вывода.
В 1976 году американская фирма Intel выпускает микроконтроллер i8048. В 1978 году фирма Motorola выпустила свой первый микроконтроллер MC6801, совместимый по системе команд с выпущенным ранее микропроцессором MC6800. Через 4 года, в 1980 году, Intel выпускает следующий микроконтроллер: i8051. Удачный набор периферийных устройств, возможность гибкого выбора внешней или внутренней программной памяти и приемлемая цена обеспечили этому микроконтроллеру успех на рынке. С точки зрения технологии микроконтроллер i8051 являлся для своего времени очень сложным изделием — в кристалле было использовано 128 тыс. транзисторов, что в 4 раза превышало количество транзисторов в 16-разрядном микропроцессоре i8086.
На сегодняшний день существует более 200 модификаций микроконтроллеров, совместимых с i8051, выпускаемых двумя десятками компаний, и большое количество микроконтроллеров других типов. Популярностью у разработчиков пользуются 8-битные микроконтроллеры PIC фирмы Microchip Technology и AVR фирмы Atmel, 16-битные MSP430 фирмы TI, а также 32-битные микроконтроллеры архитектуры ARM, которую разрабатывает фирма ARM Limited и продаёт лицензии другим фирмам для их производства. Несмотря на популярность в России микроконтроллеров, упомянутых выше, по данным Gartner Group от 2009 года мировой рейтинг по объёму продаж выглядит иначе: первое место с большим отрывом занимает Renesas Electronics на втором Freescale, на третьем Samsung, затем идут Microchip и TI, далее все остальные.
В СССР велись разработки оригинальных микроконтроллеров, также осваивался выпуск клонов наиболее удачных зарубежных образцов.
В 1979 году в СССР НИИ ТТ разработали однокристальную 16-разрядную ЭВМ К1801ВЕ1, микроархитектура которой получила название «Электроника НЦ».
Микропроцессор
С микропроцессором (далее МП) дела обстоят немного иначе. Он содержит в себе арифметико-логическое устройство, блок синхронизации и управления, запоминающие устройство, регистры и шину. То есть МП содержит в себе только то, что непосредственно понадобится для выполнения арифметический и логических операций. Все остальные комплектующие (ОЗУ, ПЗУ, устройства ввода/вывода, интерфейсы) нужно подключать извне.
Структурная схема микропроцессорного устройства
Первые микропроцессоры появились тоже в начале 70-х. Самым популярным на тот момент считался . Это микропроцессор, разработанный компанией Intel и представленный 15 ноября 1971 года. Он имел внушающие на тот период характеристики:
- 2300 транзисторов;
- тактовая частота — 740 кГц;
- разрядность регистров и шины — 4 бита;
- техпроцесс — 10 мкм;
- площадь кристалла: — 12 мм².
К слову, 4004 был выполнен в обычном DIP-16 корпусе. Этот МП является самой популярной микросхемой для коллекционирования. Некоторые экземпляры продаются по 400 $ за штуку. Менее раритетные стоят около 250 $.
Уже через пару лет 8-битные МП позволили создавать первые бытовые микрокомпьютеры.
Естественно, тут преимуществом является то, что к МП можно на выбор подключать разную периферию с разными характеристиками (что не во всех случаях можно на МК). Второе основное отличие микропроцессора от микроконтроллера в том, что МП имеют больше вычислительной мощности. Их не имеет смысла ставить в микроволновки и «умные» лампочки. Микропроцессоры применяют там, где вычислительная мощность МК уже не справляется — игровые приставки, сложные вычислительные устройства и приборы, гаджеты.
Получается, чтобы обеспечить работоспособность микропроцессора, нужно подключить ему хотя бы минимальный набор периферии. Минусы:
- Размер — если в случае МК всё уже находится в одном корпусе, то минимальный набор элементов для работы МП занимает больше места.
- Цена — обычно, вся «сборка» комплектующих для МП выходит гораздо дороже «голых» микроконтроллеров.
Плюсы:
- Производительность — микропроцессоры обладают большей производительностью, чем микроконтроллеры.
- Выбор — в случае МП у вас есть возможность подобрать комплектующие. Это позволит поставить более подходящую под ваши цели периферию.
Выбор языка программирования и среды разработки для программирования
Честно говоря, выбор языка программирования и среды разработки вопрос очень ответственный, навязывать кому-то свои предпочтения и что-то советовать дело довольно-таки трудное.
Давайте попробуем подойти к этому выбору не предвзято, чисто с практической стороны.
1. Существует два основных языка программирования микроконтроллеров — Ассемблер (язык низкого уровня) и Си (язык высокого уровня).
Если мы хотим программировать микроконтроллеры используя полностью все их возможности (а мы это хотим), то необходимо изучать эти два языка.
2. Среда разработки для программирования микроконтроллеров.
Тут выбор большой и очень много мнений. Поэтому можно сказать: «Каждая лягушка хвалит свое болото». Мне, к примеру, очень нравится малораспространенная графическая среда разработки «Algorithm Builder», и «квакать» о ее преимуществах перед другими программами я могу очень долго. Но будем делать выбор, как было сказано выше, не предвзято и практично.
Микроконтроллеры AVR выпускает фирма Atmel, она же предоставляет в наше распоряжение бесплатную среду программирования «Atmel Studio» (бывшая AVR Studio). На ней мы и остановимся.
Интегральная среда разработки (IDE — Integrated development environment) Atmel Studio позволит нам:
— писать программы как на Ассемблере, так и на Си (Почему на Си. Программа «Atmel Studio» позволяет писать программы на трех языках (О чем мы и погорим в первой статье), но есть одно но: программы на Си++ мы рассматривать не будем, по одной причине, и в следующей статье я расскажу об этом
— отладить программу
— перевести программу в машинный код (откомпилировать)
— записать программу в микроконтроллер
Все, выбор мы сделали:
Теперь осталось выполнить два пункта:
1. Обзавестись каким-нибудь стартовым набором (для начала хватит и микроконтроллера ATmega8, нескольких светодиодов, пары кнопок и сопротивлений к ним).
2. Установить (именно установить, а не скачать, и с регистрацией) с официального сайта Atmel (http://www.atmel.com/ru/) программу Atmel Studio.
Программировать микроконтроллеры мы будем с использованием программатора USBASP.
Отдельной статьи по Atmel Studio я писать не буду, будем изучать ее постепенно, по мере надобности и в связке со статьями по устройству и программированию микроконтроллеров.
3. Я добавил в набор очень нужную вещь, она Вам в дальнйшем очень пригодится — USB-TTL преобразователь (конвертер). Почему пригодится:
— русифицируя программу мы установили «Visual Studio-2015», кто не русифицировал программу — установите последнюю версию «Visual Studio», мы не только будем изучать базовую программу «Atmel Studio». К сожалению, на сегодняшний день только программа 2015 года позволяет перейти на русский язык в «Atmel Studio», но а мы с Вами, в «Visual Studio», будем создавать оболочки для работу с МК.
Следующие статьи
Основы программирования микроконтроллеров AVRУстройство и программирование микроконтроллеров AVR в среде Atmel Studio на языках Ассемблер и Си
Published by: Мир микроконтроллеров
Date Published: 10/01/2016
MCS-96 (16-разр.)
Обозначение |
Основные параметры |
Тип корпуса |
Обозначение ТУ |
Руководство пользователя |
1874ВЕ36,Л1874ВЕ36 | Архитектура и система команд MCS-96, тактовая частота 20 МГц, ОЗУ 232×8, ПЗУ 8К×8, два 16-разрядных таймера, АЦП, ШИМ, потребляемая мощность 300 мВт, напряжение питания 5 В ± 10 % |
6108.68-1 / 3D-модель (Л1874ВЕ36) 4235.88-1 / 3D-модель (1874ВЕ36) |
АЕЯР.431280.169 | |
1874ВЕ66Т | Архитектура и система команд MCS-96, 8-16 МГц, память программ 16К×8 типа OTP ROM, АЦП (14 каналов, 8/10 бит, PTS, EPA, до 64 линий ввода/вывода, 3-фазный генератор формы сигнала (WFG), программируемый генератор частоты; обеспечивает функции управления двигателями (Motor Control) | 4235.88-13D-модель | АЕЯР.431280.713 | |
1874ВЕ76Т | Архитектура и система команд MCS-9620 МГц, ОЗУ 488×8, ПЗУ 16К×8 типа ОТР ROM, АЦП, 3 блока ШИМ, PTS, HSIO, UART, WDT | 4235.88-13D-модель | АЕЯР.431280.346 | |
1874ВЕ86Т | Архитектура и система команд MCS-96, 16 МГц, ОЗУ 488×8, ПЗУ 16К×8 типа OTP ROM, два 16-разрядных таймера, АЦП, ШИМ, EPA, PTS, 3-фазный генератор сигналов | 4235.88-13D-модель | АЕЯР.431280.496 | |
1874ВЕ05Т | Устойчивый к СВВФ, архитектура и система команд MCS-96, без ПЗУ и АЦП, 20 МГц, ОЗУ 488×8, UART, WDT, HSIO, 3 канала ШИМ, PTS | 4235.88-13D-модель | АЕЯР.431280.575 | |
1874ВЕ96Т | Архитектура и система команд MCS-96, 33 МГц, ОЗУ 2024×8 бит, расширенное ОЗУ 2К×8 бит, ПЗУ 16К×16 бит EEPROM, 8×16-разрядных АЦП, 14-разрядный ЦАП, UART, HSIO, блок ШИМ, PTS, WDT, модуль отладки OCDS, напряжение питания 3,3 В | 4235.88-13D-модель | АЕЯР.431280.835 | |
1874ВЕ7Т, 1874ВЕ71Т | Архитектура и система команд MCS-96, устойчивый к СВВФ, система команд и архитектура MCS-96, ОЗУ 2024х8 бит, АЦП, ШИМ, UART, SPI, контроллеры интерфейсов ГОСТ Р52070-2003 и Space Wire | 4235.88-13D-модель | АЕЯР.431280.903 | |
1874ВЕ8Т | Архитектура AMSC-96, система команд MCS-96, ОЗУ 2 Кбайт, модули CAN (сдвоенный), USART, SPI, I2C, LIN | 4235.88-13D-модель | АЕНВ.431280.037 |
Применение
Использование в современном микроконтроллере достаточного мощного вычислительного устройства с широкими возможностями, построенного на одной микросхеме вместо целого набора, значительно снижает размеры, энергопотребление и стоимость построенных на его базе устройств.
Используются в управлении различными устройствами и их отдельными блоками:
- в вычислительной технике: материнские платы, контроллеры дисководов жестких и гибких дисков, CD и DVD, калькуляторах;
- электронике и разнообразных устройствах бытовой техники, в которой используется электронные системы управления — стиральных машинах, микроволновых печах, посудомоечных машинах, телефонах и современных приборах, различных роботах, системах «умный дом», и др..
В промышленности:
- устройства промышленной автоматики — от программируемого реле и встраиваемых систем до ПЛК,
- систем управления станками
В то время как 8-разрядные микропроцессоры общего назначения полностью вытеснены более производительными моделями, 8-разрядные микроконтроллеры продолжают широко использоваться. Это объясняется тем, что существует большое количество применений, в которых не требуется высокая производительность, но важна низкая стоимость. В то же время, есть микроконтроллеры, обладающие больши́ми вычислительными возможностями, например, цифровые сигнальные процессоры, применяющиеся для обработки большого потока данных в реальном времени (например, аудио-, видеопотоков).
The Introduction to Programmable Logic Controllers for Beginners
With so many books and courses online that offer training in PLC programming, new learners/students, plant operators, technicians and engineers aspiring to learn PLCs may get confused where to get started. That is the reason why I came up with this book to help new PLC learners build good foundational knowledge before they embark on a serious PLC programming training. This book starts with a background into Relay control systems to help you appreciate why industries changed their control systems from Relays to PLCs. If you can understand how Relay systems was and is still used in industrial controls, it becomes easier for you to learn PLC systems.
Что такое микроконтроллер?
Микроконтроллер – это устройство на интегральной микросхеме (ИМС), используемое для управления другими частями электронной системы, обычно через микропроцессорное устройство, память и несколько периферийных устройств. Эти устройства оптимизированы для встраиваемых приложений, которые требуют как возможностей обработки, так и гибкого, быстрого взаимодействия с цифровыми, аналоговыми или электромеханическими компонентами.
Наиболее распространенным способом обозначения этой категории интегральных микросхем является «микроконтроллер», но взаимозаменяемо также используется аббревиатура «MCU», так как расшифровывается «microcontroller unit». Также иногда вы можете увидеть «µC» (где греческая буква мю заменяет приставку «микро»).
«Микроконтроллер» является удачно выбранным названием, поскольку оно подчеркивает определяющие характеристики этой категории продуктов. Приставка «микро» подразумевает малые размеры, а термин «контроллер» здесь подразумевает расширенную способность выполнять функции управления. Как указано выше, эта функциональность является результатом объединения цифрового процессора и цифровой памяти с дополнительным аппаратным обеспечением, которое разработано специально, чтобы помочь микроконтроллеру взаимодействовать с другими компонентами.
Микроконтроллеры и микропроцессоры
Иногда при обращении к микроконтроллеру люди используют термин «микропроцессор», но эти два устройства необязательно идентичны. И микропроцессоры, и микроконтроллеры работают как небольшие, высокоинтегрированные вычислительные системы, но они могут служить различным целям.
Термин «процессор» используется для идентификации системы, которая состоит из центрального процессора и (необязательно) некоторой памяти. Микропроцессор – это устройство, которое реализует все функциональные возможности процессора в одной интегральной микросхеме. Микроконтроллеры, для сравнения, придают большее значение дополнительным аппаратным модулям, которые позволяют устройству управлять системой, а не просто выполнять инструкции и хранить данные.
Ниже приведена диаграмма, которая иллюстрирует эту концепцию.
Диаграмма, поясняющая различие между понятиями «микроконтроллер» и «микропроцессор»
В общем, взаимозаменяемое использование терминов «микропроцессор» и «микроконтроллер» не является большой проблемой, когда мы говорим неформально и стараемся не повторять одно и то же слово снова и снова
Однако в контексте технического обсуждения важно сохранить различие между этими двумя понятиями
Микроконтроллеры и цифровые сигнальные процессоры (DSP)
Цифровой сигнальный процессор (или DSP) – это микропроцессор, оптимизированный для сложных вычислительных задач, таких как цифровая фильтрация, математический анализ сигналов в реальном времени и сжатие данных. Очень сложный микроконтроллер может быть в состоянии заменить цифровой сигнальный процессор, но он всё еще считается микроконтроллером, если значительная часть его внутренней схемы предназначена для управления, мониторинга и связи с окружающей системой.
Корпуса для AVR микросхем
Микроконтроллеры AVR выпускаются в корпусах DIP, SOIC, TQFP, PLCC, MLF, CBGA и других. Примеры некоторых корпусов приведены на рисунке ниже.
Рис. 1. Корпуса микросхем для микроконтроллеров AVR — DIP, SOIC, TQFP, PLCC.
Как видим, корпуса для AVR микроконтроллеров есть на любой вкус и потребности. Можно выбрать недорогой чип в корпусе DIP8 и смастерить миниатюрную игрушку или же какое-то простое устройство, а можно купить более функциональный и дорогой микроконтроллер в корпусе TQFP64 и подключить к нему разнообразные датчики, индикаторы и исполнительные устройства для выполнения более серьезных задач.
Для начинающих программистов AVR наиболее удобны микросхемы в корпусе DIP, данные микросхемы удобно паять и они очень просто монтируются на разнообразных монтажных панелях, к примеру на Breadboard и других.
Рис. 2. AVR микроконтроллеры ATmega8 и ATtiny13 в корпусе DIP на макетной панели (Breadboard).
Из рисунка видим что здесь ничего не нужно паять, поместили микроконтроллер в гнезда макетной панели и можем подключать к нему питание, светодиоды с резисторами, различные микросхемки, программатор и разную периферию. Очень просто и удобно!
Литература
- Бродин В. Б., Калинин А. В. Системы на микроконтроллерах и БИС программируемой логики. — М.: ЭКОМ, 2002. — ISBN 5-7163-0089-8.
- Жан М. Рабаи, Ананта Чандракасан, Боривож Николич. Цифровые интегральные схемы. Методология проектирования = Digital Integrated Circuits. — 2-е изд. — М.: Вильямс, 2007. — ISBN 0-13-090996-3.
- Микушин А. Занимательно о микроконтроллерах. — М.: БХВ-Петербург, 2006. — ISBN 5-94157-571-8.
- Новиков Ю. В., Скоробогатов П. К. Основы микропроцессорной техники. Курс лекций. — М.: Интернет-университет информационных технологий, 2003. — ISBN 5-7163-0089-8.
- Фрунзе А. В. Микроконтроллеры? Это же просто! — М.: ООО «ИД СКИМЕН», 2002. — Т. 1. — ISBN 5-94929-002-X.
- Фрунзе А. В. Микроконтроллеры? Это же просто! — М.: ООО «ИД СКИМЕН», 2002. — Т. 2. — ISBN 5-94929-003-8.
- Фрунзе А. В. Микроконтроллеры? Это же просто! — М.: ООО «ИД СКИМЕН», 2003. — Т. 3. — ISBN 5-94929-003-7.
Основные узлы микроконтроллера
Микроконтроллер состоит из центрального процессора (ЦП, CPU), энергонезависимой памяти, энергозависимой памяти, периферийных устройств и вспомогательных цепей.
Центральный процессор (CPU)
Центральный процессор выполняет арифметические операции, управляет потоком данных и генерирует управляющие сигналы в соответствии с последовательностью инструкции, созданных программистом. Эта чрезвычайно сложная схема, необходимая для функциональности процессора, разработчику не видна. Фактически, благодаря интегрированным средам разработки и языкам высокого уровня, таким как C, написание кода для микроконтроллеров часто является довольно простой задачей.
Память
Энергонезависимая память используется для хранения программы микроконтроллера, то есть (часто очень длинного) списка инструкций машинного языка, которые точно указывают процессору, что делать. Обычно вместо «энергонезависимой памяти» вы будете видеть слово «flash» («флеш»), которое относится к определенному типу энергонезависимого хранилища данных.
Энергозависимая память (то есть ОЗУ, RAM) используется для временного хранения данных. Эти данные теряются, когда микроконтроллер теряет питание. Внутренние регистры также обеспечивают временное хранение данных, но мы не рассматриваем их как отдельный функциональный блок, поскольку они интегрированы в центральный процессор.
Периферийные устройства
Мы используем слово «периферия» для описания аппаратных модулей, которые помогают микроконтроллеру взаимодействовать с внешней системой. Следующие пункты описывают различные категории периферийных устройств и приводят их примеры.
-
Преобразователи данных: аналого-цифровой преобразователь, цифро-аналоговый преобразователь, генератор опорного напряжения.
Данный график демонстрирует данные трехосевого акселерометра, оцифрованные с помощью встроенного АЦП микроконтроллера
- Генерирование тактовых сигналов: внутренний генератор, схема на кварцевом резонаторе, петля фазовой автоподстройки частоты.
- Расчет времени: таймер общего назначения, часы реального времени, счетчик внешних событий, широтно-импульсная модуляция.
- Обработка аналоговых сигналов: операционный усилитель, аналоговый компаратор.
- Ввод/вывод: цифровые входные и выходные цепи общего назначения, параллельный интерфейс памяти.
- Последовательная связь: UART, SPI, I2C, USB
Вспомогательные цепи
Микроконтроллеры включают в себя множество функциональных блоков, которые не могут быть классифицированы как периферийные устройства, поскольку их основная цель не состоит в управлении, мониторинге или обмене данными с внешними устройствами. Тем не менее, они очень важны – они поддерживают внутреннюю работу устройства, упрощают реализацию и улучшают процесс разработки.
- Схема отладки позволяет разработчику тщательно контролировать микроконтроллер во время выполнения инструкций. Это важный, а иногда и необходимый метод отслеживания ошибок и оптимизации производительности прошивки.
-
Прерывания являются чрезвычайно ценным видом работы микроконтроллера. Прерывания генерируются внешними или внутренними аппаратными событиями и заставляют процессор немедленно реагировать на эти события, выполняя определенную группу инструкций.
Программы микроконтроллера, написанные на C, организованы в функции. Прерывание заставляет выполнение программы «переходить» в процедуру обработки прерывания (ISR), и после того, как ISR завершил выполнение своих задач, процессор возвращается к функции, которая выполнялась, когда произошло прерывание. - Модуль генерирования тактового сигнала можно считать периферийным устройством, если он предназначен для генерирования сигналов, которые будут использоваться вне микросхемы. Но во многих случаях основная цель внутреннего генератора микроконтроллера состоит в том, чтобы предоставить тактовый сигнал для центрального процессора и периферийных устройств. Внутренние генераторы часто имеют низкую точность, но в приложениях, которые могут допускать эту низкую точность, они являются удобным и эффективными способом упростить конструкцию и сэкономить место на плате.
- Микроконтроллеры могут включать в себя различные типы схем электропитания. Интегрированные стабилизаторы напряжения позволяют в самой микросхеме генерировать необходимое напряжение питания, модули управления питанием могут использоваться для значительного снижения потребления тока устройством в неактивных состояниях, а модули супервизора могут переводить процессор в состояние сброса, когда напряжение питания недостаточно высоко, чтобы обеспечить надежную работу.
MCS-51 (8-разр.)
Обозначение |
Основные параметры |
Тип корпуса |
Обозначение ТУ |
Руководство пользователя |
Н1830ВЕ31,Н1830ВЕ51 | Архитектура и система команд MCS-51, тактовая частота 12 МГц, ОЗУ 128×8, ПЗУ 4К×8 (только в Н1830ВЕ51), два 16-разрядных таймера, UART, потребляемая мощность 132 мВт, напряжение питания 5 В ± 10 % | H16.48-2B3D-модель | АЕЯР.431280.070 | КФДЛ.431281.005 |
1882ВЕ53У | Архитектура и система команд MCS-51, тактовая частота 24 МГц, ОЗУ 256×8, ПЗУ 12К×8, память данных EEPROM 2К×8, три 16-разрядных таймера, порты UART, SPI, сторожевой таймер (WDT), UП = 5В | Н16.48-2В3D-модель | АЕЯР.431280.286 АЕЯР.431280.286-02 | |
1830ВЕ32У | Устойчивый к СВВФ, архитектура и система команд MCS-51, без ПЗУ, 12 МГц, ОЗУ 256×8, таймеры 3×16 бит, UART, 7 источников прерываний, программируемый массив счетчиков (5 каналов), длительность командного цикла 1000 нс, Uп = 5В ± 5 % | Н16.48-2В3D-модель | АЕЯР.431280.378 | |
1830ВЕ32АУ | Устойчивый к СВВФ, архитектура и система команд MCS-51, 8-разрядный микроконтроллер без ПЗУ, 16 МГц, ОЗУ 256×8, таймеры 3×16 бит, UART, 7 источников прерываний, программируемый массив счетчиков (5 каналов), длительность командного цикла 750 нс, Uп = 3,3 В | Н16.48-2В3D-модель | АЕЯР.431280.378 | |
1882ВМ1Т | Архитектура и система команд MCS-51, 24 МГц, память программ Flash 32 Kбайт, память данных EEPROM 4 Кбайт, блок кодирования по ГОСТ 28147-89, блок MDU, UART, SPI, MIL-STD-1553, I2C, LIN, UП = 3В | 4203.64-13D-модель | АЕЯР.431280.909 |
Пример программы зажигания светодиода, подключенного к выводу микроконтроллера AVR
Для лучшего понимания работы с портами микроконтроллеров AVR рассмотрим примеры простейших программ, осуществляющих включение и выключение светодиода, подключенного к выводу порта.
Светодиод к микроконтроллеру AVR можно подключить одним из следующих двух способов, представленных на рисунке.
В первом случае (рисунок слева) светодиод будет загораться от сигнала высокого уровня на выводе PD1, а во втором случае (рисунок справа) — от сигнала низкого уровня на этом же контакте.
В зависимости от способа подключения светодиод будет загораться либо от сигнала высокого уровня, подаваемого на вывод PD1 микроконтроллера, как в первом случае, либо от сигнала низкого уровня в случае подключения, изображенного на втором рисунке.
Теперь рассмотрим примеры программ, реализующих данные способы включения светодиода.
/*************************************************************************ПРИМЕР ВКЛЮЧЕНИЯ СВЕТОДИОДА СИГНАЛОМ ВЫСОКОГО УРОВНЯПример подключения на рисунке 1**************************************************************************/
#include <avr/io.h> // заголовок чтобы задействовать функции контроля данных на выводах микроконтроллера int main(void) { // начало основной программыDDRD = 0xff; // все выводы порта D сконфигурировать как выходыPORTD |= 1<<1; // установить «1» (высокий уровень) на выводе PD1} // закрывающая скобка основной программы
/***********************************************************************ПРИМЕР ВКЛЮЧЕНИЯ СВЕТОДИОДА СИГНАЛОМ НИЗКОГО УРОВНЯПример подключения на рисунке 2************************************************************************/
#include <avr/io.h> // заголовок чтобы задействовать функции контроля данных на выводах микроконтроллераint main(void) { // начало основной программыDDRD = 0xff; // все выводы порта D сконфигурировать как выходыPORTD &= ~_BV(PD1); // установить «0» (низкий уровень) на выводе PD1} // закрывающая скобка основной программы
Теперь для случая, представленного на рисунке 1, попробуем мигнуть светодиодом. Для этой цели воспользуемся функцией задержки _delay_ms().
Функция _delay_ms() формирует задержку в зависимости от передаваемого ей аргумента, выраженного в миллисекундах (в одной секунде 1000 миллисекунд). Максимальная задержка составляет 262.14 миллисекунд. Если передать функции значение более 262.14, то осуществится автоматическое уменьшение разрешения до 1/10 миллисекунды, что обеспечивает задержки до 6.5535 секунд. Более длительные задержки можно реализовать с помощью циклов в программе.
Функция _delay_ms() содержится в файле delay.h, поэтому его нужно будет подключить к основной программе. Также для работы этой функции необходимо задать значение тактовой частоты микроконтроллера в Герцах (Гц).
/*************************************ПРИМЕР МИГАНИЯ СВЕТОДИОДОМПример подключения на рисунке 1**************************************/
#define F_CPU 1000000UL // указываем тактовую частоту микроконтроллера в герцах#include <avr/io.h> // заголовок чтобы задействовать функции контроля данных на выводах микроконтроллера#include <util/delay.h> // заголовок чтобы задействовать функции задержки в программе
int main(void) { // начало основной программыDDRD = 0xff; // все выводы порта D сконфигурировать как выходы
PORTD |= _BV(PD1); // установить «1» (высокий уровень) на выводе PD1, //зажечь светодиод
_delay_ms(500); // ждем 0.5 сек.
PORTD &= ~_BV(PD1); // установить «0» (низкий уровень) на выводе PD1,//погасить светодиод
_delay_ms(500); // ждем 0.5 сек.
PORTD |= _BV(PD1); // установить «1» (высокий уровень) на выводе PD1,//зажечь светодиод
_delay_ms(500); // ждем 0.5 сек.
PORTD &= ~_BV(PD1); // установить «0» (низкий уровень) на выводе PD1,//погасить светодиод
} // закрывающая скобка основной программы
Заключение
Построение процессора на основе микропрограммного управления имеет свои плюсы и минусы. Оно позволяет настраивать процессор на выполнение различных наборов команд. То есть, один и тот же базовый кристалл может использоваться для разных моделей процессоров и микроконтроллеров. Достаточно изменить содержимое памяти микрокоманд.
Если процессор допускает загрузку, полностью или частично, памяти микрокоманд из внешней памяти, то мы можем изменять набор команд прямо во время выполнения программы. А еще, появляется возможность исправлять ошибки в работе процессора, если они были допущены при его его разработке и изготовлении.
При этом микропрограммное управление усложняет структуру процессора и делает время выполнения команд переменным. А для сохранения быстродействия процессора требуется повышать частоту работы его ядра.
Использует ли используемый Вами микроконтроллер или процессор микропрограммное управление? Если это не описано в документации, Вы можете никогда этого не узнать. Разное время выполнения разных команд не обязательно является признаком того, что используются микрокоманды. Точно так же, постоянная длительность машинного цикла не обязательно говорит об их отсутствии.
Повлияет ли на Ваше использование микроконтроллера то, что он сделан на основе жесткой логики или с микропрограммным управлением? В большинстве случаев нет. Поэтому и статья факультативная. Но иметь представление о концепции микропрограммного управления полезно. Однако, в некоторых случаях, например, при использовании сложных микроконтроллеров в системах реального времени или с жесткими требованиями по соблюдению временных параметров, микропрограммное управление может оказывать влияние, которое уже потребуется учитывать.
На сегодня все. В следующей статье начнем знакомство с понятием архитектуры ЭВМ, что имеет непосредственное отношение практике использования микроконтроллеров.