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

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

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















Курсовая работа

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

Введение

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

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

микропроцессорный система микросхема

Задание на курсовой проект

Исходные данные: спроектировать микропроцессорное устройство, содержащее: МП ATmega64.

Дополнительные требования: клавиатура, индикация - индикатора JE-AN16202.

1. Структура микроконтроллера ATMega

.1. Назначение выводов

На рис.1.1 изображен корпус и приведено назначениевыводов микроконтроллера. В скобках указана альтернативная функция вывода.

Микроконтроллер ATmega64 включает следующие функциональные блоки:

8-разрядное арифметическо-логическое устройство ( АЛУ );

внутреннюю флэш-память программ объемом 64 Кбайт с возможностью внутрисистемного программирования через последовательный интерфейс;

32 регистра общего назначения;

внутреннюю EEPROM память данных объемом 4 Кбайт;

внутреннее ОЗУ данных объемом 4 Кбайт;

6 параллельных 8-разрядных портов;

4 программируемых таймера-счетчика;

10-разрядный 8-канальный АЦП и аналоговый компаратор;

последовательные интерфейсы UART0, UART0, TWI и SPI;

блоки прерывания и управления (включая сторожевой таймер).

Рис.1. Вид корпуса и обозначение выводов микроконтроллера ATmega64.

A (PA7..PA). 8-разрядный двунаправленный порт. К выводам порта могут быть подключены встроенные нагрузочные резисторы (отдельно к каждому разряду). Выходные буферы обеспечивают ток 20 мА и способность прямо управлять светодиодным индикатором. При использовании выводов порта в качестве входов и установке внешнего сигнала в низкое состояние, ток будет вытекать только при подключенных встроенных нагрузочных резисторах. Порт А при наличии внешней памяти данных используется для организации мультиплексируемой шины адреса/данных.B (PB7..PB0). 8-разрядный двунаправленный порт со встроенными нагрузочными резисторами. Выходные буферы обеспечивают ток 20 мА. При использовании выводов порта в качестве входов и установке внешнего сигнала в низкое состояние, ток будет вытекать только при подключенных встроенных нагрузочных резисторах. Порт В используется также при реализации специальных функций.C (PC7..PC0). Порт       С является 8-разрядным выходным портом. Выходные буферы обеспечивают ток 20 мА. Порт C при наличии внешней памяти данных используется для организации шины адреса.D (PD7..PD0). 8-разрядный двунаправленный порт со встроенными нагрузочными резисторами. Выходные буферы обеспечивают ток 20 мА. При использовании выводов порта в качестве входов и установке внешнего сигнала в низкое состояние, ток будет вытекать только при подключенных встроенных         нагрузочных резисторах.Е (PЕ7..PЕ0). 8-разрядный двунаправленный порт со встроенными нагрузочными резисторами. Выходные буферы обеспечивают ток 20 мА. При использовании выводов порта в качестве входов и установке внешнего сигнала в низкое состояние, вытекающий через них ток обеспечивается только при подключенных встроенных нагрузочных резисторах. Порт E используется также при реализации специальных функций.F (PF7..PF0). 8-разрядный входной порт. Входы порта используются также как аналоговые входы аналого-цифрового преобразователя.

#RESET. Вход сброса. Для выполнения сброса необходимо удерживать низкий уровень на входе более 50 нс., XTAL2. Вход и выход инвертирующего усилителя генератора тактовой частоты., TOSC2. Вход и выход инвертирующего усилителя генератора таймера/счетчика.

#WR, #RD. Стробы записи и чтения внешней памяти данных.. Строб разрешения фиксации адреса внешней памяти. Строб ALE используется для фиксации младшего байта адреса с выводов AD0-AD7 в защелке адреса в течение первого цикла обращения. В течение второго цикла обращения выводы AD0-AD7 используются для передачи данных.. Напряжение питания аналого-цифрового преобразователя. Вывод подсоединяется к VCC через низкочастотный фильтр.. Вход опорного напряжения для аналого-цифрового преобразователя. На этот вывод подается напряжение в диапазоне между AGND и AVCC. AGND. Это вывод должен быть подсоединен к отдельной аналоговой земле, если она есть на плате. В ином случае вывод подсоединяется к общей земле.

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

VСС, GND. Напряжение питания и земля.

