Микропроцессорные устройства в робототехнических комплексах

Автор: Пользователь скрыл имя, 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
Приложение

Работа содержит 1 файл

Курсак 11.doc

— 1.64 Мб (Скачать)

МИНИСТЕРСТВО  ОБРАЗОВАНИЯ И НАУКИ 
ВОСТОЧНОУКРАИНСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ 
ИМЕНИ ВЛАДИМИРА ДАЛЯ
 
 
 

    • КУРСОВАЯ  РАБОТА

    по дисциплине:

      «Микропроцессорные  устройства  
      в робототехнических комплексах»

     
      Выполнил  студент группы КТ-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.

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

    Основные  ключевые термины:

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

      Введение

          Для создания данной курсовой работы были применены знания о системах управления с применением ЭВМ и микропроцессорной  технике, полученные в процессе изучения предмета «Микропроцессорные устройства в робототехнических комплексах». Также понадобились знания программирования на языке высокого уровня Си, основы электроники и микросхемотехники. В дисциплине Микропроцессорные устройства в робототехнических комплексах (МУ в РТК) были изучены все основные направления решений задач для создания данной работы. Такие как использование внутренних  периферийных устройств МК (микроконтроллера), организация портов ввода—вывода для конкретно поставленной задачи. Были рассмотрены на примерах способы задания алгоритмов, написание и отладка конкретных программ прошивки. Также были изучены программные средства для работы и моделирования МК, такие как AVR Studio и CodeVisionAVR. Благодаря изученному ранее предмету Основы электроники и микросхемотехники, мы получили навыки для создания электронных схем, изучили принципы работы  электронных компонентов и приборов, разобрались в программных средствах для работы с электрическими устройствами. Ранее изученные методы алгоритмизации при решении задач на ЭВМ позволяют оперировать средствами языков высокого уровня программирования (в нашем случае — Си), и применять полученные навыки для создания программ адаптированных под МК.  

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

      1. Задание на курсовую  работу

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

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

         На  аппаратном уровне необходимо уметь  поместить написанную программу  в память микроконтроллера и проверить ее работоспособность в соответствии с вариантом на действующем стенде.

      1.1 Индивидуальное задание

    Вариант №11. Флажок исполнительного органа находится в произвольном положении. При помощи кнопки SB1 организовать в автоматическом режиме движение исполнительного органа влево и вправо. При кратковременном нажатии на кнопку SB1 привод начинает движение флажка. Смена направления движения флажка осуществляется при повторном нажатии на кнопку SB1. При достижении флажком любого концевого выключателя привод автоматически должен реверсироваться и продолжить движение в противоположном направлении.

      2. Описание объекта  управления и его  функционирования

    На рисунке 1 изображена кинематическая схема объекта управления (далее — ОУ). Внутри вдоль корпуса 1 расположен ходовой винт 2, соединенный с валом электродвигателя 6 через муфту 5. На валу находится гайка 4 с закрепленным на ней флажком 3, который выходит из корпуса через узкую продольную щель. Флажок приводится в движение при помощи кинематической пары «винт – гайка», приводимой во вращение электродвигателем постоянного тока, который при изменении полярности питающего напряжения может вращаться в двух направлениях, что вызывает движение гайки с флажком влево или вправо. Крайние положения флажка контролируются бесконтактными концевыми выключателями 7 индуктивного типа.

         

  • Рисунок 1. Конструкция и  кинематическая схема  привода звена  робота.
      • 1 — корпус; 2 — винт; 3 — флажок; 4 — гайка; 5 — соединительная  муфта; 
        6 — электродвигатель; 7 — бесконтактные концевые выключатели.

        2.1. Входные и выходные  параметры ОУ

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

           

    • Рисунок 2. Параметры физической модели как объекта  управления.
    •  

           Функциональное  назначение привода заключается в реализации прямолинейного возвратно – поступательного перемещения исполнительного органа робота на какое-то расстояние S. Величина перемещения и его направление контролируются при помощи специального контролирующего устройства – флажка  из токопроводящего материала, конструктивно соединенного с исполнительным органом и перемещающегося вместе с ним (см. рис 1). При попадании флажка в зону действия концевых выключателей КВ1 или КВ2 на их выходах формируются электрические сигналы логической 1. При выходе флажка из зоны на выходе концевого выключателя устанавливается уровень логического 0. Направление движения исполнительного органа определяется полярностью питающего напряжения на электродвигателе постоянного тока.

      Таким образом, входным параметром объекта управления является задание на перемещение исполнительного органа в заданном направлении на расстояние S, управляющим воздействием является напряжение постоянного тока изменяемой полярности «+ U — общ.», «–U — общ.», выходными параметрами являются сигналы концевых выключателей Uкв1, Uкв2 (см. рисунок 2).

        2.2. Обобщенная структурная  схема

            Система автоматического управления (рисунок 3)  состоит из подсистемы контроля, куда в виде вектора Х поступает информация о состоянии ОУ, подсистемы обработки информации, где находится управляющая программа, а также исполнительной подсистемы, где вырабатываются управляющие воздействия и по вектору управляющих воздействий Y поступают на объект управления.

           

    • Рисунок 3. Обобщенная структурная  схема системы  автоматического управления.
    •  

           Заданием  предусмотрены режимы ручного управления приводом исполнительного органа, которые  являются частью программы автоматического  управления. Поэтому структурная  схема режима ручного управления в работе не рассматривается.

        2.3. Структурная схема системы управления

           Объект  управления состоит из приводного электродвигателя ЭД, на который поступают управляющие воздействия от исполнительной подсистемы в виде устройства реверсирования электродвигателя УРЭ, и концевых выключателей КВ, контролирующих рабочую зону исполнительного органа и подающих информацию непосредственно в подсистему контроля, размещенную в микроконтроллере МК.

           Пульт управления ПУ и блок индикации БИ обеспечивают управление режимами движения исполнительного органа и контроль над ними, а источники питания U обеспечивают электроэнергией все подсистемы.

           Схема на рисунке 4 позволяет установить связи между аппаратными средствами, непосредственно участвующими в программном управлении: микроконтроллер воспринимает команды с ПУ и сигналы с КВ, и выдает информационные сигналы на БИ и управляющие команды на УРЭ. В то же время источники питания участия в программном обмене не принимают, а только обеспечивают работоспособность системы. На основании этой же схемы разрабатывается электрическая принципиальная схема системы управления.

        • Рисунок 4. Структурная схема  системы автоматического  управления исполнительным органом робота.

          3. Разработка алгоритма  программы управления  приводом

              Организуем  обобщённую последовательность действий алгоритма управления устройством, по которому в дальнейшем будет определена и разработана блок-схема основной программы и вспомогательных подпрограмм. В основные блоки можно выделить следующие пункты последовательности:

        1. Использование функциональных возможностей модели микроконтроллера.
        2. Присвоение имен входным и выходным данным микроконтроллера.
        3. Создание и определение необходимых функций.
        4. Определение основных режимов микроконтроллера.
        5. Присваивание имен и направлений передачи данных.
        6. Создание условия «вечного цикла» в основном блоке.
        7. Опрос состояния переменных, которые присвоены кнопкам.
        8. Подача сигналов управления на порты, отвечающие за направление вращения электродвигателя.
        9. Подача сигналов управления на порты, отвечающие за индикацию направления движения (если бы этого требовало задание).
        10. Контроль рабочей зоны исполнительного органа посредством опроса состояния переменных, которые присвоены бесконтактным концевым выключателям.

          3.1. Разработка алгоритма  основной программы

              В основной программе (рисунок 5) происходит инициализация портов, предназначенных для ввода информации с бесконтактных концевых выключателей и кнопок управления. Здесь же происходит опрос состояния кнопок управления и задание направления движения исполнительного органа.

             

      • Рисунок 5. Блок-схема основной программы.
      •      Сразу после старта инициализируются переменные, которым назначаются выходы нужных портов микроконтроллера и вызывается функция initMC(), которая инициализирует микроконтроллер (таблица 1).

        Элемент Порт Конфигурация  выхода Переменная Описание
        SB1 PA0 in BTNA

          • Основной  элемент управления
        SWL PA1 in BTNL

          • Левый концевой выключатель
        SWR PA2 in BTNR

          • Правый  концевой выключатель
        PD0 out MDL

          • Выход на драйвер привода
        PD1 out MDR

          • Выход на драйвер привода
      •      

      • Таблица 1. Конфигурация портов.
      •  

              Следует подробнее рассмотреть процесс проверки состояния кнопки SB1, так как при ее нажатии возможно появление эффекта, так называемого «дребезга». Для решения проблемы в начало блока, исполняемого при получении логической «единицы» в переменной BTNA добавлен пустой цикл, который, собственно, приостанавливает выполнение программы (а все порты сохраняют свои текущие значения) до первого поступления в эту же переменную логического «нуля». Этот способ исключает «дребезг» и реализует принцип выполнения действия нажатия на кнопку «зажал–отпустил–заработало», то есть, основную роль в перехвате кнопки играет ее «отпускание» (так, как это реализовано, например, у кнопок в оболочках ОС). Как вариант, в данном случае можно было бы в этот  «тормозящий цикл» поместить вызов функции остановки привода, и тогда по нажатию на кнопку смены направления движения флажка драйвер привода останавливал бы мотор, и только когда она была бы отпущена — происходила бы смена направления его движения и приведение мотора в действие.

              Обработка проверки состояния концевых выключателей SWL и SWR не нуждается в защите от «дребезга», однако следует исключить вероятность ошибочной смены направления движения флажка при остановленном приводе и пресечь реакцию на противоположный замкнутый концевой выключатель. Для этого, кроме проверки самой переменной, для каждого из последних следует проверять текущее состояние мотора и реагировать на логические «единицы» переменных BTNL и BTNR только при MOTORACTION равном MOTORACTION_LEFT или MOTORACTION_RIGHT, соответственно.

          3.2. Разработка алгоритмов  подпрограмм

              После конфигурирования портов создается  основной «бесконечный цикл», в котором  и происходит опрос состояний  управляющих элементов.  Затем  вызывается функция motorActionPower(MOTORACTION) (рисунок 6), где MOTORACTION — глобальная переменная, в которую в зависимости от положений управляющих элементов заносится должное состояние мотора (указаны констаны):

          MOTORACTION_LEFT = -1

          MOTORACTION_NONE = 0

          MOTORACTION_RIGHT = 1 

             

      • Рисунок 6. Блок-схема подпрограммы motorActionPower.
      •  

              Рассмотрим  три приемлемых варианта вызова данной подпрограммы. В теле функции происходит сравнение переданного параметра  ACTIONTYPE сначала с константой, указывающей на движение флажка вправо (MOTORACTION_RIGHT), и после положительного результата переменной MDR присваивается значение логической «единицы», а MDL — «нуля». Если условие не выполняется, то происходит проверка параметра на равенство константе MOTORACTION_LEFT. В случае выполнения условия происходит обратное первому сравнению: переменной MDR присваивается значение логического «нуля», а MDL — «единицы». Если же и это условие не выполняется, то считается, что функции передана константа остановки мотора — MOTORACTION_NONE — или иное не подходящее рабочему условию значение, и обеим переменным присваиваются логические «нули», что прекращает приводить мотор в движение.

          4. Разработка программного  обеспечения.

          4.1. Общие требования

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

          4.2. Методика написания  программы

             Универсальность и широкие возможности, предоставляемые пользователю микроконтроллерами AVR, способствовали тому, что многие фирмы-производители программных средств поддержки микроконтроллеров (ассемблеров, компиляторов, отладчиков) создали программные пакеты поддержки AVR. Для написания программы-прошивки было использовано приложение под названием «CodeVisionAVR».

             CodeVisionAVR — интегрированная среда разработки программного обеспечения для микроконтроллеров семейства Atmel AVR. CodeVisionAVR включает в себя следующие компоненты:

        • компилятор языка Си для AVR;
        • компилятор языка ассемблер для AVR;
        • генератор начального кода программы, позволяющего произвести инициализацию периферийных устройств;
        • модуль взаимодействия с отладочной платой STK-500;
        • модуль взаимодействия с программатором;
        • терминал.

        Выходными файлами CodeVisionAVR являются:

        • HEX, BIN или ROM-файл для загрузки в микроконтроллер посредством программатора;
        • COFF — файл, содержащий информацию для отладчика;
        • OBJ — файл.

          Работа  с CodeVisionAVR начинается с создания файла проекта (.prj). Программа предлагает воспользоваться гибким в использовании мастером настроек микроконтроллеров семейства Atmel AVR «CodeWizardAVR» (рисунок 7), который в оконном режиме позволит выбрать и установить определенные требуемые параметры для конкретной платформы, после чего сгенерирует код, обращающий регистры в нужные значения согласно установленным параметрам и в случае необходимости — пустые блоки (обработки прерываний, например), если предполагается их использование.

         

          • Рисунок 7. Мастер «CodeWizardAVR».
           

               Написание программы производится в окне редактора  текста программы. Для использования  символических имен регистров специального назначения вместо их адресов необходимо подключить (директива #include) к проекту файл определения регистров специального назначения (“mega32.h” для ATmega32). Включаемые файлы входят в пакет CodeVisionAVR и при инсталляции помещаются в папку “Inc” в директории установки CodeVisionAVR.

               Объем разработанной программы составляет 1212 байт что составляет 3.7%  от памяти микроконтроллера ATmega32 что позволяет размещать ее в памяти микроконтроллера модели ATMega32, количество необходимых физических линий ввода-вывода — 5 (3 из них требуют элементы управления и 2 — драйвер мотора). Исходный код программы на языке СИ находится в Приложении.

            5. Выбор микроконтроллерных  средств управления.

            5.1 Краткая историческая  справка, обзор  рынка микроконтроллеров

               Первый  микроконтроллер был выпущен  в 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 выпускали советские предприятия  в Минске, Киеве, Воронеже, Новосибирске, на них выросло целое поколение отечественных разработчиков.

               Большинство фирм производителей микроконтроллеров  и сегодня выпускают устройства, основанные на этой архитектуре. Среди  них Philips, Atmel, Dallas, OKI, Siemens — можно перечислить более полутора десятков имен. Но 51-е семейство постепенно сдает свои позиции более молодым и совершенным микроконтроллерам.

               Другими яркими представителями восьмиразрядных  микроконтроллеров явились изделия  компаний Motorola (68HC05, 68HC08, 68HC11) и Zilog (Z8).

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

               Микроконтроллеры  фирмы Zilog, основанной бывшими сотрудниками Intel, еще недавно казавшиеся столь многообещающими, не выдержали гонки в стремительно развивающемся секторе рынка, и сегодня система команд Z8 выглядит достаточно устаревшей.

               Первые  значительные перемены произошли с  появлением PIC-контроллеров фирмы Microchip. Эти чипы предлагались по рекордно низким ценам, что позволило им в короткий срок захватить значительную часть рынка микроконтроллеров. К тому же кристаллы от Microchip оказались не уступающими, а нередко и превосходящими микроконтроллеры линии х51 по производительности и не требовали дорогостоящего программатора. Вместе с контроллерами появились дешевые комплекты PICSTART, содержащие все, что было нужно для того, чтобы, не имея ни средств, ни навыков работы с PIC-контроллерами, быстро создать и отладить на нем программный продукт.

               Эти микроконтроллеры имеют хорошие  порты, но все остальное сделано  весьма неудобно. Архитектура оставляет  желать лучшего, система команд крайне ограничена. Тем не менее, PIC-контроллеры остаются популярными в тех случаях, когда требуется создать недорогую систему, не предъявляющую высоких требований по ее управлению.

               На  волне успеха PIC-контроллеров появились очень похожие на них изделия фирмы Scinex. Они обладали уже 52-мя командами против 33-х команд микроконтроллеров PIC. Были добавлены хорошие инструкции для работы с памятью, улучшена архитектура, каждая команда выполнялась за один такт, что при прочих равных условиях было вчетверо быстрее, чем у Microchip, и к тому же их тактовая частота достигала 100 МГц. Столь высокая скорость контроллера позволяет его создателям отказаться от различной периферии — таймеров, счетчиков, регистров сдвига в приемопередатчиках, — все это рекомендуется реализовывать чисто программными средствами, благо быстродействия для этого хватает: внутри — лишь сверхбыстрое ядро, память да порты ввода-вывода.

            5.2. Микроконтроллеры  семейства AVR.  
            Архитектура МК ATMega32

               Atmega32 является КМОП 8- битным микроконтроллером,  построенным на расширенной AVR RISC архитектуре. Используя команды,  исполняемые за один машинный такт, контроллер достигает производительности в 1 MIPS на рабочей частоте 1 МГц, что позволяет разработчику эффективно оптимизировать потребление энергии за счёт выбора оптимальной производительности.

               AVR ядро сочетает расширенный набор  команд с 32 рабочими регистрами общего назначения. Все 32 регистра соединены с АЛУ, что обеспечивает доступ к двум независимым регистрам на время исполнения команды за один машинный такт. Благодаря выбранной архитектуре достигнута наивысшая скорость кода и соответственно высокая производительность в 10 раз превосходящая скорость соответствующего CISC микроконтроллера.

               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 — расположение выводов данного МК.

               

               

        • Рисунок 8. Блок-схема МК ATMega32.
            •  

              • Рисунок 9. Расположение выводов  МК ATMega32.

                6. Разработка электрической  принципиальной схемы

                   На  рисунке 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/wiki/CodeVisionAVR.

              13. http://www.gaw.ru/html.cgi/txt/ic/Atmel/micros/avr/atmega32.htm.

              Приложение

              #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_RIGHT)

                      {

                      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_NONE)

                        {

                        MOTORACTION=MOTORACTION_RIGHT;

                        } else

                        {       

                        MOTORACTION=-1*MOTORACTION;

                        }

                      }

                    

                    if ((BTNL==1) || (BTNR==1))

                    {               

                    if (BTNL!=BTNR)

                       {

                        if ((BTNL==1) && (MOTORACTION==MOTORACTION_LEFT))

                           {

                           MOTORACTION=MOTORACTION_RIGHT;

                           }

                     

                        if ((BTNR==1) && (MOTORACTION==MOTORACTION_RIGHT))

                           {

                           MOTORACTION=MOTORACTION_LEFT;

                           }

                       } else

                       {

                       MOTORACTION=MOTORACTION_NONE;

                       }

                    }                        

                    motorActionPower(MOTORACTION);

                    }

              }

              }

Информация о работе Микропроцессорные устройства в робототехнических комплексах