Проектирование управляющей микропроцессорной системы

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

Проектирование управляющей микропроцессорной системы

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение

высшего образования

«Юго-Западный государственный университет»

Кафедра вычислительной техники








КУРСОВОЙ ПРОЕКТ

по дисциплине «Аналого-цифровая интегральная электроника и микропроцессоры»

на тему «Проектирование управляющей МПС»

Специальность (направление подготовки) 11.03.03 - Конструирование и технология электронных средств







Курск, 2015 г.

Оглавление

Введение

1. Расшифровка и анализ задания

1.1 Разработка интерфейса и уточнённой структурной схемы

1.2 Оценка памяти программ и данных

1.3 Структура адресного пространства

2. Разработка процессорного модуля

2.1 Времязадающая цепочка

2.2 Устройство рестарта

3. Разработка подсистемы памяти

4. Разработка подсистем ввода/вывода

4.1 Устройство обмена данными с объектом управления

4.2 Организация клавиатуры

4.3 Организация индикации

4.4 Устройство обмена по RS232

.5 Устройство аварийного оповещения

.6 Прерывания

5. Разработка алгоритма ПО

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

Приложение А

Приложение Б

Приложение В

Приложение Г

Приложение Д

Приложение Е

Приложение Ж

Введение

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

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

1. Расшифровка и анализ задания

УМПС реализует следующий алгоритм управления: С ОУ принимается поток значений входных слов Xi и размещается в кольцевом буфере на 17 значений в памяти УМПС. При приёме 16 значений производится вычисление среднего арифметического значения X = (X1 + X2 + … + X16)/16. В дальнейшем, при приёме каждого нового значения, оно записывается в кольцевой буфер вместо самого старого значения, а среднее значение пересчитывается по последним 16 значениям. В зависимости от значений Х, вычисляется управляющее воздействие Y:

= 00H при X < G1;= Ф1(Х) при G1 <= X < G2;                          (1)= Ф2(Х) при G2 <= X <= G3;= 0FFH при X > G3.

В выражении (1) константы G1, G2, G3 и вид функций Ф1, Ф2 определяется заданием. Во всех вариантах все переменные и константы рассматриваются как 8-разрядные двоичные (2-разрядные шестнадцатеричные) целые без знака, причем:

< G1 <G2 < G3 < 0FFH.

Для случаев X < G1 и X > G3 необходимо выдать на пульт оператора сигнал <Авария> - включить мигание специального светового индикатора (лампы накаливания, питающейся от осветительной сети переменного тока напряжением 220В частотой 50 Гц) с частотой 2 Гц.

По запросу с пульта оператора следует выдать на его индикацию значения Xmin, Xmax, X(среднее), Y для цикла управления, предшествующему текущему. Выдача этой информации должна осуществляться в режиме прерывания программы.

Недостающие параметры:

Объём выпуска - 1 шт.;

Расстояние от объёкта управления до УМПС - 1 метр

Расстояние до ПК - 10 метров;

Память хранения констант - изолированная;

Для обмена данными используется интерфейс RS-232, скорость передачи данных по которому 9600 бит/сек;

Питание - 220 В, 50 Гц;

Сигнал «авария» не дожжен срабатывать, пока не наберётся 17 значений

1.1 Разработка интерфейса и уточнённой структурной схемы


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

Таблица 1 - устройства с радиальным принципом подключения

Устройство

Линии

EEPROM (по интерфейсу I2C)

2 линии: SDA и SCL

Канал RS232

2 линии: RxD и TxD

«Авария»

1 линия

Итого 5 линий

Таблица 2 - устройства с магистральным принципом подключения

Устройство

Линии

Объект управления

8 линий шины данных 2 линии: RD, WR 2 линии прерываний

Клавиатура 3х8

3 линии для опроса клавиш 8 линий для считывания  1 линия для прерываний от клавиатуры

Буферные регистры для индикации

7 линий шины данных 2 линии сигналов PG0, PG1

Итого 33 линии

Помимо устройств необходимы линии для:

Питание - 3 линии;

Земля - 2 линии;

Организация тактирования - 2 линии;

Кнопка рестарта Reset - 1 линия.

Суммарно получается 46 линий.

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

 

.2 Оценка памяти программ и данных


Для оценки будем полагаться на аналоги по следующим функциям:

- опрос и сканирование клавиатуры      [1]

запись и чтение в EEPROM по I2C        [2]

вывод данных на индикацию                 [3]

обмен по последовательному каналу RC-232 [4]

обмен данными с ОУ                                        [5]

вычисления согласно алгоритму                     [6]

Таблица 3 - Оценка памяти

Выполняемые функции

Объем памяти ПЗУ (байт)

Объем памяти ОЗУ (байт)

Опрос и сканирование клавиатуры 4Ч4

110

4

Запись и чтение в EEPROM по I2C

143

3

Вывод данных на индикацию

20

5

Обмен по последовательному каналу RC-232

235

2

