Разработка микроконтроллера для приемника команд RC5

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,2 Мб
  • Опубликовано:
    2013-11-24
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка микроконтроллера для приемника команд RC5

Введение

С появлением однокристальных микро-ЭВМ связывают начало эры массового применения компьютерной автоматизации в области управления.

В связи со спадом отечественного производства и возросшим импортом техники, в том числе вычислительной, термин «микроконтроллер» вытеснил из употребления ранее использовавшийся термин «однокристальная микро-ЭВМ» [1, стр.10].

Первый патент на однокристальную микро-ЭВМ был выдан в 1971 году <#"656519.files/image001.gif">

Рисунок 1.1 - Структурная схема микроконтроллера

Внешний вид современного микроконтроллера фирмы ATmega показан на рисунке 1.2.

Рисунок 1.2 - Микроконтроллер фирмы ATmega

К числу особенностей микроконтроллера AVR семейства ATmega относятся:

1.      FLASH-память программ объемом 8 - 128 Кбайт;

2.      Оперативная память (статическое ОЗУ) объемом 1 - 4 Кбайт;

.        Память данных на основе ЭСППЗУ (EEPROM) объемом от 512 байт до 4 Кбайт;

.        Возможность защиты от чтения и модификации памяти программ и данных;

.        Возможность программирования непосредственно в системе через последовательные интерфейсы SPI и JTAG;

.        Возможности самопрограммирования;

.        Возможность внутрисхемной отладки в соответствии со стандартом IEEE 1149.1(JTAG);

.        Различные способы синхронизации: встроенный КС-генератор с внутренний или внешний времязадающей КС-цепочкой или с внешним резонатором;

.        Наличие нескольких режимов пониженного энергопотребления;

.        Наличие детектора снижения напряжения питания (brown-out-detector, BOD) [1, стр.54].

Подавляющее большинство основных характеристик процессора микроконтроллеров семейства ATmega такие же, что и у микроконтроллеров других семейств:

1.      Полностью статическая архитектура;

.        Минимальная тактовая частота равна нулю;

.        АЛУ подключено непосредственно к регистрам общего назначения;

.        Большинство команд выполняются за один машинный цикл;

.        Многоуровневая система прерываний;

.        Поддержка очереди прерываний.

В то же время процессор микроконтроллеров семейства ATmega имеет ряд характеристик, присущих именно этому семейству:

1.      Наибольшее число источников прерываний (до 27 источников, из них до 8 внешних);

2.      Наличие программного стека во всех моделях семейства;

.        Наличие программного умножителя.

Все характеристики подсистемы ввода/вывода микроконтроллеров семейства ATmega такие же, что и у микроконтроллеров других семейств:

1.      Программное конфигурирование и выбор портов ввода/вывода;

2.      Выводы могут быть запрограммированы как входные и как выходные независимо друг от друга;

.        Входные буферы с триггером Шмитта на всех выводах;

.        Возможность подключения ко всем входам внутренних подтягивающих резисторов (сопротивление резисторов 35 - 120кОм).

Порты ввода/вывода AVR имеют число независимых линий "Вход/Выход" от 3 до 53. Каждый разряд порта может быть запрограммирован на ввод или на вывод информации. Мощные выходные драйверы обеспечивают токовую нагрузочную способность 20 мА на линию порта (втекающий ток) при максимальном значении 40 мА, что позволяет, например, непосредственно подключать к микроконтроллеру светодиоды и биполярные транзисторы. Общая токовая нагрузка на все линии одного порта не должна превышать 80 мА (все значения для напряжения питания 5 В) [4, стр.112].

Интересная архитектурная особенность построения портов ввода/вывода у AVR заключается в том, что для каждого физического вывода существует 3 бита контроля/управления, а не 2, как у распространенных 8-разрядных микроконтроллеров (Intel, Microchip, Motorola и т.д.). Упрощенная структурная схема элемента ввода/вывода AVR - микроконтроллера приведена на рисунке 1.3. Здесь DDRx - бит контроля направления передачи данных и привязки вывода к шине питания (VCC), PORTx - бит привязки вывода к VCC и бит выходных данных, PINx - бит для отображения логического уровня сигнала на физическом выводе микросхемы.

