Главная              Рефераты - Информатика

Система обработки данных на базе микроконтроллера ATmega161 - курсовая работа

Содержание


Введение

1. Структурная схема системы

1.1 Анализ технического задания

1.2 Структурная схема устройства

1.3 Описание микроконтроллера ATmega161

2. Разработка и описание схемы

2.1 Процессорный блок

2.2 Расчет ОЗУ

2.3 Описание адаптера параллельного интерфейса

2.4 Программирование адаптера параллельного интерфейса

Вывод

Список использованной литературы

Приложение А


Введение


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

Микропроцессор представляет собой функционально законченное устройство, состоящее из одной или нескольких программно-управляемых БИС и служит для выполнения операций по обработке информации и управления вычислительным процессом. Центральное место в структуре микропроцессорного устройства занимает микропроцессор, который выполняет арифметические и логические операции над данными, программное управление процессором обработки информации, а также организует взаимодействие всех устройств, входящих в систему.

Для реализации устройств обработки информации (УОИ) используют аппаратные, программные, программные и аппаратно-программные средства. При аппаратных получают устройство обработки информации с "жесткой" логикой, что обеспечивает наибольшее быстродействие, но требует большие аппаратные затраты. При программных УОИ реализуется в виде программы для типовой универсальной микро-ЭВМ, предназначенной для встраивания непосредственно в разрабатываемые блоки. При аппаратно-программных предполагается разработка как программных, так и аппаратных средств на базе микропроцессоров (МП).

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

1. СТРУКТУРНАЯ СХЕМА СИСТЕМЫ


1.1 Анализ технического задания


Необходимо разработать микропроцессорную систему обработки данных на базе микроконтроллера ATmega161. Система кроме процессорного блока включает блок памяти, информационная емкость ОЗУ которого составляет 1К16 бит.

Блок периферийных устройств представлен регистрами защелками и дешифратором.

Регистр-защёлка D2 служит для выделения младшего байта адреса по сигналу ALE.

Селектор адреса СА служит для адресации адаптера параллельного интерфейса i8255.


1.2 Структурная схема устройства


Система состоит из микроконтроллера ATmega162, порты которого используются для вывода адреса ОЗУ, подключен адаптер параллельного интерфейса i8255. Взаимодействие микроконтроллера с внешней памятью и периферийными устройствами осуществляется по шине адреса. Данные передаются и принимаются микроконтроллером по шине данных. Управляющие сигналы передаются по шине управления.

ОЗУ подключены своими адресными входами к шине адреса и передают и принимают данные по шине данных. Адрес формируется на контактах портов РА – 8 младших разрядов и РС – старшие разряды. Обмен данными с ОЗУ микроконтроллер осуществляет через порт РА. Поэтому младшие разряды адреса на время обмена сохраняются на время обмена в регистре-защелке. Структурная схема устройства приведена ниже на рис.1.


Рис.1 Структурная схема системы


1.3 Описание микроконтроллера ATmega162


Схема цоколевки микроконтроллера ATmega162 приведена на рис.2


Рис. 2 Условное графическое обозначение микроконтроллера ATmega162


ATmega162/162V – микропотребляющий 8-разрядный КМОП-микроконтроллер, построенный с использованием расширенной RISC – архитектуры AVR. Эта микросхема является прямой заменой микросхемы ATmega161, обладая при этом расширенными характеристиками. Выполняя команду за один период тактовой частоты, ATmega162 имеет производительность около 16 миллионов операций в секунду, что позволяет разработчикам создавать оптимальные по скорости и потребляемой мощности системы. Структурная схема микроконтроллера ATmega162 приведена в приложении А.

Наименование выводов ATmega162:

RESET – вход системного сброса.

XTAL1, XTAL2 – выводы для подключения кварцевого резонатора.

РА0 ч РА7 – 8-разрядный двунаправленный порт А ввода/вывода с третьим состоянием, при роботе с внешней памятью является совмещенной шиной адресе данных (адрес необходимо по сигналу ALE занести в регистр).

PB0 ч PB7 – 8-разрядный двунаправленный порт В ввода/вывода с третьим состоянием, который имеет альтернативные функции:

OC0/ТО(РВО) – вход внешнего сигнала таймера/счетчика ТО либо выход таймера/счетчика ТО в режимах Compare, PWM.

OC2/Т1(РВ1) – вход внешнего сигнала таймера/счетчика Т1.

AIN0(PB2) – положительный вход компаратора.

AIN1(PB3) – отрицательный вход компаратора.