1.2 Организация памяти и портов ввода/вывода

Микроконтроллеры AVR имеют раздельные пространства адресов памяти программ и данных (гарвардская архитектура). Организация памяти МК ATMega64 показана на рис. 1.2.

Рис.2. Организация памяти микроконтроллера ATmega64

Высокие характеристики семейства AVR обеспечиваются следующими особенностями архитектуры:

•        В качестве памяти программ используется внутренняя флэш-память. Она организована в виде массива 16-разрядных ячеек и может загружаться программатором, либо через порт SPI;

•        16-разрядные память программ и шина команд вместе с одноуровневым конвейером позволяют выполнить большинство инструкций за один такт синхрогенератора (50 нс при частоте FOSC=20 МГц);

•        память данных имеет 8-разрядную организацию. Младшие 32 адреса пространства занимают регистры общего назначения, далее следуют 64 адреса регистров ввода-вывода, затем внутреннее ОЗУ данных объемом до 4096 ячеек. Возможно применение внешнего ОЗУ данных объемом до 60 Кбайт;

•        внутренняя энергонезависимая память типа EEPROM объемом до 4 Кбайт представляет собой самостоятельную матрицу, обращение к которой осуществляется через специальные регистры ввода-вывода.

Как видно из рис. 1.2 и 1.3, 32 регистра общего назначения (РОН) включены в сквозное адресное пространство ОЗУ данных и занимают младшие адреса. Хотя физически регистры выделены из памяти данных, такая   организация обеспечивает гибкость в работе. Регистры общего назначения прямо связаны с АЛУ. Каждый из регистров способен работать как аккумулятор. Большинство команд выполняются за один такт, при этом из регистров файла могут быть выбраны два операнда, выполнена операция и результат возвращен в регистровый файл. Старшие шесть регистров могут использоваться как три 16-разрядных регистра, и выполнять роль, например, указателей при косвенной адресации.

Рис.3. Регистры общего назначения микроконтроллера ATmega64

