Обзор архитектуры AT90S2313

Регистровый файл быстрого доступа содержит 32 8-разрядных регистра общего назначения, доступ к которым осуществляется за один машинный цикл. Поэтому за один машинный цикл исполняется одна операция АЛУ. Два операнда выбираются из регистрового файла, выполняется операция, результат ее записывается в регистровый файл - все за один машинный цикл.

Шесть из 32 регистров можно использовать как три 16-разрядных указателя в адресном пространстве данных, что дает возможность использовать высокоэффективную адресную арифметику (16-разрядные регистры X, Y и Z). Один из трех адресных указателей (регистр Z) можно использовать для адресации таблиц в памяти программ. Это X-, Y- и Z-регистры.

 

Рисунок 2.4 – Регистры X-, Y- и Z-

 

АЛУ поддерживает арифметические и логические операции c регистрами, с константами и регистрами. Операции над отдельными регистрами также выполняются в АЛУ.

Кроме регистровых операций, для работы с регистровым файлом могут использоваться доступные режимы адресации, поскольку регистровый файл занимает адреса $00-$1F в области данных, обращаться к ним можно как к ячейкам памяти.

Пространство ввода состоит из 64 адресов для периферийных функций процессора, таких как управляющие регистры, таймеры/счетчики и другие.

Доступ к пространству ввода/вывода может осуществляться непосредственно, как к ячейкам памяти расположенным после регистрового файла ($20 $5F).

Процессоры AVR построены по гарвардской архитектуре с раздельными областями памяти программ и данных. Доступ к памяти программ осуществляется при помощи одноуровневого буфера. Во время выполнения команды, следующая выбирается из памяти программ. Подобная концепция дает возможность выполнять по одной команде за каждый машинный цикл. Память программ - это внутрисистемная загружаемая флэш-память.

При помощи команд относительных переходов и вызова подпрограмм осуществляется доступ ко всему адресному пространству. Большая часть команд AVR имеет размер 16-разрядов, одно слово. Каждый адрес в памяти программ содержит одну 16- или 32-разрядную команду.

При обработке прерываний и вызове подпрограмм адрес возврата запоминается в стеке. Стек размещается в памяти данных общего назначения, соответственно размер стека ограничен только размером доступной памяти данных и ее использованием в программе. Все программы пользователя должны инициализировать указатель стека (SP) в программе выполняемой после сброса (до того как вызываются подпрограммы и разрешаются прерывания). 8-разрядный указатель стека доступен для чтения/записи в области ввода/вывода.

Доступ к 128 байтам статического ОЗУ, регистровому файлу и регистрам ввода/вывода осуществляется при помощи пяти доступных режимов адресации поддерживаемых архитектурой AVR.

Все пространство памяти AVR является линейным и непрерывным.

Гибкий модуль прерываний имеет собственный управляющий регистр в пространстве ввода/вывода, и флаг глобального разрешения прерываний в регистре состояния. Каждому прерыванию назначен свой вектор в начальной области памяти программ. Различные прерывания имеют приоритет в соответствии с расположением их векторов. По младшим адресам расположены векторы с большим приоритетом.

Кроме этого AT90S2313 имеет очень удобную в использовании систему команд, которая приведена ниже.

 

Система команд AT90S2313:

 

 


 




3. Разработка принципиальной схемы устройства Принципиальная схема генератора пачек импульсов и перечень элементов показана в приложениях 2 и 3. Она состоит из микроконтроллера АТ90S2313, схем сброса и синхронизации, блока питания, цифро-аналогового преобразователя, усилителя выходного сигнала и нагрузки. Выбор блока питания: Рассчитаем приблизительную потребляемую мощность:Микроконтроллер потребляет – 3мА*5В = 15мВт; ЦАП – приблизительно 450мВт.Согласно техническому заданию, на нагрузке в 100 Ом необходимо получить напряжение в 3,5 В. Значит, мощность рассчитаем по формуле: =0,1225 Вт. Общее потребление мощности – около 0,715 Вт.Выберем трансформатор на мощность в пределах 2 Вт. Стабилизатор построим на микросхемах КР142ЕН8А, которые рассчитаны на выходное напряжение 2,1 – 26,5 В и ток до 1,5 А.Усилитель соберём на микросхеме TDA1013. У неё максимальный ток 1,5 А, выходная мощность 4,2 Вт. Запитаем микросхему напряжением в 10 В.В качестве ЦАП выберем микросхему AD7224. Выбираем режим, при котором любые изменения в выходных регистрах МК сразу же отображаются на выходном сигнале. Для этого подключаем выводы CS, WR, LDAC к корпусу, чем разрешаем прямое управление ЦАП. Напряжение питания зададим в 10 В.

 


4. Разработка алгоритма и программы функционирования устройства

При включении устройства происходит конфигурация контроллера, потом опрашивается клавиатура и контроллер перейдет на один из режимов. Если ни одна клавиша нажата не была, включается 1 режим. Подпрограмма Режим 1 формирует 1 период сигнала с требуемыми параметрами (пачка импульсов и время между пачками), здесь же после каждого периода вызывается подпрограмма опроса клавиатуры. То есть контроллер зациклен на функциях формирования пачки импульсов, паузы между пачками и опросом клавиатуры.

Алгоритм подпрограммы приведен в приложении 4.

Текст программы приведён в приложении 1.









Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: