Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая_Павелко.doc
Скачиваний:
6
Добавлен:
15.08.2019
Размер:
5.51 Mб
Скачать

35

ВВЕДЕНИЕ

Задачей данного курсового проекта было практическое применение знаний, полученных ранее в различных областях науки, для реализации конкретного технического задания.

Результатом выполнения такого задания являлась реализация сетевой игры «Пинг Понг», рассчитанной на двух игроков на микроконтроллере AVR АТMEGA 128. Счёт игры ведётся до 8, после чего определяется игрок победитель (индикация победителя на экране) затем игра начинается сначала через заранее установленное время. Возможность управления ракетками реализована в одной системе координат. В пояснительной записке представлены этапы перехода от словесного описания поставленной задачи до конкретной реализации в виде функционирующего устройства. Выполнены все этапы проектирования от технического задания до реализации проекта в выбранной элементной базе. Также выполнено программирование микроконтроллера AVR АТMEGA 128.

Микроконтроллеры семейства AVR за сравнительно короткое время завоевали заслуженную популярность во всём мире.

AVR, пожалуй, одно из самых интересных направлений, развиваемых корпорацией Atmel. Они представляют собой мощный инструмент для создания современных высокопроизводительных и экономичных многоцелевых контроллеров. На настоящий момент соотношение "цена - производительность - энергопотребление" для AVR является одним из лучших на мировом рынке 8-разрядных микроконтроллеров. Объемы продаж AVR в мире удваиваются ежегодно. В геометрической прогрессии растет число сторонних фирм, разрабатывающих и выпускающих разнообразные программные и аппаратные средства поддержки разработок для них. Можно считать, что AVR постепенно становится еще одним индустриальным стандартом среди 8-разрядных микроконтроллеров общего назначения.

Области применения AVR многогранны. Для семейства "tiny" - это интеллектуальные автомобильные датчики различного назначения, игрушки, игровые приставки, материнские платы персональных компьютеров, контроллеры защиты доступа в мобильных телефонах, зарядные устройства, детекторы дыма и пламени, бытовая техника, разнообразные инфракрасные пульты дистанционного управления. Для семейства "classic" - это модемы различных типов, современные зарядные устройства, изделия класса Smart Cards и устройства чтения для них, спутниковые навигационные системы для определения местоположения автомобилей на трассе, сложная бытовая техника, пульты дистанционного управления, сетевые карты, материнские платы компьютеров, сотовые телефоны нового поколения а также различные и разнообразные промышленные системы контроля и управления. Для "mega" AVR - это аналоговые (NMT, ETACS, AMPS) и цифровые (GSM, CDMA) мобильные телефоны, принтеры и ключевые контроллеры для них, контроллеры аппаратов факсимильной связи и ксероксов, контроллеры современных дисковых накопителей, CD-ROM и т.д.

Микроконтроллер семейства mega – ATmega128 – маломощный 8-разрядный КМОП микроконтроллер, основанный на расширенной AVR RISC-архитектуре. За счет выполнения большинства инструкций за один машинный цикл ATmega128 достигает производительности 1 млн. операций в секунду, что позволяет проектировщикам систем оптимизировать соотношение энергопотребления и быстродействия. Высокая производительность, наличие развитой подсистемы ввода/вывода и широкого спектра встроенных периферийных устройств позволяют отнести микроконтроллеры AVR АТMEGA128 к классу наиболее функциональных микроконтроллеров для встроенных систем управления.

1 Техническое задание

    1. Постановка задачи

Задача данного курсового проекта заключается в том, что необходимо аппаратно реализовать сетевую игру «Пинг Понг» на базе двух микроконтроллеров ATmega128. Сетевое взаимодействие реализуется соединением контроллеров посредством СОМ-порта. Игра рассчитана для двух игроков. По достижению общей суммы проигрышей двумя игроками в количестве восьми игра должна завершаться.

Основными моментами работы являются:

  • реализация алгоритмов рисования графических примитивов;

  • реализация алгоритмов пересечения, отражения и отсечения отрезков;

  • реализация обмена данными по COM-port;

  • реализация управления при помощи мыши;

  • тестирование и оптимизация программного продукта;

  • исследование возможностей микроконтроллера.

    1. Входные/выходные параметры

Входные и выходные параметры (табл.1.1) определяются из задания.

Таблица 1.1 – Входные/выходные параметры

Входы

Назначение

Разрядность

Сигналы маши по изменению координат

Управление одной из ракеток на дисплее

5..8 бит

Принимаемые данные с порта

Получение координат положения ракетки

5..8 бит

Посылка информации на порт

Передача координат положения ракетки

5..8 бит

Основные требования к проектированию: описание моделей с помощью языков программирования типа С или ассемблер. Способ проверки: пошаговое тестирование основных этапов программы вплоть до физической реализации.

2 Техническое предложение

2.1 Описание алгоритма

Алгоритм общего взаимодействия блоков проекта (см. рисунок 2.1) основан на последовательной передаче управления каждому блоку. Блок «установки сетевого соединения» отвечает за автоматическую синхронизацию передачи данных. Блок проверки соединения проверяет корректность синхронизации. Блок «игра» отвечает за проведение игрового процесса. Алгоритм игры приведен на рисунке 2.3. Определение победителя осуществляется путём сравнения количества промахов каждого игрока. В конце осуществляется проверка победителя, вывод сообщения о победителе и запускается счетчик перезапуска игры.

