Из чего состоит микроконтроллер AVR. Какие основные компоненты входят в его архитектуру. Как организована память в AVR-микроконтроллерах. Какие особенности имеет процессорное ядро AVR.
Основные компоненты архитектуры микроконтроллеров AVR
Микроконтроллеры семейства AVR имеют типичную RISC-архитектуру, которая включает следующие ключевые компоненты:
- Процессорное ядро (CPU)
- Память программ (Flash-память)
- Оперативная память (SRAM)
- Энергонезависимая память данных (EEPROM)
- Порты ввода-вывода
- Таймеры/счетчики
- АЦП и ЦАП
- Интерфейсы для связи с внешними устройствами (UART, SPI, I2C и др.)
Рассмотрим подробнее основные элементы архитектуры AVR-микроконтроллеров.
Процессорное ядро AVR
Центральным элементом любого микроконтроллера AVR является процессорное ядро. Каковы его ключевые особенности?
- 8-разрядная RISC-архитектура
- Высокая производительность — до 1 MIPS на 1 МГц тактовой частоты
- Большое количество регистров общего назначения (32 шт)
- Конвейерная обработка команд
- Большинство инструкций выполняется за 1 такт
- Аппаратный умножитель
Благодаря оптимизированной архитектуре ядра, микроконтроллеры AVR обладают высоким быстродействием при низком энергопотреблении.
Организация памяти в микроконтроллерах AVR
В архитектуре AVR используется гарвардская организация памяти с раздельными шинами для программ и данных. Какие типы памяти присутствуют в AVR?
Память программ (Flash-память)
Flash-память предназначена для хранения кода программы и констант. Ее объем варьируется от 1 до 256 кБ в зависимости от модели микроконтроллера. Особенности Flash-памяти AVR:
- Энергонезависимость — данные сохраняются при отключении питания
- Возможность внутрисхемного программирования
- Большое количество циклов перезаписи (до 10000)
- Организация по словам (16 или 32 бита)
Оперативная память (SRAM)
SRAM используется для хранения переменных и промежуточных данных во время выполнения программы. Ее объем составляет от 64 байт до 8 кБ. Основные особенности SRAM в AVR:
- Быстрый доступ — за 2 такта процессора
- Побайтовая организация
- Энергозависимость — данные теряются при отключении питания
Энергонезависимая память данных (EEPROM)
EEPROM предназначена для долговременного хранения настроек, калибровочных данных и другой важной информации. Ее объем — от 64 байт до 4 кБ. Ключевые характеристики EEPROM:
- Энергонезависимость
- Побайтовый доступ
- Длительное время записи (2-4 мс на байт)
- Большой ресурс перезаписи (100000 циклов)
Периферийные устройства микроконтроллеров AVR
Помимо процессорного ядра и памяти, в состав AVR входит большое количество периферийных устройств, расширяющих функциональность микроконтроллера. Какие основные периферийные модули присутствуют в AVR?
- Порты ввода-вывода общего назначения
- Таймеры/счетчики (8 и 16-разрядные)
- Аналого-цифровой преобразователь
- Аналоговый компаратор
- Интерфейсы UART, SPI, I2C, USB, CAN
- Контроллер прерываний
- Сторожевой таймер
Наличие развитой периферии позволяет использовать AVR в самых разнообразных приложениях без необходимости подключения большого количества внешних компонентов.
Система команд микроконтроллеров AVR
Система команд AVR оптимизирована для эффективного выполнения программ, написанных на языке C. Каковы ее основные особенности?
- Большинство команд выполняется за 1 такт
- Ортогональная система команд
- Поддержка битовых операций
- Наличие команд умножения
- Поддержка относительных переходов и вызовов подпрограмм
Оптимизированная система команд в сочетании с большим количеством регистров общего назначения обеспечивает высокую производительность микроконтроллеров AVR при программировании на языках высокого уровня.
Особенности архитектуры микроконтроллеров AVR для автомобильных применений
Для применения в автомобильной промышленности компания Microchip разработала специальные версии микроконтроллеров AVR с расширенным температурным диапазоном. Какие ключевые особенности имеют эти микросхемы?
- Работа при температурах от -40°C до +125°C и выше
- Специальная топология Flash-памяти со сниженными токами утечки
- Повышенная надежность и стойкость к электромагнитным помехам
- Наличие интерфейсов CAN и LIN для автомобильных сетей
- Расширенный диапазон напряжений питания (до 5.5В)
Эти особенности позволяют использовать AVR-микроконтроллеры в жестких условиях эксплуатации, характерных для автомобильной электроники.
Технология picoPower для снижения энергопотребления AVR
Для применений с батарейным питанием компания Microchip разработала технологию picoPower, позволяющую существенно снизить энергопотребление микроконтроллеров AVR. Какие основные особенности включает эта технология?
- Напряжение питания 1.8В для всех узлов микроконтроллера
- Отключаемый детектор падения напряжения (BOD)
- Ультранизкопотребляющий генератор 32 кГц
- Адаптивное тактирование периферийных модулей
- Снижение токов утечки в режиме ожидания
- Отключение неиспользуемых цифровых входов
Применение технологии picoPower позволяет снизить энергопотребление микроконтроллеров AVR в активном режиме на 5-20%, а в режиме ожидания — в несколько раз по сравнению со стандартными версиями.
Устройство микроконтроллера: АЛУ и организация памяти
Процессорное ядро микроконтроллеров:
– арифметико-логическое устройство
– организация памяти
Доброго дня уважаемые радиолюбители!
Сегодня (точнее – в течении нескольких статей) мы с вами более подробно рассмотрим основу любого микроконтроллера – процессорное ядро.
Основные элементы:
1. Арифметико-логическое устройствоАЛУ – сердце (а может быть и ум, с честью и совестью) микроконтроллера.
Здесь мы не будем входить в роль “маньяка-расчленителя” и ковыряться во внутренностях этого устройства. Усвоим только, что благодаря АЛУ происходит вся работа микроконтроллера. Если у вас когда-нибудь появится желание более глубже узнать как работает “сердце” микроконтроллера (а будет неплохо, если оно появится), то в книгах замечательных авторов Белова, Рюмика, Евстифеева, Ревича, Баранова и многих других, вы всегда найдете подробный ответ.
Прежде чем рассматривать память микроконтроллера, немного поговорим о памяти вообще.
У микроконтроллеров почти все также. Только, если у человека самая маленькая ячейка для хранения информации называется “нейрон”, то для микроконтроллера самая маленькая ячейка памяти для хранения информации называется “бит“.
В одном бите может храниться или одна логическая единица, или один логический ноль.
Бит – минимальная единица измерения объема памяти в микропроцессорной технике.
Следующая основная, или самая распространенная, единица измерения памяти – байт.
Байт – это восемь бит информации. В одном байте может храниться только восемь нулей и единиц.
Максимальное число которое можно записать в байт – 255. Если в программе вы будете оперировать большими числами то следует знать (чтобы знать сколько байт потребуется для хранения числа), что максимальное число, которое можно записать в:
– один байт = 255
– два байта = 65 535
– три байта = 16 777 215
– четыре байта – число величиной более 4 миллиардов (если вы не входите хотя бы в сотню журнала “Форбс”, то четыре байта памяти для хранения чисел вам не понадобятся).
Запись в память и чтение из памяти происходит байтами (нельзя записать или считать один бит информации).
Следующая единица измерения – килобайт.
В килобайте помещается 1024 байт информации (именно 1024, а не 1000 байт).
Есть еще и большие величины измерения объема памяти (мегабайт, гигабайт), но в микроконтроллерах они пока не применяются.
Я надеюсь, что с единицами измерения электронной памяти нам все понятно:
Микросхемы AVR имеют три вида памяти:
– память программ, она же FLASH-память
– память данных, она же ОЗУ (оперативно-запоминающее устройство), она же SRAM
– энергонезависимая память, она же ЭСППЗУ, она же EEPROM
В микроконтроллере выделяется три адресных пространства в которых располагаются вышеперечисленные разновидности памяти. Память данных при этом (в смысле выделенного адресного пространства) оказалась немного обделенной – ей приходится делить свое адресное пространство с ячейками памяти в которых хранятся регистры общего назначения и регистры ввода/вывода (о них вы подробно узнаете в следующей статье). Эти регистры физически не относятся к памяти данных, но находятся в том же адресном пространстве. Если начальные адреса памяти программ и энергонезависимой памяти начинаются с нулевого адреса, то начальный адрес памяти данных не начинается с нулевого адреса – с нулевого адреса занимают места регистры общего назначения и регистры ввода/вывода, и только за ними следуют адреса ячеек памяти программ.
Память программ предназначена для хранения в ней наших программ, а также любых нужных нам данных, которые не меняются в ходе выполнения программы (константы). При выключении питания микроконтроллера, все данные в памяти программ сохраняются.
Память программ, естественно, имеют все микроконтроллеры. Размер памяти программ, в зависимости от типа МК, варьируется от 1 килобайта до 256 килобайт.
Доступ к памяти программ имеет только программист при программировании МК, у самого МК доступ к памяти программ тоже имеется, но только для чтения данных из памяти, записать туда он ничего не может (мало ли что, вдруг захочет испортить нашу программу). Правда, у МК семейства Mega есть возможность (с разрешения программиста) вносить изменения в памяти программ, но это отдельная история.
Дело в том, что память программ состоит из ячеек состоящих из двух байт. Такая ячейка называется “словом”. А сделано это так потому, что почти все команды МК состоят из двух байт, и, соответственно, для их записи нужно два байта в памяти программ. Каждая команда МК – это одно “слово”. Есть несколько команд, для записи которых требуется 4 байта в памяти – два слова, но такие команды встречаются в МК у которых память программ больше 8 килобайт.
Таким образом, в одну ячейку памяти программ можно записать:
– любую команду, состоящую из двух байт
– половину команды, состоящей из 4 байт
– две константы, каждая из которых умещается в один байт, или одну шестнадцатиразрядную константу. При этом, если вы записываете в память три однобайтовых константы, они все равно займут в памяти четыре байта (два слова).
Кроме того, запись в память программ осуществляется не только “словами”, но еще и “страницами”. Размер “страницы” составляет от 64 до 256 байт (чем больше объем памяти программ, тем больше объем “страницы”). Что это значит. Если вы создали маленькую программку, объем которой составляет 11 слов (22 байта), в памяти программ она все равно займет место в одну страницу, т.е. как минимум 64 байта. “Лишние” 42 байта при этом будут заполнены или нулями, или единицами. Вот такие вот, пироги.
Но и это еще не все.
Память программ может иметь три состояния (если можно так выразиться):
1. Вся память находится в распоряжение программиста
В этом случае мы можем забить всю память полностью своей программой и данными. А программа будет стартовать с нулевого адреса памяти.
2. Часть памяти забирает МК
В случае, если при работе МК используются прерывания (а я надеюсь – вы помните, что это такое), часть памяти МК забирает для нужд обработки прерываний и хранит в ней “векторы прерываний“.
Что это такое.
Когда мы разрешаем МК обрабатывать прерывания, он, начиная с нулевого адреса памяти, забирает часть ячеек для хранения в них адресов, по которым надо перейти МК для выполнения подпрограммы прерывания. Для каждого прерывания МК выделяет два байта памяти (одно слово) в которых хранятся адреса подпрограмм обработки прерываний. Вот эти адреса, которые указывают где находится в памяти подпрограмма обработки того, или иного прерывания, называются “векторами прерываний“. А вся область памяти, в которой хранятся “векторы прерываний”, называется таблицей векторов прерываний. Количество занятых ячеек памяти под прерывания зависит напрямую от количества возможных прерываний данного микроконтроллера (от нескольких штук, до нескольких десятков). Все прерывания располагаются в начале памяти программ, с нулевого адреса, и имеют четкую последовательность. По нулевому адресу всегда располагается вектор прерывания по “сбросу” (Reset). Когда мы включаем устройство, или производим сброс кнопкой, срабатывает прерывание по сбросу. МК считывает с нулевого адреса (с ячейки) адрес, который указывает где в памяти находится начало нашей программы, и перейдя по этому адресу начинает выполнять программу. Сама программа в этом случае будет располагаться в памяти программ сразу за таблицей прерываний.
3. МК забирает еще одну часть памяти программ (точнее не забирает, а выделяет область в конце памяти, в которой программист размещает специальную программу – “загрузчик”).
Такое возможно в МК семейства “MEGA”, у которых есть возможность разрешить МК вносить изменения в памяти программ. Что это значит.
Некоторые МК имеют возможность самопрограммироваться. В практике любителей такая возможность МК используется крайне редко. Возможность перепрограммироваться (самопрограммироваться) нужна, в основном, в случаях промышленного производства какого-то устройства на микроконтроллере, для которого потом может выпускаться обновление программного обеспечения. Мы эту возможность рассматривать не будем, по крайней мере пока. Нам достаточно только знать, что в МК, которые поддерживают самопрограммирование, память программ разделяется на две части:
— верхняя – секция прикладной программы, где располагается наша программа и векторы прерываний
— нижняя – секция загрузчика (Boot Loader Section – по английски), где программист располагает свою программу-загрузчик. Размер секции загрузчика зависит от общего размера памяти программ МК, и может составлять от 128 байт до 4096 байт. Если возможность самопрограммирования МК мы не используем, то эта секция отдается для нашей программы и данных.
Ну а FLASH-памятью память программ называют потому, что она делается по так называемой Flash-технологии (как и всем нам привычные компьютерные “флешки”)
Память программ допускает 10 тысяч циклов перепрограммирования.Память данных (Статическое ОЗУ, SRAM)
Оперативно-запоминающее устройство, оно же память данных типа SRAM, предназначена для хранения в ней различных данных, получаемых в результате работы программы.
При выключении питания микроконтроллера, все данные хранящиеся в ней теряются.
Память данных есть почти во всех микроконтроллерах (отсутствует у простейших МК семейства Tiny).
Во всех МК семейства Mega (и части МК семейства Tiny) объем встроенной памяти данных колеблется от 128 байт до 8 килобайт, и почти вся она отдана в наше полное распоряжение. Только немножко забирает себе МК для организации стека (что это такое узнаем позднее). В некоторых МК предусмотрено подключение внешней памяти (она может быть любого типа – FLASH, SRAM, EEPROM) объемом до 64 килобайт. В случае подключения внешней памяти в таких МК, она становится как-бы продолжением памяти данных.
Запись в память данных и чтение из нее происходит побайтно, и в отличии от памяти программ в ней нет деления на страницы и слова.
Энергонезависимая память также относится к памяти данных, но в отличие от последней имеет несколько особенностей. Предназначена она для хранения данных и констант, которые должны сохраняться при отсутствии питания.
EEPROM имеют все микроконтроллеры.
При выключении питания микроконтроллера все данные, хранящиеся в энергонезависимой памяти сохраняются (поэтому она и называется энергонезависимой).
Объем энергонезависимой памяти, в зависимости от типа МК, колеблется от 64 байт до 4 килобайт.
Запись и чтение информации в память производится побайтно. Однако в старших моделях семейства MEGA, энергонезависимая память, так же как и память программ, имеет страничную запись. Объем страницы небольшой, составляет всего 4 байта. На практике эта особенность не имеет значения – и запись, и чтение осуществляется все равно побайтно.
Число циклов записи и стирания памяти достигает 100 000.
Главная особенность EEPROM заключается в том, что при записи в нее данных она становится очень “медленной” – запись одного байта может продолжаться от 2 до 4 миллисекунд (это очень низкая скорость), и может случиться, к примеру, что во время записи сработает какое-либо прерывание и в этом случае процесс записи данных будет загублен.
Кроме того, не рекомендуется записывать данные в энергонезависимую память с нулевого адреса (не помню источника этих сведений, но точно помню, что где-то читал) – возможно повреждение данных в ходе работы МК. Иногда программисты отступают на несколько байт от начала памяти, и только в следующих ячейках начинают запись данных.
Предыдущие статьи:
♦ Микроконтроллер и как его победить
♦ Микроконтроллер и системы счисления
♦ Микроконтроллер и логические операции
♦ Общее устройство микроконтроллера
Следующие статьи:
♦ Регистры общего назначения, регистры ввода/вывода, стек, счетчик команд
♦ Регистр состояния SREG
♦ Порты ввода/вывода микроконтроллера
Архитектура AVR микроконтроллеров: развитие вширь и вглубь. Часть 1. Обзор основных характеристик — Компоненты и технологии
В январе 2007 года корпорация ATMEL провела в Норвегии, на родине AVR, традиционный дистрибьюторский семинар, посвященный новым достижениям в AVR-строении. Развитие AVR-контроллеров происходит по трем основным направлениям: микросхемы для автомобильных применений, микросхемы со сверхнизким энергопотреблением (picoPower) и микросхемы, построенные на принципиально новом высокопроизводительном низкопотребляющем 32-разрядном ядре AVR32. В первой части статьи приводится обзор основных характеристик новинок. Во второй части более подробно будет рассмотрено семейство контроллеров AVR32 с Flash-ПЗУ на кристалле.
Автомобильные AVR-контроллеры
Для применения в автомобильной промышленности ATMEL разработала «высокотемпературные» версии микросхем. Следует отметить, что это не «отобранные» стандартные кристаллы, а специально разработанная топология. Особое внимание уделено модулю Flash-памяти. Известно, что время хранения информации, записанной во Flash-память, обратно пропорционально температуре кристалла. Таким образом, для микросхемы любого производителя фактический срок хранения данных в памяти при комнатной температуре и при температуре, например, +85 °C, отличается в несколько раз. Инженеры копрорации ATMEL разработали специальную топологию элемента FLASH-памяти со сниженными токами утечки. В результате гарантируется надежная работа микросхем в диапазоне температур от –40 до +125 °C. Существует четыре градации диапазонов рабочих температур для микросхем автомобильного применения:
- Grade 3, –40…+85 °C — индекс в названии микросхемы Т;
- Grade 2, –40…+105 °C — индекс в названии микросхемы Т1;
- Grade 1, –40…+125 °C — индекс в названии микросхемы Z;
- Grade 0, –40…+150 °C — индекс в названии микросхемы Т2.
Пилотной микросхемой на «автомобильный» температурный диапазон стала ATmega88.
В настоящее время список микросхем расширен, а специальная версия ATmega88-ERSAT2 может работать в диапазоне от –40 до +150 °C! Основные параметры микросхем приведены в таблице 1.
Таблица 1. Основные параметры микросхем фирмы ATMEL
Flash кбайт | EEPROM байт | SRAM байт | 16-раз- рядный таймер | 8-раз- рядный таймер | ШИМ-каналы | RTC | SPI | UART | TWI | Умно- житель | Преры- вания | Внеш- ние преры- вания | Тип корпуса | ||
AT90CAN128 | 128 | 4096 | 4096 | 2 | 2 | 8 | + | + | 2 | — | + | 34 | 8 | LQFP/MLF64 | |
AT90CAN32 | 32 | 1024 | 2048 | 2 | 2 | 8 | + | + | 2 | — | + | 34 | 8 | LQFP/MLF64 | |
AT90CAN64 | 64 | 2048 | 4096 | 2 | 2 | 8 | + | + | 2 | — | + | 34 | 8 | LQFP/MLF64 | |
ATtiny25 | 2 | 128 | 128 | — | 2 | 4 | — | USI | — | USI | — | 15 | 7 | Узкий SOIC 8 | |
ATtiny45 | 4 | 256 | 256 | — | 2 | 4 | — | USI | — | USI | — | 15 | 7 | Узкий SOIC 8 | |
ATtiny85 | 8 | 512 | 512 | — | 2 | 4 | — | USI | — | USI | — | 15 | 7 | Узкий SOIC 8 | |
ATmega48 | 4 | 256 | 512 | 1 | 2 | 6 | + | 1+USART | 1 | + | + | 26 | 26 | TQFP/QFN32 | |
ATmega88 | 8 | 512 | 1024 | 1 | 2 | 6 | + | 1+USART | 1 | + | + | 26 | 26 | TQFP/QFN32 | |
ATmega168 | 16 | 512 | 1024 | 1 | 2 | 6 | + | 1+USART | 1 | + | + | 26 | 26 | TQFP/QFN32 |
Еще одним интересным решением для применения в автомобильной промышленности является микросхема, содержащим в корпусе два кристалла — AVR-контроллер и модуль интерфейса LIN. Микросхема функционирует в диапазоне напряжений питания от 5 до 18 В. Типовая схема включения микросхемы приведена на рис. 1.
Рис. 1. Схема включения контроллера ATA6602/6603
К концу 2007 года будет выпущено более 10 типов микросхем с расширенным диапазоном рабочих температур (рис. 2).
Рис. 2. Программа развития микроконтролеров серии «automotive»
Технология picoPower
С момента появления на рынке в 1997 году контроллеры AVR отличались невысоким энергопотреблением. Для управления потребляемой мощностью контроллер имеет шесть режимов энергосбережения:
- Idle mode — в этом режиме блокируется подача тактовых импульсов на CPU и Flash-память.
- ADC noise reduction mode — Idle mode, плюс блокируется тактирование портов ввода–вывода.
- Extended Standby mode — ADC noise reduction mode, плюс запрещается работа АЦП и EEPROM.
- Standby mode — Extended Standby mode, плюс запрещается работа таймера 2.
- Power Down mode — Standby mode, плюс запрещается работа генератора.
- Power Save mode — самый низкопотребляющий режим, активны только асинхронные модули — прерывания и порт TWI.
В 2006 году компания анонсировала разработку новых экономичных AVR-контроллеров семейства picoPower. В этом семействе реализован ряд дополнительных мер со снижению энергопотребления как в режиме ожидания, так и в активном режиме. Ниже более подробно рассмотрены особенности нового семейства.
Питание 1,8 В для всех модулей кристалла. В отличие от микроконтроллеров прежних поколений, технология picoPower подразумевает напряжение 1,8 В для питания абсолютно всех модулей кристалла, включая аналоговые модули (АЦП, компаратор, источник опорного напряжения), а также модулей памяти (Flash-ПЗУ, EEPROM и ОЗУ).
Концепция «спящий BOD». Практически все современные микроконтроллеры имеют на кристалле модуль слежения за уровнем напряжения питания — BOD (Brown Out Detector). Есть два подхода к снижению потребления этого модуля. Первый — сделать модуль очень экономичным. Плата за экономичность — резкое, до единиц миллисекунд, снижение быстродействия. Второй — использовать быстродействующий BOD, однако отключать этот модуль на время пребывания контроллера в режиме ожидания. При этом время срабатывания модуля составляет 2 мкс. Естественно, для надежной работы контроллера модуль BOD отключается после перехода в режим ожидания, а включается до выхода из этого режима.
Ультранизкопотребляющий генератор на 32 кГц. При переходе контроллера в режим Standby существенную долю общего потребления контроллера составляют цепи генератора. Применение новой версии модуля генератора, работающего с «часовым» кварцем, позволяет получить ток не более 650 нА с учетом работающего модуля BOD. Это лучший на сегодня показатель в промышленности.
Минимизация токов утечки. Потребление тока в режимах энергосбережения в большей степени определяется токами утечки кристалла. Применение собственного процесса для изготовления кристаллов по технологии picoPower позволяет получить токи утечки в режиме Standby при напряжении питания 1,8 В не более 100 нА.
Дальнейшие меры по снижению энергопотребления относятся к работе периферийных узлов в активном режиме. Как известно, потребление КМДП-микросхем в активном режиме напрямую зависит от частоты переключения вентилей вследствие перезаряда паразитных емкостей кристалла. Таким образом, если запретить подачу тактовых импульсов на некоторые модули контроллера, можно снизить потребляемую мощность. Эта технология получила название Clock Gating. Существует три уровня работы Clock Gating. Кристалл разделен на три энергопотребителя — Analog Domain, CPU Domain и In/Out Domain. Первый уровень отвечает за тактирование каждого энергопотребителя в зависимости от текущего режима работы контроллера.
Второй уровень задается программированием специального регистра снижения потребляемой мощности (Power Reduction Register, PRR). Известно, что в конкретной программе, выполняемой контроллером, не все периферийные модули могут быть активными постоянно. Некоторые модули задействуются на определенные интервалы времени, а какие-то — вообще не используются при выполнении той или иной процедуры. Регистр PRR управляет включением-выключением периферийных модулей.
При отключении модуля его текущий статус запоминается, и все его регистры становятся недоступными для модификации. Как показывает стастистика, использование такого механизма позволяет снизить суммарную потребляемую мощность на 5–10% в активном режиме и на 10–20% в режиме Idle.
Третий уровень Clock Gating отвечает за адаптивное тактирование регистров. Известно, что не все регистры модифицируются в каждом такте. Таким образом, можно не подавать тактирующие импульсы на регистры, состояние которых не требуется модифицировать в данном цикле процессора.
Снижение потребления модуля Flash-памяти. Flash-память — это, по существу, аналоговый блок со статическим энергопотреблением. Как правило, во время работы контроллера этот блок всегда активен. Следует учесть, однако, что в ряде случаев контроллер используется не на максимальной тактовой частоте, следовательно, время выборки команды из Flash-ПЗУ меньше одного периода тактовой частоты. Когда AVR-контроллер работает на частоте не выше нескольких мегагерц, используется техника «Flash sampling» — модуль памяти активизируется только на время, необходимое для выборки команды, а затем отключается. Этот алгоритм проиллюстрирован на рис. 3.
Рис. 3. Работа системы «Flash sampling»
Снижение токов утечки по входам. Многие AVR-контроллеры имеют модуль АЦП, который использует некоторые порты как аналоговые входы (рис. 4).
Рис. 4. Структура универсального порта ввода–вывода
Мультиплексирование выводов контроллера для цифровых или аналоговых операций повышает функциональность, однако приводит к увеличению энергопотребления. Это объясняется следующим.
Входной каскад КМДП-логики состоит из двух комплементарных МДП-транзисторов. При изменении уровня входного напряжения, в моменты, когда на вход подается уровень, примерно равный половине питания, оба транзистора «приоткрыты», и через входной каскад протекает сквозной ток. Для цифровых сигналов с крутыми фронтами это время пренебрежимо мало, однако если вывод используется как вход АЦП, на нем «неудобное» напряжение может оставаться сколь угодно долгое время, что приводит к увеличению уровня потребляемого тока. Для снижения потребления нужно отключать цифровой вход на время работы АЦП. Для этого введен специальный регистр DIDR (Dedicated Input Disable Register), который выборочно запрещает цифровые входы при работе АЦП.
Также этот регистр запрещает неиспользуемые входы контроллера при переходе в ждущий режим.
Таким образом, совокупность мер по уменьшению тока потребления как в активном режиме, так и в режимах ожидания позволила создать производительный процессор, который отличается весьма малыми токами потребления.
Архитектура AVR32
Большую долю рынка 32-разрядных контроллеров в настоящее время захватили микросхемы на базе ядер ARM7, ARM9 и ARM11. ATMEL также производит контроллеры на базе ядер ARM7 и ARM9. Несмотря на это, в 2001 году корпорация начала разработку принципиально новой 32-разрядной RISC-архитектуры. Основной целью было повышение вычислительной производительности за такт процессора. Задача формулировалась как разработка процессора, который сможет решать сложные задачи цифровой обработки информации при малом потреблении энергии — требование разработчиков мобильных устройств. Ядро должно одновременно выполнять задачи MPU и DSP в рамках одной программной и инструментальной базы. В дополнение к производительному ядру контроллеры нового поколения имеют высокоскоростную периферию, в частности, два контроллера 10/100 Mbps MAC и High-Speed USB (480 Mbps). В последующих версиях контроллеров будет добавлет хост-контроллер USB (480 Mbps), поддерживающий режим OTG (On The Go).
Основные параметры микросхем приведены в таблице 2.
Таблица 2. Основные параметры микросхем AT32AP700X
SDRAM (кбайт) | DSP инст- рук- ции | Век- тор- ный со- про- цес- сор | Ether- net 10/ 100 MAC | USB HS Devi- ce | Конт- рол- лер LCD 2048 x 2048 | Число выво- дов общего назна- чения | Число DMA кана- лов | Интер- фейс внеш- ней шины | Конт- роллер SDRAM | AC97 | Интер- фейс к камере | ФАПЧ | Квар- цевый осцил- лятор | MMU/ MPU | Бес-свинцовый корпус | |
AT32AP7000 | 32 | + | + | 2 | 1 | 24бит | 160 | 20 | + | + | 1 | CMOS | 2 | 2 | MMU | 256 CTBGA |
AT3AP7001 | 32 | + | + | 0 | 1 | — | 90 | 20 | + | + | 1 | CMOS | 2 | 2 | MMU | 208 VQFP |
AT32AP7002 | 32 | + | + | 0 | 1 | 18бит | 85 | 20 | + | + | 1 | CMOS | 2 | 2 | MMU | 196 CTBGA |
Архитектура AVR32 разработана в норвежском городе Тронхейм, там же, где созданы 8-разрядные AVR-контроллеры. В разработке участвовала команда из двадцати инженеров и программистов. В результате 4-летней работы над такими алгоритмами, как вычисление суммы абсолютных разностей (SAD) и обратное дискретное косинусное преобразование (IDCP), был достигнут 35% прирост эффективности на один такт процессора по сравнению с ядром ARM11. Это означает возможность декодировать в реальном времени видеофрагмент MPEG-4 разрешением QVGA с частой 30 кадров в секунду при частоте ядра 100 MГц, в то время как ARM11 для решения этой задачи требуется частота 150–170 MГц.
Структурная схема первого представителя AVR32 — контроллера AT32AP7000 приведена на рис. 5.
Рис. 5. Структурная схема контроллера AT32AP7000
На ядре AVR32 разрабатывается семейство контроллеров с аббревиатурой AP (Application Processor). Микросхемы будут выпускаться в корпусах BGA и TQFP. На рис. 6. представлена программа развития этого семейства.
Рис. 6. Планы развития AVR32
Структурная схема конвейера AVR32
Основой архитектуры AVR32 является семистадийный конвейер (рис. 7), обеспечивающий высокую производительность. Семистадийный конвейер AVR32 состоит из трех модулей, подготавливающих команду и четырех модулей, производящих выполнение.
Рис. 7. Схема конвейера AVR32
На первом этапе инструкции выбираются из кэш-памяти.
На втором этапе происходит динамическое предсказание ветвления на основе предыдущего значения, далее инструкции перемещаются в буфер декодера Java или RISC команд. Механизм предсказания ветвления позволяет избегать перезагрузки конвейера при выполнении операций ветвления. При предсказании ветвления в кэш загружается следующая за ветвлением операция.
Совместно с высокой плотностью кода это позволяет снизить использование памяти и производить переходы без потери циклов.
Третий этап — декодирование команды. В зависимости от содержания команды она попадает в целочисленный модуль, который состоит из трех конвейеров:
- конвейер умножения, состоящий из двух блоков умножения;
- конвейер АЛУ, состоящий из двух блоков вычислений;
- конвейер данных, состоящий из модуля адресации и модуля доступа к данным.
Конвейер данных имеет доступ к сопроцессору для параллельного выполнения матричных и векторных операций.
Три перечисленных конвейера поддерживают одновременное исполнение независимых инструкций с изменением последовательности (рис. 8). То есть, например, пока модуль умножения в течение 32 тактов занят, в модуле АЛУ может выполняться следующая операция.
Рис. 8. Плотность кода AVR32 AP в тестах EEMBC (оптимизация по скорости)
Оптимизация доступа к памяти
Конвейеры соединены шинами, позволяющими передавать данные непосредственно от одного модуля к другому без загрузки дополнительных ресурсов. Например, результат суммирования из блока АЛУ2 сразу после завершения выполнения операции пересылается на вход модуля умножения 1, АЛУ1 и блок адресации данных (Data Address). Такой механизм позволяет экономить 3 такта, которые требуются для программной пересылки данных на вход конвейера (рис. 9).
Рис. 9. Плотность кода AVR32 AP в тестах EEMBC (оптимизация по длине)
Работа с сопроцессором реализована через конвейер данных, что минимизирует задержки во время выполнения команд сопроцессором.
Оптимизация на уровне буфера команд за счет переменной длины команд
AVR32 работает с расширенным набором RISC-команд. Команды могут иметь длину 16 или 32 бита и следовать общим потоком. В отличие от архитектуры ARM, у этого ядра нет необходимости переключаться между двумя режимами. Все команды распознаются непосредственно в конвейере.
SIMD инструкции
В набор команд AVR32 входят инструкции для операций с множественными данными (Single Instruction Multiply Data), позволяющие в четыре раза увеличить производительность некоторых DSP алгоритмов, которые требуют выполнения одинаковых операций с потоком данных. Например, при декодировании видео формата MPEG производится расчет восьмибитных сумм абсолютных разностей (SAD). Для этого четыре 8-битных пикселя загружаются из памяти одной операцией, затем выполняется пакетное вычитание беззнаковых байтов с проверкой переопустошения, сложение байтов внутри старшей и младшей пар и распаковка их в полуслова.
Затем для вычисления значения SAD все значения складываются.ptr3[offset3&0xff];
В основе лежат четыре операции доступа к памяти, извлекающие один из четырех байтов 32-разрядного слова. Результатом операции является адрес памяти, к которому требуется доступ.
Для выполнения этой операции на МК с традиционной RISC-архитектурой потребуется 14 тактов. AVR32 выполнит эту операцию всего за 7 тактов. Использование инструкции чтения с извлеченным индексом (extracted index) позволяет ядру AVR32 выполнить все четыре операции доступа к памяти за четыре такта, сохраняя при этом все четыре смещения в одном регистре.
За счет уменьшения числа требуемых инструкций для выполнения операций увеличивается производительность ядра AVR32.
DSP-инструкции
В набор команд входят DSP-команды, такие как битовые операции, умножение с накоплением (МАС), сдвиг на любое число битов за один такт, быстрые масочные операции с битами в слове и многое другое. Такое нововведение позволяет не только быстро выполнять операции с портами общего назначения. Появляется возможность выполнять потоковую обработку данных на кристалле, Фурье-анализ, кодирование-декодирование, распознавание образов, воспроизведение аудио и видео без использования внешних кодеков (рис. 10).
Рис. 10. Сравнительная производительность AVR32
Аппаратное выполнение Java-инструкций
В конвейере AVR32 реализована аппаратная поддержка виртуальной машины Java— то есть кроме RISC-инструкций ядро может выполнять большинство инструкций байткода Java. Использование Java увеличивает возможности по использованию существующих пользовательских приложений и позволяет сократить время на перенос существующих или разработку новых приложений.
В отличие от программной Java-машины, использование аппаратных возможностей позволяет в несколько раз повысить скорость выполнения. Вполне вероятно, что программы для контроллеров класса AVR32 через несколько лет будут разрабатываться на Java.
Разветвленная шинная топология и энергопотребление
Применение в AP7000 многослойной разветвленной архитектуры системных шин (рис. 11) позволяет распараллеливать операции передачи данных, а два независимых периферийных контроллера, работающие на разных частотах, физически разделяют высокоскоростную и медленную периферию. Таким образом, не тратится дополнительная энергия при работе медленных периферийных модулей на высокой частоте.
Рис. 11. Схема шин и периферии AP7000
Контроллер разделен на четыре домена— ядро и шинная матрица (HBUS Matrix) и два периферийных контроллера, в каждом из которых частота может быть установлена независимо.
Поддержка компиляторов и ОС
Архитектура AVR32 разрабатывалась при тесном сотрудничестве с компанией IAR, которая занимается разработкой компиляторов для микроконтроллеров. Это выразилось в более удобной для компилятора архитектуре регистров. Также на этапе разработки было заложено требование по поддержке и оптимизации на уровне архитектуры использования операцилннй системы (ОС) для AVR32. В качестве ОС выбрана Linux. Существует специальный механизм, ускоряющий переключение между процессами и выполнение некоторых часто используемых системных вызовов. Естественно, во всех микроконтроллерах семейства AP7000 присутствует модуль MMU. Разработку программного обеспечения для AVR32 можно вести с применением компилятора GCC. Также в разработке находится порт Linux под AVR32.
Таким образом, микроконтроллер AT32 AP7000, построенный на новом ядре AVR32, предоставляет возможности по высокоскоростному вводу и передаче данных, выводу информации на ЖК-дисплей, потоковой обработке. При этом AP7000 остается микроконтроллером с низким потреблением, которое на 80% связано с архитектурными особенностями семейства AVR32.
В дополнение к семейству AVR32 AP (Application Processor) будут выпущены микросхемы семейства uC (MicroController). Эти микросхемы являются упрощенной версией AP с точки зрения насыщенности интерфейсными модулями, однако они содержат на кристалле Flash-ПЗУ и ОЗУ, что позволит создавать на них компактные недорогие одноплатные решения. Об этом — вторая часть статьи.
§ 1. Введение в робототехнику
Содержание урока
Роботы и робототехника
Из чего состоит робот?
Выводы
Вопросы и задания
Из чего состоит робот?
Прежде всего робот — это механическое устройство. Поэтому его постройка — это инженерная, конструкторская работа. Нужно, чтобы все детали были хорошо закреплены, и робот не потерял равновесия и не развалился во время выполнения задания. В то же время все подвижные детали должны исправно двигаться и крутиться.
Роботом нужно как-то управлять, поэтому необходима система управления, которая в современных роботах строится на микроконтроллерах.
Микроконтроллер — это миниатюрный компьютер, все части которого размещены на одном кристалле кремния. Он содержит процессор, разъёмы для управления внешними устройствами (порты), оперативную и постоянную память. В постоянную память микроконтроллера записана программа, которую он при включении сразу начинает выполнять.
Используя дополнительные источники, выясните, кто и когда впервые получил патент на микроконтроллер.
Для того чтобы робот мог двигаться, нужны исполнительные устройства — моторы, которые преобразуют электрическую энергию в механическую энергию вращения. Автономные роботы чаще всего передвигаются с помощью колёс или гусениц, для неровных поверхностей иногда используют шагающие системы. Существуют также ползающие и плавающие роботы.
Передвижение роботов — это достаточно сложная самостоятельная задача. Например, современные роботы-спасатели должны уметь подниматься по лестнице здания.
Для того чтобы получать данные об окружающей обстановке, роботу нужны датчики (сенсоры, чувствительные элементы) — устройства, которые измеряют какую-то физическую величину и выдают информацию о ней в виде электрических сигналов. Поскольку эти сигналы затем будет обрабатывать цифровой компьютер, их нужно преобразовать в двоичный код, в числа. Эту работу выполняет аналого-цифровой преобразователь (АЦП), который, как правило, встроен в микроконтроллер.
Существуют различные типы датчиков (рис. 1.2): датчики температуры, давления, скорости, освещённости, датчики касания («кнопки»), датчики расстояния (они измеряют время, за которое ультразвук отражается от препятствия и возвращается обратно), инфракрасные датчики для поиска и обнаружения объектов и многие другие. Более сложные роботы имеют системы компьютерного зрения на основе видеокамер. Они могут «узнавать» простые предметы, определять их расположение в пространстве и достраивать невидимые части, используя информацию из своей базы данных.
Рис. 1.2
Таким образом, встроенный микроконтроллер робота управляет исполнительными устройствами и обрабатывает данные, поступающие с датчиков (рис. 1.3).
Рис. 1.3
Используя дополнительные источники, выясните, какие микроконтроллеры применяются:
• в наборах LEGO Mindstorms;
• на платах Arduino, которые широко используются робототехниками-любителями.
На какой тактовой частоте они работают? Сравните её с тактовой частотой процессоров для настольных компьютеров.
Следующая страница Выводы
Cкачать материалы урока
Архитектура микроконтроллеров (Реферат) — TopRef.ru
Томский политехнический университет
Государственное образовательное учреждение высшего профессионального образования
«ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Реферат на тему
«Архитектура микроконтроллеров C51, AVR, ARM»
Томск 2009
Содержание
Введение
1. Архитектура микроконтроллеров MCS-51
1.1. Блок управления и синхронизации
2. Архитектура микроконтроллеров ARM
2.1. Основные характеристики ядра ARM7
3. Архитектура микроконтроллера AVR
3.1. Микропроцессор
3.2. Память
3.2.1. Память программ (Flash ROM или Flash ПЗУ)
3.2.2. Память данных
3.2.3. Регистровая память (РОН и РВВ)
3.2.4. Энергонезависимая память данных (EEPROM)
3.2.5. Оперативная память (ОЗУ или RAM)
3.3. Периферия
3.3.1. Порты ввода/вывода (I/O)
3.3.2. Прерывания (INTERRUPTS)
3.3.3. Таймеры/счетчики (TIMER/COUNTERS)
3.3.4. Сторожевой таймер (WDT)
3.3.5. Аналоговый компаратор (AC)
3.3.6. Аналого-цифровой преобразователь (A/D CONVERTER)
3.3.7. Универсальный последовательный приемопередатчик (UART или USART)
3.3.8. Последовательный периферийный интерфейс SPI
3.3.9. Двухпроводной последовательный интерфейс TWI
3.3.10. Интерфейс JTAG
3.3.11. Тактовый генератор
3.3.12. Система реального времени (RTC)
3.4. Питание
3.4.1. Сброс при снижении напряжения питания (BOD)
Заключение
Список литературы
Введение
Микроконтроллер (MCU) — микросхема, предназначенная для управления электронными устройствами. Типичный микроконтроллер сочетает в себе функции процессора и периферийных устройств, может содержать ОЗУ и ПЗУ. По сути, это однокристальный компьютер, способный выполнять простые задачи. Использование одной микросхемы, вместо целого набора, как в случае обычных процессоров, применяемых в персональных компьютерах, значительно снижает размеры, энергопотребление и стоимость устройств, построенных на базе микроконтроллеров.
Микроконтроллеры являются основой для построения встраиваемых систем, их можно встретить во многих современных приборах, таких, как телефоны, стиральные машины и т. п. Большая часть выпускаемых в мире процессоров — микроконтроллеры[3].
В отличие от микросхем «жесткой логики», микроконтроллер — это микросхема, у которой, во-первых, зависимость выходных сигналов от входных определяется исключительно правилами, заложенными разработчиком заранее (это называется программированием, а сами правила — программой), а во-вторых, нет четкого деления выводов на входы и выходы — обычно почти все выводы микроконтроллера в зависимости от желания и намерения разработчика могут быть как входами, так и выходами (и даже менять свое назначение в процессе работы).
Архитектура микроконтроллеров MCS-51
Архитектура семейства MCS-51 в значительной мере предопределяется ее назначением — построение компактных и дешевых цифровых устройств. Все функции микроЭВМ реализуются с помощью единственной микросхемы. В состав семейства MCS-51 входит целый ряд микросхем от самых простых микроконтроллеров до достаточно сложных. Микроконтроллеры семейства MCS-51 позволяют выполнять как задачи управления различными устройствами, так и реализовывать отдельные узлы аналоговой схемы. Все микросхемы этого семейства работают с одной и той же системой команд, большинство из них выполняется в одинаковых корпусах с совпадающей цоколевкой (нумерация ножек для корпуса). Это позволяет использовать для разработанного устройства микросхемы разных фирм — производителей (таких как Intel, Dallas, Atmel, Philips и т.д.) без переделки принципиальной схемы устройства и программы.[5]
Рис 1. Структурная схема контроллера К1830ВЕ751
Структурная схема контроллера представлена на рис.1. и состоит из следующих основных функциональных узлов: блока управления, арифметико-логического устройства, блока таймеров/счетчиков, блока последовательного интерфейса и прерываний, программного счетчика, памяти данных и памяти программ. Двусторонний обмен осуществляется с помощью внутренней 8-разрядной магистрали данных. Рассмотрим подробнее назначение каждого блока. По такой схеме построены практически все представители семейства MCS-51. Различные микросхемы этого семейства различаются только регистрами специального назначения (в том числе и количеством портов). Система команд всех контроллеров семейства MCS-51 содержит 111 базовых команд с форматом 1, 2 или 3 байта и не изменяется при переходе от одной микросхемы к другой. Это обеспечивает прекрасную переносимость программ с одной микросхемы на другую.
Микроконтроллер и микропроцессор — в чём разница?
В составе разных электронных устройств часто встречаются как микроконтроллеры, так и микропроцессоры. Оба этих компонента берут из памяти команды и по ним выполняют логические и арифметические операции, работая при этом с устройствами ввода/вывода и прочей периферией. Так в чём тогда разница?
Микроконтроллер
Микроконтроллер — (далее МК) это микросхема, предназначенная для программного управления электронными схемами. МК выполняется на одном кристалле. На нём расположено как вычислительное устройство, так и ПЗУ и ОЗУ. Кроме этого, в составе МК чаще всего находятся порты ввода/вывода, таймеры, АЦП, последовательные и параллельные интерфейсы. В некоторых даже можно заметить Wi-Fi-/Bluetooth-модуль и даже поддержку NFC.
Первый патент на микроконтроллер был выдан в 1971 году компании Texas Instruments. Инженеры этой компании предложили размещать на кристалле не только процессор, но и память с устройствами ввода/вывода.
Структурная схема микроконтроллера
Несмотря на то, что всё необходимое для работы микроконтроллера в нём уже есть, иногда они используются в паре с внешними периферийными устройствами. К примеру, когда внутренней ПЗУ не хватает (или она попросту отсутствует), подключают внешнюю. Именно так сделали с микроконтроллерами серии ESP. У ESP8266 встроенной памяти нет вообще, а у ESP32 есть незначительные 448 КБ. Поэтому к ним в корпус (точнее под радиатор) помещается flash-память ёмкостью 1–16 МБ.
Тогда почему бы не сделать какой-нибудь портативный компьютер на основе микроконтроллера? Дело в том, что вычислительной мощности у МК чаще всего достаточно мало. Её хватает на управление например, системой полива, микроволновкой или же каким-нибудь станком.
Например, одна из мощных плат платформы Arduino — Due. Она находится под управлением 32-битного AVR-микроконтроллера AT91SAM3X8E. Его тактовая частота 84 МГц. Постоянной памяти тут 512 КБ, а оперативной — 96 КБ. МК имеет 54 цифровых GPIO (12 из которых с поддержкой ШИМ), 12 аналоговых входов и 2 аналоговых выхода (ЦАП). Тут так же присутствуют различные интерфейсы, такие как UART, SPI, I2C.
Не смотря на такие незначительные характеристики, микроконтроллеры очень популярны. Они используются там, где не требуется большой вычислительной мощности — робототехника, контроллеры теплиц, бытовая техника.
Микропроцессор
С микропроцессором (далее МП) дела обстоят немного иначе. Он содержит в себе арифметико-логическое устройство, блок синхронизации и управления, запоминающие устройство, регистры и шину. То есть МП содержит в себе только то, что непосредственно понадобится для выполнения арифметический и логических операций. Все остальные комплектующие (ОЗУ, ПЗУ, устройства ввода/вывода, интерфейсы) нужно подключать извне.
Структурная схема микропроцессорного устройства
Первые микропроцессоры появились тоже в начале 70-х. Самым популярным на тот момент считался 4004. Это микропроцессор, разработанный компанией Intel и представленный 15 ноября 1971 года. Он имел внушающие на тот период характеристики:
- 2300 транзисторов;
- тактовая частота — 740 кГц;
- разрядность регистров и шины — 4 бита;
- техпроцесс — 10 мкм;
- площадь кристалла: — 12 мм².
К слову, 4004 был выполнен в обычном DIP-16 корпусе. Этот МП является самой популярной микросхемой для коллекционирования. Некоторые экземпляры продаются по 400 $ за штуку. Менее раритетные стоят около 250 $.
Уже через пару лет 8-битные МП позволили создавать первые бытовые микрокомпьютеры.
Естественно, тут преимуществом является то, что к МП можно на выбор подключать разную периферию с разными характеристиками (что не во всех случаях можно на МК). Второе основное отличие микропроцессора от микроконтроллера в том, что МП имеют больше вычислительной мощности. Их не имеет смысла ставить в микроволновки и «умные» лампочки. Микропроцессоры применяют там, где вычислительная мощность МК уже не справляется — игровые приставки, сложные вычислительные устройства и приборы, гаджеты.
Получается, чтобы обеспечить работоспособность микропроцессора, нужно подключить ему хотя бы минимальный набор периферии. Минусы:
- Размер — если в случае МК всё уже находится в одном корпусе, то минимальный набор элементов для работы МП занимает больше места.
- Цена — обычно, вся «сборка» комплектующих для МП выходит гораздо дороже «голых» микроконтроллеров.
Плюсы:
- Производительность — микропроцессоры обладают большей производительностью, чем микроконтроллеры.
- Выбор — в случае МП у вас есть возможность подобрать комплектующие. Это позволит поставить более подходящую под ваши цели периферию.
Применение
Микроконтроллер обладает явной простотой: требуется меньше аппаратного обеспечения, с ним легче работать на программном уровне, да и стоимость начинается с копеек. Но эта простота касается и производительности. Как говорилось выше, микроконтроллер не способен обеспечить высокую производительность наравне с микропроцессорами. Микропроцессоры хоть и требуют внешней коммутации «железа» и относительно МК сложны в работе, но они уже спокойно могут применяться в более сложных устройствах.
Однако иногда в сети появляются умельцы, которые впихивают в микроконтроллер ESP32 DOOM и даже эмулятор NES-игр.
Микроконтроллеры. Энциклопедия электроники L7805CV
Микроконтроллер (microcontroller , microcontroller unit, MCU) – интегральная микросхема, совмещающая в себе процессор, ОЗУ, ПЗУ, АЦП, ЦАП, каналы ввода/вывода, таймеры и прочее.
Классификация
В зависимости от разрядности (как правило, шины данных) микроконтроллеры бывают: 4, 8, 16, 32 битные.
В настоящее время существует большое число архитектур микроконтроллеров. Наиболее распространены МК Гарвардской архитектуры с системой команд RISC. Ниже перечислены некоторые из них:
- AVR – семейство 8ми битных МК выпускаемые фирмой Microchip (ранее выпускались фирмой Atmel).
- PIC – семейство 8, 16 и 32 битных МК выпускаемые фирмой Microchip.
- SAM – семейство 32 битных МК на базе ядра ARM Cortex выпускаемые фирмой Microchip.
- STM8 – семейство 8ми битных МК выпускаемых фирмой ST.
- STM32 – семейство 32 битных МК на базе ядра ARM Cortex выпускаемых фирмой ST.
Семейство восьмибитных микроконтроллеров PIC делится на несколько серий:
- PIC10 – серия самых простых микроконтроллеров в малом корпусе с сокращенной системой команд;
- PIC12/PIC16 – наиболее массовая серия микроконтроллеров, содержит разнообразную периферию: SPI, I2C, USART, LCD, АЦП;
- PIC18 – серия продвинутых восьмибитных микроконтроллеров в больших корпусах (от 28 до 100 выводов), содержит сложную периферию: CAN, USB, Ethernet, LCD, драйвер сенсорных кнопок.
Семейство восьмибитных микроконтроллеров AVR делится на несколько серий:
- tinyAVR – серия микроконтроллеров в малом корпусе;
- megaAVR – наиболее массовая серия микроконтроллеров, содержит разнообразную периферию: SPI, USART, ЦАП, PWM и т.д.;
- XMEGA – серия продвинутых восьмибитных микроконтроллеров в больших корпусах (от 44 до 100 выводов), содержит сложную периферию: USB, DMA.
Структура
Структурная схема микроконтроллера семейства AVR приведена на рисунке.
Память программ (Program memory)
В микроконтроллере программа хранится в отдельной области памяти – память программ. Первые микроконтроллеры выпускались с однократно программируемой памятью программ. У выпускаемых в настоящее время микроконтроллеров программы хранятся в электрически перепрограммируемой памяти типа FLASH. Это позволяет обновлять программу в процессе жизненного цикла изделия. Применяемая в микроконтроллерах FLASH память допускает около 10 000 циклов записи/очистки.
Оперативная память (Data memory, SRAM)
Оперативная память микроконтроллера содержит регистры портов ввода/вывода и пользовательские регистры необходимые для выполнения программ. Например, адресное пространство оперативной памяти микроконтроллера семейства AVR Atmega8A состоит из 32 регистров общего назначения, 64х регистров портов ввода/вывода и 1024 байтов памяти.
Память данных (EEPROM)
Энергонезависимая память данных (EEPROM) предназначена для хранения данных при отсутствии питания, например, коэффициенты настройки устройства, текущий режим и т.д. В МК память данных выделена в отдельное адресное пространство. Для чтения и записи используются специальные команды. Ресурс памяти около 100 000 циклов записи/очистки.
АЛУ и регистры данных
Арифметико-логическое устройства (АЛУ) предназначено для выполнения операций с регистрами и константами. Операции могут быть арифметические, логические, операции, изменяющие счетчик команд.
Особенностью архитектуры AVR является наличие 32 регистров общего назначения: R0…R31. В архитектуре PIC предусмотрен один 8ми битный регистр, под названием W.
После выполнения операции в АЛУ происходит запись регистра статуса (в архитектурах AVR и PIC регистр называется STATUS). В нем содержится информация о выполненной информации. Отдельные биты характеризуют: флаг четности, флаг отрицательного числа, флаг нуля и т.д.
Также после выполнения команды изменяется счетчик программы: адрес в памяти программ выполняемой команды.
Тактовый генератор
Для работы АЛУ, периферии ввода/вывода, оперативной памяти необходим тактовый сигнал. В качестве источника тактового сигнала в большинстве микроконтроллеров могут выступать:
- встроенный RC генератор;
- внешний сигнал от генератора прямоугольных импульсов;
- встроенный генератор от внешнего кварцевого резонатора;
- встроенный генератор от внешней RC цепочки.
На рисунке ниже показано использование генератора от внешнего кварцевого резонатора.
Встроенный RC генератор может работать на нескольких частотах. Выбор конкретной частоты осуществляется программированием специальной ячейки. Например, у МК ARV частота задается изменением прожигаемых ячеек (fuses) CKSEL.
Недостатком генераторов на RC цепочках является зависимость частоты от температуры. Для применений где требуется временная точность рекомендуется использовать внешний кварцевый резонатор.
Порты ввода/вывода
Выводы микроконтроллера могут быть настроены на прием или на выдачу логического сигнала. Направление работы вывода меняются в пользовательской программе путем изменения регистра порта ввода/вывода. На рисунке вывод PB3 работает как вход, PB0, PB1 – как выход. Применение полевых транзисторов позволяет подключать светодиоды непосредственно к микроконтроллеру.
Некоторые выводы микроконтроллера кроме приема и выдачи логических сигналов могут применяться для других целей, например, вход АЦП, компаратора и т.д.
Интерфейсы связи
Шина SPI (Serial Peripheral Interface) – синхронная полнодуплексная шина. Предназначена для обмена между микроконтроллером и другими устройствами.
Протокол SPI позволяет подключать несколько ведомых устройств к одному ведущему. Для связи используется 4 линии:
- MOSI (master output, slave input) — передача информации от ведущего устройства ведомому;
- MISO (master input, slave output) — передача информации от ведомого устройства;
- SCLK — тактовый сигнал;
- SS – выбор ведомого устройства.
Обмен данными между микроконтроллером ATMega8A и EEPROM памятью AT25010B по шине SPI
Шина I2C, TWI – последовательная ассиметричная шина, использующая две линии связи:
- SDA (serial data) – линия данных;
- SCL (serial clock) – линия тактового сигнала.
АЦП MCP3425 измеряет сопротивление терморезистора, чтение измеренных значений осуществляется по шине I2C/TWI
USART (Universal Synchronous and Asynchronous serial Receiver and Transmitter) – универсальный синхронный/асинхронный последовательный передатчик/приемник. Позволяет принимать/передавать данные по последовательному интерфейсу.
Для связи с персональным компьютером через порт RS-232 используется микросхема MAX232. Обмен информацией осуществляется через порт USART микроконтроллера.
Счетчики/таймеры
Счетчики/таймеры предназначены для предназначены для подсчета импульсов. Источником импульсов может служить внешний сигнал или тактовый сигнал микроконтроллера.
С помощью таймеров можно осуществить задержку по времени в программе.
Блок прерываний
Прерывания необходимы для выполнения определенной программы при возникновении некоторых событий, например, изменения логического входа, переполнение счетчика, завершения передачи данных по USART и т.д.
Сторожевой таймер
Сторожевой таймер (watchdog timer) предназначен для сброса микроконтроллера при его зависаниях. Зависания могут возникнуть из-за ошибок в пользовательской программе, (переход в бесконечный цикл, переход в «пустую» область памяти программ). При переполнении сторожевого таймера осуществляется сброс микроконтроллера.
АЦП
Аналогово-цифровые преобразователи преобразовывают аналоговый сигнал в цифровой. Принцип действия любого АЦП основан на сравнении входного сигнала с опорным напряжением. В качестве источника опорного напряжения может применяться внутренний источник или внешний, подключаемый к определенному выводу микроконтроллера.
Компараторы
Компараторы предназначены для сравнения двух сигналов. Принцип действия следующий: когда на положительном входе напряжение больше чем на отрицательном в специальном регистре устанавливается (логическая единица) определенный бит. При обратной ситуации бит сбрасывается (логический ноль).
Конфигурируемая логика
Блок конфигурируемой логики позволяет реализовать физическую логическую схему внутри МК. Данные блоки являются редкостью для микроконтроллеров.
Входами логической схемы могут являться: выводы МК, тактовый сигнал, биты регистров оперативной памяти. Выходами могут быть выводы МК, биты регистров оперативной памяти. Конфигурируемую логику можно настроить на выполнение простейших логических операций: И, И-НЕ, ИЛИ-НЕ и прочих.
Корпуса
Одна модель микроконтроллера может выпускаться в различных корпусах. Корпус DIP для монтажа в отверстия платы последнее время встречается всё реже. Ниже приведен краткий список наиболее распространенных корпусов микроконтроллеров:
- DIP – Dual Inline Package;
- SOIC – Small-Outline Integrated Circuit;
- SSOP – Shrink Small Outline Package;
- TQFP – Thin profile plastic flat package;
- MLF – Micro Lead Frame Package.
Язык
Программирование микроконтроллеров может осуществляться на ассемблере или на языке высокого уровня Си.
Запись программ в МК
Запись программ в память микроконтроллера (программирование) осуществляется с помощью программаторов. Запись можно выполнить двумя способами: вставить микроконтроллер в панель программатора или подключить программатор к конечному устройству (внутрисхемное программирование).
Контроллеры Microchip PIC16 программируются по технологии ICSP (In-Circuit Serial Programming). По данной технологии программирование может осуществляться в готовом устройстве. Программатор имеет пять линий связи с МК:
Микроконтроллеры Microchip AVR можно запрограммировать параллельным и последовательным способами. Для параллельного метода необходимо: 9 (управляющие линии) + 8 (линии данных) +2 (линии питания и земли) линий связи. Параллельное программирование требует подачи напряжения 12 В в микроконтроллер.
Для последовательного метода используется интерфейс SPI: 5 линий связи. Одним из недостатков является медленная скорость по сравнению с параллельным методом и необходимость предварительного запуска МК.
На рисунке ниже представлен внутрисхемный USB программатор микроконтроллеров AVR. Такой программатор продается в известном китайском магазине.
Среда разработки
Разработка программ для микроконтроллеров осуществляется в интегрированной среде разработке (IDE). Для создания проектов на AVR и PIC можно воспользоваться средой: Atmel Studio 7 IDE, MPLAB X IDE, он-лайн MPLAB Xpress.
Онлайн среда разработки MPLAB Xpress
IDE среда разработки содержит редактор проектов, программ, компилятор, отладчик, симулятор и много другое. Также для программирования микроконтроллеров могут использоваться сторонние среды разработки.
Онлайн среда конфигурирования ATmel START
Применение
Микроконтроллеры применяются во многих бытовых и промышленных устройствах, таких как стиральные машины, СВЧ печи, автосигнализации, преобразователи частоты для электродвигателей и многие другие.
Страница не найдена
Тактовая частота, МГцот
до
Блок арифметики с плавающей точкой (FPU) не важно да нет
Поддержка DSP-инструкций не важно да нет
Графический ускоритель, аппаратное декодирование видео не важно да нет
Блок управления памятью (MMU) не важно да нет
Каналы DMAот
до
Блок защиты памяти (MPU) не важно да нет
Аппаратный блок шифрования не важно да нет
Что такое микроконтроллер и как он работает?
Микроконтроллер — это компактная интегральная схема, предназначенная для управления определенной операцией во встроенной системе. Типичный микроконтроллер включает в себя процессор, память и периферийные устройства ввода-вывода (I / O) на одном кристалле.
Иногда называемые встроенным контроллером или микроконтроллером (MCU), микроконтроллеры используются, среди прочего, в транспортных средствах, роботах, офисной технике, медицинских устройствах, мобильных радиопередатчиках, торговых автоматах и бытовой технике.По сути, это простые миниатюрные персональные компьютеры (ПК), предназначенные для управления небольшими функциями более крупного компонента без сложной интерфейсной операционной системы (ОС).
Как работают микроконтроллеры?Микроконтроллер встроен в систему для управления особой функцией устройства. Он делает это, интерпретируя данные, которые он получает от периферийных устройств ввода-вывода, с помощью своего центрального процессора. Временная информация, которую получает микроконтроллер, хранится в его памяти данных, где процессор обращается к ней и использует инструкции, хранящиеся в своей программной памяти, для расшифровки и применения входящих данных.Затем он использует свои периферийные устройства ввода-вывода для связи и выполнения соответствующих действий.
Микроконтроллеры используются в большом количестве систем и устройств. Устройства часто используют несколько микроконтроллеров, которые работают вместе в устройстве для выполнения своих соответствующих задач.
Например, в автомобиле может быть множество микроконтроллеров, которые управляют различными отдельными системами внутри, такими как антиблокировочная тормозная система, контроль тяги, впрыск топлива или управление подвеской. Все микроконтроллеры взаимодействуют друг с другом, чтобы сообщить правильные действия.Некоторые могут связываться с более сложным центральным компьютером в автомобиле, а другие могут связываться только с другими микроконтроллерами. Они отправляют и получают данные, используя свои периферийные устройства ввода-вывода, и обрабатывают эти данные для выполнения назначенных им задач.
Из чего состоит микроконтроллер?Основные элементы микроконтроллера:
- Процессор (CPU) — Процессор можно рассматривать как мозг устройства. Он обрабатывает и реагирует на различные инструкции, управляющие работой микроконтроллера.Это включает в себя выполнение основных арифметических, логических операций и операций ввода-вывода. Он также выполняет операции передачи данных, которые передают команды другим компонентам в более крупной встроенной системе.
- Память — память микроконтроллера используется для хранения данных, которые процессор получает и использует для ответа на инструкции, которые он запрограммировал выполнять. Микроконтроллер имеет два основных типа памяти:
- Программная память, в которой хранится долгосрочная информация об инструкциях, выполняемых ЦП.Программная память — это энергонезависимая память, то есть она хранит информацию с течением времени без использования источника питания.
- Память данных, которая требуется для временного хранения данных во время выполнения инструкций. Память данных является энергозависимой, то есть данные, которые она хранит, являются временными и поддерживаются только в том случае, если устройство подключено к источнику питания.
Периферийные устройства ввода / вывода - — устройства ввода и вывода являются интерфейсом для процессора с внешним миром.Порты ввода получают информацию и отправляют ее процессору в виде двоичных данных. Процессор получает эти данные и отправляет необходимые инструкции устройствам вывода, которые выполняют задачи, внешние по отношению к микроконтроллеру.
Хотя процессор, память и периферийные устройства ввода / вывода являются определяющими элементами микропроцессора, есть и другие элементы, которые часто используются. Термин «Периферийные устройства ввода-вывода» просто относится к вспомогательным компонентам, которые взаимодействуют с памятью и процессором.Существует множество вспомогательных компонентов, которые можно отнести к категории периферийных устройств. Наличие некоторого проявления периферийных устройств ввода / вывода является элементарной задачей для микропроцессора, поскольку они являются механизмом, через который применяется процессор.
Прочие вспомогательные элементы микроконтроллера включают:
- Аналого-цифровой преобразователь (АЦП) — АЦП — это схема, преобразующая аналоговые сигналы в цифровые. Это позволяет процессору в центре микроконтроллера взаимодействовать с внешними аналоговыми устройствами, такими как датчики. Цифро-аналоговый преобразователь (ЦАП)
- — ЦАП выполняет обратную функцию АЦП и позволяет процессору в центре микроконтроллера передавать свои исходящие сигналы внешним аналоговым компонентам.
- Системная шина — Системная шина — это соединительный провод, соединяющий все компоненты микроконтроллера вместе.
- Последовательный порт — Последовательный порт является одним из примеров порта ввода-вывода, который позволяет микроконтроллеру подключаться к внешним компонентам.Он имеет функцию, аналогичную USB или параллельному порту, но отличается способом обмена битами.
Процессор микроконтроллера зависит от приложения. Варианты варьируются от простых 4-битных, 8-битных или 16-битных процессоров до более сложных 32-битных или 64-битных процессоров. Микроконтроллеры могут использовать энергозависимые типы памяти, такие как оперативная память (RAM) и энергонезависимые типы памяти — сюда входят флэш-память, стираемая программируемая постоянная память (EPROM) и электрически стираемая программируемая постоянная память (EEPROM).
Как правило, микроконтроллеры проектируются таким образом, чтобы их можно было легко использовать без дополнительных вычислительных компонентов, поскольку они разработаны с достаточным объемом встроенной памяти, а также предлагают контакты для общих операций ввода-вывода, поэтому они могут напрямую взаимодействовать с датчиками и другими компонентами.
Архитектура микроконтроллераможет быть основана на архитектуре Гарварда или архитектуре фон Неймана, обе предлагают различные методы обмена данными между процессором и памятью. В гарвардской архитектуре шина данных и инструкция разделены, что позволяет осуществлять одновременную передачу.В архитектуре фон Неймана одна шина используется как для данных, так и для инструкций.
Процессоры микроконтроллеровмогут быть основаны на вычислениях со сложным набором команд (CISC) или на вычислениях с сокращенным набором команд (RISC). CISC обычно имеет около 80 инструкций, в то время как RISC имеет около 30, а также больше режимов адресации, 12-24 по сравнению с RISC 3-5. Хотя CISC может быть проще в реализации и более эффективно использует память, он может иметь снижение производительности из-за большего количества тактовых циклов, необходимых для выполнения инструкций.RISC, который уделяет больше внимания программному обеспечению, часто обеспечивает лучшую производительность, чем процессоры CISC, которые уделяют больше внимания аппаратному обеспечению из-за упрощенного набора инструкций и, следовательно, повышенной простоты конструкции, но из-за упора на программное обеспечение, программное обеспечение может быть более сложным. Какой ISC используется, зависит от приложения.
Когда они впервые стали доступны, микроконтроллеры использовали исключительно язык ассемблера. Сегодня популярным вариантом является язык программирования C.Другие распространенные языки микропроцессоров включают Python и JavaScript.
Микроконтроллерыоснащены входными и выходными контактами для реализации периферийных функций. К таким функциям относятся аналого-цифровые преобразователи, контроллеры жидкокристаллических дисплеев (LCD), часы реального времени (RTC), универсальный синхронный / асинхронный приемный передатчик (USART), таймеры, универсальный асинхронный приемный передатчик (UART) и универсальная последовательная шина ( USB) возможность подключения. Датчики, собирающие данные, связанные, в частности, с влажностью и температурой, также часто присоединяются к микроконтроллерам.
Типы микроконтроллеров Стандартные микроконтроллерывключают Intel MCS-51, часто называемый микроконтроллером 8051, который был впервые разработан в 1985 году; микроконтроллер AVR, разработанный Atmel в 1996 году; контроллер программируемого интерфейса (PIC) от Microchip Technology; и различные лицензированные микроконтроллеры Advanced RISC Machines (ARM).
Ряд компаний производят и продают микроконтроллеры, включая NXP Semiconductors, Renesas Electronics, Silicon Labs и Texas Instruments.
Приложения микроконтроллера Микроконтроллерыиспользуются в различных отраслях и приложениях, в том числе в домашних условиях и на предприятиях, в автоматизации зданий, производстве, робототехнике, автомобилестроении, освещении, интеллектуальной энергетике, промышленной автоматизации, коммуникациях и развертываниях Интернета вещей (IoT).
Одно из очень специфических применений микроконтроллера — его использование в качестве процессора цифровых сигналов. Часто входящие аналоговые сигналы имеют определенный уровень шума.Шум в этом контексте означает неоднозначные значения, которые нельзя легко преобразовать в стандартные цифровые значения. Микроконтроллер может использовать свои АЦП и ЦАП для преобразования входящего аналогового сигнала с шумом в ровный исходящий цифровой сигнал.
Простейшие микроконтроллеры облегчают работу электромеханических систем, используемых в предметах повседневного обихода, таких как духовки, холодильники, тостеры, мобильные устройства, брелоки, системы видеоигр, телевизоры и системы полива газонов. Они также распространены в офисной технике, такой как копировальные аппараты, сканеры, факсы и принтеры, а также в интеллектуальных счетчиках, банкоматах и системах безопасности.
Более сложные микроконтроллеры выполняют важные функции в самолетах, космических кораблях, океанских судах, транспортных средствах, медицинских системах и системах жизнеобеспечения, а также в роботах. В медицинских сценариях микроконтроллеры могут регулировать работу искусственного сердца, почек или других органов. Они также могут способствовать функционированию протезов.
Сравнение микроконтроллеров и микропроцессоровРазличие между микроконтроллерами и микропроцессорами стало менее четким, поскольку плотность и сложность микросхем стали относительно дешевыми в производстве, и микроконтроллеры, таким образом, интегрировали более «общие компьютерные» типы функциональности.В целом, однако, можно сказать, что микроконтроллеры работают сами по себе, с прямым подключением к датчикам и исполнительным механизмам, где микропроцессоры предназначены для максимизации вычислительной мощности на кристалле, с подключением к внутренней шине (а не с прямым вводом / выводом). для поддержки оборудования, такого как ОЗУ и последовательные порты. Проще говоря, в кофеварках используются микроконтроллеры; настольные компьютеры используют микропроцессоры.
Микроконтроллер Microchip Technology ATtiny817. Микроконтроллерыдешевле и потребляют меньше энергии, чем микропроцессоры.Микропроцессоры не имеют встроенного ОЗУ, постоянного запоминающего устройства (ПЗУ) или других периферийных устройств на микросхеме, а подключаются к ним своими контактами. Микропроцессор можно считать сердцем компьютерной системы, тогда как микроконтроллер можно считать сердцем встроенной системы.
Выбор подходящего микроконтроллераПри выборе микроконтроллера для проекта следует учитывать ряд технологических и бизнес-соображений.
Помимо стоимости, важно учитывать максимальную скорость, объем RAM или ROM, количество или типы контактов ввода-вывода на MCU, а также энергопотребление, ограничения и поддержку разработки.Обязательно задавайте такие вопросы, как:
- Какие аппаратные периферийные устройства требуются?
- Нужны ли внешние коммуникации?
- Какую архитектуру использовать?
- Какие сообщества и ресурсы доступны для микроконтроллера?
- На каком рынке представлен микроконтроллер?
Основы микроконтроллера Вопросы и ответы
Этот набор вопросов и ответов с несколькими вариантами ответов (MCQ) для микроконтроллеров посвящен теме «Введение в микроконтроллер».
1. Микроконтроллер должен состоять как минимум из:
a) RAM, ROM, портов ввода-вывода и таймеров
b) CPU, RAM, портов ввода-вывода и таймеров
c) CPU, RAM, ROM, ввода-вывода порты и таймеры
d) ЦП, ПЗУ, порты ввода-вывода и таймеры
Просмотр ответа
Ответ: c
Объяснение: микроконтроллер, по крайней мере, состоит из процессора в качестве центрального процессора с ОЗУ, ПЗУ, портами ввода-вывода и таймерами . Он может содержать некоторые дополнительные периферийные устройства, такие как АЦП, ШИМ и т. Д.
2. В отличие от микропроцессоров, микроконтроллеры используют батареи, потому что они имеют:
a) высокое рассеивание мощности
b) низкое энергопотребление
c) низкое потребление напряжения
d) низкое потребление тока
Посмотреть ответ
Ответ: b
Объяснение: Микроконтроллеры созданы с использованием концепции СБИС.Итак, здесь логические вентили на основе КМОП соединены вместе с помощью этого метода, который потребляет мало энергии.
3. Какой порядок решает процессор или ЦП контроллера для выполнения инструкции?
a) декодирование, выборка, выполнение
b) выполнение, выборка, декодирование
c) выборка, выполнение, декодирование
d) выборка, декодирование, выполнение
Просмотр ответа
Ответ: d
Объяснение: Первая инструкция извлекается из памяти программ . После выборки инструкция декодируется для генерации сигналов управления для выполнения намеченной задачи.После декодирования выполняется инструкция и завершается намеченная задача этой конкретной инструкции.
4. Если мы говорим, что микроконтроллер 8-битный, то здесь 8-битный означает размер:
a) Шина данных
b) ALU
c) Шина управления
d) Адресная шина
Просмотр ответа
Ответ: b
Объяснение: Если мы говорим, что микроконтроллер 8-битный, это означает, что он способен обрабатывать 8-битные данные за раз. Обработка данных — это задача ALU, и если ALU может обрабатывать 8-битные данные, шина данных должна быть 8-битной шириной.В большинстве книг указывается размер шины данных, но если быть точным, это размер ALU, потому что в Гарвардской архитектуре есть два набора шин данных, которые могут быть одинакового размера, но это не обязательно.
5. Как на производительность и возможности компьютера влияет увеличение ширины его внутренней шины?
a) увеличивается и вращается лучше
b) уменьшается
c) остается прежней
d) ширина внутренней шины никак не влияет на производительность
Посмотреть ответ
Ответ: a
Объяснение: По мере увеличения ширины шины количество битов, передаваемых по шине за раз, увеличивается, в результате чего увеличивается общая производительность и возможности компьютера.
6. Сокращайте CISC и RISC.
a) Компьютер с полным набором команд, компьютер с сокращенным набором команд
b) Компьютер со сложным набором команд, компьютер с сокращенным набором команд
c) Компьютер со сложным набором команд, надежный компьютер с набором команд
d) Компьютер с полным набором команд, надежный компьютер с набором команд
Просмотр Ответ
Ответ: b
Объяснение: CISC означает компьютер с полным набором команд, потому что в этом микроконтроллере есть набор команд, который поддерживает множество режимов адресации для арифметических и логических инструкций, передачи данных и доступа к памяти.RISC означает компьютер с сокращенным набором команд, потому что здесь микроконтроллер имеет набор команд, который поддерживает меньшее количество режимов адресации для арифметических и логических команд и для команд передачи данных.
7. Назовите имена присутствующих в контроллере шин для передачи данных из одного места в другое?
a) шина данных, шина адреса
b) шина данных
c) шина данных, шина адреса, шина управления
d) шина адреса
Просмотр ответа
Ответ: c
Пояснение: В микроконтроллере присутствуют 3 шины, которыми они являются шина данных (для переноса данных из одного места в другое), адресная шина (для переноса адреса, на который будут передаваться данные) и шина управления (которая сообщает контроллеру выполнить, какой тип работы по этому адресу может быть прочитан или запись операции).
8. Какое расширение файла загружается в микроконтроллер для выполнения любой инструкции?
a) .doc
b) .c
c) .txt
d) .hex
Просмотреть ответ
Ответ: d
Пояснение: микроконтроллеры загружаются с расширением .hex, поскольку они понимают язык только нулей и единиц.
9. Каков наиболее подходящий критерий для выбора правильного микроконтроллера по нашему выбору?
a) скорость
b) доступность
c) удобство работы с продуктом
d) все упомянутое
Посмотреть ответ
Ответ: d
Объяснение: для выбора правильного микроконтроллера для нашего продукта мы должны учитывать его скорость, чтобы инструкции может быть выполнен в кратчайшие сроки.Это также зависит от наличия, так что конкретный продукт может быть доступен в наших соседних регионах или на рынке, в котором мы нуждаемся. Это также зависит от совместимости с продуктом, чтобы можно было получить наилучшие результаты.
10. Почему микроконтроллеры не называют компьютерами общего назначения?
a) потому что они встроены в RAM и ROM
b) потому что они предназначены для выполнения специальной задачи
c) потому что они дешевы
d) потому что они потребляют мало энергии
Посмотреть ответ
Ответ: b
Объяснение: микроконтроллеры разработаны для выполнения специальных задач.Конечное использование компьютеров общего назначения при проектировании компьютеров неизвестно.
Sanfoundry Global Education & Learning Series — Микроконтроллер.
Чтобы попрактиковаться во всех областях микроконтроллера, представляет собой полный набор из 1000+ вопросов и ответов с несколькими вариантами ответов .
Примите участие в конкурсе сертификации Sanfoundry, чтобы получить бесплатную Почетную грамоту. Присоединяйтесь к нашим социальным сетям ниже и будьте в курсе последних конкурсов, видео, стажировок и вакансий!
Основы микроконтроллеров: история, структура, приложения
Добро пожаловать в мир микроконтроллеров, крошечное (но очень мощное) устройство, изменившее облик встраиваемых систем.В этом руководстве / статье вы узнаете о росте микроконтроллеров, некоторых основах микроконтроллеров, структуре микроконтроллера, а также о некоторых различиях между микропроцессором и микроконтроллером.
Прежде чем углубляться в подробности «Основы микроконтроллеров», вам необходимо знать, что такое микроконтроллер. Микроконтроллеры похожи на микропроцессоры, но имеют несколько дополнительных компонентов на одном чипе.
Что такое микроконтроллер?
Микроконтроллер — это интегральная схема (IC) СБИС (очень крупномасштабная интеграция), которая содержит электронный вычислительный блок и логический блок (вместе известный как ЦП), память (память программ и память данных), порты ввода-вывода (ввод / вывод). Порты) и несколько других компонентов, интегрированных в один чип.
Иногда микроконтроллер также называют компьютером на кристалле или однокристальным компьютером. Поскольку микроконтроллер и его вспомогательные схемы часто встроены в устройство, которым он управляет, микроконтроллер также называется встроенным контроллером.
Микроконтроллеры широко распространены. Если устройство или приложение включает в себя измерение, хранение, вычисление, управление или отображение информации, тогда устройство содержит в себе микроконтроллер. Давайте посмотрим на некоторые области, в которых используются микроконтроллеры.
Крупнейшим пользователем микроконтроллеров, вероятно, является автомобильная промышленность. Почти каждый автомобиль, который выходит с завода по сборке, содержит хотя бы один микроконтроллер для управления двигателем. Вы можете найти еще много микроконтроллеров для управления дополнительными системами.
Бытовая электроника — еще одна область, в которой используются микроконтроллеры. Микроконтроллеры входят в состав цифровых фотоаппаратов, видеокамер, проигрывателей компакт-дисков и DVD, стиральных машин, духовок и т. Д.
Микроконтроллерытакже используются в тестовом и измерительном оборудовании, таком как мультиметры, осциллографы, генераторы функций и т. Д.Вы также можете найти микроконтроллеры рядом с вашим настольным компьютером, такие как принтеры, маршрутизаторы, модемы, клавиатуры и т.д. .
Сначала мы увидим «Расцвет микроконтроллеров», где вы узнаете, как происходила разработка микроконтроллеров.
Восстание микроконтроллеров
Микропроцессор, изобретение, которое штурмом взяло область вычислений.Микропроцессор — это интегральная схема (ИС), которая содержит центральный процессор (ЦП). Самыми ранними известными микропроцессорами являются Intel 4004 и TMS1000 от Texas Instruments.
С тех пор вычислительная мощность, сложность и энергопотребление продолжали расти, чтобы обеспечить максимальную производительность (энергопотребление необходимо обсуждать отдельно из-за таких разработок, как СБИС с низким энергопотреблением и т. Д.).
Чтобы микропроцессор работал, ему нужен набор поддерживающего оборудования, которое можно найти на материнской плате.Аппаратное обеспечение включает в себя память, микросхемы для периферийных устройств и т.д.
В самом начале реализована способность микропроцессоров управлять другим электронным оборудованием, например, копировальными аппаратами. Акцент здесь делается не на вычислительной мощности микропроцессора, а на механизме управления с менее сложным оборудованием и повышенной надежностью.
Это требование проложило путь для интеграции минимального оборудования, необходимого для полного функционирования процессора, на одном кристалле i.е. тот же чип, что и процессор, если быть точным.
Это расцвет микроконтроллеров, интегральных схем, которые содержат все функции и оборудование для создания законченной компьютерной системы. Здесь вычислительная мощность устройства имеет меньшее значение, чем интеграция всех компонентов, включая память.
Также читайте: 8051 МИКРОКОНТРОЛЛЕР ВВЕДЕНИЕ И ОСНОВЫ
Основы микроконтроллеров
В основном микроконтроллер состоит из следующих компонентов.
- Центральный процессор (ЦП)
- Память программ (ПЗУ — постоянная память)
- Память данных (ОЗУ — оперативная память)
- Таймеры и счетчики
- Порты ввода / вывода (ввод / вывод — ввод / вывод )
- Интерфейс последовательной связи
- Схема синхронизации (схема генератора)
- Механизм прерывания
Большинство современных микроконтроллеров могут содержать еще больше периферийных устройств, таких как SPI (последовательный периферийный интерфейс), I2C (межинтегральная схема), АЦП (аналого-цифровой преобразователь) ), ЦАП (цифро-аналоговый преобразователь), CAN (управляемая сеть), USB (универсальная последовательная шина) и многие другие.
ЦП (центральный процессор) в микроконтроллере выполняет арифметические, логические, математические и ориентированные на данные функции, аналогично ЦП в микропроцессоре. Разница между микропроцессором и микроконтроллером заключается в том, что микропроцессор должен иметь интерфейс с внешней памятью и другими интерфейсами ввода-вывода для работы в качестве компьютера, тогда как микроконтроллер имеет все необходимые периферийные устройства на том же чипе, что и ЦП.
Интеграция таких функций, как АЦП, ЦАП и т. Д., На том же чипе, что и ЦП, делает его более эффективным и дешевым, чем использование отдельной микросхемы АЦП.
Разработка системы, управляемой компьютером, включает в себя проектирование оборудования, а также написание эффективной программы. Поскольку микроконтроллер имеет все аппаратное обеспечение, необходимое для создания системы, управляемой компьютером, на одном кристалле, использование микроконтроллера значительно сократит усилия и время, затрачиваемые на проектирование оборудования и проводку.
Базовая структура микроконтроллера
Возможно, вы много раз видели базовую структуру микроконтроллера. Если вы уже видели структуру микроконтроллера и основные компоненты микроконтроллера раньше, то рассматривайте это как пересмотр.Если вы этого не видели, то очень важно иметь представление об основной структуре микроконтроллера.
На следующем изображении показана основная структура микроконтроллера.
Из приведенного выше изображения вы можете понять, что три важных (или основных) компонента микроконтроллера:
- ЦП (центральный процессор)
- Память и
- Порты ввода / вывода
Это не означает, что другие компоненты менее важны.Но их можно рассматривать как вспомогательные устройства. Теперь мы увидим каждый из основных компонентов микроконтроллера, упомянутых в приведенной выше структуре.
CPU
Центральный процессор или ЦП — это мозг микроконтроллера. Он состоит из арифметико-логического блока (ALU) и блока управления (CU). ЦП считывает, декодирует и выполняет инструкции для выполнения арифметических, логических операций и операций передачи данных.
Память
Любая вычислительная система требует двух типов памяти: памяти программ и памяти данных.Программная память, как следует из названия, содержит программу, то есть инструкции, которые должны выполняться ЦП. Память данных, с другой стороны, требуется для хранения временных данных при выполнении инструкций.
Обычно память программ — это постоянное запоминающее устройство или ПЗУ, а память данных — это оперативное запоминающее устройство или ОЗУ. Память данных иногда называется памятью для чтения и записи (R / W M).
Порты ввода / вывода
Интерфейс микроконтроллера с внешним миром обеспечивается портами ввода / вывода или портами ввода / вывода.Устройства ввода, такие как переключатели, клавиатуры и т. Д., Предоставляют информацию от пользователя к ЦП в форме двоичных данных.
ЦП, получив данные от устройств ввода, выполняет соответствующие инструкции и дает ответ через устройства вывода, такие как светодиоды, дисплеи, принтеры и т. Д.
Шина
Другой важный компонент микроконтроллера, но редко обсуждаемый — это система. Автобус. Системная шина — это группа соединительных проводов, которые соединяют ЦП с другими периферийными устройствами, такими как память, порты ввода-вывода и другие вспомогательные компоненты.
Таймеры / счетчики
Одним из важных компонентов микроконтроллера являются таймеры и счетчики. Они обеспечивают операции с задержкой по времени и подсчет внешних событий. Кроме того, таймеры и счетчики могут обеспечивать генерацию функций, широтно-импульсную модуляцию, управление тактовой частотой и т. Д.
Последовательный порт
Одним из важных требований микроконтроллера является связь с другими устройствами и периферийными устройствами (внешними). Последовательный порт доказывает наличие такого интерфейса через последовательную связь.Наиболее распространенной последовательной связью, реализованной в микроконтроллерах, является UART.
Прерывания
Очень важной особенностью микроконтроллера являются прерывания и их механизм обработки прерываний. Прерывания могут быть внешними, внутренними, аппаратными или программными.
АЦП (аналого-цифровой преобразователь)
Аналого-цифровой преобразователь или АЦП — это схема, преобразующая аналоговые сигналы в цифровые. Схема АЦП образует интерфейс между внешними устройствами аналогового ввода и ЦП микроконтроллера.Почти все датчики являются аналоговыми устройствами, и аналоговые данные с этих датчиков должны быть преобразованы в цифровые данные, чтобы ЦП мог их понять.
ЦАП (цифро-аналоговый преобразователь)
Цифро-аналоговый преобразователь или ЦАП — это схема, которая работает в отличие от АЦП, то есть преобразует цифровые сигналы в аналоговые сигналы. ЦАП образует мост между процессором микроконтроллера и внешними аналоговыми устройствами.
Прочтите этот связанный пост: 8051 АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРА
Преимущества микроконтроллеров
- Микроконтроллер — это настоящее устройство, которое соответствует идее «компьютер на кристалле».
- Нет необходимости во внешнем взаимодействии основных компонентов, таких как память, порты ввода-вывода и т. Д.
- Микроконтроллеры не требуют сложных операционных систем, так как все инструкции должны быть записаны и сохранены в памяти. (ОСРВ — исключение).
- Все порты ввода / вывода программируются.
- Интеграция всех основных компонентов снижает стоимость, время разработки и площадь продукта (или приложения).
Недостатки микроконтроллеров
- Микроконтроллеры не известны своей вычислительной мощностью.
- Объем памяти ограничивает инструкции, которые может выполнять микроконтроллер.
- Операционная система отсутствует, следовательно, все инструкции должны быть написаны.
Приложения микроконтроллеров
Существует огромное количество приложений микроконтроллеров. Фактически, вся индустрия встраиваемых систем зависит от микроконтроллеров. Ниже приведены несколько применений микроконтроллеров.
- Элементы управления передней панели в таких устройствах, как духовка, стиральная машина и т. Д.
- Функциональные генераторы
- Дымовая и пожарная сигнализация
- Системы домашней автоматизации
- Автоматическое включение фар в автомобилях
- Система блокировки дверей с датчиком скорости
В этом руководстве / статье мы познакомились с основами микроконтроллеров, базовой структурой Микроконтроллер, различные компоненты микроконтроллера, преимущества, недостатки и применения микроконтроллеров.
Микроконтроллер — обзор | Темы ScienceDirect
2.2.2 Микроконтроллер
Микроконтроллер будет важным строительным блоком для любой носимой конструкции и может быть представлен как независимый чип или интегрирован с беспроводным трансивером на одном кристалле. Они предоставляют вычислительные возможности для управления периферийными устройствами считывания и связи и определения общей работы устройства. В большинстве случаев микроконтроллер занимает второе место по потребляемой мощности после модулей связи, поэтому очень важно оптимизировать эту часть конструкции.
Среднее энергопотребление микроконтроллера может быть приблизительно равно [16]
(2) Pmcu = ACcfV2 + AIswV + IleakV + Pext
, где A — доля времени, в течение которого микроконтроллер активен, C c — общая емкость кристалла, f — тактовая частота, V — напряжение питания, I sw — средний ток переключения при коротком замыкании, возникающий во время переходов, I утечка — ток утечки из-за инжекции подложки и подпороговых эффектов, а P ext — мощность, используемая для управления внешними нагрузками.Уравнение (2) предполагает, что снижение рабочего напряжения, емкости, частоты и включения / выключения устройства снижает энергопотребление. Уменьшение A , количества времени, в течение которого микроконтроллер находится во включенном состоянии, чрезвычайно важно для минимизации энергопотребления, и конструкции обычно стремятся удерживать микроконтроллер в режимах глубокого сна в течение как можно большего количества времени. В результате, помимо потребления тока, важными факторами для определения общего энергопотребления микроконтроллера являются (1) то, включает ли он сохранение состояния (т.е.д., может ли микроконтроллер сохранять содержимое своих регистров во время сна / неактивного режима или они должны передаваться в / из памяти за счет времени и энергии), и (2) поддерживает ли он периферийные устройства, которые могут работать без ЦП вмешательство в режимах с низким энергопотреблением (например, прямой доступ к памяти, чтобы данные с внешнего АЦП могли передаваться прямо в память без включения основного микроконтроллера).
Выбор энергосберегающего микроконтроллера — непростая задача, поскольку напрямую сравнивать различные устройства сложно из-за различий в оборудовании, особенно у разных производителей.В таблице 2 показано параллельное сравнение трех популярных микроконтроллеров с низким энергопотреблением от двух разных поставщиков [17], чтобы проиллюстрировать некоторые из различных доступных характеристик, включая значения из предоставленных компанией данных и наши измеренные характеристики чипы в лаборатории.
Таблица 2. Энергопотребление и сравнение времени запуска маломощных микроконтроллеров от Texas Instruments и технологии микрочипов. миллионы инструкций в секунду (MIPS).