АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Программная модель микроконтроллера AVR MEGA128. Механизм работы с регистрами, памятью и портами ввода/вывода

Читайте также:
  1. I Психологические принципы, задачи и функции социальной работы
  2. I. Задания для самостоятельной работы
  3. I. Задания для самостоятельной работы
  4. I. Задания для самостоятельной работы
  5. I. КУРСОВЫЕ РАБОТЫ
  6. I. ОБЩИЕ ПОЛОЖЕНИЯ ПО ВЫПОЛНЕНИЮ КОНТРОЛЬНОЙ РАБОТЫ
  7. I. ОБЩИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ КУРСОВОЙ РАБОТЫ
  8. II звено эпидемического процесса – механизм передачи возбудителей.
  9. II. Выполнение дипломной работы
  10. II. ДИПЛОМНЫЕ РАБОТЫ
  11. II. МЕТОДИЧЕСКИЕ УКАЗАНИЯ ДЛЯ ВЫПОЛНЕНИЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ
  12. II. ОБРАЗЕЦ ОФОРМЛЕНИЯ ТИТУЛЬНОГО ЛИСТА КОНТРОЛЬНОЙ РАБОТЫ

В микроконтроллере AVR АТMEGA128 реализована гарвардская архитектура, в соответствие с которой адресные пространства памяти программ и данных физически разделены (доступ к этим областям памяти осуществляется по раздельным шинам). Такая организация позволяет ядру процессора одновременно работать с памятью программ и данных, что повышает быстродействие. Карта распределения памяти в микроконтроллере AVR АТMEGA128 приведена на рисунке 1.1. Память программ представляет собой электрически стираемое перепрограммируемое постоянное запоминающее устройство ППЗУ объемом 128 кБт, выполненное по технологии FLASH – памяти, и предназначена для хранения команд, управляющих функционированием микроконтроллера, а также для хранения констант, не меняющих своих значений в ходе выполнения программы. Так, как длина команды составляет 16 бит, то память программ имеет 16-разрядную организацию. Для адресации памяти программ используется 16-разрядный регистр – программный счетчик PС (Program Counter). Программа исполняется последовательно. Для управления ходом выполнения программы существуют команды перехода, изменяющие соответствующим образом значение РС.

Память данных организована по принципу совмещенной архитектуры ввода/вывода и разделена на 3 части: регистровая память, память портов (регистров) ввода/вывода и статическое ОЗУ (SRAM), расположенные в едином адресном пространстве.

 

Рисунок 1.1 – Распределение памяти в микроконтроллере AVR АТMEGA128

 

 

Регистровая память (см. рисунок 1.2) включает 32 8-разрядных регистра общего назначения (R0 - R31), объединенных в регистровый файл. Каждый из регистров общего назначения непосредственно связан с АЛУ. АЛУ поддерживает арифметические и логические операции с регистрами, между регистром и константой или непосредственно с регистром. При исполнении арифметической или логической команды за один такт из регистрового файла выбираются два операнда, выполняется действие, и результат возвращается в регистровый файл. Регистровый файл отображается на младшие 32 адреса 0000h-001Fh памяти данных и к его регистрам можно обращаться как к ячейкам памяти. Шесть 8 - разрядных регистров (R26 - R31) могут использоваться как три 16-разрядных регистра-указателя для косвенной адресации (см. рисунок 1.3).

 

 

Рисунок 1.2 – Иллюстрация отображения регистров общего назначения и портов ввода/вывода на адресное пространство памяти данных

X Y Z
           
           

Рисунок 1.3 – 16-разрядные регистры Х, Y, Z, использующиеся для косвенной адресации памяти.

 

Пространство ввода/вывода состоит из 64 адресов портов 0000h-003Fh, предназначенных для взаимодействия с внутренними и внешними устройствами по отношению к микроконтроллеру. Порты ввода/вывода отображаются на область памяти данных с адресами 0020h-005Fh и допускают возможность обращения к ним как к ячейкам памяти. При доступе к порту ввода/вывода как к ячейке памяти к адресу порта необходимо добавить 20h. Адрес порта ввода/вывода в пространстве памяти часто указывается в скобках после адреса в пространстве портов ввода/вывода. Ввиду того, что основной функцией микроконтроллера является управление внешними устройствами, в таблице 1.1. приводятся названия и адреса (в пространстве портов ввода/вывода) основных интерфейсных портов с указанием режима работы и функций отдельных регистров.

По адресам памяти 0060h-00FFh расположены 160 дополнительных регистров ввода/вывода.

Непосредственно память данных представляет собой статическое ОЗУ (SRAM) объемом 4 кБт, занимающее диапазон адресов 0100h-10FFh.

 

Таблица 1.1 – Порты ввода/вывода микроконтроллера AVR MEGA128 для подключения внешних устройств

 

Название порта ввода/вывода Идентификаторы отдельных регистров Адрес Режим / функция
PORTA PINA 19h IN
DDRA 1Ah OUT / DIRECTION
PORTA 1Bh OUT
PORTB PINB 16h IN
  DDRB 17h OUT / DIRECTION
  PORTB 18h OUT
PORTC PINC 13h IN
  DDRC 14h OUT / DIRECTION
  PORTC 15h OUT
PORTD PIND 10h IN
  DDRD 11h OUT / DIRECTION
  PORTD 12h OUT
PORTE PINE 01h IN
  DDRE 02h OUT / DIRECTION
  PORTE 03h OUT
PORTF PINF 00h IN
  DDRF 61h OUT / DIRECTION
  PORTF 62h OUT
PORTG PING 63h IN
  DDRG 64h OUT / DIRECTION
  PORTG 65h OUT

 

Регистр состояния SREG расположен в области ввода/вывода по адресу 3Fh (5Fh) и содержит информацию о текущем состоянии микроконтроллера. Расположение флаговых битов регистра состояния приведено на рисунке 1.4.

 

 

№ бита                
3Fh (5Fh) I T H S V N Z C

Рисунок 1.4 – Регистр состояния SREG.

Назначение отдельных битов регистра состояния приведено ниже:

– C – флаг переноса, устанавливается в 1 при наличии переноса в арифметических операциях;

– Z – флаг нуля, устанавливается в 1, если результат операции равен 0;

– N – флаг отрицательного результата, устанавливается в 1 при получении отрицательного результата;

– V – флаг переполнения, фиксирует выход результата за пределы допустимого диапазона значений;

– S – флаг знака, S = N xor V;

– H – флаг дополнительного переноса (из младшей тетрады байта в старшую);

– T – флаг для временного хранения бита из регистров общего назначения;

– I – управляющий флаг разрешения прерываний, разрешает (1) или запрещает (0) процессору реагировать на аппаратные прерывания.

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)