Автор: Пользователь скрыл имя, 07 Февраля 2011 в 23:33, курсовая работа
В данной курсовой работе предоставлено описание объекта управления с его параметрами как объекта автоматизации. Составлена краткая и расширенная структурная схема, в соответствии с которой установлено назначение отдельных блоков, подобран набор электронных приборов и интегральных схем. В связи с необходимыми техническими требованиями подобран микроконтроллер, соответствующий им. В процессе выбора необходимого решения были рассмотрены различные виды микроконтроллеров и ряд их характеристик, а так же был исследован рынок и их ценовая политика.
Реферат 3
Введение 4
1. Задание на курсовую работу 6
1.1 Индивидуальное задание 6
2. Описание объекта управления и его функционирования 7
2.1. Входные и выходные параметры ОУ 8
2.2. Обобщенная структурная схема 9
2.3. Структурная схема системы управления 10
3. Разработка алгоритма программы управления приводом 12
3.1. Разработка алгоритма основной программы 13
3.2. Разработка алгоритмов подпрограмм 15
4. Разработка программного обеспечения 18
4.1. Общие требования 18
4.2. Методика написания программы 18
5. Выбор микроконтроллерных средств управления 22
5.1 Краткая историческая справка, обзор рынка микроконтроллеров 22
5.2. Микроконтроллеры семейства AVR. Архитектура МК ATMega32 24
6. Разработка электрической принципиальной схемы 29
Заключение 30
Список литературы 31
Приложение
МИНИСТЕРСТВО
ОБРАЗОВАНИЯ И НАУКИ
ВОСТОЧНОУКРАИНСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ
ИМЕНИ ВЛАДИМИРА ДАЛЯ
по дисциплине:
Выполнил | студент группы КТ-274 Борзенко Д.О. | |
Вариант № | 11 | |
Выдал | ас. Карлов Е.В. | |
Проверил | доц. Горбунов А.И. |
Луганск 2010
Реферат | 3 |
Введение | 4 |
1. Задание на курсовую работу | 6 |
1.1 Индивидуальное задание | 6 |
2. Описание
объекта управления и его |
7 |
2.1. Входные и выходные параметры ОУ | 8 |
2.2. Обобщенная структурная схема | 9 |
2.3. Структурная схема системы управления | 10 |
3. Разработка
алгоритма программы |
12 |
3.1. Разработка алгоритма основной программы | 13 |
3.2. Разработка алгоритмов подпрограмм | 15 |
4. Разработка программного обеспечения | 18 |
4.1. Общие требования | 18 |
4.2. Методика написания программы | 18 |
5. Выбор
микроконтроллерных средств |
22 |
5.1 Краткая
историческая справка, обзор |
22 |
5.2. Микроконтроллеры семейства AVR. Архитектура МК ATMega32 | 24 |
6. Разработка
электрической принципиальной |
29 |
Заключение | 30 |
Список литературы | 31 |
Приложение | 33 |
Страниц — 34, таблиц — 1, рисунков — 10 (в т. ч. приложение), источников — 13.
В данной курсовой работе предоставлено описание объекта управления с его параметрами как объекта автоматизации. Составлена краткая и расширенная структурная схема, в соответствии с которой установлено назначение отдельных блоков, подобран набор электронных приборов и интегральных схем. В связи с необходимыми техническими требованиями подобран микроконтроллер, соответствующий им. В процессе выбора необходимого решения были рассмотрены различные виды микроконтроллеров и ряд их характеристик, а так же был исследован рынок и их ценовая политика. По данным задания на курсовую работу были составлены алгоритмы работы управления автоматического режима, и на их основе была осуществлена реализация кода программы на языке высокого уровня Си. Подробно описан процесс разработки принципиальной электрической схемы системы управления микропроцессорного устройства.
Основные ключевые термины:
Интегральная схема, объект управления, система управления, структурная схема, алгоритм, программа, подпрограмма, язык Си, микроконтроллер, порты ввода-ввода, объем памяти, интерфейс, принципиальная схема, аппаратные средства, технические характеристики, листинг программы.
Для
создания данной курсовой работы были
применены знания о системах управления
с применением ЭВМ и
Стоит упомянуть необходимость применения микропроцессорных систем при создании систем для управления роботизированным производством. Это быстро развивающаяся отрасль, дающая возможность оптимизации систем. Сюда входит увеличение надёжности, что подразумевает под собой применение износостойких приборов; расширение функции самоконтроля; исключение человеческого фактора; скорости выполнения поставленных задач; снижение стоимости включает в себя снижение энергопотребления, применение всё новых способов изготовления кристаллов, увеличение количества и качества специалистов для обслуживания в данной области. Все эти факторы говорят об актуальности применения микропроцессорных устройств в данной области.
Задачей данной курсовой работы является применение в процессе разработки микроконтроллерной системы управления теоретических и практических знаний по основам программных, схемотехнических и аппаратных принципов управления электрическими приводами универсальных робототехнических устройств общего назначения.
Подтверждением практических навыков программирования на языке высокого уровня является написание программы на основании разработанного алгоритма функционирования системы управления.
На аппаратном уровне необходимо уметь поместить написанную программу в память микроконтроллера и проверить ее работоспособность в соответствии с вариантом на действующем стенде.
Вариант №11. Флажок исполнительного органа находится в произвольном положении. При помощи кнопки SB1 организовать в автоматическом режиме движение исполнительного органа влево и вправо. При кратковременном нажатии на кнопку SB1 привод начинает движение флажка. Смена направления движения флажка осуществляется при повторном нажатии на кнопку SB1. При достижении флажком любого концевого выключателя привод автоматически должен реверсироваться и продолжить движение в противоположном направлении.
На рисунке 1 изображена кинематическая схема объекта управления (далее — ОУ). Внутри вдоль корпуса 1 расположен ходовой винт 2, соединенный с валом электродвигателя 6 через муфту 5. На валу находится гайка 4 с закрепленным на ней флажком 3, который выходит из корпуса через узкую продольную щель. Флажок приводится в движение при помощи кинематической пары «винт – гайка», приводимой во вращение электродвигателем постоянного тока, который при изменении полярности питающего напряжения может вращаться в двух направлениях, что вызывает движение гайки с флажком влево или вправо. Крайние положения флажка контролируются бесконтактными концевыми выключателями 7 индуктивного типа.
ОУ рассматривается по упрощенной методике, в связи с чем, в процессе управления ускорения разгона и остановки, а также скорость перемещения исполнительного органа не контролируются и определяются электромеханическими характеристиками элементов привода. Возмущающие воздействия не учитываются. Конечной целью программного управления с обратной связью является достижение исполнительным органом заданного положения путем программно организованного взаимодействия с концевыми выключателями, установленными на ОУ. Установим входные, выходные и управляющие воздействия, которые возникают в процессе функционирования привода.
Функциональное назначение привода заключается в реализации прямолинейного возвратно – поступательного перемещения исполнительного органа робота на какое-то расстояние S. Величина перемещения и его направление контролируются при помощи специального контролирующего устройства – флажка из токопроводящего материала, конструктивно соединенного с исполнительным органом и перемещающегося вместе с ним (см. рис 1). При попадании флажка в зону действия концевых выключателей КВ1 или КВ2 на их выходах формируются электрические сигналы логической 1. При выходе флажка из зоны на выходе концевого выключателя устанавливается уровень логического 0. Направление движения исполнительного органа определяется полярностью питающего напряжения на электродвигателе постоянного тока.
Таким образом, входным параметром объекта управления является задание на перемещение исполнительного органа в заданном направлении на расстояние S, управляющим воздействием является напряжение постоянного тока изменяемой полярности «+ U — общ.», «–U — общ.», выходными параметрами являются сигналы концевых выключателей Uкв1, Uкв2 (см. рисунок 2).
Система автоматического управления (рисунок 3) состоит из подсистемы контроля, куда в виде вектора Х поступает информация о состоянии ОУ, подсистемы обработки информации, где находится управляющая программа, а также исполнительной подсистемы, где вырабатываются управляющие воздействия и по вектору управляющих воздействий Y поступают на объект управления.
Заданием предусмотрены режимы ручного управления приводом исполнительного органа, которые являются частью программы автоматического управления. Поэтому структурная схема режима ручного управления в работе не рассматривается.
Объект управления состоит из приводного электродвигателя ЭД, на который поступают управляющие воздействия от исполнительной подсистемы в виде устройства реверсирования электродвигателя УРЭ, и концевых выключателей КВ, контролирующих рабочую зону исполнительного органа и подающих информацию непосредственно в подсистему контроля, размещенную в микроконтроллере МК.
Пульт управления ПУ и блок индикации БИ обеспечивают управление режимами движения исполнительного органа и контроль над ними, а источники питания U обеспечивают электроэнергией все подсистемы.
Схема на рисунке 4 позволяет установить связи между аппаратными средствами, непосредственно участвующими в программном управлении: микроконтроллер воспринимает команды с ПУ и сигналы с КВ, и выдает информационные сигналы на БИ и управляющие команды на УРЭ. В то же время источники питания участия в программном обмене не принимают, а только обеспечивают работоспособность системы. На основании этой же схемы разрабатывается электрическая принципиальная схема системы управления.
Организуем обобщённую последовательность действий алгоритма управления устройством, по которому в дальнейшем будет определена и разработана блок-схема основной программы и вспомогательных подпрограмм. В основные блоки можно выделить следующие пункты последовательности:
В основной программе (рисунок 5) происходит инициализация портов, предназначенных для ввода информации с бесконтактных концевых выключателей и кнопок управления. Здесь же происходит опрос состояния кнопок управления и задание направления движения исполнительного органа.
Сразу после старта инициализируются переменные, которым назначаются выходы нужных портов микроконтроллера и вызывается функция initMC(), которая инициализирует микроконтроллер (таблица 1).
Элемент | Порт | Конфигурация выхода | Переменная | Описание |
SB1 | PA0 | in | BTNA |
|
SWL | PA1 | in | BTNL |
|
SWR | PA2 | in | BTNR |
|
— | PD0 | out | MDL |
|
— | PD1 | out | MDR |
|
Следует подробнее рассмотреть процесс проверки состояния кнопки SB1, так как при ее нажатии возможно появление эффекта, так называемого «дребезга». Для решения проблемы в начало блока, исполняемого при получении логической «единицы» в переменной BTNA добавлен пустой цикл, который, собственно, приостанавливает выполнение программы (а все порты сохраняют свои текущие значения) до первого поступления в эту же переменную логического «нуля». Этот способ исключает «дребезг» и реализует принцип выполнения действия нажатия на кнопку «зажал–отпустил–заработало», то есть, основную роль в перехвате кнопки играет ее «отпускание» (так, как это реализовано, например, у кнопок в оболочках ОС). Как вариант, в данном случае можно было бы в этот «тормозящий цикл» поместить вызов функции остановки привода, и тогда по нажатию на кнопку смены направления движения флажка драйвер привода останавливал бы мотор, и только когда она была бы отпущена — происходила бы смена направления его движения и приведение мотора в действие.
Обработка проверки состояния концевых выключателей SWL и SWR не нуждается в защите от «дребезга», однако следует исключить вероятность ошибочной смены направления движения флажка при остановленном приводе и пресечь реакцию на противоположный замкнутый концевой выключатель. Для этого, кроме проверки самой переменной, для каждого из последних следует проверять текущее состояние мотора и реагировать на логические «единицы» переменных BTNL и BTNR только при MOTORACTION равном MOTORACTION_LEFT или MOTORACTION_RIGHT, соответственно.
После
конфигурирования портов создается
основной «бесконечный цикл», в котором
и происходит опрос состояний
управляющих элементов. Затем
вызывается функция motorActionPower(
MOTORACTION_LEFT = -1
MOTORACTION_NONE = 0
MOTORACTION_RIGHT = 1
Рассмотрим
три приемлемых варианта вызова данной
подпрограммы. В теле функции происходит
сравнение переданного
На
основании разработанных
Универсальность и широкие возможности, предоставляемые пользователю микроконтроллерами AVR, способствовали тому, что многие фирмы-производители программных средств поддержки микроконтроллеров (ассемблеров, компиляторов, отладчиков) создали программные пакеты поддержки AVR. Для написания программы-прошивки было использовано приложение под названием «CodeVisionAVR».
CodeVisionAVR — интегрированная среда разработки программного обеспечения для микроконтроллеров семейства Atmel AVR. CodeVisionAVR включает в себя следующие компоненты:
Выходными файлами CodeVisionAVR являются:
Работа с CodeVisionAVR начинается с создания файла проекта (.prj). Программа предлагает воспользоваться гибким в использовании мастером настроек микроконтроллеров семейства Atmel AVR «CodeWizardAVR» (рисунок 7), который в оконном режиме позволит выбрать и установить определенные требуемые параметры для конкретной платформы, после чего сгенерирует код, обращающий регистры в нужные значения согласно установленным параметрам и в случае необходимости — пустые блоки (обработки прерываний, например), если предполагается их использование.
Написание программы производится в окне редактора текста программы. Для использования символических имен регистров специального назначения вместо их адресов необходимо подключить (директива #include) к проекту файл определения регистров специального назначения (“mega32.h” для ATmega32). Включаемые файлы входят в пакет CodeVisionAVR и при инсталляции помещаются в папку “Inc” в директории установки CodeVisionAVR.
Объем
разработанной программы
Первый микроконтроллер был выпущен в 1976 году, через 5 лет после создания первого микропроцессора. Это была микросхема фирмы Intel, получившая кодовое обозначение 8048.
Помимо центрального процессора, на кристалле находились 1 кбайт памяти программ, 64 байта памяти данных, два 8-битных таймера, генератор часов и 27 портов ввода/вывода.
Микроконтроллеры семейства 8048 использовались в игровых консольных приставках Magnavox Odyssey, в клавиатурах первых IBM PC и в ряде других устройств.
Существует также мнение, что первым микроконтроллером был 4-х pазpядный TMS1000 от Texas Instruments, котоpый содеpжал ОЗУ (32 байта), ПЗУ (1К), часы и поддеpжку ввода-вывода, что позволяло считать его именно первым микpоконтpоллеpом. Выпущенный в 1972 году, он имел новую по тем временам возможность - добавление новых инструкций.
Следующий микроконтроллер Intel 8051, выпущенный в 1980 году, стал поистине классическим образцом устройств данного класса. Этот 8-битный чип положил начало целому семейству микроконтроллеров, которые господствовали на рынке вплоть до недавнего времени.
Аналоги 8051
выпускали советские
Большинство
фирм производителей микроконтроллеров
и сегодня выпускают
Другими
яркими представителями
Motorola длительное время не предоставляла средств, позволяющих дешево и быстро начать работать с ее контроллерами, что явно не способствовало их популярности у некорпоративных разработчиков. Однако стоит заметить, что за рубежом микроконтроллеры от Motorola занимают лидирующее положение на рынке. В нашей стране их популярность не очень высока, возможно, еще в силу отсутствия достаточного количества доступных учебных материалов и средств разработки.
Микроконтроллеры фирмы Zilog, основанной бывшими сотрудниками Intel, еще недавно казавшиеся столь многообещающими, не выдержали гонки в стремительно развивающемся секторе рынка, и сегодня система команд Z8 выглядит достаточно устаревшей.
Первые значительные перемены произошли с появлением PIC-контроллеров фирмы Microchip. Эти чипы предлагались по рекордно низким ценам, что позволило им в короткий срок захватить значительную часть рынка микроконтроллеров. К тому же кристаллы от Microchip оказались не уступающими, а нередко и превосходящими микроконтроллеры линии х51 по производительности и не требовали дорогостоящего программатора. Вместе с контроллерами появились дешевые комплекты PICSTART, содержащие все, что было нужно для того, чтобы, не имея ни средств, ни навыков работы с PIC-контроллерами, быстро создать и отладить на нем программный продукт.
Эти микроконтроллеры имеют хорошие порты, но все остальное сделано весьма неудобно. Архитектура оставляет желать лучшего, система команд крайне ограничена. Тем не менее, PIC-контроллеры остаются популярными в тех случаях, когда требуется создать недорогую систему, не предъявляющую высоких требований по ее управлению.
На волне успеха PIC-контроллеров появились очень похожие на них изделия фирмы Scinex. Они обладали уже 52-мя командами против 33-х команд микроконтроллеров PIC. Были добавлены хорошие инструкции для работы с памятью, улучшена архитектура, каждая команда выполнялась за один такт, что при прочих равных условиях было вчетверо быстрее, чем у Microchip, и к тому же их тактовая частота достигала 100 МГц. Столь высокая скорость контроллера позволяет его создателям отказаться от различной периферии — таймеров, счетчиков, регистров сдвига в приемопередатчиках, — все это рекомендуется реализовывать чисто программными средствами, благо быстродействия для этого хватает: внутри — лишь сверхбыстрое ядро, память да порты ввода-вывода.
Atmega32
является КМОП 8- битным микроконтроллером,
построенным на расширенной AVR
RISC архитектуре. Используя
AVR
ядро сочетает расширенный
ATmega32 содержит 32Кбайт внутрисистемно программируемой FLASH памяти программ, допускающей чтение во время записи, 1024 байт EEPROM, 2К байт SRAM, 32 рабочих регистра, JTAG интерфейс сканирования внутренних регистров, встроенную систему отладки и программирования, три гибких таймера- счётчика с модулем сравнения, внутренние и внешние прерывания, последовательный программируемый интерфейс USART, байт-ориентированный двухпроводный последовательный интерфейс, 8-и канальный, 10-и битный АЦП с дифференциальным программируемым усилителем (только для TQFP), программируемый Watchdog таймер с внутренним генератором, порт SPI и шестью режимами сбережения энергии. В режиме Idle ЦПУ не функционирует, в то время как функционируют USART, двухпроводный интерфейс, АЦП, SRAM, таймеры-счётчики, SPI порт и система прерываний. В Atmega32 существует специальный режим подавления шума АЦП, при этом в целом в спящем режиме функционирует только АЦП и асинхронный таймер для уменьшения цифровых шумов преобразования. В режиме «выкл.» процессор сохраняет содержимое всех регистров, замораживает генератор тактовых сигналов, приостанавливает все другие функции кристалла до прихода внешнего прерывания или поступления внешней команды Reset. В режиме ожидания работает один тактовый генератор, при остановке остальных функций контроллера. Благодаря быстрому переходу в нормальный режим работы в том числе и по внешнему прерыванию Atmega32 успешно приспосабливается к внешним условиям работы и требует меньше энергии, чаще оказываясь в режиме Выкл. В расширенном режиме ожидания в рабочем состоянии находятся основной генератор и асинхронный генератор.
Микросхемы выпускаются при использовании Atmel технологии энергонезависимой памяти высокой плотности. Встроенная ISP FLASH память позволяет перепрограммировать область программной памяти внутрисистемно через последовательный SPI интерфейс стандартным программатором, или используя загрузочную программу из энергонезависимой памяти работающую в AVR ядре. Комбинация расширенной 8-битной RISC архитектуры ЦПУ и твёрдотельной FLASH памяти обеспечивают Atmega32 высокую гибкость и экономическую эффективность во встраиваемых системах управления.
На рисунке 8 приведена блок-схема МК ATMega32, а на рисунке 9 — расположение выводов данного МК.
На рисунке 10 (приложение А) изображена принципиальная схема микроконтроллерной системы управления приводом робототехнического устройства, выполненной в виде действующего учебного стенда. Принципиальная схема построена на основе структурной схемы системы автоматического управления исполнительным органом робота, приведенной на рисунке 4.
При разработке принципиальной схемы были учтены полярность питающего напряжения, уровни логических сигналов входов, а также нагрузочные способности выходов и входов элементов. Соединение электронных элементов схемы осуществляется в соответствие с их функциональным назначением. Все условные обозначения элементов схемы необходимо выполнять в соответствии с требованиями ЕСКД.
В результате выполнения курсовой работы были решены теоретические задачи по исследованию объекта управления, разработке функциональной схемы системы управления и установлены требования к ее элементам.
При реализации системы управления были решены практические вопросы по разработке алгоритмов программ, написании программы, разработке принципиальной электрической схемы системы автоматического управления приводом исполнительного органа робототехнического устройства.
По команде «Пуск», в соответствии с заданием, привод исполнительного органа обеспечивает автоматическое выполнение следующих действий: при помощи кнопки SB1 привод начинает движение в заданном направлении, при повторном нажатии на кнопку SB1 движение реверсируется. При достижении концевых выключателей движение привода начинается в обратном направлении.
1. В.А. Ульшин, А.И. Горбунов, В.В. Карлов, Е.В. Карлов. Разработка элемента физической модели с программно – управляемым блоком для формующего агрегата комплекса по изготовлению строительных изделий. Праці Луганського відділення Міжнародної Академії інформатизації №2(13) 2006.- с 86-92.
2. Майзель М.М. Автоматика, телемеханика и системы управления производственными процессами. Учеб. Пособие для студентов вузов. М.,»Высшая школа», 1972. – 464с.
3. Краснопрошина А.А.. Крижановский В.В. и др. Системы управления гибким автоматизированным производством: Учеб. пособие/Под общ. ред. д – ра тех. наук, проф. Краснопрошиной. – К.: Вища шк. Головное изд – во, 1987. 383с.
4. Электронные промышленные устройства: Учеб. для студ. вузов спец. «Пром. электрон.»/В.И. Васильев, Ю.М. Гусев, В.Н. Миронов и др. – М.: Высш. шк., 1988, - 303 с.
5. Красиков И.В., Красикова И.Е. Алгоритмы. Просто как дважды два. / И.В. Красиков. И.Е. Красикова. – М.: Эксмо, 2006. – 256 с.
6. Дель В.Д. Основы алгоритмизации и программирования. – Винница: ВПИ, 1988. – 168 с.
7. Холленд Р. Микропроцессоры и операционные системы: Краткое справочное пособие: Пер. с англ. – М.: Энергоатомиздат, 1991. – 192 с.
8. Погорелый С.Д., Слободянюк Т.Ф. Программное обеспечение микропроцессорных систем: Справочник. – 2-е изд., перераб. и доп. – К.: Тэхника, 1989. – 301 с.
9. Джонс Р., Стюарт Я. Программируем на Си/Пер. с англ. и предисл. М.Л. Сальникова, Ю.В. Сальниковой. – М.: Компьютер, ЮНИТИ, 1994. – 236 с.
10. Керниан Б., Ритчи Д. Язык программирования Си: Перевод с англ./Под ред. и с предисл. Вс. С. Штеркмана. – 3-е изд., перераб. и доп. – Харьков: Раритет, 2000. – 234 с.
11. http://atmel.com.
12. http://ru.wikipedia.org/
13. http://www.gaw.ru/html.
Приложение
#include <mega32.h>
#define BTNA (!PINA.0)
#define BTNL (!PINA.1)
#define BTNR (!PINA.2)
#define MDL (PORTD.0)
#define MDR (PORTD.1)
#define LEDL (PORTD.2)
#define LEDR (PORTD.3)
#define MOTORACTION_LEFT -1
#define MOTORACTION_NONE 0
#define MOTORACTION_RIGHT
1
unsigned int MOTORACTION
= MOTORACTION_NONE;
void motorActionPower(unsigned int ACTIONTYPE);
void initMC();
void motorActionPower(unsigned int ACTIONTYPE)
{
if (ACTIONTYPE==MOTORACTION_
{
MDR=1;
MDL=0;
} else
{
if (ACTIONTYPE==MOTORACTION_LEFT)
{
MDR=0;
MDL=1;
} else
{
MDR=0;
MDL=0;
}
}
}
void initMC()
{
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0xFF;
}
void main(void)
{
initMC();
while (1)
{
if (BTNA==1)
{
while (BTNA==1)
{
// waiting for release
}
if (MOTORACTION==MOTORACTION_
{
MOTORACTION=MOTORACTION_RIGHT;
} else
{
MOTORACTION=-1*MOTORACTION;
}
}
if ((BTNL==1) || (BTNR==1))
{
if (BTNL!=BTNR)
{
if ((BTNL==1) && (MOTORACTION==MOTORACTION_
{
MOTORACTION=MOTORACTION_RIGHT;
}
if ((BTNR==1) && (MOTORACTION==MOTORACTION_
{
MOTORACTION=MOTORACTION_LEFT;
}
} else
{
MOTORACTION=MOTORACTION_NONE;
}
}
motorActionPower(MOTORACTION);
}
}
}
Информация о работе Микропроцессорные устройства в робототехнических комплексах