Блок установки соединения содержит в себе два алгоритма: алгоритм сервера и алгоритм клиента.

Рисунок 2.1 – Алгоритм общего взаимодействия всех блоков проекта

Р исунок 2.2 – Алгоритм игры

2.2 Выбор элементной базы

Макет представляет собой универсальное устройство на базе микроконтроллера AVR ATmega 128 (fт=11,059200 МГц), в состав которого входят: микроконтроллер AVR ATmega 128, графический ЖК-дисплей Toshiba T6963C, блок светодиодов, клавиатуры: 34 и 31 (количество столбцов  количество строк), АЦП, последовательный интерфейс RS-232C. Сопряжение лабораторного макета и программатора (ПЭВМ) обеспечивается с помощью последовательного интерфейса SPI, конструктивно использующего стандартный разъем Centronics DB-25. Блок из восьми светодиодов подключен к микроконтроллеру через порт D. Сопряжение клавиатуры 34 осуществляется с помощью порта Е. Через порт F, линии которого являются входами АЦП. На рис. 2.4 показана структурная схема лабораторного макета на базе микроконтроллера AVR ATmega 128.

Интерфейс порта В конструктивно выполнен в виде унифицированного разъема DB-25, Для линий двух встроенных в микроконтроллер последовательных интерфейсов RS-232C (USART0, USART1) [4] предназначены разъемы DB-9, расположенные на задней панели макета. На задней панели находится также разъем для подключения внешнего источника питания (12 В) и выключатель электропитания.

Рисунок 2.3 – Структурная схема лабораторного макета на базе

микроконтроллера AVR ATmega 128

Технические характеристики:

1. Высокопроизводительный, маломощный 8-разрядный AVR-микроконтроллер.

2. Развитая RISC-архитектура.

3. 133 мощных инструкций, большинство из которых выполняются за один машинный цикл.

4. 32 8-разрядных регистров общего назначения + регистры управления встроенной периферией.

5. Полностью статическая работа.

6. Производительность до 16 млн. операций в секунду при тактовой частоте 16 МГц.

7. Встроенное умножающее устройство выполняет умножение за 2 машинных цикла.

8. Энергонезависимая память программ и данных.

9. Износостойкость 128-ми кбайт внутрисистемно перепрограммируемой флэш-памяти: 1000 циклов запись/стирание.

10. Опциональный загрузочный сектор с отдельной программируемой защитой.

11. Внутрисистемное программирование встроенной загрузочной программой.

12. Гарантированная двухоперационность: возможность чтения во время записи.

13. Износостойкость 4 кбайт ЭСППЗУ: 100000 циклов запись/стирание.

14. Встроенное статическое ОЗУ емкостью 4 кбайт.

15. Опциональная возможность адресации внешней памяти размером до 64 кбайт.

Рисунок 2.4 – Функциональная схема

Ядро AVR сочетает богатый набор инструкций с 32 универсальными рабочими регистрами. Все 32 регистра непосредственно подключены к арифметико-логическому устройству (АЛУ), который позволяет указать два различных регистра в одной инструкции и выполнить ее за один цикл. Данная архитектура обладает большей эффективностью кода за счет достижения производительности в 10 раз выше по сравнению с обычными CISC-микроконтроллерами (рис 2.5).

ATmega128 поддерживается полным набором программных и аппаратных средств для проектирования, в т.ч.: С-компиляторы, макроассемблеры, программные отладчики/симуляторы, внутрисистемные эмуляторы и оценочные наборы.

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

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

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

АЛУ поддерживает арифметические и логические операции между регистрами, а также между константой и регистром. Кроме того, АЛУ поддерживает действия с одним регистром. После выполнения арифметической операции регистр статуса обновляется для отображения результата выполнения операции.

Для ветвления программы поддерживаются инструкции условных и безусловных переходов и вызовов процедур, позволяющих непосредственно адресоваться в пределах адресного пространства. Большинство инструкций представляют собой одно 16-разр. слово. Каждый адрес памяти программ содержит 16- или 32-разр. инструкцию. Флэш-память программ разделена на две секции: секция программы начальной загрузки и секция прикладной программы. Обе секции имеют раздельные биты защиты от записи и чтения/записи. Инструкция SPM (запись в секцию прикладной программы) должна использоваться только внутри секции программы начальной загрузки.

Высокопроизводительное АЛУ AVR-микроконтроллеров работает в непосредственной связи со всеми 32 универсальными рабочими регистрами. АЛУ позволяет выполнить за один машинный цикл операцию между двумя регистрами или между регистром и константой. Операции АЛУ могут быть классифицированы на три группы: арифметические, логические и битовые. Кроме того, архитектурой ATmega128 поддерживаются операции умножения со знаком и без знака и дробным форматом.

В соответствии с гарвардской архитектурой память AVR-микроконтроллера разделена на две области: память данных и память программ. Кроме того, ATmega128 содержит память на ЭСППЗУ для энергонезависимого хранения данных. Все три области памяти являются линейными и равномерными.

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

Рисунок 2.5 - Карта памяти программ