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

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

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

Содержание

 

Введение

1.   Анализ поставленной задачи

.     Разработка структурной схемы устройства и разработка алгоритма работы устройства

.     Разработка функциональной схемы устройства. Проектирование аппаратных средств

.     Проектирование программного обеспечения

Заключение

Список литературы


Введение


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

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

Кроме того, с применением микроконтроллеров появляются практически безграничные возможности по добавлению новых потребительских функций и возможностей к уже существующим устройствам. Достаточно просто поменять программу[1].- самая обширная производственная линии среди других флэш-микроконтроллеров корпорации Atmel. Atmel представила первый 8-разрядный флэш-микроконтроллер в 1993 году и с тех пор непрерывно совершенствует технологию. Прогресс данной технологии наблюдался в снижении удельного энергопотребления (мА/МГц), расширения диапазона питающих напряжений (до 1.8 В) для продления ресурса батарейных систем, увеличении быстродействия до 16 млн. операций в секунду, встройкой реально-временных эмуляторов и отладчиков, реализации функции самопрограммирования, совершенствовании и расширении количества периферийных модулей, встройке специализированных устройств (радиочастотный передатчик, USB-контроллер, драйвер ЖКИ, программируемая логика, контроллер DVD, устройства защиты данных) и др.

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

Другой особенностью AVR-микроконтроллеров, которая способствовала их популяризации, это использование RISC-архитектуры, которая характеризуются мощным набором инструкций, большинство которых выполняются за один машинный цикл. Это означает, что при равной частоте тактового генератора они обеспечивают производительность в 12 (6) раз больше производительности предшествующих микроконтроллеров на основе CISC-архитектуры (например, MCS51). С другой стороны, в рамках одного приложения с заданным быстродействием, AVR-микроконтроллер может тактироваться в 12 (6) раз меньшей тактовой частотой, обеспечивая равное быстродействие, но при этом потребляя гораздо меньшую мощность. Таким образом, AVR-микроконтроллеры представляют более широкие возможности по оптимизации производительности/энергопотребления, что особенно важно при разработке приложений с батарейным питанием. Микроконтроллеры обеспечивает производительность до 16 млн. оп. в секунду и поддерживают флэш-память программ различной емкости: 1… 256 кбайт. AVR-архитектура оптимизирована под язык высокого уровня Си, а большинство представителей семейства megaAVR содержат 8-канальный 10-разрядный АЦП, а также совместимый с IEEE 1149.1 интерфейс JTAG или debugWIRE для встроенной отладки. Кроме того, все микроконтроллеры megaAVR с флэш-памятью емкостью 16 кбайт и более могут программироваться через интерфейс JTAG[4].


1.   Анализ поставленной задачи


В данной курсовой работе решается задача по проектированию микропроцессорного устройства, которое преобразует интерфейс RS-232(COM - порт) в IEEE 1284(LPT - порт). Скорость передачи данных определяется интерфейсом RS-232, т.е. должна лежать в пределах от 110 до 115200 бит/с. Для решения данной задачи выбрана скорость равная 19200 бит/с, исходя из следующих причин:

-    при скорости близкой к 110 бит/с, устройство работало бы относительно медленно;

-       при скорости близкой к максимальной скорости COM - порта(115200 бит/с) возрастает вероятность передачи данных с большим числом ошибок, что, в свою очередь, затрудняет прием и обработку переданных данных.

Учитывая, что уровни сигналов в COM - порте колеблются в диапазоне от -15 до +15 Вольт(рис.1), то, для подключения COM - порта к микроконтроллеру, который работает с уровнями +5 Вольт, необходимо использовать преобразователь уровней. Для этих целей используется микросхема MAX232. Питание для этой микросхемы подводится от внешнего источника питания (+5В).

микропроцессорный преобразование интерфейс

Рисунок 1. - Уровни COM-порта

Преобразование последовательного интерфейса в параллельный интерфейс будет осуществляться на микроконтроллере ATMega8. - 8-разрядный КМОП микроконтроллер, основанный на архитектуре Atmel AVR. Контроллер выполняет большинство инструкций за 1 такт, поэтому вычислительная мощность контроллера равна 1MIPS на 1 МГц. Микроконтроллер имеет RISC-архитектуру, но формат команды двухоперандный, за один такт может быть обращение только к двум регистрам. Контроллер содержит 32 регистра, которые могут равноправно использоваться в арифметических операциях.

Основные аппаратные характеристики микроконтроллера:

-    8 Кбт флеш-памяти команд;

