13.3 Общие сведения об омк avr
Однокристальные AVR-микроконтроллеры представляют высокопродуктивные RISC-контроллеры общего назначения. Они были созданы группой разработчиков исследовательского центра корпорации Atmel (Норвегия), инициалы которых и сформировали марку AVR. Особенностью AVRмикроконтроллеров является их широкая номенклатура, которая позволяет пользователю выбрать микроконтроллер с минимальной аппаратной избыточностью и, следовательно, наименьшей стоимости. Так, например, в номенклатуру группы AT90S входят контроллеры с ПЗУ объемом от 1 до 8 Кбайт, с самыми разными наборами периферии и в корпусах с количеством выводов от 8 до 48. В данное время в серийном производстве находятся несколько семейств AVR: Tiny, Classic, Mega, Xmega, picoPower, CAN-AVR, USB-AVR, LCD-AVR, Lighting-AVR, Smart-Battery-AVR, Automotive, AVR-Z-Link.
Микроконтроллеры Tiny наиболее дешевые и простые, Mega более мощные, a Classic занимают промежуточное место между ними. Xmega – с улучшенными по сравнению с Mega характеристиками, LCD-AVR – со встроенным драйвером жидкокристаллического индикатора, CAN-AVR – для организации обмена информации по сети CAN, USB-AVR – со встроенным USB интерфейсом (опционально: датчиком реального времени и скоростным ШИМом), Lighting-AVR имеет встроенный ЦАП, Smart-Battery-AVR имеет встроенный драйвер управления устройствами бесперебойного питания, Automotive – для управления различными автомобильными системами (имеет встроенный датчик температуры и CAN-интерфейс), AVR-Z-Link – радио-приёмо-передатчик.
Рассмотрим архитектуру AVR-микроконтроллеров на примере МК семейства Classic AT90S8535 (рис. 13.3). Микроконтроллер содержит гарвардский процессор, регистровый файл, память программ, память данных и различные интерфейсные схемы (периферию).
Гарвардский процессор реализует полное логическое и физическое разделение не только адресных пространств, но и информационных шин для обращения к памяти программ и к памяти данных, причем способы адресации и доступа к этим массивам памяти также разные. Подобное построение уже более близко к структуре цифровых сигнальных процессоров и обеспечивает повышение производительности. Процессор работает одновременно как с памятью программ, так и с памятью данных; разрядность шины памяти программ расширена до 16 бит. В МК AVR используется технология конвейеризации, вследствие чего цикл "выборка выполнение" команды существенно сокращен. Для сравнения, у микроконтроллеров семейства MCS51 корпорации Intel короткая команда выполняется за 12 тактов генератора (1 машинный цикл), на протяжении которого процессор последовательно считывает код операции и выполняет ее. В PIC-контроллерах фирмы Microchip, где уже реализован конвейер, короткая команда выполняется на протяжении 8 периодов тактовой частоты (2 машинных цикла). За это время последовательно дешифруется и считывается код операции, выполняется команда, фиксируется результат и одновременно считывается код следующей операции (одноуровневый конвейер). Поэтому в общем потоке команд одна короткая команда реализуется за 4 периода тактовой частоты или за один машинный цикл. В МК AVR тоже используется одноуровневый конвейер при обращении к памяти программ и короткие команды в общем потоке выполняется, как и в PIC-контроллерах, за один машинный цикл. Главное же отличие заключается в том, что этот цикл в МК AVR составляет всего один период тактовой частоты.
Регистровый файл занимает 32 младших байта в общем адресном пространстве статического ОЗУ (SRAM) ОМК. Шесть старших байтов из них могут использоваться как три 16-разрядных указателя адреса при косвенной адресации данных. Один из этих указателей (Z Pointer) применяется также для доступа к данным, записанным в памяти программ микроконтроллера. Использование трех 16-битных указателей (X, Y и Z Pointers) существенным образом повышает скорость пересылки данных при работе прикладных программ.
Память программ. Все AVR-микроконтроллеры имеют Flash-память программ, которая может быть загружена как с помощью обычного программатора, так и с помощью SPI-интерфейса, в том числе непосредственно на плате. Число циклов перезаписи не меньше 1000. Некоторые версии кристаллов семейства Mega имеют возможность самопрограммирования, т. е. микроконтроллер способен самостоятельно, без внешнего программатора, изменять содержимое ячеек памяти программ. Это дает возможность записать во внешнюю энергонезависимую память несколько рабочих версий программы, а потом по мере необходимости или по реакции на внешние или внутренние логические условия перегружать рабочие программы в тот же микроконтроллер AVR без извлечения его из печатной платы. Для этого весь массив памяти программ делится на две неравные по объему области: блок загрузчика (программа, которая управляет перезаписью Flash-памяти программ) и блок для размещения рабочих программ. Программа-загрузчик создается самим разработчиком и должна быть запрограммирована внешним программатором.
Память данных. Все AVR-микроконтроллеры имеют также энергонезависимую память данных с электрическим стиранием EEPROM. Этот тип памяти используется для хранения промежуточных данных, разных констант, таблиц перекодировок, калибровочных коэффициентов и т. п. Данные в EEPROM могут быть загружены как через SPI-интерфейс, так и с помощью обычного программатора. Число циклов перезаписи не меньше 100000. Два программируемых бита защиты информации позволяют защитить память программ и энергонезависимую память данных EEPROM от несанкционированного считывания.
Внутренняя оперативная память SRAM есть во всех AVR семейств Classic и Mega и в одном новом кристалле семейства Tiny ATtiny26/L. Для некоторых микроконтроллеров возможно подключение внешней памяти данных объемом до 64 Кбайт.
Периферия МК AVR. К числу традиционных периферийных устройств относятся 8-разрядные порты ввода/вывода, последовательный порт, таймеры/ счетчики и контроллер прерываний.
Число независимых линий портов ввода/вывода от 3 до 53. Каждый разряд порта может быть запрограммирован на ввод или на вывод информации. Мощные выходные драйверы обеспечивают токовую нагрузочную возможность 20 мА по линии порта при максимальном значении 40 мА, что дает возможность, например, непосредственно подключать к микроконтроллеру светодиоды и биполярные транзисторы. Общая токовая нагрузка на все линии одного порта не должна превышать 80 мА (все значения приведены для напряжения питания 5 В).
Микроконтроллеры AVR имеют в своем составе от 1 до 4 таймеров/счетчиков с разрядностью 8 или 16 бит, которые могут работать и как таймеры от внутреннего источника опорной частоты, и как счетчики внешних событий с внешним тактированием.
Таймер/счетчик RTC (есть во всех микроконтроллерах семейства Mega и в некоторых МК Classic) реализует систему реального времени. Таймер имеет свой собственный делитель, который может быть программным способом подключен или к основному внутреннему источнику тактовой частоты микроконтроллера, или к дополнительному асинхронному источнику опорной частоты (кварцевый резонатор или внешний синхросигнал). Для этой цели МК имеет два внешних вывода. Внутренний осциллятор, нагруженный на счетный вход таймера/счетчика RTC, оптимизирован для работы с внешним "часовым" кварцевым резонатором на 32,768 кГц.
Новыми периферийными устройствами являются блок последовательного периферийного интерфейса (SPI), сторожевой таймер (WDT) и аналоговый компаратор (АС).
Блок SPI предназначен для последовательного ввода и вывода данных и используется для программирования микроконтроллера после установки его на печатную плату.
Сторожевой таймер WDT предназначен для перезапуска программы при появлении сбоя в ходе ее выполнения. Программа, которая работает без сбоев, периодически сбрасывает сторожевой таймер, не допуская его переполнения. Сторожевой таймер имеет свой собственный RC-генератор, который работает на частоте 1 МГц. На входе WDT включен делитель входной частоты с программируемым коэффициентом деления, позволяющий регулировать временной интервал переполнения таймера для сброса микроконтроллера. Таймер WDT может быть отключен программным способом во время работы микроконтроллера как в активном режиме, так и в любом из режимов пониженного энергопотребления. В последнем случае это приводит к значительному снижению потребляемого тока.
Аналоговый компаратор АС сравнивает по величине напряжения сигналы, поступающие на входы AIN0 и AIN1. Результат сравнения записывается в бит ACO (Analog Comparator Output) регистра ACSR (Analog Comparator Control and Status Register), который не имеет внешнего вывода.
Аналого-цифровой преобразователь ADC построен по классической схеме последовательного приближения с устройством выборки/хранения (УВХ). Каждый из аналоговых входов может быть соединен с входом УВХ через аналоговый мультиплексор. Устройство выборки/хранения имеет свой собственный усилитель, который гарантирует, что измеряемый аналоговый сигнал будет стабильным на протяжении всего времени преобразования. Разрядность АЦП составляет 10 бит при нормированной погрешности ±2 разряда. АЦП может работать в двух режимах однократное преобразование по любому выбранному каналу и последовательный циклический опрос всех каналов. Время преобразования выбирается программно с помощью установки коэффициента деления частоты специального предварительного делителя, который входит в состав блока АЦП. Оно составляет 70280 мкс для ATmega103 и 65260 мкс для всех других микроконтроллеров, имеющих в своем составе АЦП.
Внутренний тактовый генератор МК AVR может запускаться от нескольких источников опорной частоты (внешний генератор, внешний кварцевый резонатор, внутренняя или внешняя RC-цепочка). Поскольку AVR-микроконтроллеры полностью статические (выполнены по статической технологии), минимальная допустимая частота ничем не ограничена, т. е. возможно обеспечить даже пошаговый режим выполнения программы. Максимальная рабочая частота определяется конкретным типом микроконтроллера.
Микроконтроллеры AVR могут быть переведены программным путем в один из шести режимов пониженного энергопотребления.
Режим холостого хода (IDLE), в котором прекращает работу только процессор и фиксируется содержимое памяти данных, а внутренний генератор синхросигналов, таймеры, система прерываний и WDT-таймер продолжают функционировать.
Режим микропотребления (Power Down), при котором сохраняется содержимое регистрового файла, но останавливается внутренний генератор синхросигналов. Выход из Power Down возможен или по общему сбросу микроконтроллера, или по сигналу от внешнего источника прерывания. При включенном WDG-таймере ток потребления в этом режиме составляет около 6080 мкА, а при выключенном меньше 1 мкА для всех типов AVR. Вышеприведенные значения справедливы для величины питающего напряжения 5 В.
Режим хранения энергии (Power Save), реализованный только в тех AVR, которые имеют в своем составе систему реального времени. В основном режим Power Save идентичен режиму Power Down, но он допускает независимую работу таймера/счетчика RTC. Выход из режима Power Save возможен по прерыванию, вызванному или переполнением таймера/счетчика RTC, или срабатыванием блока сравнения этого счетчика. Ток потребления в этом режиме составляет 610 мкА при напряжении питания 5 В на частоте 32,768 кГц.
Режим подавления шума при работе аналого-цифрового преобразователя (ADC Noise Reduction). В этом режиме останавливается работа процессора, но разрешена работа АЦП, двухпроводного интерфейса I2C и сторожевого таймера.
Основной режим ожидания (Standby). Отличается от режима Power Down тем, что работа тактового генератора не прекращается. Это гарантирует быстрый выход микроконтроллера из режима ожидания всего за 6 тактов генератора.
Дополнительный режим ожидания (Extended Standby). Идентичный режиму Power Save, но работа тактового генератора тоже не прекращается, что гарантирует быстрый выход из режима за 6 тактов генератора.
Система команд AVR насчитывает до 133 различных команд. Различают пять групп команд AVR: условного разветвления, безусловного разветвления, арифметические и логические операции, команды пересылки данных, команды работы с битами. В последних версиях AVR семейства Mega реализована функция аппаратного умножения. По разнообразию и количеству команд AVR больше похожи на CISC-, чем на RISC-процессоры. У PIC-контроллеров система команд исчисляет до 75 разных команд, а в MCS51 она составляет 111.
Интересной особенностью семейства микроконтроллеров AVR является то, что система команд всего семейства совместима при переносе программы со слабого на более мощный микроконтроллер.
- Предисловие
- Глава 1. Общие сведения о микропроцессорах
- 1.1 Классификация микропроцессоров
- 1.2 Характеристики микропроцессоров
- 1.2.1 Тактовая частота
- 1.2.2 Архитектура процессора
- 1.2.3 Технологический процесс производства
- 1.2.4 Частота системной шины
- 1.2.5 Размер кэша
- 1.3 Типы архитектур микропроцессоров
- 1.4 Структурная схема микропроцессоров
- 1.4.1 Микропроцессор Фон-Неймана
- 1.4.2 Конвейер
- 1.4.3 Зависимость между частотой и количеством ступеней конвейера
- 1.5 Представление информации в эвм
- 1.5.1 Двоичное представление целых чисел
- 1.5.2 Представление символьной информации
- Глава 2. Архитектура микропроцессоров ia-32
- 2.1 Состав и функции регистров
- 2.1.1 Основные регистры
- 2.1.2 Регистры дополнительных функциональных модулей
- 2.2 Типы адресации
- 2.3 Система команд
- 2.3.1 Классификация команд
- 2.3.2 Формат команды
- 2.3.3 Однобайтовые команды
- 2.3.4 Непосредственно заданные операнды
- 2.3.5 Команды с регистровыми операндами
- 2.3.7 Команды с операндами, расположенными в памяти
- Глава 3. Организация многоуровневой памяти
- 3.1 Принцип построения многоуровневой памяти
- 3.2 Организация кэш-памяти
- 3.3 Протоколы когерентности памяти микропроцессоров
- 3.4 Страничная организация памяти
- Глава 4. Режимы работы процессоров ia-32
- 4.1 Обзор режимов работы
- 4.2 Реальный режим адресации
- 4.3 Защищённый режим
- 4.3.1 Дескрипторные таблицы
- 4.3.2 Дескрипторные регистры
- 4.3.3 Дескриптор
- 4.3.4 Односегментная модель памяти
- 4.3.5 Многосегментная модель памяти
- Глава 5. Страничная организация памяти в процессорах ia‑32
- 5.1 Каталог страниц
- 5.2 Таблица страниц
- 5.3 Страничная переадресация
- 5.4 Диспетчер виртуальных машин системы Microsoft Windows
- Глава 6. Архитектура процессоров с параллелизмом уровня команд
- 6.1 Подходы к использованию ресурса транзисторов в микропроцессорах
- 6.2 Суперскалярные процессоры и процессоры с длинным командным словом
- 6.3 Зависимости между командами, препятствующие их параллельному исполнению
- 6.4 Предварительная выборка команд и предсказание переходов
- 6.5 Условное выполнение команд в vliw-процессорах
- 6.6 Декодирование команд, переименование ресурсов и диспетчеризация
- 6.7 Исполнение команд
- 6.8 Завершение выполнения команды
- 6.9 Направления развития архитектуры процессоров с параллелизмом уровня команд
- Глава 7. Мультитредовые микропроцессоры
- 7.1 Основы мультитредовой архитектуры
- 7.2 Выявление тредов
- 7.3 Мультитредовые процессоры с тредами, выявляемыми путем анализа потоков управления программы
- 7.3.1 Мультитредовая модель выполнения программы
- 7.3.2 Мультитредовые программы
- 7.3.3 Аппаратные средства мультитредовой архитектуры
- 7.3.4 Преимущества мультитредовой архитектуры
- 7.4 Мультитредовые процессоры с тредами, выявляемыми путем анализа потоков данных программы
- 7.5 Специфика мультитредовых моделей распараллеливания
- Глава 8. Модуль обработки вещественных чисел
- 8.1 Представление чисел с плавающей запятой
- 8.2 Состав модуля fpu
- Глава 9. Основы 64-разрядной архитектуры
- 9.1 Состав и назначение регистров микропроцессора ia-64
- 9.2 Особенности архитектуры epic
- 9.3 Архитектура x86-64
- 9.4 Структура одноядерного процессора
- 9.5 Многоядерные процессоры
- 9.6 Зачем нужны “лишние” разряды?
- Глава 10. Современные 64-разрядные микропроцессоры корпораций Intel и amd
- 10.1 Архитектура Intel Core 2
- 10.1.1 Intel Wide Dynamic Execution
- 10.1.2 Intel Intelligent Power Capability
- 10.1.3 Intel Advanced Smart Cache
- 10.1.4 Intel Smart Memory Access
- 10.1.5 Intel Advanced Digital Media Boost
- 10.1.6 Логическая схема процессора
- 10.2 Архитектура Intel Core i7
- 10.2.1 Технология Hyper-Threading в архитектуре Nehalem
- 10.2.2 Иерархия кэш-памяти в архитектуре Nehalem
- 10.3 Хронология развития семейств микропроцессоров с архитектурой Nehalem
- 10.4 Архитектура amd Athlon 64
- 10.4.1 Ядро процессора
- 10.4.3 Контроллер памяти
- 10.4.4 Контроллер HyperTransport
- 10.5 Архитектура amd k10
- 10.4.1 Технология amd Memory Optimizer Technology
- 10.5.2 Ядро процессора
- 10.5.3 Предвыборка данных и инструкций
- 10.5.4 Выборка из кэша
- 10.5.5 Предсказание переходов и ветвлений
- 10.5.6 Процесс декодирования
- 10.5.7 Диспетчеризация и переупорядочение микроопераций
- 10.5.8 Выполнение микроопераций
- 10.5.9 Технологии энергосбережения
- 10.5.10 Шина HyperTransport 3.0
- 10.5.11 Семейство процессоров Barcelona
- 10.5.12 Семейство процессоров Phenom
- Глава 11. Технологии, поддерживаемые современными микропроцессорами
- 11.1 Технологии тепловой защиты
- 11.1.1 Технология Thermal Monitor
- 11.1.2 Технология Thermal Monitor 2
- 11.1.3 Режим аварийного отключения
- 11.2 Технологии энергосбережения
- 11.2.1 Технология Enhanced Intel SpeedStep
- 11.2.2 Технология Cool'n'Quiet
- 11.3 Технология расширенной памяти
- 11.4 Технология антивирусной защиты
- 11.5 Технология виртуализации
- 11.6 Реализация технологий в современных микроархитектурах
- 11.6.2 Em64t – NetBurst
- 11.6.3 Intel Core
- 11.6.4 Intel Atom
- 11.6.5 Nehalem
- 11.6.6 Xeon
- Глава 12. Графические микропроцессоры
- 12.1 Основные термины и определения
- 12.2 Технологии построения трёхмерного изображения
- 12.2.1 Технологии повышения реалистичности трехмерного изображения
- 12.3 Шейдерный процессор
- 12.4 Особенности современных графических процессоров
- Глава 13. Однокристальные микроконтроллеры
- 13.1 Общая характеристика микроконтроллеров
- 13.2 Микроконтроллеры семейства avr
- Почему именно avr?
- 13.3 Общие сведения об омк avr
- 13.4 Характеристики avr-микроконтроллеров
- Глава 14. Технология производства микропроцессоров
- 14.1 Особенности производства процессоров
- 14.2 Новые технологические решения
- 14.3 Технология производства сверхбольших интегральных схем
- I. Выращивание кристалла кремния
- II. Создание проводящих областей
- III. Тестирование
- IV. Изготовление корпуса
- V. Доставка
- 14.4 Перспективы производства сбис
- Англо-русский словарь терминов и аббревиатур
- Библиографический список
- Интернет-ссылки
- 350072. Краснодар, ул. Московская, 2, кор. А.