Рисунок 1.3 - Структурная схема элемента ввода/вывода AVR

Микроконтроллеры семейства ATmega имеют наиболее богатый набор периферийных устройств (ПУ). При этом в большинстве моделей имеются все ПУ, которые вообще встречаются в составе микроконтроллеров AVR. Этими устройствами являются:

1.      8-разрядные таймеры/счетчики (таймеры Т0 и Т2). В ряде моделей эти таймеры/счетчики могут работать в качестве часов реального времени (в асинхронном режиме). У некоторых моделей они могут использоваться в качестве одно- или двухканального 8-битного генератора ШИМ-сигналов. Количество регистров, обслуживающие таймеры, зависит от их сложности и функциональности.

2.      16-разрядные таймеры/счетчики (таймеры Т1 и Т3). Как и 8-разрядные таймеры/счетчики, они используются для подсчета внешних событий, формирование сигналов, генерация ШИМ, но уже переменной разрядности, и в дополнение может сохранять свое текущее состояние в отдельном регистре по внешнему событию.

.        Сторожевой таймер WDT. Он предназначен для защиты микроконтроллеров от сбоев в процессе работы и имеется во всех моделях семейства. Этот таймер работает даже в режимах пониженного энергопотребления, т.к. имеет независимый тактовый генератор, работающий на частоте 1МГц при напряжении 5В.

.        Генераторы сигнала с ШИМ разрядностью 8 бит (один из режимов работы 8-разрядных таймеров/счетчиков Т0 и Т2).

.        Одноканальные, двухканальные и трехканальные генераторы сигнала с ШИМ регулируемой разрядности (один из режимов работы 16-разрядных таймеров Т1 и Т3). Разрешение ШИМ-сигнала для разных моделей составляет 8 - 10 бит или 1 - 16 бит.

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

.        Многоканальный 10-разрядный АЦП как с несимметричными, так и с дифференциальными входами. Он преобразовывает входной аналоговый сигнал в цифровое входное значение, которое соответствует входному сигналу относительно некоторого операторного напряжения. АЦП бывают: идеальный, совершенный и реальный.

.        Полнодуплексный универсальный асинхронный приемопередатчик (UART).

.        Полнодуплексный универсальный синхронный/асинхронный приемопередатчик (USART).

.        Последовательный синхронный интерфейс SPI.

.        Последовательный двухпроводный интерфейс TWI [3, стр.177].

Ядро микроконтроллеров AVR семейства ATmega выполнено по усовершенствованной RISC-архитектуре (enhanced RISC). Арифметико-логическое устройство (АЛУ), выполняющее все вычисления, подключено непосредственно к 32-м рабочим регистрам, объединенным в регистровый файл. Благодаря этому АЛУ выполняет одну операцию (чтение содержимого регистров, выполнение операции и запись результата обратно в регистровый файл) за один машинный цикл. Практически каждая из команд (за исключением команд, у которых одним из операндов является 16-разрядный адрес) занимает одну ячейку памяти программы.

В микроконтроллеры AVR реализована Гарвардская архитектура, которая характеризуется раздельной памятью программ и данных, каждая из которых имеет собственные шины доступа к ним. Такая организация позволяет одновременно работать как с памятью программ, так и с памятью данных. Разделение шин доступа позволяет использовать для каждого типа памяти шины различной разрядности, причем способы адресации и доступа к каждому типу памяти также различны.

Еще одним решением, направленным на повышение быстродействия, является использование технологии конвейеризации. Конвейеризация заключается в том, что во время исполнения текущей команды производится выборка из памяти и дешифрация кода следующей команды. Причем, поскольку длительность машинного цикла микроконтроллеров AVR составляет всего один период тактового генератора, они могут обеспечивать ту же производительность, что и RISС-микроконтроллеры других фирм, но при более низкой тактовой частоте [7, стр.214].