-       512 байт электрически программируемой памяти;

-       1 Кбайт статической памяти;

-       23 линии ввода/вывода общего назначения;

-       32 РОНа;

-       три многоцелевых таймер-счётчика с режимом сравнения;

-       поддержка внутренних и внешних прерываний;

-       универсальный асинхронный адаптер;

-       байт-ориентированный двухпроводной последовательный интерфейс;

-       6/8 канальный АЦП с точностью 8 и 10 двоичных разрядов;

-       сторожевой таймер;

-       последовательный порт SPI;

-       расширенные режимы управления энергопотреблением.

Из микроконтроллера выходные данные передаются на LPT - порт.

Перед проектированием данного устройства, был произведен поиск на наличие аналогичных устройств. В итоге было найдено несколько устройств. Некоторые из них приведены далее.

Существуют зарубежные аналоги проектируемого устройство, вот например: RS-232 to IEEE 1284 Converter (Model 2030).

Конвертер Patton 2030 RS-232/423 - IEEE-1284(рис.2) обеспечивает двунаправленное преобразование данных между асинхронными устройствами RS-232/423 и принтерами или другими параллельными устройствами с интерфейсом IEEE-1284. Конвертер способен работать с любым оборудованием уровня 1 и поддерживает режимы Compatible и Nibble (в соответствии со стандартом IEEE-1284). Высокая скорость преобразования делает модель 2030 эффективным решением для использования с высокоскоростными лазерными принтерами для графической печати.

Отличительные особенности данного устройства:

-    Асинхронная связь со скоростью до 115.2 Кбит/с;

-       Поддержка 2 режимов IEEE-1284 - compatible и nibble (переключатель);

-       ESD-защита до 10 кВ на последовательном порту;

-       Не требуется источник питания (питание - от любого из интерфейсов);

-       Индикаторы питания и данных;

-       Непосредственное подключение к порту;

-       Компактный корпус.

Рисунок 2. - Внешний вид устройства Patton 2030

Стоимость данного конвертера составляет порядка (40 …45) $ США.

Конвертер RS-232 в Centronics(IEEE 1284)(рис.3) Российского производства.

Данное изделие предназначено в первую очередь для организации печати из карманных компьютеров, оснащенных операционной системой Windows CE 2.0 (например, CASSIOPEIA), непосредственно на любой тип принтера, имеющего вход Centronics (IEEE-1284).

Рисунок 3. - Внешний вид конвертера RS-232 в Centronics(IEEE 1284)

Проблема состоит в том, что карманный компьютер имеет только COM-порт, соответствующий стандарту RS-232, и инфракрасный порт, в то время как подавляющее большинство принтеров имеет только параллельный порт, соответствующий стандарту CENTRONICS. Конвертер осуществляет преобразование из последовательного формата данных, получаемых из карманного компьютера (RS-232) в формат данных, которые может принять принтер (CENTRONICS).

Технические характеристики конвертер RS-232 в Centronics(IEEE 1284):

-    Микроконтроллер:                                      ATMEL AT90S2313;

-       Ток, потребляемый из последовательного порта, не более:       5 мА;

-       Входной интерфейс:                       RS-232;

-       Выходной интерфейс                     CENTRONICS (IEEE-1284);

-       Управление потоком данных RS-232     Xon/Xoff (Software);

-       Старт. бит RS-232:                                  1;

-       Стоп. бит RS-232:                                    1;

-       Длина байта RS-232:                      8;

-       Скорость приема данных из компьютера, установленная в конвертере по умолчанию:                                              57600 бит/с.

Стоимость данного конвертера составляет порядка (20 …30) $ США.

2.   Разработка структурной схемы устройства и разработка алгоритма работы устройства


Структурная схема проектируемого устройства изображена на рис.4. Данная схема представлена в виде трех блоков:

)     COM - порт, предназначен для соединения проектируемого устройства с COM - портом другого устройства;

2)      Микроконтроллер, предназначен для преобразования интерфейсов RS-232 в IEEE 1284;

)        LPT - порт, предназначен для соединения проектируемого устройства с другим устройством, через разъем LPT - порта DB-25.


Для удобства анализа и оценки работы проектируемого устройства был разработан алгоритм работы данного устройства, который представлен в виде блок-схем(рис.5 и рис.6).


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


Рисунок 6. - Блок-схема вызываемой функции get_char()

3.   Разработка функциональной схемы устройства. Проектирование аппаратных средств


Функциональная схема преобразователя интерфейсов RS-232 в IEEE 1284 представлена на рисунке 7.