Обмен данными с ОУ

20

1

Вычисления, согласно алгоритму (для ОЗУ - учтем кольцевой буфер- 16 байт)

68

35

Итого

596

50


Система должна содержать кольцевой буфер на 16 значений - это 16 байт памяти ОЗУ. Плюс, введенное значение с пульта оператора K - 1 байт. Возьмем 20 байт. Под стек можно выделить примерно 100-150 байт (ОЗУ)

Учитывая коэффициент запаса равный двум, получаем 1192 байта для ПЗУ и 100 байт для ОЗУ. Суммарно текст программ занимает около 1.5 Кб памяти.

1.3 Структура адресного пространства


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

Память программ (Flash ROM или Flash ПЗУ) предназначена для хранения последовательности команд, управляющих функционированием микроконтроллера, имеет 16-ти битную организацию. Все AVR имеют Flash-память программ, которая может быть различного размера - от 1 до 256 Кб. Ее главное достоинство в том, что она построена на принципе электрической перепрограммируемости, т.е. допускает многократное стирание и запись информации. Память данных разделена на три части: регистровая память, оперативная память (ОЗУ - оперативное запоминающее устройство или RAM) и энергонезависимая память (EEPROM). Регистровая память включает 32 регистра общего назначения (РОН), объединенных в файл, и служебные регистры ввода/вывода (РВВ). И те и другие расположены в адресном пространстве ОЗУ, но не являются его частью. В области регистров ввода/вывода расположены различные служебные регистры (регистры управления микроконтроллером, регистры состояния и т.п.), а также регистры управления периферийными устройствами, входящими в состав микроконтроллера. Энергонезависимая память данных (EEPROM) используется для долговременного хранения различной информации, которая может изменяться в процессе функционирования микроконтроллерной системы. Все AVR имеют блок энергонезависимой электрически перезаписываемой памяти данных EEPROM от 64 Байт до 4 кБайт.  Внутренняя оперативная статическая память Static RAM (SRAM) имеет байтовый формат и используется для оперативного хранения данных. Размер оперативной памяти может варьироваться у различных AVR от 64 Байт до 4 Кбайт [7].

Рисунок 1.2 - Карта адресного пространства

2. Разработка процессорного модуля


Основой процессорного модуля является сама БИС, а также вспомогательные схемы: времязадающая цепочка и устройство рестарта.

Основные параметры выбора микроконтроллера: МК должен принадлежать семейству AVR, количество выводов, объём ПЗУ и ОЗУ, поддержка дополнительных интерфейсов, в частности I2C и UART, а также стоимость.

В рамках единой базовой архитектуры AVR-микроконтроллеры подразделяются на три подсемейства: Tiny AVR, Mega AVR, Xmega AVR.

Микроконтроллеры подсемейства Tiny имеют: флеш - память до 16 кб, SRAM до 512 б, EEPROM до 512 б; число линий ввода/вывода 4-18 (общее количество выводов 6-32) и ограниченный набор периферийных устройств.

Микроконтроллеры подсемейства Mega имеют: флеш-память до 256 Кб, SRAM до 16 Кб, EEPROM до 4 Кб; число линий ввода/вывода 23-86 (общее количество выводов 28-100); расширенную систему команд и периферийных устройств, аппаратный умножитель, встроенные АЦП и др.

Подсемейство Xmega AVR - это микроконтроллеры, которые содержат флеш-память объемом до 384 Кб, SRAM до 32 Кб, EEPROM до 4 Кб, работают при тактовой частоте 32МГц, при напряжении питания от 1,6В до 3,6В.

Для выбора микроконтроллера воспользуемся сервисом MicrocontrollersSelector.

На сайте Atmel указаны цены только на 4 микроконтроллера их этого списка, из них и делаем выбор.

Выбираем ATmega169P

Основные параметры и распределение выводов приведены в Приложении Б

Рисунок 2.1 - Список отсортированных микроконтроллеров

Таблица 4 - стоимость МК

Микроконтроллер

Цена, руб.

ATmega165P

198

ATmega165PA

185

ATmega169A

203

ATmega169P

163


.1 Времязадающая цепочка

Так как в схеме имеется связь между ПК, то есть RS232 и МК, необходимо установить стандартизированную скорость обмена. Для этого в микроконтроллере имеется регистр UBRR, в который следует записать коэффициент, который рассчитывается по формуле:

 

f - тактовая частота, на которой работает микроконтроллер- скорость передачи- содержимое регистра контроллера скорости передачи.

Максимальное отклонение скорости не должно превышать 1% [8]равна 9600 бит/с, она выбрана в анализе ТЗ.

Частота резонатора не должна быть более 16 МГц, так как это является максимальной тактовой частотой микроконтроллера. Зададим частоту 12МГц и рассчитаем погрешность. Если f=12000000, то UBRR=77.125, но в регистр UBRR можно записывать только целые числа, округлив до 77, подставляем значение в первую формулу и получаем 9615 бит/с. Погрешность всего 0.155%. Итого максимальная частота отклонения кварца при погрешности частоты передачи 1% равна:


