Указания по организации самостоятельной работы. Цель работы: изучить архитектуру и принципы программирования микроконтроллера AVR АТMEGA128 на примере разработки программы для управления блоком светодиодов;ИЗУЧЕНИЕ СИСТЕМЫ КОМАНД И ОСНОВНЫХ ПРИНЦИПОВ ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРОВ НА ПРИМЕРЕ УПРАВЛЕНИЯ БЛОКОМ СВЕТОДИОДОВ Цель работы: изучить архитектуру и принципы программирования микроконтроллера AVR АТMEGA128 на примере разработки программы для управления блоком светодиодов; структурную организацию, состав и возможности компонентов лабораторного макета, освоить пользовательский интерфейс среды программирования C Code Vision AVR.
Указания по организации самостоятельной работы Перед работой необходимо проработать теоретический материал по литературе [1, 2] и конспект лекций, ознакомиться со структурой и принципами функционирования микроконтроллера AVR АТMEGA128, системой команд и основами программирования на языках Assembler и С. При подготовке к лабораторной работе необходимо составить предварительные варианты листингов программ, указываемых в пунктах практического выполнения работы.
1.1.1 Основные характеристики микроконтроллера AVR АТMEGA128 AVR-архитектура объединяет высокопроизводительный RISC-процессор с раздельным доступом к памяти программ и данных, 32 регистра общего назначения, каждый из которых может работать как регистр- аккумулятор, и развитую систему команд с фиксированной (16-бит) длиной. Конвейерная архитектура с одновременным исполнением текущей и выборкой следующей команды позволяет выполнять большинство команд за один машинный цикл, что обеспечивает производительность до 1 MIPS на каждый МГц тактовой частоты. Ниже приводятся основные характеристики микроконтроллера – производство по КМОП–технологии с низким энергопотреблением; – тактовая частота может изменяться в широких пределах от 0 до 16 МГц (полностью статическая архитектура); – ядро микроконтроллера основано на RISC архитектуре с двухступенчатым конвейером, обеспечивающим выполнение одной команды за один машинный цикл; – гарвардская архитектура с раздельной памятью программ и данных; – регистровый файл содержит 32 регистра общего назначения; – все регистры общего назначения непосредственно подключены к АЛУ; – совмещенная архитектура ввода/вывода (регистры общего назначения и порты ввода/вывода находятся в адресном пространстве ОЗУ данных); – наличие программного стека; – наличие в составе АЛУ аппаратного умножителя; – 19 источников внутренних прерываний, 8 источников внешних прерываний; – объем FLASH–памяти программ: 128 кБт; – объем статической оперативной памяти (ОЗУ): 4 кБт; – объем памяти данных на основе электрически-стираемого ПЗУ – интерфейсы программирования: SPI и JTAG; – напряжение питания: 4.5–5.5 В. – Периферийные устройства: – 8-разрядные параллельные порты ввода/вывода; – 8 и 16-разрядные таймеры/счётчики; – широтно-импульсные модуляторы; – аналоговые компараторы, – десятиразрядный 8–канальный АЦП. Встроенный универсальный асинхронный приемопередатчик (USART). Высокая производительность, наличие развитой подсистемы ввода/вывода и широкого спектра встроенных периферийных устройств позволяют отнести микроконтроллеры AVR АТMEGA128 к классу наиболее функциональных
1.1.2 Программная модель микроконтроллера AVR MEGA128. В микроконтроллере AVR АТMEGA128 реализована гарвардская архитектура, в соответствие с которой адресные пространства памяти программ и данных физически разделены (доступ к этим областям памяти осуществляется по раздельным шинам). Такая организация позволяет ядру процессора одновременно работать с памятью программ и данных, что повышает быстродействие. Карта распределения памяти в микроконтроллере AVR АТMEGA128 приведена на рисунке 1.1. Память программ представляет собой электрически стираемое перепрограммируемое постоянное запоминающее устройство ППЗУ объемом 128 кБт, выполненное по технологии FLASH – памяти, и предназначена для хранения команд, управляющих функционированием микроконтроллера, а также для хранения констант, не меняющих своих значений в ходе выполнения программы. Так как длина команды составляет 16 бит, то память программ имеет 16-разрядную организацию. Для адресации памяти программ используется 16-разрядный регистр – программный счетчик PС (Program Counter). Программа исполняется последовательно. Для управления ходом выполнения программы существуют команды перехода, изменяющие соответствующим образом значение РС.
Память данных организована по принципу совмещенной архитектуры ввода/вывода и разделена на 3 части: регистровая память, память портов (регистров) ввода/вывода и статическое ОЗУ (SRAM), расположенные в едином адресном пространстве.
Рисунок 1.1 – Распределение памяти в микроконтроллере AVR АТMEGA128
Регистровая память (см. рисунок 1.2) включает тридцать два 8-разрядных регистра общего назначения (R0 - R31), объединенных в регистровый файл.
Рисунок 1.2 – Иллюстрация отображения регистров общего назначения и
Рисунок 1.3 – 16-разрядные регистры Х, Y, Z, использующиеся для косвенной адресации памяти
Пространство ввода/вывода состоит из 64 адресов портов 0000h-003Fh, предназначенных для взаимодействия с внутренними и внешними устройствами по отношению к микроконтроллеру. Порты ввода/вывода отображаются на область памяти данных с адресами 0020h-005Fh и допускают возможность обращения к ним как к ячейкам памяти. При доступе к порту ввода/вывода как к ячейке памяти к адресу порта необходимо добавить 20h. Адрес порта ввода/вывода в пространстве памяти часто указывается в скобках после адреса в пространстве портов ввода/вывода. Ввиду того, что основной функцией микроконтроллера является управление внешними устройствами, в таблице 1.1. приводятся названия и адреса (в пространстве портов ввода/вывода) основных интерфейсных портов с указанием режима работы и функций отдельных По адресам памяти 0060h-00FFh расположены 160 дополнительных регистров ввода/вывода. Непосредственно память данных представляет собой статическое ОЗУ (SRAM) объемом 4 кБт, занимающее диапазон адресов 0100h-10FFh. Таблица 1.1 – Порты ввода/вывода микроконтроллера AVR MEGA128 для подключения внешних устройств
Регистр состояния SREG расположен в области ввода/вывода по адресу 3Fh (5Fh) и содержит информацию о текущем состоянии микроконтроллера. Расположение флаговых битов регистра состояния приведено на рисунке 1.4.
Рисунок 1.4 – Регистр состояния SREG
Назначение отдельных битов регистра состояния приведено ниже: – C – флаг переноса, устанавливается в 1 при наличии переноса в арифметических операциях; – Z – флаг нуля, устанавливается в 1, если результат операции равен 0; – N – флаг отрицательного результата, устанавливается в 1 при получении отрицательного результата; – V – флаг переполнения, фиксирует выход результата за пределы допустимого диапазона значений; – S – флаг знака, S = N xor V; – H – флаг дополнительного переноса (из младшей тетрады байта в старшую); – T – флаг для временного хранения бита из регистров общего назначения; – I – управляющий флаг разрешения прерываний, разрешает (1) или
|