Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
titulnik.docx
Скачиваний:
21
Добавлен:
16.03.2016
Размер:
246.21 Кб
Скачать

Содержание

ВЕДЕНИЕ 3

1 ВЫБОР И ОБОСНОВАНИЕ ТЕХНИЧЕСКИХ ТРЕБОВАНИЙ К УСТРОЙСТВУ 4

2 СТРУКТУРНАЯ СХЕМА УСТРОЙСТВА 8

3 ПРИНЦИПИАЛЬНАЯ СХЕМА УСТРОЙСТВА 9

4 РАЗРАБОТКА АЛГОРИТМА РАБОТЫ УПРАВЛЯЮЩЕЙ ПРОГРАММЫ ДЛЯ МИКРОКОНТРОЛЛЕРА 11

5 ФУНКЦИИ И ПЕРЕМЕННЫЕ ОСНОВНОЙ ПРОГРАММЫ ДЛЯ МИКРОКОНТРОЛЛЕРА 12

6 ЛИСТИНГ ОСНОВНОЙ ПРОГРАММЫ ДЛЯ МИКРОКОНТРОЛЛЕРА 13

7 РАЗРАБОТКА АЛГОРИТМА РАБОТЫ УПРАВЛЯЮЩЕЙ ПРОГРАММЫ ДЛЯ КОМПЬЮТЕРА 17

8 ФУНКЦИИ И ПЕРЕМЕННЫЕ ОСНОВНОЙ ПРОГРАММЫ ДЛЯ КОМПЬЮТЕРА 23

9 ЛИСТИНГ ОСНОВНОЙ ПРОГРАММЫ ДЛЯ КОМПЬЮТЕРА 24

ЗАКЛЮЧЕНИЕ 27

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ 28

ВЕДОМОСТЬ КУРСОВОЙ РАБОТЫ 29

Ведомость курсовой работы 29

ВЕДЕНИЕ

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

В этой курсовой работе программное обеспечение микроконтроллера разрабатывалось в среде Atmel Studio 6.2 на языке С. Atmel Studio - многофункциональное и удобная среда разработки программного обеспечения. Высокоуровневый язык С прост в использовании и позволяет сократить объем кода относительно языка Assembler, что и послужило причиной выбора этого языка. Для создания программы для ПК использовал Builder 6.0 - интегрируемая среда разработки, используемая для разработки программного обеспечения на языке программирования C++. Данная среда разработки была выбранная из-за имеющегося опыта работы в ней и простоты использования.

Для реализации устройства класса USB HID (human interface device) - класс устройств USB для взаимодействия с человеком, взят микроконтроллер ATmega8-PU.

Данное устройство состоит из платы с компонентами и микроконтроллером и подключенного к плате USB-шнура. Для начала работы нужно подключить плату к компьютеру и запустить на нем нужную программу. Затем ждем, пока компьютер инициализирует устройство и появится надпись «Подключено».

1 Выбор и обоснование технических требований к устройству

Ранее широко распространенные интерфейсы как COM, LPT, MIDI в настоящее время морально устарели, но ещё нередко присутствует на современных компьютерах и используется в промышленном и узкоспециализированном оборудовании.  Так что для связи какого-либо собственного устройства с компьютером пора осваивать что-то другое. Как вариант можно использовать всякие конверторы/переходники/эмуляторы, но они не всегда работают как оригинальный интерфейс, порождая массу проблем. Для решения этой задачи возьмём обычный микроконтроллер без аппаратной поддержки USB и программно эмулируем интерфейс USB. Тут возникает проблема в производительности нашего микроконтроллера. Скорость USB очень большая: LowSpeed – 1.5Mbit/s, FullSpeed – 12Mbit/s, HighSpeed – 480Mbit/s. Современная версия USB 3.0 поддерживает пропускную способность до 5Гбит\с. Поэтому получится только LowSpeed USB, и то с некоторыми трудностями [1].

V-USB – название программной библиотеки, позволяющей получить поддержку протокола USB на микроконтроллерах AVR (семейств Classic, Tiny и Mega компании Atmel), которые не имеют аппаратной поддержки USB. Авторство библиотеки принадлежит компании Objective Development, которая распространяет и продвигает V-USB по лицензии GNU GPL и коммерческой лицензии (исходные коды библиотеки свободно доступны, см. ссылки).