SS(PB4) – выбор подчиненного устройства (slave) на шине SPI (последовательный интерфейс).

MOS1(PB5) – выход главного (master) или вход подчиненного (slave) устройства данных модуля SPI.

MІS0(PB6) – вход главного (master) или выход подчиненного (slave) устройства данных модуля SPI.

SCK(РВ7) – выход главного (master) или вход подчиненного (slave) устройства тактового сигнала модуля SPI.

PC0 ч PC7 – 8-разрядный двунаправленный порт С ввода/вывода с третьим состоянием, имеет альтернативную функцию – передает старший байт адреса (А8чА15) при работе с внешней памятью.

PD0чPD7 – 8-разрядный двунаправленный порт D ввода/вывода с третьим состоянием, имеет альтернативные функции:

RxD0(PD0) – вход приемника универсального асинхронного последовательного порта (USART).

TxD0(PD1) – выход передатчика универсального асинхронного последовательного порта (USART).

INT0(PD2) – вход внешнего прерывания.

INT1(PD3) – вход внешнего прерывания.

XCK0(PD4) – вход/выход внешнего сигнала синхронизации (тактового сигнала USART).

OC1A(PD5) – выход А таймера/счетчика Т1 в режиме сравнения (Compare) и в режиме шин сигнала (PWM).

WR(PD6) – строб записи во внешнее ОЗУ.

RD(PD7) – строб чтения из внешнего ОЗУ.

РЕ0чРЕ2 – 3-разрядный двунаправленный порт Е ввода/вывода с третьим состоянием, имеет альтернативные функции:

РЕ0(INT2) – вход внешнего прерывания 2.

ICP1 – вход захвата таймера/счетчика Т1 (режим Compare).

РЕ1(ALE) – строб адреса внешнего ОЗУ, записывается адрес в регистр-защелку.

PE2(OC1B) – выход В таймера/счетчика Т1 в режиме Compare и PWM.

GND – общий вывод.

Vcc – вывод источника питания.

Основные технические характеристики:

Тактовая частота 0…16 МГц (0…8 МГц для версии V)

Встроенный RC-генератор 1/2/4/8 МГц с возможностью калибровки

4 внешних источника тактирования

131 команда (большинство команд выполняется за 62,5 наносекунды)

Аппаратный умножитель (время выполнения команды умножения 8х8 – 125 наносекунд)

16 Кбайт загружаемой в системе Flash-памяти (не менее 10000 циклов перезаписи)

512 байт ЭСПЗУ (не менее 100000 циклов перезаписи)

1 Кб ОЗУ

32 рабочих регистра

35 программируемых линий ввода/вывода

SPI-интерфейс для внутрисхемного программирования

Два 8-битных таймера/счетчика с раздельными делителями и режимами сравнения

Два 16-битных таймера/счетчика с режимами сравнения и захвата

Таймер часов реального времени с отдельным внешним тактовым генератором

Шесть каналов ШИМ

Программируемый сторожевой таймер со встроенным генератором

Два полнодуплексных последовательных порта UART/USART с двойной буферизацией

Интерфейс SPI с режимом Master/Slave

Встроенная схема сброса при подаче напряжения питания и схема слежения за питанием

Аналоговый компаратор

JTAG-порт для подключения внутрисхемного эмулятора ATJTAGICE

Типовой потребляемый ток в активном режиме:

- 1 МГц, 1,8 В – 600 мкА

- 1 МГц, 3,3 В – 1,2 мА

- 32 кГц, 1,8 В – 90 мкА

- 32 кГц, 3,3 В – 120 мкА

Пять программируемых режимов пониженного энергопотребления

- потребляемый ток в режиме Power-down – 0,5 мкА (при 1,8 В)

Диапазон напряжения питания:

- от 1,8 до 5,5 В (для ATmega162V)

- от 2,7 до 5,5 В (для ATmega162)

Высоконадежная защита от несанкционированного копирования содержимого ПЗУ

40-выводной корпус DIP и 44-выводной корпус TQFP/MLF


2. РАЗРАБОТКА И ОПИСАНИЕ СХЕМЫ


2.1 Процессорный блок


Процессорный блок состоит из микроконтроллера ATmega162, регистра защелки младшей части адреса RG. Адрес формируется на выходе портов РА – младшая часть adr(0..7) на внутренней шине AdrDat, которая попадает на системную шину адреса после регистра защелки Adr, и РС – старшая часть, которая непосредственно подается на системную Adr - разряды adr(8..15). Обмен данными с памятью и внешними устройствами, осуществляется как по внутренней шине Dat, которая совмещена с шиной младшей части адреса и подключена к порту РА dat(0..7)=adr(0..7), так и по порту РС.