Рисунок 2.2 - схема подключения кварцевого и керамического резонаторов соответственно

Керамические резонатор дешевле, имеет меньший корпус в отличие от кварцевого, но имеет большее отклонение от номинальной частоты, это отклонение обычно менее 1%, поэтому выбираем керамический резонатор ZTT 12.0 МГц, его максимальное отклонение частоты 0.5% при цене 11 руб.

2.2 Устройство рестарта

Устройство рестарта подключается к входу RESET и служит для сброса микроконтроллера, т.е приведения его в исходное состояние. Это необходимо при включении электропитания, при авариях в системе электропитания, при зависании программ и др.

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

Данная схема работает следующим образом: конденсатор C при подачи питания заряжается до напряжения питания через резистор R1, выполнение «сброса» завершится, когда напряжение С достигнет значения напряжения питания и МК переходит, а рабочее состояние. Ключ S используется для сброса системы оператором в любое время. При замыкании ключа конденсатор разряжается, и МК будет находиться в исходном состоянии до тех пор, пока конденсатор не зарядится до напряжения питания. Для того чтобы быстро разрядить конденсатор при коротких «провалах» питания, в схеме используется диод VD1. Резистор R2 ограничивает величину тока через кнопку S. Для формирования требуемой задержки включения (формирования фронта сигнала сброса) резистор R1 и конденсатор C образуют RC цепь.

При включении источника электропитания, через некоторое время оно достигает стабильной величины и подается на вход МК для его нормальной работы. Таким образом задержка включения МК есть постоянная времени R1 C - цепочки формирователя рестарта (фRC):

RC)=R1*C3

где (фRC) для ATmega169P составляет 65ms [9]

Величина R1 не более 10 кОм, примем за 9 кОм, следовательно, C3=7.2мкФ, что попадает в диапазон 1-10 мкФ, рекомендуемый в лекциях.

Для вычисления величины R2, необходимо найти пределы значений данной величины.


При Uпит = 5 В; Iкнmax = 50 мА ; R2 ≥ 100 Ом.


Если принять Urst = 0.2 В (согласно даташиту), тогда найдем R2 ≤ 360 Ом


Для удобства принимаем R2=200 Ом

При выборе диода верхняя рабочая частота не относится к основным параметрам, так как типичное время протекания тока через него от долей до нескольких периодов сетевого напряжения. Uобрmax не более 6В-7В, чему удовлетворяют любые выпрямительные диоды. Возьмём КД513А

3. Разработка подсистемы памяти

C02 - микросхема энергонезависимой памяти объёмом 2К, организованная как 256х8 байт памяти с управлением по I2C. ATmega169P поддерживает интерфейс TWI, который пришёл на замену I2C и является его полным аналогом.

Передача/Прием сигналов осуществляется установкой линии в 0, в единицу устанавливается за счет подтягивающих резисторов. Чем больше резистор, тем дольше линия восстанавливается в единицу (идет перезаряд паразитной емкости между линиями входов и выходов) , а значит, уменьшается вероятность правильного определения состояния линии.

Процедура обмена начинается с того, что ведущий формирует состояние СТАРТ: генерирует переход сигнала линии SDA из ВЫСОКОГО состояния в низкое при высоком уровне на линии SCL. Этот переход воспринимается всеми устройствами, подключенными к шине, как признак начала процедуры обмена. Генерация синхросигнала - это всегда обязанность ведущего; каждый ведущий генерирует свой собственный сигнал синхронизации при пересылке данных по шине. Процедура обмена завершается тем, что ведущий формирует состояние СТОП - переход состояния линии SDA из низкого состояния в высокое при высоком состоянии линии SCL. Состояния СТАРТ и СТОП всегда вырабатываются ведущим. Считается, что шина занята после фиксации состояния СТАРТ. Шина считается освободившейся через некоторое время после фиксации состояния СТОП. При передаче посылок по шине I2C каждый ведущий генерирует свой синхросигнал на линии SCL. После формирования состояния СТАРТ, ведущий опускает состояние линии SCL в низкое состояние и выставляет на линию SDA старший бит первого байта сообщения. Количество байт в сообщении не ограничено. Спецификация шины I2C разрешает изменения на линии SDA только при низком уровне сигнала на линии SCL. Данные действительны и должны оставаться стабильными только во время высокого состояния синхроимпульса. Для подтверждения приема байта от ведущего-передатчика ведомым-приемником в спецификации протокола обмена по шине I2C вводится специальный бит подтверждения, выставляемый на шину SDA после приема 8 бита данных

Рисунок 3.1 - Cхема подключения AT32C02

, A1 и A2 заземлены, так как используется одна микросхема, а они предназначены для каскадного включения микросхем. SDA и SCL подтягиваются к источнику.

Наивысший приоритет имеют прерывания от клавиатуры (INT2)