Рисунок 7. - Функциональная схема устройства

Передатчик(COM-порт) представлен в виде разъема(рис.8), который непосредственно подключается к COM-порту ведущего устройства.

Рисунок 8. - Внешний вид COM-порта

Преобразователь уровней выполнен на микросхеме MAX232(рис. 9)

Рисунок 9. - Преобразователь уровней последовательного интерфейса MAX232

Микроконтроллер представлен микросхемой ATMega8 (рис.10). Основные особенности:

-    Полный дуплекс;

-       Асинхронные и синхронные операции;

-       Делитель частоты высокого разрешения;

-       Частота синхронизации от задатчика или от приёмника;

-       Поддержка символов от 5 до 9 бит, 1 и 2 стоп-бит;

-       Проверка ошибок передачи;

-       генерация 3-х прерываний.

-       Форматы фреймов данных совместимы со стандартом RS-232.

-       Скорости передачи данных составляют от 1.2 кБит/с до 115.2 кБит/с, но может достигать в режиме удвоения 230.4 кБит/с.

-       Двухпроводной последовательный интерфейс - I2C.

-       Стандартный промышленный интерфейс;

-       Режимы задатчика и приёмника;

-       Режимы операций - приёмник и передатчик;

-       7-разрядное пространство адресов шины;

-       Поддержка мультизадатчиков шины;

-       Скорость пердачи данных до 400 кГц;

-       Полностью программируемый адрес на шине.

Рисунок 10. - Микроконтроллер ATMega8

Приемник(LPT-порт) представлен в виде разъема (рис. 11), который непосредственно подключается к LPT-порту ведомого устройства.

Рисунок 11. - Внешний вид LPT-порта(DB-25)

Адаптер параллельного интерфейса представляет собой набор регистров, расположенных в пространстве ввода/вывода. Регистры порта адресуются относительно базового адреса порта, стандартными значениями которого являются 386h, 378h и 278h. Порт имеет внешнюю 8-битную шину данных, 5-битную шину сигналов состояния и 4-битную шину управляющих сигналов.

4.   Проектирование программного обеспечения


Код программы для микроконтроллера ATMega8 представлен в виде листинга (с комментариями), который описан ниже.

Листинг программы:

/*****************************************************program was produced by theV1.25.9 Professional

type: ATmega8type: Applicationfrequency: 8,000000 MHzmodel: SmallSRAM size: 0Stack size: 256

*****************************************************/

#include <mega8.h> /*Подключаемые библиотеки*/

#include <delay.h>

#define RXB8 1 /*Вводимые константы*/

#define TXB8 0

#define UPE 2

#define OVR 3

#define FE 4

#define UDRE 5

#define RXC 7

#define FRAMING_ERROR (1<<FE)

#define PARITY_ERROR (1<<UPE)

#define DATA_OVERRUN (1<<OVR)

#define DATA_REGISTER_EMPTY (1<<UDRE)

#define RX_COMPLETE (1<<RXC)

// USART Receiver buffer

#define RX_BUFFER_SIZE 64 /*Константа, определяющая размен буфера приемника УСАПП*/rx_buffer[RX_BUFFER_SIZE]; /*Глобальная переменная*/

#if RX_BUFFER_SIZE<256 /*Выбирается тип переменных в зависимости от размера буфера*/char rx_wr_index,rx_rd_index,rx_counter;

#elseint rx_wr_index,rx_rd_index,rx_counter;

#endif

// This flag is set on USART Receiver buffer overflow rx_buffer_overflow;

// USART Receiver interrupt service routine [USART_RXC] void usart_rx_isr(void) /*Приема данных на УСАПП*/