Старое название библиотеки было AVR-USB, но после того как библиотека обрела популярность, название пришлось сменить, чтобы не вступать в конфликт с существующими именами Atmel. Протокол USB реализован программно, и быстродействия ядра AVR хватает только на реализацию стандарта USB 1.1 на низкой скорости (low-speed). По этой причине библиотека V-USB хорошо подходит только для низкоскоростных устройств ввода-вывода (например USB HID). Поскольку требования к быстродействию при обработке сигналов USB (D+ и D-), очень жесткие, то низкоуровневый код написан на ассемблере, и поддерживается только определенный ряд тактовых частот ядра. Сначала тактовая частота была только 12 МГц, но потом стало возможно использовать кварцевые резонаторы на 12, 15, 16, 16.5 и 20 МГц. Микроконтроллеры, которые имеют PLL(ФАПЧ, фазовую автоподстройку частоты) для генерации тактовой частоты, могут использовать внутренний RC-генератор (то есть работать без кварца), при условии калибровки частоты RC-генератора по сигналу SOF (Start Of Frame) протокола USB. Высокоуровневые процедуры и функции библиотеки написаны на языке C. Требования к микроконтроллеру AVR невысоки – необходимо как минимум 2 кбайта памяти программ (flash) и 128 байт ОЗУ (RAM). Из аппаратных ресурсов используется только прерывание по изменению сигнала на выводе (обычно INT0, подсоединенный к сигналу D+ шины USB). Таким системным требованиям удовлетворяют большинство микроконтроллеров семейства AVR.

Благодаря тому, что вместе с библиотекой поставляются хорошие примеры firmware(прошивок) для USB-устройств (пользовательский класс USB, класс USB HID, мышь USB, управление портами микроконтроллера, чтение и запись его EEPROM), появилось много полезных разработок, использующих библиотеку V-USB – USB-программаторы, устройства ввода и вывода, макетные платы, преобразователи интерфейсов (например, USB-RS232) и многое другое [2]. Вместе с библиотекой поставляются также примеры программ для компьютера (ПО хоста), которые работают с устройствами на библиотеке V-USB. Примеры ПО хоста используют другую свободную библиотеку – libusb.

Таким образом, библиотека V-USB позволяет непрофессионалам в программировании интерфейса USB быстро начать создавать USB-устройства и писать для них компьютерные программы. Кроме того, отсутствуют затраты на используемое в разработке программное обеспечение – оно доступно по лицензии GNU. Код комментариев библиотеки и примеров firmware и ПО хоста переведены на русский язык [3],[4].

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

Таблица 1 – Основные параметры контроллера

ЦПУ: Ядро

AVR

ЦПУ: MIPS

16

ЦПУ: F,МГц

от 0 до 16

Память: Flash,КБайт

8

Память: RAM,КБайт

1

Память: EEPROM,КБайт

0.5

Продолжение таблицы 1

I/O (макс.),шт.

23

Таймеры: 8-бит,шт

2

Таймеры: 16-бит,шт

1

Таймеры: Каналов ШИМ,шт

3

Таймеры: RTC

Да

Интерфейсы: UART,шт

1

Интерфейсы: SPI,шт

1

Интерфейсы: I2C,шт

1

Аналоговые входы: Разрядов АЦП,бит

10

Аналоговые входы: Каналов АЦП,шт

6

Аналоговые входы: Быстродействие АЦП, kSPS

15

Аналоговые входы: Аналоговый компаратор, шт

2

VCC,В

от 4.5 до 5.5

ICC,мА

23

TA,°C

от -40 до 85

Корпус

DIP-28 MLF-32 TQFP-32

Микросхемы с индексом -PU выполнены по бессвинцовой технологии (Pb free) и пришли на смену аналогичным микросхемам -PI.

Разработка программы для управление светодиодом проводилась в компилятор C++ Builder 6.0. C++ Builder — программный продукт, инструмент быстрой разработки приложений (RAD), интегрированная среда программирования (IDE), система, используемая программистами для разработки программного обеспечения на языке программирования C++.

\

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]