Прерывания от RS232 осуществляются программно. Затем выполняются прерывания от объекта управлений (INT3, INT6).

Рисунок 3.2 - Диаграмма процесса передачи данных и подтверждения их приёма

4. Разработка подсистем ввода/вывода

Подсистемы ввода/вывода в УМПС: устройство обмена данными с объектом управления, клавиатура, блок индикации, устройство ввода вывода по RS232.

.1 Устройство обмена данными с объектом управления

Параметры ОУ не заданы, поэтому предполагаем, что ОУ сам управляет состоянием выходов. ОУ подключен к МК через шину данных. ОУ имеет 8 входов/выходов (порт А(P0-P7)), два выхода под прерывания и два вывода Read (RD), Write (WR). Обмен данными по шине осуществляется по инициативе ОУ. Если ОУ хочет передать в МК очередной байт, он выставляет сигнал запроса прерывания INT3. По этому прерыванию происходит вызов обработчика прерывания ввода данных с ОУ. Чтение информации из буфера ОУ осуществляется сигналом RD. По этому сигналу выходные линии буфера ОУ переходят из третьего состояния в режим выдачи сигнала. МК читает данные с шины и снимает сигнал чтения RD.

Рисунок 4.1 - Схема подключения ОУ

Если ОУ хочет принять с МК управляющее слово то посылает запрос на прерывание INT6, получив данное прерывание МК выставляет данные на шину. Запись информации в буфер ОУ осуществляется сигналом WR. После этого линии чтения/записи ОУ переходят третье состояние. Прерывания происходят по переднему фронту.

.2 Организация клавиатуры