{status,data;=UCSRA;=UDR;((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)

{_buffer[rx_wr_index]=data;(++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;(++rx_counter == RX_BUFFER_SIZE)

{_counter=0;_buffer_overflow=1;

};

};

}get_char(void) /*Функция считывания данных*/

#asm("cli") /*Объявляется общее запрещеие глобальных прерываний, по выходе из которой бит_i регистра SREG обнуляется*/

-rx_counter;

#asm("sei") /*Объявляется общее разрешение прерываний*/data;

}

// Standard Input/Output functions

#include <stdio.h> input_byte;main(void)

{

/*Производится инициализация портов*/

// Input/Output Ports initialization

// Port B initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 =0x00; /*Регистр данных порта Б*/=0xFF; /*Регтстр направления данных порта Б*/

// Port C initialization

// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State6=T State5=T State4=T State3=T State2=T State1=T State0=T =0x00;=0x00;

// Port D initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=Out Func1=Out Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=0 State1=0 State0=T =0x00;=0x06;

// Timer/Counter 0 initialization

// Clock source: System Clock

// Clock value: Timer 0 Stopped=0x00;=0x00;

// Timer/Counter 1 initialization

// Clock source: System Clock

// Clock value: Timer 1 Stopped

// Mode: Normal top=FFFFh

// OC1A output: Discon.

// OC1B output: Discon.

// Noise Canceler: Off

// Input Capture on Falling Edge

// Timer 1 Overflow Interrupt: Off

// Input Capture Interrupt: Off

// Compare A Match Interrupt: Off

// Compare B Match Interrupt: OffA=0x00; /*Регистр А управления таймера/счетчика Т1*/B=0x00;H=0x00; /*Счетный регистр таймера/счетчика Т1, старший байт*/L=0x00; /*Счетный регистр таймера/счетчика Т1, младший байт*/H=0x00; /*Регистр захвата таймера/счетчика Т1, старший байт*/L=0x00; /*Регистр захвата таймера/счетчика Т1, младший байт*/AH=0x00; /*Регистр А совпадения таймера/счетчика Т1, старший байт*/AL=0x00; /*Регистр А совпадения таймера/счетчика Т1, младший байт*/BH=0x00;BL=0x00;

// Timer/Counter 2 initialization

// Clock source: System Clock

// Clock value: Timer 2 Stopped

// Mode: Normal top=FFh

// OC2 output: Disconnected=0x00; /*Регистр состояния асинхроного режима*/=0x00; /*Регистр управления таймера/счетчика Т2*/=0x00;=0x00;

// External Interrupt(s) initialization

// INT0: Off

// INT1: Off=0x00; /*Регистр управления микроконтроллера*/

// Timer(s)/Counter(s) Interrupt(s) initialization=0x00; /*Регистр маски прерывания от таймера счетчика*/

// USART initialization

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

// USART Receiver: On

// USART Transmitter: Off

// USART Mode: Asynchronous

// USART Baud Rate: 19200=0x00; /*Регистр А управления и состояния УСАПП*/=0x90;=0x86;=0x00; /*Регистр скорости передачи УСАПП, старший бит*/=0x19;

// Analog Comparator initialization

// Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off=0x80; /*Регистр управления и состояния аналогового компаратора*/=0x00; /*Регистр специальных функций*/

// Global enable interrupts.2=0; /*Присвоили биту 2 регистра порта D значение "0", т.е. выключение встроенного счетчика Т0*/

#asm("sei"); /*Объявляется общее разрешение прерываний*/ (1) /*Бесконечный цикл*/

{_byte = get_char(); /*Вызов функции, которая считывает последовательность из 9 битов*/= input_byte; /*Передача данных на выход, через порт Б*/.2=1; /*Включение встроенного счетчика*/_us(120); /*Вводится задержка для вывода данных*/.2=0; /*Выключение встроенного счетчика*/

};

}


Заключение


В ходе выполнения данной курсовой работы было разработано микропроцессорное устройство преобразования интерфейсов из RS-232 в IEEE 1284. Так же были рассмотрены аналоги проектируемого устройства.

В процессе выполнения закреплены знания по основам работы микроконтроллеров как в теории так и на практике.

Разработанное устройство может применяться для преобразования интерфейсов при передачи данных из устройства поддерживающего RS-232 и соответственно имеющее разъем COM-порта, в устройство, поддерживающего IEEE 1284 и содержащего разъем LPT-порта.

Симуляция спроектированного устройства осуществлялась с помощью программного обеспечения Proteus 7.2 SP6 Proffesional.


Список литературы


1.     Ю.А. Шпак «Программирование на языке С для AVR и PIC микроконтроллеров». - К.: «МК-Пресс», 2006 - 400 с.

2.     www.avr123.nm.ru

3.      www.gaw.ru/html.cgi/txt/ic/Atmel/micros/avr/atmega8.htm

.        Евстифеев А.В. «Микроконтроллеры AVR семейства MEGA. Руководство пользователя». - М.: Издательский дом «Додэка-XXI», 2007 - 592с.

.        Белов А.В. «Создаем устройство на микроконтроллерах». - Спбю.: Наука и техника, 2007 - 304с.

.        Гребнев В.В. «Микроконтроллеры семейства AVR фирмы Atmel». - М.: ИП РадиоСофт, 2002 - 176с.

Похожие работы на - Разработка алгоритма работы микропроцессорного устройства

 

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