Сигнал ALE является сигналом защелкивания младшей части адреса в регистр RG.

РD2, РD3 – линии приема запроса на прерывание по вводу данных от внешнего устройства, РD6 и РD7 – линии сигналов записи и чтения.


2.2 Расчет ОЗУ


Исходные данные:

Количество ячеек внешнего ОЗУ NОЗУ – 21 Кбайт

Количество входов параллельного интерфейса:

режим 0 – 10

режим 1 – 8

Входные токи:

при логическом 0, IIL – 3,2 мА

при логической 1, IIH – 2 мА

Входная емкость логических схем нагрузки, СI – 5 пФ

Монтажные емкости всех цепей (См = 20 пФ).

Согласно заданию количество ячеек памяти ОЗУ составляет NОЗУ.

Разрядность ОЗУ nОЗУ должна соответствовать разрядности обработки данных ЦП.

Информационная емкость СОЗУ определяется по формуле:



Необходимое быстродействие ОЗУ определяется по временным диаграммам ЦП. Для МК ATmega162 время цикла записи (чтения) tС равно 3ТМТ, где ТМТ - длительность машинного такта.

При частоте кварцевого резонатора fтг = (8-16) МГц время Тмт = 345нс.

Время цикла микросхемы памяти tcy должно удовлетворять неравенству:



В качестве микросхемы ОЗУ выберем К537РУ17, поскольку она будет (прогнозируемо) наименее избыточна для данного случая. Для данной микросхемы памяти .

Рассчитаем число БИС ОЗУ в ряду матрицы:



где nБИС - разрядность выбранной микросхемы памяти. Квадратные скобки здесь и в дальнейшем показывают, что результат необходимо округлить до большего значения.

Определим число разрядов матрицы:



где NБИС - количество ячеек памяти выбранной микросхемы памяти.

Общее число БИС ОЗУ равно



Таким образом, число корпусов ОЗУ = 3.

Определяем токовую IDL и IDH и емкостную СD нагрузки для схем ввода информации в ОЗУ по формулам:


IDL = mc IIDL = 3 * 3,2 = 9,6 мА

IDH = mc IIDH = 3 * 2 = 6 мА

CD = mc CID + Cm = 3 * 5 + 20 = 35 пФ


где IIDL, IIDH - входные токи логического 0 и логической 1 по информационным цепям выбранной БИС ОЗУ. CID - входная емкость по информационному входу БИС ОЗУ.

Определяем токи нагрузки и емкостную нагрузку для схем ввода адреса по адресным цепям БИС ОЗУ по формулам:


IAL = m IIAL = 3 * 3,2 = 9,6 мА

IAH = m IIAH = 3 * 2 = 6 мА

CA = m CIA + Cm = 3 * 5 + 20 = 35 пФ


где IIАL, IIAH - входные токи логического 0 и логической 1 по адресным цепям выбранной БИС ОЗУ. CIА - входная емкость по адресному входу БИС ОЗУ.

Определяем токи нагрузки ICSL и ICSH и величину емкостной нагрузки СCS по цепям выбора микросхем (CS) по формулам:


ICSL = mp IICSL = 1 * 3,2 = 3,2 мА

ICSH = mp IICSH = 1 * 2 = 2 мА

CCS = mp CICS + Cm = 1 * 5 + 20 = 25 пФ


где IICSL, IICSH - входные токи логического 0 и логической 1 по цепям выбора (CS) БИС ОЗУ. CСS - входная емкость по цепям выбора (CS) БИС ОЗУ.


Рис. 3 Условное графическое обозначение ОЗУ К537РУ17


Наименование выводов:

A0 ч A12 – адресные входы.

W/R – запись/чтение.

CS1, CS2 – chip select, чип выбора.

CEO – разрешающий выход.

D0 ч D7 – шина данных ввода/вывода.

ОЗУ представляет собой статическое асинхронное оперативное запоминающее устройство.

Режимы работы:


W/R CS1 CS2 OE A0..12 D0..7 Режим
Х Н X X Адрес Данные Хранение
Х Х L Х Хранение
Н L Н H Запрет выхода
Н L H L Чтение
L L Н Н Запись
L L Н L Запись

Х – любая комбинация уровней либо L, либо H


