Главная Рефераты по авиации и космонавтике Рефераты по административному праву Рефераты по безопасности жизнедеятельности Рефераты по арбитражному процессу Рефераты по архитектуре Рефераты по астрономии Рефераты по банковскому делу Рефераты по сексологии Рефераты по информатике программированию Рефераты по биологии Рефераты по экономике Рефераты по москвоведению Рефераты по экологии Краткое содержание произведений Рефераты по физкультуре и спорту Топики по английскому языку Рефераты по математике Рефераты по музыке Остальные рефераты Рефераты по биржевому делу Рефераты по ботанике и сельскому хозяйству Рефераты по бухгалтерскому учету и аудиту Рефераты по валютным отношениям Рефераты по ветеринарии Рефераты для военной кафедры Рефераты по географии Рефераты по геодезии Рефераты по геологии Рефераты по геополитике Рефераты по государству и праву Рефераты по гражданскому праву и процессу Рефераты по кредитованию Рефераты по естествознанию Рефераты по истории техники Рефераты по журналистике Рефераты по зоологии Рефераты по инвестициям Рефераты по информатике Исторические личности Рефераты по кибернетике Рефераты по коммуникации и связи Рефераты по косметологии Рефераты по криминалистике Рефераты по криминологии Рефераты по науке и технике Рефераты по кулинарии Рефераты по культурологии |
Курсовая работа: Разработка микропроцессорного устройства управленияКурсовая работа: Разработка микропроцессорного устройства управленияМинистерство образования и науки Российской Федерации ГОУ ВПО Кубанский государственный технологический университет (КубГТУ) Кафедра Автоматизации Производственных Процессов Факультет Компьютерные Технологии и Автоматизированные Системы КУРСОВАЯ РАБОТА по дисциплине Микропроцессорные Устройства в Системах Управления на тему «Разработка микропроцессорного устройства управления» 2008г. Содержание 1. Введение 2. Содержание задания (исходные данные) 3. Описание элементов системы 3.1 Описание объекта управления 3.2. Описание микроконтроллера ATmega128 4. Описание системы индикации 4.1 Светодиоды 4.2 Описание кнопок 5. Алгоритм управления 6. Формализация задачи и кодирование входных и выходных сигналов 7. Заключение 8. Используемая литература Приложение А Программа управления 1. Введение Степень интеграции элементов в микросхемах на сегодняшний день очень высока. В результате этого развития появились многофункциональные микросхемы, называемые микроконтроллерами. Они могут объединять себе микропроцессор, АЛУ, порты ввода/вывода, ПЗУ, ОЗУ и т. д. С помощью таких микросхем можно создавать сложные системы управления технологическими процессами. В качестве объектов управления могут быть практически любые устройства, в том числе и трехпозиционные термостаты. Цель данной курсовой работы ознакомиться с устройством микроконтроллера ATmega 128 и получить навыки разработки управляющих устройств. А так же укрепить знания в области программной части микроконтроллера и его программирования. В данной курсовой работе разработано устройство управления двигателем постоянного тока, рассматривается организация и функционирование микроконтроллера. 2. Содержание задания В данной курсовой работе было спроектировано устройство управления двигателем постоянного тока. Схема содержит: · Микроконтроллер Атmega128 (Atmel) · 4 отдельные кнопки · 7 светодиодов Объектом управления является двигатель постоянного тока. Непосредственная передача сигнала осуществляется с помощью устройства сопряжения (УСО). Также написана программа управления системой на специализированном языке программирования Assembler. 3. Описание элементов системы 3.1 Описание объекта управления Одним из объектов, управление которыми производит данная система, является двигатель постоянного тока. Требуется программно осуществить возможность остановки в 3 стадии. 3.2 Описание микроконтроллера Atmega 128 Микроконтроллер ATmega128 является старшей моделью семейства ATmega фирмы Atmel. Cемейство AVR (AT) удачно воплощает современные тенденции архитектуры RISC микроконтроллеров, что в сочетании с достижениями фирмы Atmel в области создания Flash-памяти, сделало его весьма популярным на мировом рынке 8-разрядных микроконтроллеров. Семейство AVR включает около двух десятков типов 8-разрядных микроконтроллеров трех основных линий: - Tiny AVR представляют собой низкостоимостные микроконтроллеры в 8-выводном корпусе. - Classic AVR являются устаревшей линией семейства. Быстродействие некоторых моделей достигает 16 MIPS, Flash ROM программ 2-8 Кбайт, EEPROM данных 64-512 байт, ОЗУ данных 128-512 байт; - Mega AVR представляет собой основную модель, ориентированную на высокопроизводительную работу со сложными задачами, требующими больших ресурсов памяти. Flash ROM программ составляет 8-128 Кбайт, EEPROM данных 64-512 байт, ОЗУ данных 2-4 Кбайт. Имеются 10-разрядный АЦП и аналоговый компаратор. Структура микроконтроллера ATmega128 включает следующие функциональные блоки: - 8-разрядное арифметическо-логическое устройство ( АЛУ ); - внутреннюю flash-память программ объемом 128 Кбайт с возможностью внутрисистемного программирования через последовательный интерфейс; - 32 регистра общего назначения; - внутреннюю EEPROM память данных объемом 4 Кбайт; - внутреннее ОЗУ данных объемом 4 Кбайт; - 6 параллельных 8-разрядных портов; - 4 программируемых таймера-счетчика; - 10-разрядный 8-канальный АЦП и аналоговый компаратор; - последовательные интерфейсы UART0, UART0, TWI и SPI; - блоки прерывания и управления (включая сторожевой таймер). Архитектура ядра. Ядро микроконтроллера выполнено по усовершенствованной RISC-архитектуре. Арифметико-логическое устройство, выполняющее все вычисления, подключено непосредственно к 32 регистрам общего назначения. Благодаря этому АЛУ выполняет одну операцию за один машинный цикл. Практически каждая из команд (за исключением команд, у которых одним из операндов является 16-разрядный адрес) занимает одну ячейку памяти программ. Для повышения быстродействия в ядре используется технология конвейеризации. Конвейеризация заключается в том, что во время исполнения текущей команды производится выборка из памяти и дешифрация кода следующей команды. На рис.3.2 изображен корпус и приведено назначение выводов микроконтроллера ATmega128. В скобках указана альтернативная функция вывода, если она существует. Рис.3.2 Вид корпуса и назначение выводов микроконтроллера Atmega128. Port A (PA7..PA). 8-разрядный двунаправленный порт. К выводам порта могут быть подключены встроенные нагрузочные резисторы (отдельно к каждому разряду). Выходные буферы обеспечивают ток 20 мА и способность прямо управлять светодиодным индикатором. При использовании выводов порта в качестве входов и установке внешнего сигнала в низкое состояние, ток будет вытекать только при подключенных встроенных нагрузочных резисторах. Порт А при наличии внешней памяти данных используется для организации мультиплексируемой шины адреса/данных. Port B (PB7..PB0). 8-разрядный двунаправленный порт со встроенными нагрузочными резисторами. Выходные буферы обеспечивают ток 20 мА. При использовании выводов порта в качестве входов и установке внешнего сигнала в низкое состояние, ток будет вытекать только при подключенных встроенных нагрузочных резисторах. Порт В используется также при реализации специальных функций. Port C (PC7..PC0). Порт С является 8-разрядным выходным портом. Выходные буферы обеспечивают ток 20 мА. Порт C при наличии внешней памяти данных используется для организации шины адреса. Port D (PD7..PD0). 8-разрядный двунаправленный порт со встроенными нагрузочными резисторами. Выходные буферы обеспечивают ток 20 мА. При использовании выводов порта в качестве входов и установке внешнего сигнала в низкое состояние, ток будет вытекать только при подключенных встроенных нагрузочных резисторах. Порт D используется также при реализации специальных функций. Port Е (PЕ7..PЕ0). 8-разрядный двунаправленный порт со встроенными нагрузочными резисторами. Выходные буферы обеспечивают ток 20 мА. При использовании выводов порта в качестве входов и установке внешнего сигнала в низкое состояние, вытекающий через них ток обеспечивается только при подключенных встроенных нагрузочных резисторах. Порт E используется также при реализации специальных функций. Port F (PF7..PF0). 8-разрядный входной порт. Входы порта используются также как аналоговые входы аналого-цифрового преобразователя. RESET. Вход сброса. Для выполнения сброса необходимо удерживать низкий уровень на входе более 50 нс. XTAL1, XTAL2. Вход и выход инвертирующего усилителя генератора тактовой частоты. TOSC1, TOSC2. Вход и выход инвертирующего усилителя генератора таймера/счетчика. WR, RD. Стробы записи и чтения внешней памяти данных. ALE. Строб разрешения фиксации адреса внешней памяти. Строб ALE используется для фиксации младшего байта адреса с выводов AD0-AD7 в защелке адреса в течение первого цикла обращения. В течение второго цикла обращения выводы AD0-AD7 используются для передачи данных. AVCC. Напряжение питания аналого-цифрового преобразователя. Вывод подсоединяется к VCC через низкочастотный фильтр. AREF. Вход опорного напряжения для аналого-цифрового преобразователя. На этот вывод подается напряжение в диапазоне между AGND и AVCC. AGND. Это вывод должен быть подсоединен к отдельной аналоговой земле, если она есть на плате. В ином случае вывод подсоединяется к общей земле. PEN. Вывод разрешения программирования через последовательный интерфейс. При удержании сигнала на этом выводе на низком уровне после включения питания, прибор переходит в режим программирования по последовательному каналу. VСС, GND. Напряжение питания и земля Обобщенная карта памяти микроконтроллера приведена на рис. 3.3
Память программ предназначена для хранения команд, управляющих функционированием контроллера. Память программ также часто используется для хранения таблиц констант, не меняющихся во время работы программы. Рис. 3.3 – Обобщенная карта памяти микроконтроллера. Высокие характеристики семейства AVR обеспечиваются следующими особенностями архитектуры: -В качестве памяти программ используется внутренняя flash-память. Она организована в виде матрицы 16-разрядных ячеек и может загружаться программатором, либо через порт SPI; -Система команд включает 133 инструкций; -16-разрядные память программ и шина команд вместе с одноуровневым конвейером позволяют выполнить большинство инструкций за один такт синхрогенератора (50 нс при частоте FOSC=20 МГц); -Память данных имеет 8-разрядную организацию. Младшие 32 адреса пространства занимают регистры общего назначения, далее следуют 64 адреса регистров ввода-вывода, затем внутреннее ОЗУ данных объемом до 4096 ячеек. Возможно применение внешнего ОЗУ данных объемом до 60 Кбайт; -Внутренняя энергонезависимая память типа EEPROM объемом до 4 Кбайт представляет собой самостоятельную матрицу, обращение к которой осуществляется через специальные регистры ввода-вывода; Регистры общего назначения. В микропроцессоре ATmega 128 все 32 регистра общего назначения непосредственно доступны АЛУ. Благодаря этому любой регистр общего назначения может использоваться во всех командах и как операнд источник и как операнд приемник. Такое решение (в сочетании с конвейерной обработкой) позволяет АЛУ выполнять одну операцию за один машинный цикл. Последние шесть регистров общего назначения могут также объединяться в три 16-разрядных регистра X, Y, и Z, используемых в качестве указателей при косвенной адресации памяти данных. Каждый регистр имеет свой собственный адрес в памяти данных. Поэтому к ним можно обращаться двумя способами (как к регистрам и как к памяти), несмотря на то, что физически эти регистры не являются ячейками ОЗУ. Такое решение является еще одной отличительной особенностью архитектуры AVR, повышается эффективность работы микроконтроллера и его производительность. Регистры ввода/вывода: Все регистры ввода/вывода можно разделить на две группы – служебные регистры и регистры, относящиеся к конкретным периферийным устройствам. Размещение в памяти регистров ввода/вывода приведено в таблице 3.1. В скобках указываются соответствующие им адреса ячеек ОЗУ.
Прерывания. Прерывание прекращает нормальный ход программы для выполнения приоритетной задачи, определяемой внутренним или внешним событием микроконтроллера. При возникновении прерывания микроконтроллер сохраняет в стеке содержимое счетчика команд PC и загружает в него адрес соответствующего вектора прерывания. По этому адресу, как правило, находится команда безусловного перехода к подпрограмме обработки прерывания. Последней командой подпрограммы обработки прерывания должна быть команда RETI, которая обеспечивает возврат в основную программу и восстановление предварительно сохраненного счетчика команд. Таблица векторов прерываний. Младшие адреса памяти программ начиная с адреса $0002 отведены под таблицу прерываний. Каждому прерыванию соответствует адрес в этой таблице, который загружается в счетчик команд при возникновении прерывания. Положение вектора в таблице также определяет приоритет соответствующего прерывания: чем меньше адрес, тем выше приоритет соответствующего прерывания. Положение таблицы векторов прерываний может быть изменено. Таблица может располагаться не только в начале памяти программ, а также и в начале области загрузчика. Причем перемещение таблицы может быть осуществлено в ходе выполнения программы. Распределение адресов таблицы векторов прерываний приведено в таблице 3.2. Обработка прерываний: Для глобального разрешения/запрещения прерываний предназначен флаг I регистра SREG. Для разрешения прерываний он должен быть установлен в «1», а для запрещения сброшен в «0». Индивидуальное разрешение или запрещение прерываний производится установкой/сбросом соответствующих разрядов регистров масок прерываний. При возникновении прерывания флаг I регистра SREG аппаратно сбрасывается, запрещая тем самым обработку следующих прерываний. Однако в программе обработки прерывания этот флаг можно снова установить в «1» для разрешения вложенных прерываний. При возврате из подпрограммы обработки прерывания флаг I устанавливается аппаратно. Все имеющиеся прерывания можно разделить на два типа. Прерывания первого типа генерируются при наступлении некоторого события, в результате которого устанавливается флаг прерывания. Затем, если прерывание разрешено, в счетчик команд загружается адрес вектора соответствующего прерывания. При этом флаг прерывания аппаратно сбрасывается. Прерывания второго типа не имеют флагов прерываний и генерируются в течение всего времени, пока присутствуют условия, необходимые для генерации прерывания. Соответственно, если условия, вызывающие прерывание, исчезнут до разрешения прерывания, генерации прерывания не произойдет. Следует помнить, что при вызове подпрограмм обработки прерываний регистр состояния SREG не сохраняется. Поэтому пользователь самостоятельно сохранять содержимое этого регистра при входе в подпрограмму обработки прерывания и восстанавливать его значение перед вызовом команды RETI. Поддерживается очередь прерываний, которая работает следующим образом: если условия генерации одного или более прерываний возникают в то время, когда флаг общего разрешения прерываний сброшен, соответствующие флаги устанавливаются в «1» и остаются в этом состоянии до установки флага общего разрешения прерываний. После разрешения прерываний выполняется их обработка в порядке приоритета. Внешние прерывания. Для разрешения/запрещения внешних прерываний предназначен регистр EIMSK. Каждый разряд INTx регистра отвечает за разрешение/запрещение прерывания с номером, соответствующим номеру разряда. Если n-й разряд регистра установлен в «1» и флаг I регистра SREG также установлен в «1», то прерывание с вывода INTn разрешено. Условия генерации прерываний определяется регистрами EICRA и EICRB. Для индикации возникновения внешних прерываний предназначен регистр EIFR. Все внешние прерывания генерируются даже в том случае, если соответствущие выводы сконфигурированы как выходы. Эта особенность позволяет генерировать прерывания программно. 4. Описание системы индикации 4.1 Светодиоды Для отображения двух состояний обычно используют светодиоды. В системе имеется семь светодиодов 32Ж40-К4-П2 со следующими характеристиками: · Цвет свечения – красный · Длина волны – 625 нм · Максимальная сила света – 100 мКд · Видимый телесный угол – 40 град. · Максимальное прямое напряжение – 12 В · Рабочая температура – -60...85 С 4.2 Описание кнопок В системе используется 24 кнопки типа B170G (4 отдельные и 20 в составе клавиатуры), имеющие следующие характеристики: · Фиксация нет · Сопротивление изолятора – не менее 100 МОм · Сопротивление контактов – не более 0.05 Ом · Рабочее напряжение – 30 В · Предельное напряжение – 250В переменного тока в течение 1 мин. · Рабочий ток – 0.1 А 5. Объект управления, алгоритм управления К выводам PC0..PC2 через устройство сопряжения подключен двигатель постоянного тока. К выводам РD0..РD2 – кнопки запуска двигателя постоянного тока К выводам РE0..РE1 подключены светодиоды отражающие состояние двигателя постоянного тока. К выводам РА0..РА7 подается оцифрованный сигнал с датчика оборотов 6. Заключение Результатом выполнения данной курсовой работы является разработка электрической принципиальной схемы микропроцессорного устройства управления двигателя постоянного тока на базе контроллера ATmega 128. Произведен выбор компонентов устройства, приведены их основные характеристики. Написан пакет подпрограмм на языке Assembler для корректной работы устройства. Подпрограммы являются универсальными и предназначены для работы с любыми моделями двигателей. Для корректной работы устройства управления необходимо правильно выбрать комплект устройств сопряжения. Рекомендации по выбору приведены в пояснительной записке. Выводом данной курсовой работы является, то что системы управления, построенные на базе микроконтроллеров позволяют упростить регулирование технологическими процессами. 7. Используемая литература 1 . Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL А. В. Евстифеев. Москва Издательский дом «Додэка-XXI» 2006г. 2 . www.dipchip.ru 3. www.chipinfo.ru 4. ЛП_ЛС2_8МГц.doc Лабораторный практикум «Архитектура, программирование и применение 8-разрядных микроконтроллеров семейства ATMEL ATmega». Приложение А .device ATmega128 .include "m128def.inc" .def tmp=r16 .cseg .org 0 Rjmp iniz .org 40 Iniz: Ldi temp,High(RamEnd) Out sph,temp Ldi temp,Low(RamEnd) Out spl,temp Ldi tmp, 0xff Out ddrc, tmp Out ddrd, tmp Out portd,tmp Out ddra,tmp Ldi tmp, 0x00 Out ddre,tmp Out porte,tmp ; подпрограмма управления Uprav: Sbis portd.7 Rjmp stup1 Rjmp uprav Stup1: Ldi tmp,0x00 Out porta,tmp Ldi tmp,0x01 out porte,tmp Ldi tmp,porta cN1: Cpi tmp,n1 Breq stup2 Rjmp cn1 Stup2: Ldi tmp,0x01 Out portd,tmp Ldi tmp,0x02 out porte,tmp cN2: Cpi tmp,n2 Breq stup3 Rjmp cn2 Stup3: Ldi tmp,0x02 Out portb,tmp Ldi tmp,0x03 out porte,tmp Rjmp uprav |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|