Автор работы: Пользователь скрыл имя, 29 Января 2015 в 11:09, реферат
Краткое описание
Область применения микроконтроллеров – это различные контроллеры устройств автоматики, пластиковые карты, контроллеры периферийных устройств и др.. Развитие микроэлектроники и её широкое применений изделий в промышленном производстве, в устройствах и системах управления самыми разнообразными объектами и процессами является в настоящее время одним из основных направлений научно-технического прогресса.
В настоящее время наиболее
яркими представителями микроконтроллеров SISC и RISC,
имеющих соответственно фон-неймановскую
и гарвардскую архитектуры являются микроконтроллеры i8051
и AVR – микроконтроллеры фирмы Atmel, которые
по ряду характеристик превзошли очень
известные PIC – микроконтроллеры. Поэтому
рассмотрим организацию и устройство
вышеперечисленных представителей.
1.3 Арифметико-логическое
устройство
8-битное арифметико-логическое
устройство (ALU) может выполнять арифметические
операции сложения, вычитания, умножения
и деления; логические операции
И, ИЛИ, исключающее ИЛИ, а также
операции циклического сдвига, сброса,
инвертирования и т.п. К входам
подключены программно-недоступные
регистры T1 и T2, предназначенные для
временного хранения операндов,
схема десятичной коррекции (DCU) и
схема формирования признаков
результата операции (PSW).
Простейшая операция сложения
используется в ALU для инкрементирования
содержимого регистров, продвижения регистра-указателя
данных (RAR) и автоматического вычисления
следующего адреса резидентной памяти
программ. Простейшая операция вычитания
используется в ALU для декрементирования
регистров и сравнения переменных.
Простейшие операции автоматически
образуют “тандемы” для выполнения таких
операций, как, например, инкрементирование
16-битных регистровых пар. В ALU реализуется
механизм каскадного выполнения простейших
операций для реализации сложных команд.
Так, например, при выполнении одной из
команд условной передачи управления
по результату сравнения в ALU трижды инкрементируется
счётчик команд (PC), дважды производится
чтение из RDM, выполняется арифметическое
сравнение двух переменных, формируется
16-битный адрес перехода и принимается
решение о том, делать или не делать переход
по программе. Все перечисленные операции
выполняются всего лишь за 2 мкс.
Важной особенностью ALU является
его способность оперировать не только
байтами, но и битами. Отдельные программно-доступные
биты могут быть установлены, сброшены,
инвертированы, переданы, проверены и
использованы в логических операциях.
Эта способность достаточно важна, поскольку
для управления объектами часто применяются
алгоритмы, содержащие операции над входными
и выходными булевыми переменными, реализация
которых средствами обычных микропроцессоров
сопряжена с определенными трудностями.
Таким образом, ALU может оперировать
четырьмя типами информационных объектов:
булевыми (1 бит), цифровыми (4 бита), байтными
(8 бит) и адресными (16 бит). В ALU выполняется
51 различная операция пересылки или преобразования
этих данных. Так как используется 11 режимов
адресации (7 для данных и 4 для адресов),
то путем комбинирования операции и режима
адресации базовое число команд 111 расширяется
до 255 из 256 возможных при однобайтном коде
операции.
1.4 Структурная организацияAVR - микроконтроллера
AVR функционируют в широком
диапазоне питающих напряжений
от 1,8 до 6,0 Вольт. Энергопотребление
в активном режиме зависит
от величины напряжения питания,
от частоты, на которой работает
AVR и от конкретного типа микроконтроллера.
Подробные спецификации обычно
приводятся в оригинальной технической
документации Atmel Corp. Температурные
диапазоны работы микроконтроллеров
AVR - коммерческий (0С...70С) и индустриальный
(-40С...+85С). К сожалению, корпорация Atmel
не выпускает и не планирует
выпускать AVR для работы в автомобильном
(-40С...+125С) и военном (-55С...+125С) температурных
диапазонах.
С точки зрения программиста
AVR представляет собой 8-разрядный RISC микроконтроллер,
имеющий быстрый Гарвардский процессор,
память программ, память данных, порты
ввода/вывода и различные интерфейсные
схемы. Гарвардская архитектура AVR реализует
полное логическое и физическое разделение
не только адресных пространств, но и информационных
шин для обращения к памяти программ и
к памяти данных, причем способы адресации
и доступа к этим массивам памяти также
различны. Подобное построение уже ближе
к структуре цифровых сигнальных процессоров
и обеспечивает существенное повышение
производительности. Центральный процессор
работает одновременно как с памятью программ,
так и с памятью данных; разрядность шины
памяти программ расширена до 16 бит.
Следующим шагом на пути увеличения
быстродействия AVR является использование
технологии конвейеризации, вследствие
чего цикл "выборка - исполнение"
команды заметно сокращен. Например, у
микроконтроллеров семейства MCS51 короткая
команда выполняется за 12 тактов генератора
(1 машинный цикл), в течение которого процессор
последовательно считывает код операции
и исполняет ее. В PIC-контроллерах фирмы
Microchip, где уже реализован конвейер, короткая
команда выполняется в течение 8 периодов
тактовой частоты (2 машинных цикла). За
это время последовательно дешифрируется
и считывается код операции, исполняется
команда, фиксируется результат и одновременно
считывается код следующей операции (одноуровневый
конвейер). Поэтому в общем потоке команд
одна короткая команда реализуется за
4 периода тактовой частоты или за один
машинный цикл. В микроконтроллерах AVR
тоже используется одноуровневый конвейер
при обращении к памяти программ и короткая
команда в общем потоке выполняется, как
и в PIC-контроллерах, за один машинный цикл.
Главное же отличие состоит в том, что
этот цикл у AVR составляет всего один период
тактовой частоты. Для сравнения, на рис.
3 приведены временные диаграммы при выполнении
типовой команды для различных микроконтроллерных
платформ.
Следующая отличительная черта
архитектуры микроконтроллеров AVR - регистровый
файл быстрого доступа, структурная схема
которого показана на рис. 4. Каждый из
32-х регистров общего назначения длиной
1 байт непосредственно связан с арифметико-логическим
устройством (ALU) процессора. Другими словами,
в AVR существует 32 регистра - аккумулятора.
Это обстоятельство позволяет в сочетании
с конвейерной обработкой выполнять одну
операцию в ALU за один машинный цикл. Так,
два операнда извлекаются из регистрового
файла, выполняется команда и результат
записывается обратно в регистровый файл
в течение только одного машинного цикла.
Шесть из 32-х регистров файла
могут использоваться как три 16-разрядных
указателя адреса при косвенной адресации
данных. Один из этих указателей (Z Pointer)
применяется также для доступа к данным,
записанным в памяти программ микроконтроллера.
Использование трех 16-битных указателей
(X, Y и Z Pointers) существенно повышает скорость
пересылки данных при работе прикладной
программы.
Регистровый файл занимает
младшие 32 байта в общем адресном пространстве
SRAM AVR. Такое архитектурное решение позволяет
получать доступ к быстрой "регистровой"
оперативной памяти микроконтроллера
двумя путями - непосредственной адресацией
в коде команды к любой ячейке и другими
способами адресации ячеек SRAM. В технической
документации фирмы Atmel это полезное свойство
носит название "быстрое контекстное
переключение" и является еще одной
отличительной особенностью архитектуры
AVR, повышающей эффективность работы микроконтроллера
и его производительность. Особенно заметно
данное преимущество при реализации процедур
целочисленной 16-битной арифметики, когда
исключаются многократные пересылки между
различными ячейками памяти данных при
обработке арифметических операндов в
ALU.
Система команд AVR весьма развита
и насчитывает до 133 различных инструкций.
Конкретное количество команд для каждого
микроконтроллера того или иного семейства
AVR приведено в таблицах 1 - 2. Почти все
команды имеют фиксированную длину в одно
слово (16 бит), что позволяет в большинстве
случаев объединять в одной команде и
код операции, и операнд(ы). Лишь немногие
команды имеют размер в 2 слова (32 бит) и
относятся к группе команд вызова процедуры
CALL, длинных переходов в пределах всего
адресного пространства JMP, возврата из
подпрограмм RET и команд работы с памятью
программ LPM. Различают пять групп команд
AVR: условного ветвления, безусловного
ветвления, арифметические и логические
операции, команды пересылки данных, команды
работы с битами. В последних версиях кристаллов
AVR семейства "mega" реализована функция
аппаратного умножения, что придает новым
микроконтроллерам еще больше привлекательности
с точки зрения разработчика.
По разнообразию и количеству
реализованных инструкций AVR больше похожи
на CISC, чем на RISC процессоры. Например,
у PIC-контроллеров система команд насчитывает
до 75 различных инструкций, а у MCS51 она
составляет 111. В целом, прогрессивная
RISC архитектура AVR в сочетании с наличием
регистрового файла и расширенной системы
команд позволяет в короткие сроки создавать
работоспособные программы с эффективным
кодом как по компактности реализации,
так и по скорости выполнения.
start="2"
Обзор семейства
микроконтроллеров Arduino
Arduino Mega 2560
Arduino Mega 2560 R3 - вид
спереди
Arduino Mega2560 R3 - вид
сзади
Arduino Mega 2560 - вид
спереди
Arduino Mega 2560 - вид
сзади
Общие сведения
Arduino Mega 2560 - это устройство
на основе микроконтроллера ATmega2560
(datasheet). В его состав входит все необходимое
для удобной работы с микроконтроллером:
54 цифровых входа/выхода (из которых 15 могут
использоваться в качестве ШИМ-выходов),
16 аналоговых входов, 4 UART (аппаратных приемопередатчика
для реализации последовательных интерфейсов),
кварцевый резонатор на 16 МГц, разъем USB,
разъем питания, разъем ICSP для внутрисхемного
программирования и кнопка сброса. Для
начала работы с устройством достаточно
просто подать питание от AC/DC-адаптера
или батарейки, либо подключить его к компьютеру
посредством USB-кабеля. Arduino Mega совместим
с большинством плат расширения, разработанных
для Arduino Duemilanove и Diecimila.
Mega 2560 - это обновленная
версия Arduino Mega.
Ардуино Mega 2560 отличается от
всех предыдущих плат тем, что в нем для
преобразования интерфейсов USB-UART вместо
микросхемы FTDI используется микроконтроллер
ATmega16U2 (ATmega8U2 в версиях платы R1 и R2).
На плате Mega 2560 версии R2 добавлен
резистор, подтягивающий к земле линию
HWB микроконтроллера 8U2. Подобная мера позволяет
упростить процесс обновления прошивки
и переход устройства в режим DFU.
Изменения на плате версии R3 перечислены
ниже:
Распиновка 1.0: добавлены выводы
SDA и SCL (возле вывода AREF), а также два новых
вывода, расположенных возле вывода RESET.
Первый - IOREF - позволяет платам расширения
подстраиваться под рабочее напряжение
Ардуино. Данный вывод предусмотрен для
совместимости плат расширения как с 5В-Ардуино
на базе микроконтроллеров AVR, так и с 3.3В-платами
Arduino Due. Второй вывод ни к чему не подсоединен
и зарезервирован для будущих целей.
54 (из которых 15 могут использоваться
в качестве ШИМ-выходов)
Аналоговые входы
16
Максимальный ток одного вывода
40 мА
Максимальный выходной ток
вывода 3.3V
50 мА
Flash-память
256 КБ из которых 8 КБ
используются загрузчиком
SRAM
8 КБ
EEPROM
4 КБ
Тактовая частота
16 МГц
Питание
Arduino Mega может быть запитан
от USB либо от внешнего источника
питания - тип источника выбирается
автоматически.
В качестве внешнего источника
питания (не USB) может использоваться сетевой
AC/DC-адаптер или аккумулятор/батарея. Штекер
адаптера (диаметр - 2.1мм, центральный контакт
- положительный) необходимо вставить в
соответствующий разъем питания на плате.
В случае питания от аккумулятора/батареи,
ее провода необходимо подсоединить к
выводам Gnd и Vin разъема POWER.
Напряжение внешнего источника
питания может быть в пределах от 6 до 20 В.
Однако, уменьшение напряжения питания
ниже 7В приводит к уменьшению напряжения
на выводе 5V, что может стать причиной
нестабильной работы устройства. Использование
напряжения больше 12В может приводить
к перегреву стабилизатора напряжения
и выходу платы из строя. С учетом этого,
рекомендуется использовать источник
питания с напряжением в диапазоне от
7 до 12В.
Выводы питания, расположенные
на плате, перечислены ниже:
VIN. Напряжение, поступающее в Arduino непосредственно от внешнего источника питания (не связано с 5В от USB или другим стабилизированным напряжением). Через этот вывод можно как подавать внешнее питание, так и потреблять ток, когда устройство запитано от внешнего адаптера.
5V. На этот вывод поступает напряжение 5В от стабилизатора напряжения на
плате, вне независимости от того, как
запитано устройство: от адаптера (7 - 12В),
от USB (5В) или через вывод VIN (7 - 12В). Запитывать
устройство через выводы 5V или 3V3 не рекомендуется,
поскольку в этом случае не используется
стабилизатор напряжения, что может привести
к выходу платы из строя.