Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Состав регистрового файла на примере AVR-контроллера.
Основные функции и структура арифметико-логического устройства (АЛУ) Состав регистрового файла на примере AVR-контроллера.
АЛУ – это комбинационный цифровой автомат, имеющий два входа и один выход. АЛУ выполняет арифметические и логические операции с двумя входными сигналами, каждый из которых представляет собой набор из 8-ми двоичных разрядов. Возможность проводить все вычисления на основе только арифметических (ADD +, SUB -) и логических (NOT, OR, AND, XOR, Left Shift, Right Shift, и т.д.) операций позволяет резко упростить схему микропроцессора. В качестве примера, операция сдвига влево всех бит одного байта – соответствует умножению на 2. Соответственно сдвиг вправо – соответствует делению на 2. Умножение на произвольное число выполняется комбинациями сдвига влево и сложением промежуточных результатов (аналогично умножению столбиком). Деление на произвольное число выполняется аналогично делению столбиком, с использованием операций умножения, вычитания. Регистром является устройство для хранения 8-ми разрядного двоичного числа. Оно состоит из восьми триггеров, каждый из которых может хранить один двоичный разряд. Первая подобласть состоит из 32 регистров, которые имеют двоякую адресацию: по имени регистра (R0-R31) или по ее числовому адресу ( или от до ). Они используются для оперативного хранения результатов промежуточных вычислений. 3.2. Следующей подобластью ОЗУ являются регистры ввода/вывода, предназначенные для обмена информацией с периферийными устройствами (таймеры, компараторы, АЦП, порты дискретного ввода/вывода информации). Регистры ввода/вывода также как и регистры имеют двойную адресацию: по имени регистра ввода/вывода и по его числовому адресу. Числовой адрес регистра ввода/вывода также имеет двойное представление. Если регистр ввода/вывода используется в командах in или out, то адреса регистров ввода/вывода находятся в диапазоне с по или с по . Эти команды принадлежат к группе команд передачи данных. Если к регистрам ввода/вывода обращаются другие команды языка ассемблера, то используется адресация в диапазоне от до или от до . Содержимое регистров и регистров ввода/вывода, определенное их именами, мы можем наблюдать в окне «Workspace». В этом окне приведена также двойная числовая адресация регистров ввода/вывода. Содержимое регистров и регистров ввода/вывода, определенное их числовыми адресами, мы можем наблюдать в окнах Memory, Register, I/O. Область «Data». В этой области расположены ячейки памяти ОЗУ, которые используются для оперативного хранения результатов промежуточных операций. Эти ячейки имеют лишь числовую адресацию. Адрес младшей ячейки этой области или , размер этой области определяется типом контроллера. При работе в пакете AVR Studio при установке курсора на любую ячейку памяти ОЗУ появляется всплывающая «подсказка», в которой расположено 4 элемента, разделенных знаком двоеточие. Слева от двоеточия стоит адрес ячейки памяти в 16-ой системе исчисления, а справа – содержимое ячейки памяти в 16-ой, 10-ой, 2-ой системах исчисления. Регистровый файл AVR-контроллера состоит из 32 однобайтных регистров, имеющих имена R0-R31 и сквозные адреса в пространстве ОЗУ 0-31. Шесть регистров R26-R27, R28-R29, R30-R31 выступают как парные адресные регистры X, Y, Z. Они могут работать как в паре, так и независимо. Эти парные регистры предназначены для хранения адресов ячеек памяти. Регистр РС - программный счетчик, хранит двухбайтный адрес ячейки памяти, где расположен первый байт команды, которая будет выполняться микропроцессором на следующем шаге. Пример: при включении микропроцессора РС=0016, после считывания первого байта первой команды, определяется длина команды, которая складывается с содержимым регистра РС. Таким образом, после выполнения команды в регистре РС находится адрес первого байта следующей команды. Регистр SP – указатель стека предназначен для управления специализированной областью стековой памяти, адресация в которой осуществляется по содержимому регистра SP. Стековая память расположена по старшим адресам области ОЗУ (Область «Data» в пакете «AVRStudio»). Содержимое регистров PC и SP можно наблюдать в окне Workspace\IO\Processor. РП – регистр признаков, флаговый регистр, или регистр статуса (Рис. 4, 5). Этот регистр предназначен для хранения результатов контроля выполнения команды. Он состоит из 8 информационных двоичных разрядов. Регистры ввода-вывода расположены в ОЗУ ниже регистров R0-R31, и занимают 64 байт. Эти регистры используются в качестве буфера при связи микропроцессора с устройствами ввода-вывода. Например, для порта А имеются три байта, которые обеспечивают связь с портом А: DDRA=0xFF; // настройка порта А на вывод, FF – это установка в 1 всех битов порта, можно сделать 0b11111111 в бинарной системе. Или задействовать не все, а только лишь часть 0x49, т.е. 0b01001001; PORTA=0x49; // вывод числа 0x49 на порт А. R16 = PINA; // чтение состояний ножек порта А.
|