Проектирование управляющей микропроцессорной системы
Разработка интерфейса и уточнённой структурной схемы, процессорного модуля, подсистем памяти и ввода/вывода, алгоритма программного обеспечения. Оценка памяти программ и данных. Структура адресного пространства. Организация клавиатуры и индикации.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 09.08.2015 |
Размер файла | 2,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Юго-Западный государственный университет»
Кафедра вычислительной техники
КУРСОВОЙ ПРОЕКТ
по дисциплине «Аналого-цифровая интегральная электроника и микропроцессоры»
на тему «Проектирование управляющей МПС»
Специальность (направление подготовки) 11.03.03 - Конструирование и технология электронных средств
Курск, 2015 г.
- Оглавление
- Введение
- 1. Расшифровка и анализ задания
- 1.1 Разработка интерфейса и уточнённой структурной схемы
- 1.2 Оценка памяти программ и данных
- 1.3 Структура адресного пространства
- 2. Разработка процессорного модуля
- 2.1 Времязадающая цепочка
- 2.2 Устройство рестарта
- 3. Разработка подсистемы памяти
- 4. Разработка подсистем ввода/вывода
- 4.1 Устройство обмена данными с объектом управления
- 4.2 Организация клавиатуры
- 4.3 Организация индикации
- 5. Разработка алгоритма ПО
- Список используемой литературы
- Приложение А
- Приложение Б
- Приложение В
- Приложение Г
- Приложение Д
- Приложение Е
- Приложение Ж
Введение
Современная микропроцессорная техника является важнейшим средством при решении самых разнообразных задач в области сбора и обработки данных, систем автоматического управления и др. Микропроцессорная техника в науке и технике, промышленности, сельском хозяйстве, военной отрасли, быту и других областях жизнедеятельности человека становится все более востребованной. Практически любая электронная система, обладающая достаточной функциональной сложностью, реализуется с помощью микропроцессорных устройств. Микропроцессоры и микропроцессорные системы являются в настоящее время наиболее массовыми средствами вычислительной техники.
Использование микроконтроллеров в системах управления и обработки информации обеспечивает высокие показатели эффективности при достаточно низкой стоимости.
1. Расшифровка и анализ задания
УМПС реализует следующий алгоритм управления: С ОУ принимается поток значений входных слов Xi и размещается в кольцевом буфере на 17 значений в памяти УМПС. При приёме 16 значений производится вычисление среднего арифметического значения X = (X1 + X2 + … + X16)/16. В дальнейшем, при приёме каждого нового значения, оно записывается в кольцевой буфер вместо самого старого значения, а среднее значение пересчитывается по последним 16 значениям. В зависимости от значений Х, вычисляется управляющее воздействие Y:
Y = 00H при X < G1;
Y = Ф1(Х) при G1 <= X < G2; (1)
Y = Ф2(Х) при G2 <= X <= G3;
Y = 0FFH при X > G3.
В выражении (1) константы G1, G2, G3 и вид функций Ф1, Ф2 определяется заданием. Во всех вариантах все переменные и константы рассматриваются как 8-разрядные двоичные (2-разрядные шестнадцатеричные) целые без знака, причем:
0 < 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 - Структурная схема УМПС
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 Кб памяти.
2.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 |
2.1 Времязадающая цепочка
Так как в схеме имеется связь между ПК, то есть RS232 и МК, необходимо установить стандартизированную скорость обмена. Для этого в микроконтроллере имеется регистр UBRR, в который следует записать коэффициент, который рассчитывается по формуле:
f - тактовая частота, на которой работает микроконтроллер
B - скорость передачи
UBRR - содержимое регистра контроллера скорости передачи.
Максимальное отклонение скорости не должно превышать 1% [8]
B равна 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. Разработка подсистемы памяти
AT34C02 - микросхема энергонезависимой памяти объёмом 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
A0, A1 и A2 заземлены, так как используется одна микросхема, а они предназначены для каскадного включения микросхем. SDA и SCL подтягиваются к источнику.
Наивысший приоритет имеют прерывания от клавиатуры (INT2)
Прерывания от RS232 осуществляются программно. Затем выполняются прерывания от объекта управлений (INT3, INT6).
Рисунок 3.2 - Диаграмма процесса передачи данных и подтверждения их приёма
4. Разработка подсистем ввода/вывода
Подсистемы ввода/вывода в УМПС: устройство обмена данными с объектом управления, клавиатура, блок индикации, устройство ввода вывода по RS232.
4.1 Устройство обмена данными с объектом управления
Параметры ОУ не заданы, поэтому предполагаем, что ОУ сам управляет состоянием выходов. ОУ подключен к МК через шину данных. ОУ имеет 8 входов/выходов (порт А(P0-P7)), два выхода под прерывания и два вывода Read (RD), Write (WR). Обмен данными по шине осуществляется по инициативе ОУ. Если ОУ хочет передать в МК очередной байт, он выставляет сигнал запроса прерывания INT3. По этому прерыванию происходит вызов обработчика прерывания ввода данных с ОУ. Чтение информации из буфера ОУ осуществляется сигналом RD. По этому сигналу выходные линии буфера ОУ переходят из третьего состояния в режим выдачи сигнала. МК читает данные с шины и снимает сигнал чтения RD.
Рисунок 4.1 - Схема подключения ОУ
Если ОУ хочет принять с МК управляющее слово то посылает запрос на прерывание INT6, получив данное прерывание МК выставляет данные на шину. Запись информации в буфер ОУ осуществляется сигналом WR. После этого линии чтения/записи ОУ переходят третье состояние. Прерывания происходят по переднему фронту.
4.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.4 Организация индикации
Блок индикации предназначен для отображения вводимой в МК и выводимой из МК информации (константы К и значений Х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 - Схема подключения блока индикации
Для установки номинального тока через светодиоды индикаторов, между выходами регистров и входами индикаторов включаются резисторы. Через светодиод будет протекать ток
Iпр = (Ucc - Uпрд - U0вых)/R, следовательно для его задания требуется сопротивление, которое вычисляется по формуле:
где Uсс - напряжение питания (5В), U0 - выходное напряжение лог. «0» резистора (0,4В), Uпрд - прямое напряжение на сегменте индикатора (2,5В), Iпр - прямой ток через светодиод (10мА)[12].
R = (5-2.5-0.4)/(10*10-3) =210 Oм.
4.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 Ом.
4.5 Устройство аварийного оповещения
Устройство аварийного оповещения, согласно техническому заданию, представляет собой мигание специального светового индикатора (лампы накаливания, питающейся от осветительной сети) с частотой 2 Гц. Лампа накаливания питается от сети ~220В. Необходима гальваническая развязка, поскольку микроконтроллер не может напрямую управлять сетью 220В. Гальваническая развязка может обеспечиваться разными способами, применимость их зависит от требований к напряжению изоляции и особенностей интерфейсных сигналов. Существует несколько способов гальванической развязки с использованием: электромагнитного или твердотельного реле, симистора и тиристора, оптосимистора. Самым простым для разработки является использование реле, этот способ развязки выбран из-за простоты, так как устройство не для массового производства, что позволяет сократить время разработки и создания.
Рисунок 5.5 - Схема подключения аварийного оповещения
Возьмём реле CX240D5-C3 фирмы National Semiconductors, стоимость которого 411 рублей в отличие от фирмы Crydom International, где цена составляет 659 рублей
3.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с.
2. Бондарь О.Г. Аналогово-цифровая электроника .Учебно-методический комплекс.
3. Богданович М.И. Цифровые интегральные микросхемы . Справочник .- Мн.: Беларусь, 1991.- 493 с.
4. Угрюмов Е.П. Цифровая техника : Учеб. Пособие для вузов. 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 |
16 |
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 (макс.) (МГц) |
0.4 |
|
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
Iпр., мА 10
Количество сегментов 7
Количество разрядов 1
Схема включения. общ. анод
Высота знака, мм 12.7
Максимальное прямое напряжение, В 2.5
Максимальное обратное напряжение, В 5
Максимальный прямой ток мА 30
Максимальный импульсный прямой ток, мА 160
Рабочая температура, С -40…85
Приложение Ж Алгоритм основной программы
Размещено на Allbest.ru
Подобные документы
Характеристика микропроцессора Z80, его достоинства и система команд. Проектирование интерфейса, структурной схемы и алгоритма работы управляющей микро-ЭВМ. Разработка модулей памяти, генератора тактового импульса, контроллера, ввода/вывода и индикатора.
курсовая работа [1,7 M], добавлен 17.02.2014Рассмотрение аппаратных принципов построения устройств микропроцессорной техники и их программного обеспечения. Структурная схема микропроцессора К1821ВМ85А. Карта распределения адресного пространства памяти. Расчет потребляемой устройством мощности.
курсовая работа [2,4 M], добавлен 26.11.2012Разработка микропроцессорной системы на основе однокристального 8-разрядного микропроцессора КР580ВМ80А. Основные характеристики системы. Формирование сигнала выбора модуля. Структура памяти, организация ввода и вывода. Программное обеспечение системы.
курсовая работа [422,5 K], добавлен 10.03.2015Порядок и обоснование выбора микропроцессора, схема его подключения. Организация ввода-вывода и памяти микропроцессора. Разработка и апробация программного обеспечения на базе восьмиразрядного МП Z80. Методы повышения частоты работы микропроцессора.
курсовая работа [735,7 K], добавлен 03.01.2010Разработка структурной функциональной схемы устройства, его аппаратного обеспечения: выбор микроконтроллера, внешней памяти программ, устройства индикации, IGBT транзистора и драйвера IGBT, стабилизатора напряжения. Разработка программного обеспечения.
курсовая работа [495,1 K], добавлен 23.09.2011Изучение устройства связи с датчиком и исполнительными механизмами, разработка блока памяти объёмом 80 кб. Характеристика программ, обеспечивающих выполнение заданного алгоритма и алгоритма обмена. Оценка микропроцессорной системы по аппаратным затратам.
практическая работа [154,1 K], добавлен 14.11.2011Проект структурной схемы микропроцессорной системы управления. Блок-схема алгоритма работы МПС; создание программы, обеспечивающей его выполнение. Распределение области памяти под оперативное и постоянное запоминающие устройства. Оценка ёмкости ПЗУ и ОЗУ.
курсовая работа [467,9 K], добавлен 21.05.2015Выбор структуры одноплатного микроконтроллера. Модули памяти микроконтроллера. Селектор адреса портов ввода/вывода и возможность изменения селектируемых адресов. Деление адресного пространства на окна. Нумерация точек в схеме цифрового фильтра.
курсовая работа [204,3 K], добавлен 10.11.2013Проектирование модуля вывода дискретных и ввода аналоговых сигналов для систем управления различным технологическим оборудованием. Моделирование схемы модуля в ССМ Multisim. Разработка печатной платы модуля. Разработка принципиальной и структурной схем.
курсовая работа [1,8 M], добавлен 03.11.2014Построение структурной схемы датчиков и разработка микроконтроллерной системы обеспечения безопасности. Описание интерфейса системы, считывание и обработка данных с помощью сканирования отпечатков пальцев. Использование клавиатуры для ввода пароля.
дипломная работа [3,8 M], добавлен 04.02.2016