2. Практическая часть

.1 Принципиальная схема устройства

Принципиальная схема устройства изображена на рисунке 2.1.

Рисунок 2.1 - Схема устройства приемника RC5 для ПК

Схема приемника команд RC5 для ПК включает в себя:

.        Микропроцессор ATmega8;

2.      Виртуальный терминал (для отправки данных на ПК);

3.      COM порт (для подключения приемника к ПК)

4.      Микропроцессор MAX232 (преобразователь сигнала).

2.2    Алгоритмы работы программы

Блок-схема работы устройства показана на рисунке 2.2.

Рисунок 2.2 - Блок-схема работы устройства

.3 Текст программы

Исходный код прошивки написан в среде CodeVisionAVR C Compiler и находится в приложении. Основная функция программы представлена ниже.

ADCSRA=0b11001011; // включаем непреривное АЦП преобразование

if(owf_flag)

{ (buf_cnt){_cnt--; ("%d ",buff[buf_cnt]); // печатаем в УАРТ значение (0x0D); // на новую строку УАРТА

}

owf_flag = 0;

}

}

2.4 Результаты тестирования (симулирования) устройства

Для эмулирования работы программы микроконтроллера использовались: среда разработки Proteus, где была собрана схема устройства, программа VSPD (соединение ПК с приемником), программа терминал (вывод полученных команд). Начальное состояние схемы приемника RC5 для ПК в эмуляторе представлено на рисунке 2.3.

Рисунок 2.3 - Начальное состояние устройства часов

Запускается программа VSPD, где соединяются виртуальные COM порты ПК и Proteus для демонстрации работы устройства (Рисунок 2.4).

Рисунок 2.4 - программа VSPD

Запускается программа Terminal для показа принятых команд с приемника RC5 (рисунок 2.5).

Рисунок 2.5 - программа Terminal

В симуляторе Proteus в виртуальном терминале вводим данные. После чего нажимается Enter, после чего эти данные отправляются на ПК и отображаются в программе Terminal.

Демонстрация работы устройства показана на рисунках 2.6 - 2.9.

Рисунок 2.6 - Отправка данных

Рисунок 2.7 - Прием данных

Рисунок 2.8 - Отправка данных

Рисунок 2.9 - Прием данных

2.5 Анализ полученных результатов

В ходе выполнения курсовой работы, была разработана схема и программа работы приемника команд для ПК. Использовались программы, такие как CodeVisionAVR C compiler (на основе микроконтроллера ATMega8), Proteus, Terminal, VSPD. Для возможности отправки команд был подключен виртуальный терминал в Proteus, для отображения результатов была задействована программа Terminal.

В ходе анализа программа не давала сбоев. Выполняла правильные действия в зависимости от запроса пользователя.

Заключение

В настоящее время микроконтроллеры играют большую роль в современном мире. В нашу жизни все больше внедряются электронные устройства с микроконтроллерами, которые можно программировать. Благодаря одному из таких микроконтроллеров (ATmega8) был создан курсовой проект. В результате проделанной работы, была реализовано устройство «часы» в CodeVisionAVR C compiler фирмы Atmel и проанализировано в программе Proteus. Эта симуляция часов может расцениваться как один из примеров использования микроконтроллеров в быту, так как обладает высокой надежностью, за счёт простоты схемы, и не требует больших материальных затрат. Микроконтроллер - это компьютер на одной микросхеме, предназначенный для управления различными электронными устройствами и осуществления взаимодействия между ними в соответствии с заложенной в него программой. AVR - единственный 8-разрядный микроконтроллер, набор команд которого оптимизирован под языки высокого уровня. Код на языке C делает данную разработку легко адаптируемой и модифицируемой. Интересная архитектурная особенность построения портов ввода/вывода у AVR заключается в том, что для каждого физического вывода существует 3 бита контроля/управления, а не 2, как у распространенных 8-разрядных микроконтроллеров (Intel, Microchip, Motorola и т.д.). Как результат выполнения курсовой работы можно выделить получение опыта работы с микроконтроллерами в сборке схем и их наладке.