Клавиатура предназначена для ввода: констант (16 клавиш для цифр от 0 до F в шестнадцатеричной системе), запроса на вывод Xmax, Xmin, Xсреднего и управляющего воздействия Y(4 функциональные клавиши), клавиша «К» - завершает ввод констант (1 клавиша) - 21 клавиша. Используем порт B для организации клавиатуры, в которой клавиши размещены в виде матрицы (3х8(такой вариант выгоднее, чем 4х6, но задействует на 1 вывод больше) (с запасом-24 клавиш) на пересечении горизонтальных и вертикальных линий связи. Строки матрицы (8 линий) подключаются к выводам порта А (PА0-PА7) МК, и программируются на ввод, а столбцы (3 линии) подключаются к выводам МК (PD0-PD3) - программируемым на вывод. Для формирования сигнала прерывания используем микросхему К155ЛА2, которая представляет собой логический восьмивходовой элемент И-НЕ. Линии клавиатуры (строки) подключены к логическому элементу 8И-НЕ.

Линии подключенные к PА0-PА7 подтянуты на питание через резисторы. Когда клавиатура не активна, на линиях столбцов (PD0-PD3) - низкий уровень. На выходе элемента 8И-НЕ - логический «0». При нажатии любой клавиши происходит замыкание соответствующей строки на столбец, при этом на одной из линий строк устанавливается логический «0», на выходе элемента 8И-НЕ установится логическая «1». Выход логического элемента 8И-НЕ подключен к линии микропроцессора. Таким образом организуется запрос на прерывание INT2 - наивысший приоритет (прерывание происходит по изменению входного сигнала с «0» на «1») для обработки данных, вводимых с клавиатуры.

Микроконтроллер программным путем приступает к нахождению нажатой клавиши. Для этого сначала на первую линию столбцов подается логический "0", остальные столбцы в "1" (011), и опрашиваются строки первого столбца. Если какая либо клавиша этого столбца будет нажата, на соответствующей линии-строки так же будет низкий логический уровень (замкнутая кнопка подтянет строку к потенциалу столбца, то есть к земле).

Таким образом, последовательно подавая сканирующий бегущий лог. «0» на линии столбцов и считывая соответствующие линии строк (PINА), находятся нажатые клавиши. Зная номер столбца и номер строки, на которых установлен логический "0", формируется код нажатой клавиши. Диоды VD2 - VD4 служат для защиты от замыкания двух столбцов между собой (через линию строк при нажатии двух и более ключей одновременно). Возьмем диоды КД513А.

Рисунок 4.2- Схема подключения клавиатуры

4.3 Организация индикации

Блок индикации предназначен для отображения вводимой в МК и выводимой из МК информации (константы К и значений Хmax, Хmin, Хср, Y). Блок индикации подключен к выводам МК РС0-РС6; PG0,PG1 используются для ''защелкивания'' данных. Данные и константы по заданию представлены в шестнадцатеричном виде, поэтому удобнее отображать их так же. Индикация должна состоять из 2-х цифр (максимально число FF) ,что подразумевает использование семисегментных индикаторах. Для увеличения нагрузочной способности порта МК, индикаторы подключаем через буферные регистры (регистр на каждый индикатор). В блоке индикации мы применяем совместное использование порта, где 7 линий клавиатуры совмещаются с 7 линиями индикации и 2 вывода порта C (PC5-PC6) для сигналов LE1, LE2. В качестве буферного регистра возьмем микросхему КР1533ИР22 [11]. Микросхема КР1533ИР22 представляет собой восьмиразрядный регистр хранения информации с хорошей нагрузочной способностью. Расположение выводов и основные параметры микросхемы приведены в Приложении Д. Запись информации в регистр на входы D0-D7 происходит при подаче логической «1» на вход LE, в этом случае информация (код высвечиваемой цифры) на выходах Q0-Q7 повторяет входную информацию. При подаче на вход LE низкого уровня (лог. «0») регистр переходит в режим хранения информации - происходит «защелкивание» входной информации. Сигнал OE управляет выходными буферами - низкий уровень разрешает выходы, высокий уровень переводит выходные буферы в состояние «выключено». Чтобы обеспечить постоянный вывод информации с регистров на индикаторы, входы OE заземляем.

Рассмотрев несколько типов индикаторов, выбираем индикатор SA05-11EWA . Это индикатор с размером цифры 12,7 мм, цвет свечения - красный, сила света 3-8 мКд, имеет приемлемую цену. Выбор обоснован тем, что пульт оператора, на котором будут располагаться данные индикаторы, находится недалеко от оператора и ему будет хорошо видна высвечиваемая информация. Технические характеристики приведены в Приложении Е.

Таблица 5 - Семисегментные индикаторы


Максимальный прямой ток ,мА

Максимальный импульсный прямой ток, мА

Максимальная сила света Iv макс., мКд

Минимальная сила света Iv мин., мКд

Высота знака, мм

Цена, руб

SA05-11EWA

30

160

8

3

12.7

30

SA04-11SRWA

30

155

18

8

10.16

40

SA08-11EWA

30

160

6.4

1.9

20.32

50

SA39-1GWA

25

140

6.4

1.9

9.9

32


Рисунок 5.3 - Схема подключения блока индикации

Для установки номинального тока через светодиоды индикаторов, между выходами регистров и входами индикаторов включаются резисторы. Через светодиод будет протекать токпр = (Ucc - Uпрд - U0вых)/R, следовательно для его задания требуется сопротивление, которое вычисляется по формуле:


где Uсс - напряжение питания (5В), U0 - выходное напряжение лог. «0» резистора (0,4В), Uпрд - прямое напряжение на сегменте индикатора (2,5В), Iпр - прямой ток через светодиод (10мА)[12].= (5-2.5-0.4)/(10*10-3) =210 Oм.

.4 Устройство обмена по RS232

Для последовательной связи между компьютером и микроконтроллером используется интерфейс RS-232. Основными достоинствами RS-232 является возможность обмена данными на больших расстояниях (15-20м). Микроконтроллер ATmega169 имеет в своем составе полнодуплексный универсальный синхронный/асинхронный приемопередатчик USART, поддерживающий протоколы обмена RS232. Выводы микроконтроллера, используемые модулем USART, являются линиями порта PE. В качестве входа приемника (RXD) используется вывод PE0, а в качестве выхода передатчика (TXD) - вывод PE1. Передача данных по интерфейсу RS-232 представляет собой совокупность кадров. Каждый кадр содержит стартовый бит, от 5 до 8 битов данных и стоповый бит. Каждый байт обрамляется стартовым и стоповыми битами. Данные могут передаваться как в одну, так и в другую сторону

Особенностью подключения компьютера через канал RS232 к микропроцессорной системы является не соответствие уровней напряжения. RS232 работает с напряжением питания ±12V, а разрабатываемая МПС с 5V. Необходимо использовать развязку порта компьютера и МПС.

Для согласования напряжений и логических уровней порта ПК и USART МК используем оптическую развязку на паре светодиод-фототранзистор. Для гальванической развязки применяем 2 микросхемы TLP521-1, это дороже, чем применение одной микросхемы TLP521-2, но удобнее для построения схем и разводки. Уровни -12 и +12 В берутся с линий RTS и DTR, так, что на подключаемом к микроконтроллеру ПК необходимо установить на линию RTS -12В, а на линию DTR +12В.

Рисунок 4.4 - Схема соединения с интерфейсом RS-232

При передаче информации от ПК к контроллеру надо преобразовать уровни RS-232 в уровни микроконтроллера. Резистор R28 задаёт рабочий ток для фотодиода. Получаем

Ом

Сопротивление резистора R29 и R30 являются типовыми для данной схемы и равны 3 кОм.

Диод VD6 служит для предохранения светодиода от пробоя при подаче напряжения +12 В на линию RxD. Резистор R31 задаёт рабочий ток фотодиода (50 мА) и равен 12В/20мА=600 Ом.

.5 Устройство аварийного оповещения

Устройство аварийного оповещения, согласно техническому заданию, представляет собой мигание специального светового индикатора (лампы накаливания, питающейся от осветительной сети) с частотой 2 Гц. Лампа накаливания питается от сети ~220В. Необходима гальваническая развязка, поскольку микроконтроллер не может напрямую управлять сетью 220В. Гальваническая развязка может обеспечиваться разными способами, применимость их зависит от требований к напряжению изоляции и особенностей интерфейсных сигналов. Существует несколько способов гальванической развязки с использованием: электромагнитного или твердотельного реле, симистора и тиристора, оптосимистора. Самым простым для разработки является использование реле, этот способ развязки выбран из-за простоты, так как устройство не для массового производства, что позволяет сократить время разработки и создания.

Рисунок 5.5 - Схема подключения аварийного оповещения

Возьмём реле CX240D5-C3 фирмы National Semiconductors, стоимость которого 411 рублей в отличие от фирмы Crydom International, где цена составляет 659 рублей

.6 Прерывания

Подсистема прерываний должна обеспечить реакцию на четыре запроса: запрос с клавиатуры; запрос от ПК на обмен по последовательному каналу; запрос от ОУ на ввод Хi; запрос от ОУ на вывод Y. Запрос от клавиатуры обладает высшим приоритетом и должен удовлетворяться всегда, запрос от ПК также удовлетворяется всегда, запросы на ввод с ОУ и вывод на ОУ данных от могут обслуживаться на определенных участках программы управления. Микроконтроллер ATmega169 согласно даташит имеет три внешних прерывания - INT0, INT1 и INT2.

Рисунок 4.6 - Управляющий регистр GICR (General Interrupt Control Register)

Наивысший приоритет имеет прерывание INT0, вектор прерывания которого располагается в таблице векторов прерываний по самому меньшему адресу (чем меньше адрес вектора прерывания, тем приоритет у прерывания выше). INT0 используем для запроса от клавиатуры, INT1 и INT2 для запросов от ОУ. Эти прерывания «привязаны» к выводам PE2, PE3 и PE6 Выводы конфигурируются на вход. Для разрешения или запрещения внешних прерываний предназначен управляющий регистр GICR (General Interrupt Control Register). Каждому прерыванию соответствует определенный «бит активации прерывания». Таким образом, чтобы использовать определенное прерывание (INT1, INT0 или INT2), следует записать в его «бит активации прерывания» - логическую «1» - разрешить прерывание, а логический «0» - запретить прерывание. Например: при возникновении на выводе INT0 запроса на прерывание, в регистре флагов внешних прерываний GIFR бит INTF0 устанавливается в "1".

Рисунок 4.7 - Регистр флагов - General Interrupt Flag Register - GIFR

Микроконтроллер не начнет обработку прерывания, пока в «бит всеобщего разрешения прерываний» (Bit-7 I в регистре состояния SREG) не будет записана логическая единица, чтобы запретить все прерывания в «бит всеобщего разрешения прерываний» следует записать - логический нуль

Рисунок 4.8 - Регистр состояния - SREG

Если INTF0 «1» и установлены бит I регистра SREG) и бит INT0 в GICR, происходит переход на вектор прерывания, и на подпрограмму обработки прерывания (когда срабатывает прерывание, то сразу очищается флаг I (Global Interrupt Enable), и автоматически запрещаются все прерывания, пока не произойдет выход из обработчика прерывания. Флаг INTF0 очищается после выполнения процедуры обработчики прерывания. Выше указанное справедливо для INT1 и INT2.

Для приема и передачи данных с ПК через RS232 используется интерфейс USART, который имеет три источника прерывания.

Как приемник USART использует всего один флаг, который индицирует его состояние. Флаг «Прием завершен» (RXC) в регистре UCSRA позволяет определить, есть ли непрочитанные данные в буфере приема. Этот флаг устанавливается в единицу, если в буфере приема существуют непрочитанные данные, и равен нулю, если буфер приема пуст.

Рисунок 4.9 - Регистр «А» статуса и управления USART- UCSRA

Если прерывание по событию «Прием завершен» разрешено (бит RXCIE регистра UCSRB установлен), оно будет вызываться все время, пока флаг RXC установлен (при условии глобального разрешения прерываний).

Рисунок 4.10 - Регистр «В» статуса и управления USART - UCSRB

Существует два флага, индицирующие состояние передатчика USART; - флаг «Регистр данных пуст» (UDRE); - флаг «Передача окончена» (ТХС). Оба флага используются для генерации прерываний. Прерывания по событиям «Регистр данных пуст» и «Передача окончена» будут сгенерированы, если биты UDRE и ТХС в регистре UCSRA и биты TXCIE и UDRIE в регистре UCSRB будут установлены в единицу.

Самый высокий приоритет из всех прерываний у клавиатуры, прерывание от USART тоже имеет высокий приоритет, но только после клавиатуры. Здесь большая роль отводится оператору.

5. Разработка алгоритма ПО


Программное обеспечение состоит из основной (фоновой программы) и подпрограмм (Приложение Ж). Сначала фоновая программа осуществляет инициализацию микроконтроллера (конфигурируются порты ввода/вывода, устанавливаются начальные состояния флагов и констант и т.д.) и запрещает все прерывания. Затем загружаются константы из внешней памяти EEPROM в ОЗУ. Загрузка констант из EEPROM происходит один раз при включении МК.

Затем программа разрешает прерывание на чтение от ОУ и принимает 16 входных значений от ОУ, сохраняет их в кольцевом буфере, состоящем из 16 регистров общего назначения (РОН). Согласно техническому заданию кольцевом буфере состоит из 17 регистров. При приёме 16 значений - 17-ый остается пустой, каждое новое значение, записывается в 17 регистр и помещается в кольцевой буфер вместо самого старого значения. Затем разрешает все прерывания. Микроконтроллер проверяет наличие событие прерывания от внешнего устройства и установку флага данного прерывания, и передает управление обработчику прерывания.

Подпрограмма «Расчет» анализирует, если первый расчет, то осуществляет передачу управления подпрограммам: «Нахождение Хср», «Нахождение Хmin, Xmax»,«ФормированиеY», иначе меняет в кольцевом буфере самое старое значение на новое и возвращается к вызову подпрограмм.

Подпрограмма «Y» в зависимости от Xср формирует управляющее воздействие. В случае аварийных условий включается мигание лампы накаливания, пока оператор его не отключит.

Подпрограмма «INT1» осуществляет обработку прерывания от ОУ (чтение с ОУ), считывает очередной байт с шины данных и сохраняет его в памяти.

Подпрограмма «INT2» (запись в ОУ) осуществляет вывод управляющего воздействия в ОУ.

Подпрограмма «RS232» разрешает прием и передачу данных, затем проверяет наличие данных в буфере приема или передачи UDR. Если флаг UDRE установлен в «1», значит буфер готов к приему/передаче байта. Для передачи данных в буфер-передатчик помещаются данные, которые необходимо передать в ПК. По завершении передачи флаг ТХС устанавливается в «1». Если флаг RXС установлен - значит в буфере-приемнике есть непрочитанные данные. Данные считываются программой из буфера-приемника.

Прерывание от клавиатуры (подпрограмма INT0)

Сохраняем все данные текущей операции, запрещаем прерывания, кроме прерывания по времени. Переходим к подпрограмме чтения данных с клавиатуры. Это подпрограмма осуществляет повторную проверку нажатой клавиши, сканирование клавиатуры и формирование кода клавиши. При нажатии клавиши К выводим текущее значение константы и вновь обращаемся к чтению данных с клавиатуры. Если новое значение поступит и нажата клавиша К, выполняем подпрограмму «Ввод данных», которая новое значение константы формирует в порядке старшего и младшего разрядов, дешифрирует в семисегментный код и выводит на индикацию. Если нажаты клавиши Xmin, Xmax, Xср, Y выводим соответствующее значения на индикацию.

интерфейс память программа процессорный

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

1. Тавернье К. PIC-микроконтроллеры. Практика применения: Пер. с фр.- М.: ДМК Пресс, 2004- 272с.

. Бондарь О.Г. Аналогово-цифровая электроника .Учебно-методический комплекс.

. Богданович М.И. Цифровые интегральные микросхемы . Справочник .- Мн.: Беларусь, 1991.- 493 с.

. Угрюмов Е.П. Цифровая техника : Учеб. Пособие для вузов. 2-е изд., перераб. и доп.-СПб.: БХВ - Петербург, 2005.- 800с.

Приложение А

Таблица А.1 - Сводная таблица микроконтроллеров семейства AVR

МОДЕЛЬ

Flash ROM (Кб)

EEPR OM (Кб)

RAM (байт)

Fmax (МГц)

Vcc (В)

I/O

SPI

USART

I2C

ISP

Ст-ть (руб)

ATmega8

8

0.512

1024

16

4.5-5.5

23

1

1

+

+

125

ATmega8515

8

0.512

512

16

4.5-5.5

35

1

1


+

98

ATmega8535

8

0.512

512

16

4.5-5.5

32

1

1

+

+

130

ATmega16

16

0.512

1024

16

4.5-5.5

32

1

1

+

+

155

ATmega162

0.512

1024

16

2.7-5.5

35

1

2


+

220

ATmega162L

16

0.512

1024

8

2.7-5.5

35

1

2


+

180

ATmega165

16

0.512

1024

16

4.5-5.5

53

1

1


+

280

ATmega168

16

0.512

1024

16

1.8-5.5

23

1

1

+

+

140

ATmega169

16

0.512

1024

16

1.8-5.5

54

1

1

+

+

190

ATmega32

32

1

2048

16

4.5-5.5

32

1

1

+

+

285

ATmega64

64

2

4096

16

4.5-5.5

53

1

2

+

+

180

ATmega128

128

4

4096

16

4.5-5.5

53

1

2

+

+

300

ATtiny12

1

0.0625


8

1.8-5.5

6




+

61

ATtiny2313

2

0.128

128

20

1.8-5.5

18

USI

1


+

85

ATXmega 256A3-

256

16

4096

32

1.6-3.6

64

3

7

2

+

250

ATXmega 192A3

192

16

4096

32

1.6-3.6

64

3

7

2

+

230


Приложение Б

Микроконтроллер ATmega169

Рисунок Б.1 - Схема расположения контактов микроконтроллер ATmega169

Таблица Б.1 - Основные параметры

ЦПУ: Ядро

AVR

ЦПУ: F,МГц

от 0 до 16

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

16

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

1

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

0.5

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

54

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

2

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

1

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

1

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

2

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

1

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

2

VCC

от 1.8 до 5.5

ICC,мА

16


Таблица Б.2 - Распределение выводов

Номер вывода

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

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

Символьное имя вывода в УПМС

2

PE0

 Выводы для обмена данными через RS232

RXD

3

PC1


TXD

4

PE2

Прерывание от клавиатуры

INT2

5

PE3

Прерывание от ОУ

INT3

6

PE4

Выводы чтения и записи по I2C

SCL

7

PE5


SDA

8

PE6

Прерывание от ОУ

INT6

12

PB2

Чтение из ОУ

RD

13

PB3

Запись в ОУ

WR

19

PG4

Выводы сигнала «Авария»

Avar

20

RESET

Вывод под кнопку RESET

RESET

21

VCC

Выводы питания

VCC

22

GND


GND

23

XTAL2

Вводы тактирования

XTAL2

24

XTAL1


XTAL1

27

PD2

Опрос клавиатуры

PD2

28

PD3


PD3

29

PD4


PD4

33

PG0

Выбор индикатора

PG0

34

PG4


PG4

35

PC0

Шина для считывания клавиатуры и индикация

PC0

36

PC1


PC1

37

PC2


PC2

38

PC3


PC3

39

PC4


PC4

40

PC5


PC5

41

PC6


PC6

44

PA7

Считывание клавиатуры

PA7

45

PA6


PA6

46

PA5


PA5

47

PA4


PA4

48

PA3


PA3

49

PA2


PA2

50

PA1


PA1

51

PA0


PA0

54

PF7

Шина данных для связи с ОУ

PF7

55

PF6


PF6

56

PF5


PF5

57

PF4


PF4

58

PF3


PF3

59

PF2


PF2

60

PF1


PF1

61

PF0


PF0

63

GND

Выводы питания АЦП

GND

64

AVCC


AVCC


Приложение В

Керамический резонатор ZTT

Технические параметры

Серия - ztt

Резонансная частота, кГц 12000

Точность настройки (при 25 С) ,%         0.3

Температурный коэффициент (в диапазоне -20… 80С) ,%         0.3

Максимальное резонансное сопротивление, Ом      25

Встроенный конденсатор, пФ        30

Рабочая температура, С       -20…80

Длина корпуса L, мм   10

Ширина корпуса W, мм       10

Приложение Г

Память AT34C02

Рисунок Г.1 - Микросхема AT34C02

Таблица Г.1 - Параметр микросхемы:

Объем памяти (Кбайт)

2 (256х8)

Vcc, В

1.5 - 5.5

tWR( мс)

5

Интерфейс

I2C

F (макс.) (МГц)

ICC,мА

0.4

TA,°C

от -40 до 85


Таблица Г.2 - Распределение выводов EEPROM AT34C02

A0 - A2

Address Inputs

Адрес входов

SDA

SerialData

Последовательная передача данных

SCL

SerialClockInput

Последовательная синхронизация ввода

WP

WriteProtect

Защита от записи

NC

No Connect

Нет соединения

GND

Ground

Земля


Приложение Д

Микросхема КР1533ИР22

Рисунок Д.1 - Условное графическое обозначение МС КР1533ИР22

Основные параметры КР1533ИР22

Напряжение питания (Vсс)

+5В ±10%

Входной ток (0/1), не более

20мкА/200мкА

Ток потребления (статический), max

27мА

Выходной ток лог. "0", не менее

30мА

Типовая задержка

12-40нс

Входной уровень "0"

< 0,8В

Входной уровень "1"

> 2,0В

Выходной уровень "0"

< 0,4В

Выходной уровень "1"

> 2,4В

Рабочий диапазон температур

-10oC..+70oC


Приложение Е

Индикатор SA05-11EWA

Рисунок Е.1 - Номера контактов и их расположение

Технические характеристики

Цвет свечения красный

Минимальная сила света Iv мин., мКд 3

Максимальная сила света Iv макс., мКд  8пр., мА 10

Количество сегментов 7

Количество разрядов 1

Схема включения. общ. анод

Высота знака, мм 12.7

Максимальное прямое напряжение, В  2.5

Максимальное обратное напряжение, В 5

Максимальный прямой ток  мА 30

Максимальный импульсный прямой ток, мА 160

Рабочая температура, С -40…85

Приложение Ж

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







Похожие работы на - Проектирование управляющей микропроцессорной системы

 

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