2.3 Описание адаптера параллельного интерфейса


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

Адаптер параллельного интерфейса i8255 имеет три восьмиразрядных порта А, В и С с 3-м состоянием. Причем порт С разделен на две тетрады. Все три порта могут быть запрограммированы на ввод или вывод, причем каждая тетрада порта С может быть запрограммирована раздельно. Данные поступают в АПИ через шину данных D0…D7. С помощью сигнала CS осуществляется выбор кристалла, если сюда поступает низкий уровень сигнала, то порты будут установлены в 3-е состояние. А1, А0 – младшие разряды адреса, они служат для адресации внутренних регистров адаптера. Если количество линий ввода и вывода превышает возможности адаптера, то следует применить несколько адаптеров.


Рис. 4 Условное графическое обозначение АПИ i8255


Наименование выводов:

D0 ч D7 – шина данных.

CS – выбор кристалла, активный 0 – адаптер подключен к PPI, если 1 – адаптер имеет третье высокоимпедансное состояние.

A0, A1 – младшие разряды адреса, служат для адресации внешних регистров адаптера.

WR – запись, поступает от МК.

RD – чтение, поступает от МК.

RESET – системный сброс.

PA0 ч PA7 – 8-разрядный двунаправленный порт A с третьим состоянием.

PB0 ч PB7 – 8-разрядный двунаправленный порт B с третьим состоянием.

PB0 ч PB7 – разделен на 2 части, 8-разрядный двунаправленный порт С с третьим состоянием.

Адаптер имеет три режима роботы. Рассмотрим некоторые особенности каждого из режимов:

Режим 0 применяется в программно-управляемом вводе-выводе с медленно действующими периферийными устройствами. В режиме 0 базового ввода-вывода могут работать все три порта, причем порт С разделяется на два независимых четырехбитных порта.

Режим 1 - стробируемый ввод-вывод. Он предназначен для однонаправленных передач данных, инициируемых прерываниями. Собственно передача слов данных осуществляется через порты А и В, а шесть линий порта С используются для управления обменом. Данный режим предоставляет пользователю следующие возможности: запрограммировать один или два параллельных порта с линиями квитирования и прерывания, каждый из которых может работать на ввод или вывод; при использовании только одного порта остальные 13 линий запрограммировать в режиме 0; при определении двух портов в режиме 1 оставшиеся две линии порта С использовать для ввода или вывода в режиме 0. На рис. 5. приведено расположение линий порта С при вводе информации (рис. 5, а) и при выводе информации (рис. 5, б) через порты А и В, где

IO - ввод или вывод в зависимости от значения бита D4 слова приказа (СП).

IBF - ввод в буфер. Устанавливается в 1 и поддерживается в течении всего времени от записи данных ( в А или В ) до момента их чтения из МП.

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

INT - запрос прерывания. Информирует МП о готовности данных к выводу. Подается на вход запрос прерывания ЦП.

OBF - выходной порт полон. Сигнализирует ВУ, что данные находятся в порту А или В.

ACK - подтверждение. ВУ подтверждает прием данных.

Режим 2 - совместный ввод - вывод с квитированием. Осуществляется только по порту А, при этом порт А используется для двунаправленной передачи данных, канал С - выполняет функции управления (квитирования) и прерываний. Порт В можно запрограммировать на ввод или вывод в режимах 0 или 1.

На рис. 6. Приведено расположение линий порта С в режиме 2.


Рис. 5 Распределение линий порта С: а) при вводе информации в порты А и В; б) при выводе информации.


Рис. 6 Расположение линий порта С в режиме 2.


2.4 Программирование адаптера параллельного интерфейса


Программирование адаптера заключается в загрузке слова приказа (СП) в регистр управляющего слова ICW1.

Формат данного регистра представлен ниже


D7 D0

1 M1 M0 BB BB M BB BB

Описание битов:

D7 – признак ICW1

D6, D5 – режим работы для группы А

D4 – ввод/вывод по порту А (вывод – 0, ввод – 1)

D3 – ввод/вывод по порту C4…7 (вывод – 0, ввод – 1)

D2 – режим работы для группы В

D1 – ввод/вывод по порту B (вывод – 0, ввод – 1)

D0 – ввод/вывод по порту C0…3 (вывод – 0, ввод – 1)

В данном случае слово приказа можно составить двумя способами:


ICW1=10011110=9Еh


D7 D0

1 0 0 1 1 1 1 0

ICW1=10110011=В3h


D7 D0

1 0 1 1 0 0 1