Курсовая работа: Проектирование программно-управляемого генератора пачек прямоугольных импульсов на микроконтроллере
Рис.2.2 – Подключение кристалла
Рис.2.3 – Подключение внешнего генератора
Обзор архитектуры 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.
5. Анализ временных соотношений и оценка погрешностей
Согласно техническому заданию, длительность импульса tи=10 мкс, частота следования импульсов f=5 кГц. Изменяется длительность пачки: tп=0,2c; 0,4 c; 0,6 c. Период повторения пачек – 9 с.