В данном курсовом проекте поставленные цели по созданию приемника команд RC5 для ПК и задачи в написании файла прошивки устройства, симулировании устройства, выполнены. Были получены достойные, интересные, а главное полезные знания.

Список использованных источников

1.      Баранов, В.Н. Применение микроконтроллеров AVR: схемы, алгоритмы, программы / В.Н. Баранов. - М.: Издательский дом «Додэка-XXI», 2004. - 288 с.

2.  Бродин, В.Б. Системы на микроконтроллерах и БИС программируемой логики / В.Б. Бродин, А.В. Калинин. - М.: ЭКОМ, 2002. - 525 с.

3.      Каган Б.М., Мкртумян И.Б. Основы эксплуатации ЭВМ: Учеб. пособие для вузов / Под редакцией Б.М. Кагана - 2-е издание перераб. и доп. - М.: Энергоатомиздат, 1988. - 789 с.

.        Новиков, Ю.В. Основы микропроцессорной техники. Курс лекций / Ю.В. Новиков, П.К. Скоробогатов. - М.: Интернет-университет информационных технологий, 2003. - 325 с.

.        Рюмик, С.М. Микроконтроллеры AVR / С.М. Рюмик - М.: ЭКОМ, 2000. - 700 с.

.        Цифровые и аналоговые интегральные микросхемы: Справочник / Якубовский С.В., Ниссельсон Н.И., Кулешова В.И. и др.; Под ред. Якубовского С.В. - М.: Радио и связь, 1990. - 496 с.

.        Полупроводниковые БИС запоминающих устройств: Справочник / В.В. Баранов, Н.В. Бекин, А.Ю. Гордонов и др.; Под ред. А.Ю. Гордонова и Ю.Н. Дьякова - М.: Радио и связь, 1987. - 360 с.

.        Полупроводниковые оптоэлектронные приборы: Справочник / В.И. Иванов, А.И. Аксенов, А.М. Юшин - 2-е изд., перераб. и доп. - М.: Энергоатомиздат, 1988. - 448 с.

.        Хоровиц, П.А. Искусство схемотехники / П.А. Хоровищ, У.М. Хилл - М.: Мир, 1993. - 371 с.

.        Ярмолик В.Н. Контроль и диагностика цифровых узлов ЭВМ. - Мн.: Наука и техника, 1988. - 798 с.

Приложение

#include <mega8.h>

#include <delay.h>

#include <stdio.h>

#define ADC_VREF_TYPE & 0xff;

#define BUF_SIZE 512 // необходимое число точек

unsigned char buff[BUF_SIZE];int buf_cnt=0;char owf_flag =0;[ADC_INT] void adc_isr(void){ (!owf_flag){[buf_cnt]=ADCW;_cnt++; (buf_cnt == BUF_SIZE)owf_flag=1;

}

} init(void){

// USART initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity

// USART Receiver: On

// USART Transmitter: On

// USART Mode: Asynchronous

// USART Baud Rate: 57600 =0x00; =0x18; =0x86; =0x00; =0x0C; =0x0b00000000; // вибираем 0-й канал АЦП

ADCSRA=0x0b10001011; // конфигурация АЦП

#asm ("sei"); // разрешить все переривания

}

void main(void)

{

init(); // визов функции int (инициализация всего)

while(1){

ADCSRA=0b11001011; // включаем непреривное АЦП преобразование

if(owf_flag)

{ (buf_cnt){_cnt--; ("%d ",buff[buf_cnt]); // печатаем в УАРТ значение (0x0D); // на новую строку УАРТА

} _flag = 0;

}

}

Похожие работы на - Разработка микроконтроллера для приемника команд RC5

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!