Следующие 64 адреса за регистрами общего назначения занимают регистры ввода-вывода (регистры управления/состояния и данныхПри использовании команд IN и OUT используются адреса ввода-вывода с $00 по $3F. Но к регистрам ввода-вывода можно обращаться и как к ячейкам внутреннего ОЗУ. При этом к непосредственному адресу ввода-вывода прибавляется $20. Адрес регистра как ячейки ОЗУ приводится далее в круглых скобках. Регистры ввода-вывода с $00 ($20)  по $1F ($3F) имеют программно доступные биты. Обращение к ним осуществляется командами SBI и CBI, а проверка состояния - командами SBIS и SBIC. В таблице B1 приведен список регистров ввода-вывода.

Таблица 1. Некоторые регистры ввода-вывода микроконтроллера ATmega64

Название

Функция

PORTG

Регистр данных порта G

DDRG

Регистр направления данных порта G

PING

Выводы порта G

PORTF

Регистр данных порта F

DDRF

Регистр направления данных порта F

SREG

Регистр состояния

SPH

Указатель стека, старший байт

SPL

Указатель стека, младший байт

TIMSK

Регистр маски прерываний от таймеров/счетчиков

TIFR

Регистр флагов прерываний от таймеров/счетчиков

MCUCR

Регистр управления микроконтроллером

MCUCSR

Регистр управления и состояния микроконтроллера

TCCR0

Регистр управления таймером/счетчиком Т0

TCNT0

Счетный регистр таймера/счетчика Т0

OCR0

Регистр совпадения таймера/счетчика Т0

ASSR

Регистр состояния асинхронного режима

TCCR1A

Регистр управления А таймера/счетчика Т1

PORTA

Регистр данных порта А

DDRA

Регистр направления данных порта А

PINA

Выводы порта А

PORTB

Регистр данных порта В

DDRB

Регистр направления данных порта В

PINB

Выводы порта В

PORTC

Регистр данных порта С

DDRC

Регистр направления данных порта С

PINC

Выводы порта С

PORTD

Регистр данных порта D

DDRD

Регистр направления данных порта D

PIND

Выводы порта D

SPDR

Регистр данных SPI

SPSR

Регистр состояния SPI

SPCR

Регистр управления SPI

ACSR

Регистр управления и состояния аналогового компаратора

ADMUX

Регистр управления мультиплексором АЦП

ADCSRA

Регистр управления и состояния АЦП

ADCH

Регистр данных АЦП, старший байт

ADCL

Регистр данных АЦП, младший байт

PORTE

Регистр данных порта Е

DDRE

Регистр направления данных порта Е

PINE

Выводы порта Е

PINF

Выводы порта F


Рис.4 - Блок-схема микроконтроллера Atmega64


2. Микросхемы памяти

Микросхема ОЗУ приведена на рис. 13.

Рис. 13 УГО микросхемы КР565РУ1А

Назначение выводов

1 - напряжение питания (-Uп3);

, 3, 4, 8, 9, 10, 13, 14, 15, 19, 20, 21 - входы адресные А0...А11;

- вход сигнала выбора микросхемы;

- вход информационный;

- выход информационный;

- напряжение питания (Uп2);

- вход сигнала выбор режима;

- свободный;

- вход сигнала разрешения;

- напряжение питания (Uп1);

- общий.

ИС имеет три источника питания, первым подключают и последним отключают источник питания Uп3 = -5В, так как он подается на подложку (кристалл), в противном случае может произойти тепловой пробой под воздействием двух других источников питания Uп1 и Uп2. Режим регенерации осуществляют по циклу считывания или считывания-модификации-записи при выполнении условия CS = 1, обеспечивающего блокировку информационных входов и выходов микросхемы и возможность работать ей «на себя». Выход микросхемы в это время находится в Z-состоянии. После включения питания нормальный режим функционирования устанавливается через восемь циклов.

Микросхема ПЗУ приведена на рис. 14.

Рис. 14 УГО микросхемы КР1601РР1

A0 ¸ A9 - входы адреса

D0 ¸ D3 - входы / выходы данных- выбор кристалла- вход сигнала считывания- вход сигнала программирования- вход сигнала стиранияPR -вход напряжения программирования

Режимы работы микросхемы представлены в таблице 1.

Таблица 1

CS

ER

PR

RD

A0¸A9

UPR

D1/0

Режим

0

X

X

X

X

X

Roff

Хранение

1

0

1

0

X

-33¸-31 B

X

Общее стирание

1

0

0

0

A

-//-

X

Избирательное стирание

1

1

0

0

A

-//-

D1

Запись данных

1

1

1

1

A

-33¸5 B

D0

Считывание


2.1 Карта распределения адресного пространства памяти

B000h

ПЗУ

A000h


9FFFh

ОЗУ

9ВFFh


Рис. 15. Карта распределения адресного пространства

Согласно приведенной карте адресного пространства 1 Кб ОЗУ расположен c адреса 9BFFh, а 4 Кб ПЗУ с адреса A000h.

2.2 Селектор ОЗУ

Таблица. Микросхема ОЗУ, объёмом 1Кбайт, будет занимать ячейки памяти с 9BFFдо 9FFF, что соответствует адресу 1001 1ххх хххх хххх.

A15A14A13А12А11А10А9А8А7А6А5А4А3А2А1А0


















0

1

0

0

1

1

0

1

1

1

1

1

1

1

1

1

1

0

0

1

0

0

1

1

1

1

1

1

1

1

1

1

1

1

1

0

0

1

0

0

1

1

Х

Х

Х

Х

Х

Х

Х

Х

Х

Х

Х

0

1

в остальных случаях

1


2.3 Селектор ПЗУ

ПЗУ объёмом 4Кбайт занимает ячейки памяти с A000 до B000, что соответствует адресу 101x xххх хххх хххх.

Таблица

A15A14A13А12А11А10А9А8А7А6А5А4А3А2А1А0


















0

1

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

X

X

Х

Х

Х

Х

Х

Х

Х

Х

Х

Х

Х

0


Адресное пространство ОЗУ и ПЗУ удобно сделать на дешифраторе 3 в 8 К555ИД7.

Рис. 16. Адресный селектор памяти

Где на входы подаются сигналы PC5, PC6, PC7. Так как по ним можно точно определить какая именно микросхема будет задействована: вывод 11 - микросхема ОЗУ ; вывод 10 - микросхема ПЗУ.

3. Индикация

JE-AN 16202

Характеристики ● Режим отображения: STN / TN, прямой / обратный тип отображения ● Формат экрана: 16 символов * 2 строки ● Метод передачи: 1/16 Duty, 1/4 Bias ● Направление обзора: 6 O `clock/12 O'clock ● Заднее освещение: LED / EL блок

Таблица. Механические характеристики

Параметр

Спецификация

Ед. изм.

Размер модуля (Ш х В х Г)

80.0 x 36.0 x 15.0(10) Max.

мм

Видимая область (Ш х H/)

64.5 x 13.8

мм

Размер шрифта (Ш х В)

5.0 x 7.0

точка

Размер символа (Ш х В)

мм

Размер шага (Ш х В)

3.65 x 5.05

мм

Размер точки (Ш х В)

0.55 x 0.5

мм

Вес

Около 100 г

г


Таблица. Назначение контактов

Номер контакта

Символ

Уровень

Функция

1

VSS (GND)

0 V

Земля

2

VDD (VCC)

+ 5V

Напряжение питания логики

3

V0

-

Напряжения питания ЖК

4

RS

H / L

H: Ввод данных L: Ввод инструкций

5

R / W

H / L

H: Чтения данных L: Запись данных

6

E

H, H à L

Сигнал разрешения

7

DB0

H / L

       Шина данных

8

DB1

H / L


9

DB2

H / L


10

DB3

H / L


11

DB4

H / L


12

DB5

H / L


13

DB6

H / L


14

DB7

H / L


15

NC

-


16

NC

-


Блок схема

Рис

Схема подключения питания

Рис. VDD - VO : Напряжение питания LCD

Таблица. Наборы инструкций

 Инструкция

Код

 Описание

Время запуска (макс.)


 RS

 R/W

 DB7

 DB6

 DB5

 DB4

 DB3

 DB2

 DB1

 DB0



Очистка дисплея

 0

 0

 0

 0

 0

 0

 0

 0

 0

 1


 1.52 мс

Сброс

 0

 0

 0

 0

 0

 0

 0

 0

 1

 *

Возвращает дисплей при переключении

 1.52 мс

Режим записи

 0

 0

 0

 0

 0

 0

 0

 1

 I/D

 SH


37 мкс

Управление дисплеем Вкл / Выкл

  0

  0

  0

  0

  0

  0

  1

  D

  C

  B


 37 мкс

Отображение курсора или дисплея

  0

  0

  0

  0

  0

  1

  S/C

  R/L

  *

  *


 37 мкс

Начало работы

 0

 0

 0

 0

 1

 DL

 N

 F

 *

 *


37 мкс

Установить CG Ram адрес

 0

 0

 0

 1

 ACG


37 мкс

Установить DD RAM адрес

 0

 0

 1

   ADD


37 мкс

Чтение флага «занят» и адреса

  0

  1

  BF



 0 мкс

Запись данных в CG или DD RAM

  1

  0

  AC


 43 мкс

Чтение данных из CG или DD RAM

  1

  1

  чтение


 43 мкс


Таблица

Замечания


I/D

1

увеличение

0

уменьшение

SH

1

включить полный сдвиг

0

выключить полный сдвиг

S/C

1

Сдвиг дисплея

0

Установка курсора

R/L

1

сдвиг вправо

0

сдвиг влево

DL

1

Биты

0

Биты

N

1

Линии

0

Линии

F

1

5 х 11 Точек

0

5 х 8 точек

BF

1

Действующий внутренне

0

Может принимать инструкции

RAM Отображение данных оперативной памяти CG RAM: Генератор символов RAM: CG RAM Адрес ADD: CG RAM Адрес: Соответствует адресу курсора AC: Используется счетчик адреса для DD и CG RAM адреса ●: никакого эффекта.

Таблица. Символы шрифта


Рис

4. Расчет потребляемой устройством мощности

Таблица

Микросхема

Ток потребления, мА

Потребляемая мощность, мВт

Количество

ATmega64



1

К555ИД7

9,7

51

1

КР1601РР1


370

1

КР565РУ1А


450

1

JE-AN16202

1.4

500

1

КР580ИР82

160

800

2

КР580ВА86

90

450

1

К155ЛЕ1

27

64,8

2

К500ЛЕ106Е

21

34,23

1


Для определения мощности, потребляемой устройством, необходимо просуммировать мощности, потребляемые каждым элементом в отдельности:

.

Максимальная мощность (клавиши нажаты), рассеиваемая на резисторах R1-R3, сопротивлением кОм:

 мВт.

Значит мощность, потребляемая устройством:

 мВт.

В качестве источника питающего напряжения  можно применить любые маломощные трансформаторы на напряжения 220 / 3.3 V с использованием микросхемы-стабилизатора напряжения Б5-43, обеспечивающую максимальный ток на выходе до 1,99 А и позволяющей подключить нагрузку потребляющую до 150 Вт, что покрывает необходимые потребности.

 
Таблица. Спецификация

Поз. обозначение

Наименование


DD1

ATmega64

1

DD5

К555ИД7

1

DD6

КР1601РР1

1

DD7

КР565РУ1А

1

DD8

JE-AN16202

1

DD2,DD3

КР580ИР82

2

DD4

КР580ВА86

1

Элементы 2ИЛИ-НЕ

К155ЛЕ1

2

Элементы ИЛИ-НЕ

К500ЛЕ106Е

1




R1-R3

С2-23-0,25-1 кОм ± 5 % А-В-В

3

 
 
5. Текст подпрограмм

Текст подпрограмм

В независимости от функционального назначения устройства алгоритм его работы содержит последовательность типовых операций: инициализация системы, чтение/запись памяти, чтение клавиатуры и портов ввода, вывод информации на индикаторы и порты вывода и др.

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

;ATmega64

.include "m64def.inc"

.def out_fig_code = r21 ;код выводимого символа для индикатора

.def out_seg = r22 ;номер текущего сегмента

.def d1 = r4

.def d2 = r5

.def d3 = r6d1 = r7

.def d2 = r8

.def d3 = r9d1 = r10

.def d2 = r11

.def d3 = r12d1 = r13

.def d2 = r14

.def d3 = r15d1 = r16

.def d2 = r17d1 = r18

.def d2 = r19

.equ out_seg16 = 7

.dseg

.org 0x100

.cseg

.org 0reset

;-------------

; начало программы

reset:out_fig_codeout_seg

ldi r20, out_seg16

; программирование портов F и С на вывод

ldi r20, 7ddrc, r20r20, $ffddrf, r20:out_seg, 1 ; на сегмент 1out_fig_code, LLHLHHHL ; вывод . out_pp ; вызов подпрограммы вывода

ldi out_seg, 2 ; на сегмент 2out_fig_code, LLHLHHHL          ; вывод .

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, 3 ; на сегмент 3out_fig_code, LLHLHHHL ; вывод .

rcall out_pp ; вызов подпрограммы вывода

rcall delay05out_seg, 4 ; на сегмент 4out_fig_code, LLHLHHHL     ; вывод .

ldi out_seg, 5 ; на сегмент 5out_fig_code, LLHLHHHL ; вывод .

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, 6 ; на сегмент 6out_fig_code, LLHLHLHL ; вывод *

rcall out_pp ; вызов подпрограммы вывода

rcall delay05out_seg, 7 ; на сегмент7out_fig_code, LHLLHLLL      ; вывод H

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, 8 ; на сегмент 8out_fig_code, LHLLLHLH ; вывод E

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, 9 ; на сегмент 9out_fig_code, LHLLHHLL         ; вывод L

rcall out_pp ; вызов подпрограммы вывода

rcall delay05out_seg, A ; на сегмент 10out_fig_code, LHLLHHLL   ; вывод L

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, B ; на сегмент 11out_fig_code, LHLLHHHH ; вывод O

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, C ; на сегмент 12out_fig_code, LLHLHLHL       ; вывод *

rcall out_pp ; вызов подпрограммы вывода

rcall delay05out_seg, D ; на сегмент 13out_fig_code, LLHLHHHL  ; вывод .

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, E ; на сегмент 14out_fig_code, LLHLHHHL ; вывод .

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, F ; на сегмент 15out_fig_code, LLHLHHHL       ; вывод .

rcall out_pp ; вызов подпрограммы вывода

rcall delay05out_seg, 10 ; на сегмент 16out_fig_code, LLHLHHHL ; вывод .

rcall out_pp ; вызов подпрограммы вывода

;-------------

; подпрограмма вывода на индикатор

out_pp:

out PORTC, r20PORTF, out_fig_code

out PORTC, out_seg

Рис.

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

 

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