Кочегаров И.И. Микроконтроллеры AVR. Лабораторный практикум (2012) (1264221), страница 4
Текст из файла (страница 4)
1. Архитектура микроконтроллеров семейства AVRПроцессорное ядро (Central Processing Unit – CPU) AVR-микроконтроллеров содержит арифметико-логическое устройство (АЛУ),регистры общего назначения (РОН), программный счетчик, указательстека, регистр состояния, регистр команд, дешифратор команд, схемууправления выполнением команд.18В АЛУ выполняются все вычислительные операции. Операциипроизводятся только над содержимым РОН. На выборку содержимого регистров, выполнение операции и запись результата обратнов РОН затрачивается один машинный такт (один период тактовойчастоты).Регистры общего назначения представляют собой 8-разрядныеячейки памяти с быстрым доступом, непосредственно доступныеАЛУ. В AVR-микроконтроллерах имеется 32 РОН.Программный счетчик (Program Counter – PC) содержит адресследующей выполняемой команды.Указатель стека (Stack Pointer – SP) служит для хранения адреса вершины стека.Регистр состояния (Status Register – SREG) содержит словосостояния процессора.Регистр команд, дешифратор команд и схема управления выполнением команд обеспечивают выборку из памяти программ команды, адрес которой содержится в программном счетчике, ее декодирование, определение способа доступа к указанным в команде аргументам и собственно выполнение команды.
Для ускорения выполнения команд используется механизм конвейеризации, который заключается в том, что во время исполнения текущей команды программный код следующей выбирается из памяти и декодируется.Память AVR-микроконтроллеров организована по схеме гарвардского типа – адресные пространства памяти программ и памятиданных разделены.Память программ представляет собой перепрограммируемоеПЗУ типа FLASH и выполнена в виде последовательности 16-разрядных ячеек, так как большинство команд AVR-микроконтроллераявляются 16-разрядными словами.
Гарантируется не менее 10 000 циклов перезаписи. Память программ имеет размер от 2 до 256 Кбайт(от 1 до 128 К слов).Оперативная память данных представляет собой статическоеОЗУ (SRAM – Static Random-Access Memory) и организована как последовательность 8-разрядных ячеек. Оперативная память данныхможет быть внутренней (до 16 Кбайт) и внешней (до 64 Кбайт).Энергонезависимая (nonvolatile) память данных организованакак последовательность 8-разрядных ячеек и представляет собой перепрограммируемое ПЗУ с электрическим стиранием (РПЗУ-ЭС, илиEEPROM – Electrically Erasable Programmable Read-only Memory).Энергонезависимая память данных имеет размер до 64 Кбайт.19Регистры ввода-вывода предназначены для управления процессорным ядром и периферийными устройствами AVR-микроконтроллера.Схема прерываний обеспечивает возможность асинхронногопрерывания процесса выполнения программы при определенных условиях.К периферийным устройствам AVR-микроконтроллера относятся порты ввода-вывода, таймеры, счетчики, сторожевой таймер,аналоговый компаратор, аналого-цифровой преобразователь, универсальный асинхронный (синхронно-асинхроный) приемопередатчик –УАПП (УСАПП), последовательный периферийный интерфейс SPI,интерфейс JTAG и др.
Набором периферийных устройств определяются функциональные возможности микроконтроллера.Обмен информацией между устройствами AVR-микроконтроллера осуществляется посредством внутренней 8-разрядной шиныданных.Программная модель AVR-микроконтроллеровПрограммная модель микропроцессора представляет собой совокупность программно доступных ресурсов. В программную модель микроконтроллеров семейства AVR входят РОН, регистры ввода-вывода, память программ, оперативная память данных и энергонезависимая память данных (рис.
2).РОН (R0…R31) могут использоваться в программе для храненияданных, адресов, констант и другой информации. Шесть старших регистров объединены попарно и составляют три 16-разрядных регистра Х [R27:R26], Y [R29:R28] и Z [R31:R30] (рис. 3).150$000070R0 ($0000)РегистрыобщегоназначенияПамятьпрограмм70Внутренняяоперативнаяпамять данных(32 x 8)$0060[конф. А]$0100)[конф. В]RAMENDRAMEND+1R31 ($001F)FLASHEND70$0070Регистрыввода-выводаЭнергонезависимаяпамять данных$00 ($0020)Внешняяоперативнаяпамять данных(64 x 8 – конф.
А; $3F ($005F)124 x 8 – конф. В) [конф. А]$9F ($00FF)[конф. В]$5FXRAMENDЕдиное адресное пространствоРис. 2. Программная модель AVR-микроконтроллеров20РОН, регистры ввода-вывода и оперативная память данных образуют единое адресное пространство. Адресное пространство – этомножество доступных ячеек памяти, разR0личимых по адресам; адресом называетR1ся число, однозначно идентифицирующее ячейку памяти (регистр). АдресаXLR26ячеек памяти традиционно записываютсяXXHR27в шестнадцатеричной системе счислеR28YLYR29YHния, на что указывает знак $ в обозначеR30ZLнии адреса.ZR31ZHСуществует две конфигурации единого адресного пространства памяти Рис. 3.
Регистры общегоназначенияAVR-микроконтроллеров. В конфигурации А младшие 32 адреса ($0000…$001F)соответствуют РОН, следующие 64 адреса ($0020…$005F) занимаютрегистры ввода-вывода, внутренняя оперативная память данных начинается с адреса $0060. В конфигурации В, начиная с адреса $0060,размещаются 160 дополнительных регистров ввода-вывода; внутренняя оперативная память данных начинается с адреса $0100. Конфигурация А используется в младших моделях микроконтроллеров и внекоторых старших моделях в режиме совместимости с моделями,снятыми с производства; конфигурация В – в старших моделях.В память программ, кроме собственно программы, могут бытьзаписаны постоянные данные, которые не изменяются в процессе работы микропроцессорной системы (константы, таблицы линеаризации датчиков и т.
п.). Выполнение программы при включении питания или после сброса микроконтроллера начинается с команды, находящейся по адресу $0000 (т.е. в первой ячейке) памяти программ.Энергонезависимая память данных предназначена для храненияинформации, которая может изменяться непосредственно в процессеработы микропроцессорной системы (калибровочные коэффициенты,конфигурационные параметры и т.п.). Энергонезависимая памятьданных имеет отдельное адресное пространство и может быть считана и записана программным путем.Система команд (instruction set) микропроцессора представляетсобой совокупность выполняемых микропроцессором операцийи правил их кодирования в программе. Система команд AVR-микроконтроллеров включает команды (инструкции) арифметическихи логических операций, команды ветвления, управляющие последовательностью выполнения программы, команды передачи данных и21команды операций с битами.
Всего в систему команд входит более130 инструкций. Младшие модели микроконтроллеров не поддерживают некоторых из них.Система команд AVR-микроконтроллеров приведена в гл. 5.ПериферияПериферия микроконтроллеров AVR включает: порты (от 3 до48 линий ввода и вывода), поддержку внешних прерываний, таймеры-счетчики, сторожевой таймер, аналоговые компараторы, 10-разрядный 8-канальный АЦП, интерфейсы UART, JTAG и SPI, устройство сброса по понижению питания, широтно-импульсные модуляторы.Порты ввода-вывода (I/O).
Порты ввода-вывода AVR имеютчисло независимых линий «вход-выход» от 3 до 53. Каждая линияпорта может быть запрограммирована на вход или на выход. Мощные выходные драйверы обеспечивают токовую нагрузочную способность 20 мА на линию порта (втекающий ток) при максимальномзначении 40 мА, что позволяет, например, непосредственно подключать к микроконтроллеру светодиоды и биполярные транзисторы.Общая токовая нагрузка на все линии одного порта не должна превышать 80 мА (все значения приведены для напряжения питания 5 В).Архитектурная особенность построения портов ввода-выводау AVR заключается в том, что для каждого физического вывода (пина) существует 3 бита контроля/управления, а не 2, как у распространенных 8-разрядных микроконтроллеров (Intel, Microchip, Motorolaи т.д.).
Это позволяет избежать необходимости иметь копию содержимого порта в памяти для безопасности и повышает скорость работы микроконтроллера при работе с внешними устройствами, особенно в условиях внешних электрических помех.Прерывания (INTERRUPTS). Система прерываний – одна изважнейших частей микроконтроллера.
Все микроконтроллеры AVRимеют многоуровневую систему прерываний. Прерывание прекращает нормальный ход программы для выполнения приоритетной задачи, определяемой внутренним или внешним событием. Для каждоготакого события разрабатывается отдельная программа, которую называют подпрограммой обработки запроса на прерывание (для краткости – подпрограммой прерывания), и размещается в памяти программ. При возникновении события, вызывающего прерывание, микроконтроллер сохраняет содержимое счетчика команд, прерываетвыполнение центральным процессором текущей программы и переходит к выполнению подпрограммы обработки прерывания.
После22выполнения подпрограммы прерывания осуществляется восстановление предварительно сохраненного счетчика команд и процессорвозвращается к выполнению прерванной программы. Для каждогособытия может быть установлен приоритет. Понятие приоритет означает, что выполняемая подпрограмма прерывания может быть прервана другим событием только при условии, что оно имеет более высокий приоритет, чем текущее. В противном случае центральныйпроцессор перейдет к обработке нового события только после окончания обработки предыдущего.Таймеры/счетчики (TIMER/COUNTERS).
Микроконтроллеры AVR имеют в своем составе от 1 до 4 таймеров/счетчиков с разрядностью 8 или 16 бит, которые могут работать и как таймеры отвнутреннего источника тактовой частоты, и как счетчики внешнихсобытий.Их можно использовать для точного формирования временныхинтервалов, подсчета импульсов на выводах микроконтроллера,формирования последовательности импульсов, тактирования приемопередатчика последовательного канала связи. В режиме ШИМ(PWM) таймер/счетчик может представлять собой широтно-импульсный модулятор и используется для генерирования сигнала с программируемыми частотой и скважностью. Таймеры/счетчики способны вырабатывать запросы прерываний, переключая процессор наих обслуживание по событиям и освобождая его от необходимостипериодического опроса состояния таймеров. Поскольку основноеприменение микроконтроллеры находят в системах реального времени, таймеры/счетчики являются одним из наиболее важных элементов.Сторожевой таймер (WDT).