Page 1

ТЕХНИЧЕСКИ УНИВЕРСИТЕТ – СОФИЯ Факултет „ИНЖЕНЕРНО-ПЕДАГОГИЧЕСКИ ФАКУЛТЕТ - СЛИВЕН“

ДИПЛОМНА РАБОТА ТЕМА: Микропроцесорен регулатор за управление на стъпков двигател

Научен ръководител: Дипломант: Факултетен номер:

инж.П. Хесапчиев Георги Димитров Железов 09010205

1|Страница


СЛИВЕН 2013г.

СЪДЪРЖАНИЕ Литературен обзор 1. Увод………………………………………………….…………………………………………… 1стр. 2. Хибридни стъпкови двигатели (ХСД)…………………………………………… 1стр. 3. Архитектура на микропроцесорните системи………………………….…. 1стр. a. Стандартна системна архитектура………………………………….……1стр. b. Предназначение на основните системни елементи….….…...1стр. c. Архитектура на системи с повишена производителност……1стр. 4. Организация и структура на микропроцесорите………………………... 1стр. 5. Класификация На Компютърните Архитектури…………………………….1стр. 6. Организация и структура на паметта……………………………………...…… 1стр. a. Видове памети, класификация и характеристики……….………1стр. b. Йерархия на запаметяващите устройства…………………………..1стр. c. Характеристики на запаметяващите устройства…………………1стр. d. Физическа организация на постоянна и оперативна памет 1стр. e. Основни видове енергозависими памети…………………………..1стр. f. Основно предназначение на ROM паметите………………………1стр. g. Основни видове RAM…………………………………………………………..1стр. Реализация на макета 7. Въведение микроконтролер за управление на стъпков двигател............................................................................................. 1стр. 8. Униполярни стъпкови двигатели……………………………………………..….. 1стр. 9. Биполярни стъпкови двигатели…………………………………………………….1стр. 10.Макет за демонстрация на униполярен и биполярен стъпков двигател……………………………………………………………………………………….…1стр. 11.PIC16F84 STARTER KIT базова платка………………………………………….... 1стр. 12.USB GPIC SE програматор……………………………………………………………... 1стр. 13. Свързване на макета към базовата платка на Starter kit…………….1стр. 14. Демо програма за униполярен стъпков двигател………………………..1стр. Заключение Точка 1……………………………………………..………………………………………….. ..1стр.

2|Страница


УВОД – КРАТКО ВЪВЕДЕНИЕ

Хибридни стъпкови двигатели В сравнение с други видове, съвременните стъпкови двигатели притежават редица предимства, дължащи се на някои техни специфични особености: - Висока точност при позициониране - Сравнително просто регулиране на скоростта в широк диапазон - Възможност за изграждане на качествени отворени системи, без скъпоструващи датчици за обратни връзки. - Способност за запомняне на информацията - Скоростта остава постоянна при изменение на натоварването в широки граници. - Лесно свързване към цифрови управляващи устройства Като по-съществени недостатъци на тези системи може да се посочат: - Сравнително малък въртящ момент - Относително нисък коефициент на полезно действие Принципът на действие на стъпковите електродвигатели се основава на дискретното изменение на електромагнитното поле в работната въздушна междина, за сметка на импулсно възбуждане или превключване на намотките им. В действителност, всеки електромеханичен преобразувател на енергия, развиващ синхронизиращ момент или сила в циклично-повтарящите се възможни състояния (броят, на които е равен или по-голям от две), при условие на насочено преминаване в поредното устойчиво състояние, може да се използва в качеството на стъпков двигател. Това най-общо определение обуславя твърде голямо разнообразие в конструкциите на 3|Страница


стъпковите двигатели. Подробна класификация може да се направи по следните класификационни признаци: - Прототип - Вид на движението - Винд на връзката между подвижния и неподвижния елемент - Начин на преобразуване и предаване на енергията към подвижния елемент - Тип на възбуждането на магнитната система - Източник на възбуждане - Брой на фазите - Брой на пакетите на статора или котвата - Брой на координатите на преместване на подвижния елемент - Вид на контура на затваряне на магнитния поток

Въпреки голямото разнообразие, може да се отбележи, че съвременните стъпкови двигатели обикновено са на базата на синхронен прототип. В общия случай, стъпковият двигател от синхронен тип предсравлява m-фазна електрическа машина, намотките на която се възбуждат със стъпаловидни напрежения. На всеки подаден импулс в унитарен код отговаря превкючване на фазите на двигателя и съответно преместване на подвижния елемент на една стъпка.

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

4|Страница


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

ФИГ. 1.1 В зависимост от типа на стъпковия двигател, източникът на магнитния поток може да бъде: - Възбудени намотки - Постоянни магнити - Комбинация от двете

Фиг. 1.2

5|Страница


По-този признак стъпковите двигатели се разделят на следните групи: - Реактивни - С постоянни магнити - Хибридни

Реактивните стъпкови електродвигатели имат назъбен ротор от меко желязо и статор с намотки Фиг.1.2. Когато през статорната намотка протече постоянен ток, полюсите се намагнитизират. Завъртане на вала се получава, понеже зъбите на ротора се привличат от създадените магнитни полюси на статора. Роторът на стъпковия двигател с постоянни магнити е намагнитизиран с редуващи се северни полюси (N) и южни полюси (S), разположени по права линия, успоредна на оста на ротора (фиг.5). По този начин се увеличава интензитета на магнитния поток, поради което тези двигатели имат по-добър въртящ момент от реактивните. Стъпков двигател с постоянни магнити

Фиг.1.3

6|Страница


Конструктивните особености на широко разпространените хибридни стъпкови двигатели с брой на роторните зъби 50, са представени на фиг.1.4. На фиг.1.4а е показан външния вид на ротора, а на фиг.1.4б е дадено напречното сечение на двигателя откъм северния край на ротора.

Външен вид на ротора (а) и напречно сечение (б) на ХСД

ФИГ.1.4 През въздушната междина, зъбите на ротора си взаимодействат със съответно разположените зъби на статорния челен полюс. Статорните полюси се възбуждат от токове, протичащи в намотките, които обхващат полюсните елементи. При този модел зъбните деления на статора и на ротора са еднакви, но в някои двигатели зъбното деление на статора е поголямо от това на ротора, с цел създаване на фиксиращ момент и увеличаване точността на позициониране. Полюсите +А са възбудени така, че се явяват южни полюси (S) , а полюсите –А са северни (N). Роторните зъби, които се намагнетизират от северния край на постоянният магнит, се стремят да се изравнят с южните зъби на полюсите +А. По същият начин, в противоположния край на ротора, южните зъби ще се привличат до изравняване със северните полюси –А. Резултатът е, че машината се 7|Страница


стреми да се задържи в показаната позиция. Ако се възбудят полюсите В, по аналогичен начин роторът ще направи следваща стъпка. Структурата на зъбите на статора и на ротора е избрана така, че да обезпечава малка ъглова стъпка. Механичната стъпка на двигателя зависи от режима на възбуждане на фазите и се определя от уравнението:

Където: е електрическата стъпка; – броят на зъбите на ротора. Ако за двигателя от фиг.1.4 се приложи следната последователност на възбуждане на фазите: +А, +В, -А, -В, +А, … - за посока напред +А, -В, -А, +В, +А, … - за посока назад Стъпката ще бъде

, понеже в този случай

съответните параметри са

8|Страница


АРХИТЕКТУРА НА МИКРОПРОЦЕСОРНИТЕ СИСТЕМИ Предназначение на компютъра – Основна задача на числовия компютър е да обработва някакъв поток от входни данни по заложен алгоритъм и като резултат от това да генерира изходни данни, подходящи за употреба в конкретен аспект. Принципът, по който работят масовите компютри, е комбинация от два отделни принципа: - Принцип на програмното управление, формулиран от Чарлз Бабидж през 1883г. - Принцип на съхраняване в паметта програма, формулиран през 1945г. от Джон фон Нойман. Компютърната архитектура представлява набора от основни подсистеми на компютъра, тяхната връзка и правила за съвместната им работа при реализация на конкретен образец. Отделните елементи на компютъра имат собствени архитектури и някои от тях ще бъдат разгледани по-нататък. Съгласно с така формулираното предназначение на компютъра се запознава с основата и разширените структури на една компютърна система. Стандартна системна архитектура В настоящия момент терминът „стандартна системна архитектура“ включва няколко различни тълкувания. Ще се разгледа найконсервативното тълкуване, което е и най-приложимо за класа на малките

9|Страница


и средните еднопроцесорни системи, явяващи се основен структурен елемент на компютърните системи за управление.

Фиг.1.5 Архитектура „фон Нойман“ Три основни елемента на тази архитектура са: - Процесор - Памет - Системна магистрала Тези три компонента са достатъчни, за да може един компютър да работи. Веднага се забелязва липсата на възможност машината да се свързва с външния свят. Поради тази причина се добавя последният компонент входно-изходни устройства.

Предназначение на основните системни елементи

Процесор (CPU – central processing unit) – главен елемент на компютъра. В него се извършват обработките на входните данни според заложената програма. Начинът, по който процесорът чете програмата, разпознава какви действия има да се извършват и конкретното им изпълнение. Памет (Memory) компонент на компютъра, в който се съхраняват програмите и данните. При стандартната архитектура не се прави 10 | С т р а н и ц а


съдържателна разлика между програма и данни тоест те не могат да бъдат различени, ако се чете паметта и няма никаква допълнителна информация за това как да се интерпретира прочетеното. Част от паметта е енергозависима тоест при спиране на захранването с енергия тя губи своето съдържание (RAM – random assess memory). Друга част от паметта е енергозависима тоест тя запазва записаното в нея и без захранване (ROM – read only memory). Системна магистрала (System bus) се състои от набор линии, които свързват отделните компоненти на компютъра така, както е показано на фиг.1.6. Системната магистрала се състои на свой ред от няколко отделни вида подмагистрали. Входни и изходни устройства (input / output devices) служат да осигурят връзка на компютъра с околния свят. Някои от тях са предназначени за връзка с човек, а други – не. Друг термин, който се използва за тях е „интерфейсни устройства“. Входните и изходни устройства са свързани към компютъра посредствено чрез периферни интерфейсни адаптери или контролери.

фиг.1.6 Базова системна архитектура Системната магистрала се състои от три шини: адресна, за данни и управляваща от фиг.1.7 Адресната шина (Address bus) е еднопосочна шина, която излиза от 11 | С т р а н и ц а


процесора към останалите компоненти на компютъра. Както сочи името, по адресната шина се предават адресите на клетките от паметта, с които ще се работи. Шина данни (Data bus) е двупосочна шина, по която се обменят данни между процесора и останалите компоненти (памет и интерфейсни устройства ). Управляващата шина се състои от набор линии, предназначени за предаване на различни управляващи сигнали от процесора, както и обратни връзки и заявки към него.

ФИГ. 1.7 Системна магистрала

Организация от такъв тип е характерна за малки системи, които не са натоварени с голямо количество разнообразни обработки. При тази архитектура процесорът управлява дейността на всички устройства, които са свързани към магистрала. Това води до значителни загуби на време, свързани с контрола на функционирането на различните периферни устройства. Подобно разхищение е недопустимо в системите, които са натоварени с голям брой разнообразни действия, както и в тези, които обменят информация с външния свят със скорост, надвишаваща бързодействието на процесора. Това налага преминаване към

12 | С т р а н и ц а


архитектури, осигуряващи повишена производителност на компютърната система. Архитектура на системи с повишена производителност Структура на система, при която са взети мерки да се намали максималното натоварване на процесора с действия по обслужване на периферни устройства е показана на фиг.1.8 Тук имаме следните компоненти: Процесор – тук той не е устройство, което управлява достъпа до системната магистрала. Памет – Няма разлика спрямо базовия вариант. Математически копроцесор – специализирано устройство с оптимизирана за изчисления вътрешна структура. Според сложността си може да служи като ускорител при изчисляване с реални числа или да изчислява редица базови математически функции с висока точност. Графичен процесор – при системи, които имат графични дисплеи, служи за формиране на изображения на базата на команди. Комуникационен процесор – поддържа специфичен вид комуникационен протокол. Бавни входно-изходни устройства – свързани са към компютъра посредством специализиран контролер, който е в състояние да обслужва множество устройства от подобен вид. Бързи входно-изходни устройства – представляват устройства , които четат или записват информация с голяма скорост и на цели блокове.

13 | С т р а н и ц а


ФИГ.1.8 Архитектура с повишена производителност Характерно за тази архитектура е, че тук процесорът управлява входно-изходните операции, като инициализира съответните интелигентни контролери на съответните периферни устройства и получава уведомление за края на операцията. Задачите на процесора се свеждат най-вече до реализиране на логиката на програмата, като за всяко специализирано действие се активизира съответното специализирано устройство. Разбира се, тази архитектура е идеализирана в определена степен и реалните системи включват различни нейни елементи. Все пак един съвременен персонален компютър или малък сървър има архитектура, която практически не се различава съществено показана. Независимо колко се разпределя натовареното по специализираните подсистеми, централният процесор си остава един и това се явява значителна пречка пред възможностите за ускоряване на

14 | С т р а н и ц а


работата на системата. Естесвена е мисълта за повишаване на броя на процесорите. ОРГАНИЗАЦИЯ И СТРУКТУРА НА МИКРОПРОЦЕСОРИТЕ Операционно устройство на процесора, процесори със специализирани и с общи регистри. Видове инструкции и режими на адресация. Функциониране на процесора в режим на програмно управление, изпълнение на линейни последователности от инструкции, условни и безусловни преходи, преходи към подпрограми и програми. Последователни и конвейерни режими. Управляващо устройство – апаратно и микропрограмно управление. Интерфейсно устройство – системни шини и сигнали.

КЛАСИФИКАЦИЯ НА КОМПЮТЪРНИТЕ АРХИТЕКТУРИ. Процесорът е машина, която работи по принципа на програмното управление, тоест той получава инструкции от някаква програма и ги изпълнява според заложения в нея начин. Най-използваната и до момента класификация на компютърните архитектури е дадена от Флин през 1966г. Тя е базирана на понятието за информационен поток. Дефинират се два информационни потока към процесора инструкции и данни. Потокът на инструкциите – последователност от инструкции, изпълнявани от процесора.

15 | С т р а н и ц а


Потокът на данни – обмяна на данни между процесора и паметта. Данните са операндите на действията, зададени с инструкции. Всеки един от тези потопи може да бъде самостоятелен или множествен. Според комбинациите „един-много“, се получават следните варианти: - Един поток инструкции – един поток данни (single-instruction singledata streams SISD) - Един поток инструкции – много потоци данни (single-instruction multiple-data streams SIMD) - Много потоци инструкции – един поток данни (multiple-instruction single-data streams MISD) - Много потоци инструкции – много потоци данни (multiple-instruction multiple-data streams MIMD) Най-разпространените в момента архитектури са „един поток инструкции един поток данни“. Обща структура на процесора Процесора има три основни съставни части. - Операционно устройство (ОУ) - Управляващо устройство (УУ) - Интерфейсно устройство (ИУ)

16 | С т р а н и ц а


ФИГ 1.9 Централен процесор – базова схема

Предназначението на отделните части на процесора, е както следва: - ОУ – в този възел се извършват всички обработки върху данните. - УУ – както показва и името, това е възелът, който управлява и синхронизира работата на ОУ и ИУ. - ИУ – осъществява връзката между останалите елементи на процесора и системната магистрала. Служи за буфериране на данни и адреси и за формиране и разпознаване на управляващи сигнали. Тези обобщена блок-схема дава начална представа за елементите на процесора. За да се разбере работата му, е необходим детайлен анализ на всеки един от тези компоненти. Една по-подробна структурна схема с показана на фиг.1.10

17 | С т р а н и ц а


ФИГ.1.10 Централен процесор – разширена схема На разширена схема трите основни устройства съдържат следните основни елементи: - АЛУ – аритметично и логическо устройство - БО – буфер за операнд - Регистров блок - РКУ – регистър за кодовете на условията - Р – регистър от регистровия блок - Буф.КОП – буфер за кода на операцията - АБ – адресен буфер - БАР – буферен адресен регистър - БД – буфер данни - БРД – буферен регистър за данни - БУС – буфер управляващи сигнали - ИУУ – интерфейсно управляващо устойство - УС/ОВ – управляващи сигнали / обратни връзки 18 | С т р а н и ц а


Тук БО съхранява временно първия операнд на операцията, ако тя има два операнда. Така при изпълнение на двуоперандна инструкция действията се развиват по следния начин: - Протича се първият операнд и се запазва в БО - Протича се вторият операнд (временно се съхранява в БРД) - Двата операнда се подават на АЛУ и се извършва действието - Резултатът се записва на мястото на единия операнд (според процесора и вида на инструкцията може да се запише и на ново място).

ОРГАНИЗАЦИЯ И СТРУКТУРА НА ПАМЕТТА

Видове памети – класификация и характеристики. Възможни са няколко вида класификации на паметите. Основните разделения са в следните посоки: -

Вътрешна за компютъра и външната памет.

-

Енергозависима и енергонезависима.

-

Адресна и безадресна памет.

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

19 | С т р а н и ц а


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

Йерархия на запаметяващите устройства Преди да се разгледат структурите на различните запаметяващи устройства, е необходимо да бъдат разгледани няколко общи положения, които определят избора на различни използвани устройства в конкретни компютърни реализации и какви са ползите и разходите при съответния подход. За постигане на оптимално поведение на компютъра програмата и данните , които тя обработва, трябва да са достъпни максимално бързо и максимално лесно за процесора. От апаратна гледна точка най-бързо достъпни са вътрешнопроцесорните регистри. Те обаче имат недостатъка, че са с малък обем. Основната памет на компютъра осигурява комбинация от голям обем и добро бързодействие. Това обаче става за сметка на цената на устройството. При дисковете цената е по-малка, но бързодействието също намалява. Абстрактно погледнато, комбинацията от различните видове памет осигурява един голям блок памет, докато всъщност имаме комбинация от различни устройства с различни 20 | С т р а н и ц а


характеристики, формиращи подсистемата на паметта на компютъра. На практика запомнящите устройства са подредени в определена връзка помежду си и се формират така наречената „иерархия на запаметяващите устройства“ показана на фиг.1.11

Фиг. 1.11 Йерархия на запаметяващите устройства

Когато по-голям обемът на конкретен тип памет, толкова по ниска е цената (на байт) и по-ниско бързодействието. Друг проблем, очертал се все повече в последните години, е разликата в бързодействието на процесора, основната памет и системната магистрала. Този факт води до това, че бърз процесор трябва да ползва бавна магистрала и памет, при което естествено спада рязко. Решението на проблема е в две посоки: - Повишаване на бързодействието на бавните блокове. - Включване на междинен елемент памет, елиминиращ в значителна степен ефекта от разликата в бързодействието между процесора и основната памет така наречената кеш памет 21 | С т р а н и ц а


Характеристики на запаметяващите устройства Най-важните характеристики на елементите на подсистемата на паметта са обем, време за достъп, скорост на обмен, време на цикъла на достъп, цена. - Обем – това е максималният брой обекти (битове, байтове, думи), които могат да бъдат записани в един блок от съответен вид. - Време на достъп – времето за протичане на дадена данна след генериране на адреса й. При външни запомнящи устройства това време не е постоянно, защото включва в себе си времето за намиране на съответния запис преди неговото протичане. - Скорост на обмен – това е броят битове, които могат да бъдат прочетени за една секунда. - Време на цикъла на достъп – показва какво е минималното време за достъп до една клетка. Свързано е с това колко време е необходимо на клетката след операция „четене“ или „запис“ да се върне в състояние на готовност за работа. - Цена на байт – това е показател, който се формира от отношението обем/цена. Обща е тенденцията на намаляване на тази цена при повишаване на единичния обем на устройствата.

Физическа организация на постоянна и оперативна памет

В българския език обичайно оперативната памет се нарича с термина RAM, а постоянната ROM. В англоезичната литература като работни термини се ползват същите означения.

22 | С т р а н и ц а


Основната памет на компютъра е изградена от блокове памет с произволен достъп (Random Access Memory - RAM). В тази памет се разделя на два вида – памет за четене и запис (Read-Only Memory – ROM). Не е необходимо да се променят говорните стереотипи на компютърните специалисти, но е необходимо да не се забравя, че всъщност терминът RAM обхваща смислово и двата вида памети. Основни видове енергозависими памети - ROM – Постоянна памет със заводски записана информация (Maskable ROM). Това е възможно най-надеждното запомнящо устройство. Неговата надеждност е съизмерима с тази на процесора. Заводски записани памети се произвеждат само когато тиражът ще бъде много голям и е сигурно, че не се предвиждат никаква форма на модификация на съдържанието. - PROM – Програмируема постоянна памет. Това е вариант на постоянна памет, информацията, в която се записва чрез устройство, наречено програматор. Заводски устройството съдържа само „0“ и „1“ и чрез програматора съответните му битове се модифицират. Записът е еднократен, не може да се правят модификации. Базата на всеки транзистор е свързана с елемент, който може да бъде прогорен при протичане на съответен ток. При записа съответните връзки се прогарят и устройството се програмира. - EPROM – Изтриваема програмируема постоянна памет (Erasable PROM). При това устройство е възможно записаната информация да се изтрива чрез ултравиолетова лампа с подходящ спектър. За целта върху корпуса на чипа има монтиран прозорец. Нормално един чип издържа няколко десетки цикъла „изтриване/презапис“. Недостатъците на този тип памети са необходимо да се вади от 23 | С т р а н и ц а


устройството, за да се изтрива, изтриването е сравнително бавно, не може да се модифицира селективно зона от паметта, налага се да се програмира повторно целия чип. - EEPROM – Електрически изтриваема програмируема постоянна памет. При този вариант на постоянна памет съдържанието й може да се променя по време на работа на компютъра, като за целта блокът EEPROM е съоръжен с устройство за изтриване и за препрограмиране. При този процес паметта е недостъпна за обикновено четене. Тази памет е удобна за съхранение на оперативни данни от работата на компютъра, както и за относително малки програми. Друго предимство е скоростта на програмиране , която е по-висока от тази на повечето EPROM чипове. Недостатък спрямо EPROM е по-високата цена и ниската плътност на елемнтите. - FLASH – Това е последното поколение EEPROM, при която времето за презапис и общото бързодействие са подобрени. Освен това е повишен броят цикли „изтриване/презапис“ над 10 000 пъти, както и обемът на устройствата. На практика този тип памети имат плътност, подобна на EPROM. При тези компоненти се използва технология на блоково изтриване, като се изтрива наведнъж целия чип или както е в момента.

Основно предназначение на ROM паметите Тези памети са предназначени да съхраняват следните основни видове програми и данни: - Рестарт-програми – това са всички програми и инициализационни данни, които трябва да са налични при включване на компютъра. По-

24 | С т р а н и ц а


точен е терминът firmware, който не се провежда добре на български език. - Зареждащи програми – това са програмите, които са стартират с цел зареждане на операционната система на комютъра. - Таблици с данни, знакогенератори, кодогенератори. - Преносими дискове – сегашните версии на flash памети се използват успешно като преносими дискови устройства, съвместими с разнообразни операционни системи.

Основни видове RAM Статичен RAM – Това е вид RAM, при който записаната информация се съхранява до тогава, докато има захранване. Използват се различни технологии, като се балансира между бързодействие, обем и енергоемкост. На фиг.1.12 са показани варианти на реализация на един запомнящ елемент (тригер) чрез биполярни и MOSFET транзистори.

ФИГ.1.12 Схеми на запомнящи елементи по биполярна и NMOS технология

25 | С т р а н и ц а


Динамичен RAM – Това е вид RAM, при който записаната информация се съхранява не в тригери, както при статичните, а в кондензатор. Това води до резултата, че след определено време съдържанието на съответната клетка се изгубва поради наличието на утечни съпротивления. Този факт предполага съдържанието на паметта периодично да се опреснява. Периодът на опресняване варира между стойности 2-8 ms. Това е недостатък спрямо статичните памети, защото предполага допълнителни ресурси за опресняването. Много от сега произвежданите динамични памети имат ресурси за опресняването. Много от сега произвежданите динамични памети имат схеми за опресняване, които са вградени в тях и елиминират нуждата от допълнителна апаратура. Предимства на динамичните пред статичните RAM са намалена консумация на енергия и значително по-голям информационен капацитет на компонентите.

26 | С т р а н и ц а


РЕАЛИЗАЦИЯ НА МАКЕТА

Въведение микроконтролер за управление на стъпков двигател За целта е избран PIC16F84 поради голямата си популярност. Опростената периферия, малкият брой регистри и инструкции, го прави подходящ за обучение на начинаещи и същевременно позволява да се демонстрират различни масови приложения в електрониката, с малка и средна степен на сложност. Освен изброените предимства има и други, като например ползването на безплатната среда за програмиране на Microchip, MPLAB IDE. Освен езика асемблер, тя позволява интегрирането на други езикови инструменти. В някои примери с по-висока сложност сме използвали „C“ компилатора CC5X, които е безплатен, опростен и генерира много компактен код, което го прави изключително подходящ за ограниченият ресурс на PIC16F84. Тренировъчният комплект се състои от базова платка, която позволява комбинирането с набор от периферни платки с цел демонстрация на различни приложения. Въвеждането на програмите в микроконтролера се извършва чрез външен програматор, като по време на програмирането периферията се изключва автоматично чрез вградения мултиплексор. Базовата платка е съвместима с оригиналните програматори на Microchip PIC kit2 и PIC kit3. За постигане на по-голяма гъвкавост някои от изводите на микроконтролера се конфигурират с джъмпери в зависимост от нуждите на потребителя. Наличен е сменяем набор от кварцови резонатори, възможност за поставяне на RC и външен осцилатор. Платките са проектирани с максимална защита от погрешно включване, което ги предпазва от повреда. С цел да се избегне четенето на документации в процеса на работа, информацията за конфигуриране на джъмпери и състояния на линии при определени комбинации са описани 27 | С т р а н и ц а


в таблици върху самите платки. За удобство са предвидени допълнителни изводи със захранващи напрежения +5V и +12V. Освен за образователни цели платките могат да се използват и за изработване на готови устройства. Например: Часовник, термометър, контролер за светлинни ефекти, управление на двигател и др.

Стъпковите мотори се отличават от конвенционалните по това, че оста им може да се позиционира с фиксирани стъпки и да се задържа на съответната позиция. Това се постига със специална конструкция на ротора, където има два назъбени диска от постоянни магнити съответно за N и S полюсите. Диска за N се разминава с този за S, със един зъб. Стъпката на двигателя се измерва в ъглови градуси и зависи от броя зъби на ротора. Колкото са по-вече те, толкова по-вече на брой и по-малки са стъпките. Статорът се състои от бобина навита върху ламели от магнитно мек материал, и всяка от тях представлява електромагнит, където посоката на магнитното поле зависи от поляритета на подаденото напрежение. Статорът също има назъбена структура, съобразно с ротора. На фиг. 2.1 са показани съставните части на разглобен стъпков мотор.

ФИГ 2.1

28 | С т р а н и ц а


Взаимодействието на полетата създадени от постоянните магнити и тези от бобините предизвикват завъртане на оста в определена посока в зависимост от начина на подаване на напрежения. Има два вида стъпкови двигатели, униполярни и биполярни. Разлика в намотките в двата вида е показана на фиг.2.2

ФИГ 2.2

Униполярните стъпкови двигатели. При този тип стъпкови мотори средният край на двете бобини е изведен отвън с два допълнителни проводника. Така общият брой проводници става шест. Тъй като средните краища се свързват общо понякога това се прави вътрешно и стъпковият двигател може да е със пет извода. При този вид мотори управлението се осъществява като общия край се свързва към единия полюс на захранващия източник, а на останалите четири извода се подава по единично напрежение от другия полюс за определено време от порядъка на милисекунди. Управляващият драйвер редува намотките последователно и така се получава движение на стъпки в една посока. За да се реверсира движението на ротора е достатъчно само да промени редът на подаване на напрежение към намотките. При този начин на управление (Wave drive), въртящият момент е малък, защото се използва само по една бобина в определен момент от време. 29 | С т р а н и ц а


Положение на ротора при униполярен мотор в зависимост от подаване на напрежение на намотките. Wave drive

Full step drive

30 | С т р а н и ц а


Тъй като напрежението, което се използва е само с една и съща полярност за всяка бобина двигателят се нарича униполярен. Броят на стъпките може да се удвои, ако подаваме напрежение едновременно към две съседни бобини. Така роторът застава в междинно положение и може да бъде позициониран по средата. Това се нарича пълна стъпка (full step drive). При този режим на управления в един и същ момент имаме захранени по две бобини така че въртящият момент е по-голям от колкото при (wave drive). Комбинацията от wave drive и full step drive се нарича half stepping. Така един пълен цикъл съдържа осем стъпки. В по-прецизните системи, драйверът може да пуска различен по-големина ток в двете съседни бобини, така че роторът да се позиционира в зависимост от съотношенията на токовете. Така броят на стъпките става още по-голям, тъй като се получават допълнителни междинни позиции. Този режим е познат като Micro stepping. Най-често за управлението в този режим се използват токове псевдосинусоидална форма, цифрово синтезирана синусоида. Така разделителната способност на двигателя става много голяма. Допълнително тя може да се повиши с използването на понижаващ оборотите редуктор. Управление в такъв режим може да се извърши с микропроцесорна система или специализиран драйверен чип.

Биполярни стъпкови двигатели. При този тип стъпкови мотори има две бобини, като всяка от тях е съставена от по две части разположени една срещу друга. За разлика от униполярните мотори, тук няма изводи от средите на бобините, така че имат само четири извода. Характерно, че магнитната сила, която действа на ротора се получава едновременно от двете срещуположни части на всяка бобина, което обуславя по-големия въртящ момент. Друга 31 | С т р а н и ц а


съществена разлика, че в процеса на управление се променя полярността на напрежението, в което се подава на бобините. За това тези двигатели се наричат биполярни. Показани са възможните състояния на ротора при съответната полярност на подаваните напрежения. Както се вижда работните режими са аналогични при тези на униполярния мотор.

32 | С т р а н и ц а


Положения на ротора при биполярен мотор в зависимост от подаваните напрежения на намотките.

33 | С т р а н и ц а


Макет за демонстрация на униполярен и биполярен стъпков двигател.

Макетът е приставка, която е напълно съвместима с базовата платка на PIC16F84A Starter kit и позполява управление на стъпковия двигател в различни режими, чрез предварително написан и зареден в микроконтролера фърмуер. Използваният стъпков двигател е униполярен със шест извода, но може да демонстрира и работа, като биполярен. Захранването (+12V и +5V) на двигателя и специализираният драйверен чип L293D се осъществява от базовата платка посредством свързващият куплунг. Макета разполага със самовъзстановяем предпазител за защита от къси съединения, некоректни свързвания и работни режими. За да се онагледи управляващият алгоритъм към схемите на двигателя са добавени светодиоди, които индицират активността на намотката и полярността на даденото напрежение със съответния цвят. Състоянията на управляващите сигнали от микроконтролера също могат да се наблюдават чрез светодиоди, които светят при логическа 1-ца . Моторът, който е поставен на макета е униполярен със шест извода, но се използва и за демонстрация на биполярен, като при този режим средните изводи не се свързват никъде. При включването между униполярен и биполярен режим става чрез поставяне на платка куплунг (тапа в съответния слот на макета). Избрания режим се индицира от зелени светодиоди разположени в заглавната част. Демонстрационният фърмуер илюстрира по четири работни режима на стъпковия двигател съответно при униполярно и биполярно свързване. Това са въртене надясно и наляво с пълна стъпка 7,5 градуса и въртене наляво и надясно със смесена стъпка (полустъпка). Изборът на режима става чрез бутона отдолу по средата на макета. Избраният режим се индицира върху LCD свързано към базовата платка. 34 | С т р а н и ц а


Свързването на макета към порта на базовата платка се осъществява чрез лентов кабел. Не е необходимо да се извършват никакви настройки. За да работи макета е необходимо микроконтролерът да бъде програмиран с един от двата hex файла, които съответно демонстрират работата на униполярен и биполярен стъпков двигател. Примерните програми са оптимизирани за работа на контролера с такава честота 4MHz.За целта, на базовата платка трябва да е поставен кварцов резонатор със същата честота. Необходимата мощност за управление на двигателя се постига от четири еднотипни драйвера и един корпус (L293D) всеки един от тях се управлява по отделно от логически нива 0 и 1 и може да осигури на изхода на напрежение до 36V и ток до 600mA. С цел да се предотврати повреда на драйвера на токовете на самоиндукция на ротора в чипа се интегрирани защитни диоди. Таблицата на истинност за всеки от четирите драйвера при наличното свързване на интегралната схема L293D е следната

DRIVER L293D IN(n)

OUT(n)

0

GND

1

+12V

В таблиците по-долу с различен цвят са дадени комбинациите подаване съответно към намотките към униполярен и биполярен двигател, при които се осъществява Wave drive и full drive. При последователното редуване на Wave и Full drive се получава режим half step drive при което роторът се позиционира с половината от оказаната за двигателя стъпка. В

35 | С т р а н и ц а


случая двигателя е със стъпка 7,5 градуса от което следва, че при последно посочения режим, ще имаме движение през 3,75 градуса.

Униполярен двигател DRIVER L293D STEP

D(OUT4)

C(OUT3)

B(OUT2)

A(OUT1)

Active coil

Wave

GND

GND

GND

+12V

A

Full

GND

GND

+12V

+12V

AB

Wave

GND

GND

+12V

GND

B

Full

GND

+12V

+12V

GND

BC

Wave

GND

+12V

GND

GND

C

Full

+12V

+12V

GND

GND

CD

Wave

+12V

GND

GND

GND

D

Full

+12V

GND

GND

+12V

DA

Биполярен двигател DRIVER L293D STEP

B2(OUT4)

B1(OUT3)

A2(OUT2)

A1(OUT1)

Active coil

Wave

GND

GND

GND

+12V

A+

Full

GND

+12V

GND

+12V

A+B+

Wave

GND

+12V

GND

GND

B+

Full

GND

+12V

+12V

GND

B+A-

Wave

GND

GND

+12V

GND

A-

Full

+12V

GND

+12V

GND

B-A-

Wave

+12V

GND

GND

GND

B-

Full

+12V

GND

GND

+12V

B-A+ 36 | С т р а н и ц а


Времедиаграми за режимите Wave drive и Full step drive на униполярен и биполярен стъпков двигател

37 | С т р а н и ц а


Базова платка Базовата платка – Starter KIT, позволява комбинации с набор от периферни платки с цел демонстрация на различни приложения. Въвеждането на програмите в микроконтролера се извършва чрез външен програматор. Базовата платка е съвместима с оригиналните програматори на Microchip PIC kit2 и PIC kit3. За постигане на по-голяма гъвкавост някои от изводите на микроконтролера се конфигурират с джъмпери в зависимост от нуждите на потребителя. Характеристики : – Захранващо напрежение: +12V; – Размери на платката: 120 x 80 mm; Начин на свързване на базовата платка Връзката към всички периферни платки към PORTB се осъществява посредством конектора IDC2X10M, а към PORTA - посредством конектора IDC2X7M. Конекторът PGM2 позволява свързване на програматора GPIC SE към базовата платка.

Базовата платка е разделена на няколко блока, като първият от тях е блок Power Supply Area. Чрез него се осъществява захранването на базовата платка Starter KIT. Към куплунга J1 се подава +12V захранващо напрежение. Чрез превключвателя ON/OFF се включва или изключва захранването. Терминалите за +5V и за +12V са предвидени за удобство на потребителя, като чрез тях могат да бъдат захранвани външни устройства. LED1 индицира подадено захранване към базовата платка. Блокът Programmer Area осъществява връзката между програматора и базовата платка. Към конектора PGM2 се свързва програматорът GPIC SE, а към 38 | С т р а н и ц а


PGM1 може да бъде свързан един от двата програматора на Microchip PIC kit2 или PIC kit3. Блокът Oscillator Board е предназначен за различни видове осцилатори, като кварцов резонатор, RC и външен осцилатор. Изводите RB0/INT и A4/T0CKI имат по три избираеми опции с цел поголяма гъвкавост. PORTA има възможност за включване на pull-up резистори за всеки извод. Изборът на опции се осъществява с помощта на джъмпери съгласно таблиците на платката.

Забележки: В предвид на това, че всяка периферна платка има електролитни кондензатори на захранването, се получава сумарен капацитет, който има време за разряд (в зависимост от комбинацията на платки) от порядъка на 1 ÷ 3 секунди след изключване на ключа. За да не се получават случайни стойности в регистрите на микроконтролера, преди следващо запускане от ключа е необходимо да се изчака няколко секунди да се разредят кондензаторите напълно и да се ресетнат регистрите. В противен случай може да се наложи ръчен ресет с бутона на платката. Желателно е програмирането да става при изключен ключ, като се изчаква 2-3 секунди след изключването. В редки случаи, когато възникне грешка при програмирането, може да се наложи изваждането на платката за осцилатора. Натискането на бутона ресет се отнася само за микроконтролера, но не и за периферията. Единственият начин да се извърши ресет на периферните платки е да се изключи захранването и да се изчака няколко секунди. Такава нужда най-често може да възникне при използването на LCD.

39 | С т р а н и ц а


Принципна схема на базовата платка

Начин на свързване

40 | С т р а н и ц а


USB програматор GPIC SE

Характеристики: – miniUSB интерфейс – опростен хардуер – програматорът не се нуждае от външно захранване – поддържани микроконтролери: 10Fx, 12Fx, 12LFx, 16Fx, 16LFx, 18Fx, 18FxJ, 18FxK, 30Fx, 24FJx, 24HJx, 33FJx – увеличен брой поддържани сериени EEPROM I2C, Microwire – безплатен софтуер и фърмуер ( http://www.sitionica.com.ar/ )

Начин на свързване на програматора Програматорът се свързва към USB порта на всеки PC или лаптоп посредством кабел от USB към miniUSB. Към конектора IDC 2x5M са изведени всички необходими изводи за програмирането на поддържаните микроконтролери. Връзката между програматора и базовата платката (Starter KIT ver.1) се осъществява посредством лентов кабел.

41 | С т р а н и ц а


Електрическа схема на макета

42 | С т р а н и ц а


Свързване на макета към базовата платка на Starter kit

Забележки: Микроконтролерът да се програмира само при изключено захранване! Да се избягват работни времена за намотките на двигателя по-големи от 500ms и продължително непрекъснато подаване на напрежение, тъй като има опасност от прегряване на драйверния чип и мотора! 43 | С т р а н и ц а


Ако се забележи видимо спадане на интензитета на светодиодите, да се изключи незабавно захранването,докато се охлади чипа! В режим на униполярен двигател посоката указвана от индициращите светодиоди е обратна на посоката движението на стрелката !

Код на програмата /* UIPOLAR STEP MOTOR DEMO PROGRAM ----------------------------------------------------------------------------------------------------------This program is purposed for PIC16F84 STARTER KIT and demonstrate: 1) Unipolar step motor driving. 2) LCD indication of step motor's mode . 3) Changing the step motor's mode by button 3) Delay using TMR0. This file is compiled by free edition of CC5X compiler,as added tool to MPLAB IDE Some of routines are splitted into elementary parts where more of temporary variables are used. That's because the compiler is limited for some possibilities. -------------------------------------------------------------------------------AUTHOR: Research and development department of "PASAT ELECTRONICS LTD"-04.02.2013 NOTE:

44 | С т р а н и ц а


This program is just a basic example,able to work without claims for the perfect firmware. Of course it can be modified, optimized and upgraded by the user, which is a matter of taste,creativity and skills. --------------------------------------------------------------------------------------------------------------------*/ #include "int16CXX.h" #asm ;----- CONFIG Options -------------------------------------------------_FOSC_LP

EQU H'3FFC' ; LP oscillator

_LP_OSC

EQU H'3FFC' ; LP oscillator

_FOSC_XT

EQU H'3FFD' ; XT oscillator

_XT_OSC

EQU H'3FFD' ; XT oscillator

_FOSC_HS

EQU H'3FFE' ; HS oscillator

_HS_OSC

EQU H'3FFE' ; HS oscillator

_FOSC_EXTRC _RC_OSC

EQU H'3FFF' ; RC oscillator EQU H'3FFF' ; RC oscillator

_WDTE_OFF

EQU H'3FFB' ; WDT disabled

_WDT_OFF

EQU H'3FFB' ; WDT disabled

_WDTE_ON

EQU H'3FFF' ; WDT enabled

_WDT_ON

EQU H'3FFF' ; WDT enabled

_PWRTE_ON

EQU H'3FF7' ; Power-up Timer is enabled

_PWRTE_OFF

EQU H'3FFF' ; Power-up Timer is disabled

45 | С т р а н и ц а


_CP_ON

EQU H'000F' ; All program memory is code protected

_CP_OFF

EQU H'3FFF' ; Code protection disabled

#endasm // #pragma config = _PWRTE_ON & _WDT_OFF & _XT_OSC // //--------------STEP MOTOR DEFINITIONS--------------------// #define A 0x01 #define B 0x02 #define C 0x04 #define D 0x08 // #define AB A|B #define BC B|C #define CD C|D #define DA D|A // #define Right 1 #define Left 0 #define Speed (unsigned long)250 //Step time [ms] // const unsigned char Wave_left[4]={A,B,C,D}; const unsigned char Wave_right[4]={D,C,B,A}; const unsigned char Full_step_left[4]={AB,BC,CD,DA};

46 | С т р а н и ц а


const unsigned char Full_step_right[4] ={DA,CD,BC,AB}; const unsigned char Half_step_left[8]={A,AB,B,BC,C,CD,D,DA}; const unsigned char Half_step_right[8]= {DA,D,CD,C,BC,B,AB,A}; // Variables unsigned char Mode_temp; unsigned char Mode; bit Button_flag; // //------------STEP MOTOR FUNCTION PROTOTYPES-----------------void Wave_mode(unsigned char Direction); void Full_step(unsigned char Direction); void Half_step(unsigned char Direction); unsigned char Scan_mode_button(void); void Delay_button(void); void Change_mode(void); void Display_mode(void); //Main delay function void delay_ms( unsigned long millisec); // /* ------------------------------------------------LCD_DEFINITIONS ------------------------------------------------*/ //LCD control pins #pragma bit LCD_RS

@ PORTB.1

47 | С т р а н и ц а


#pragma bit LCD_RW #pragma bit LCD_E

@ PORTB.2 @ PORTB.3

// //LCD Commands #define LCD_CLS

0x01

#define LCD_HOME

0x02

#define LCD_CURSOR_MOVE 0x06 #define LCD_HIDE_CURSOR 0x08 #define LCD_4BIT_2LINE 0x28 #define LCD_ON

0x0c

#define LCD_LINE1

0x80

#define LCD_LINE2

0xc0

// #define Command 0 #define Char

1

// // const struct { const char *s; }tb[]={ "Wave drive right", "Wave drive left ", "Full step right ", "Full step left ", "Half step right ",

48 | С т р а н и ц а


"Half step left " };

// // //-------------------LCD FUNCTION'S PROTOTYPES----------------

void Pulse_E(void); void Send_to_LCD(unsigned char Operation,unsigned char value); void LCD_init(void); unsigned char Convert_to_ASCII(unsigned char data_to_convert); void LCD_print_string(const char *data_string); // /* ---------------------------------------------------------------------LCD ROUTINES ---------------------------------------------------------------------*/ // void Pulse_E(void) { LCD_E=1; delay_ms(1); LCD_E=0; } //

49 | С т р а н и ц а


// // // unsigned char Convert_to_ASCII(unsigned char data_to_convert) { if(data_to_convert>=0x0a){data_to_convert+=0x37;} else {data_to_convert+=0x30;} return data_to_convert; } // // // // void LCD_init(void) { PORTB=0x01; TRISB=0x01; delay_ms(20); Send_to_LCD(Command,LCD_HOME); Send_to_LCD(Command,LCD_4BIT_2LINE); Send_to_LCD(Command,LCD_HIDE_CURSOR); Send_to_LCD(Command,LCD_CLS); Send_to_LCD(Command,LCD_CURSOR_MOVE); Send_to_LCD(Command,LCD_ON ); } //

50 | С т р а н и ц а


// void Send_to_LCD(unsigned char Operation,unsigned char value) { unsigned char temp; LCD_E=0; if(Operation==Command){LCD_RS=0;} else{LCD_RS=1;} PORTB&=0x0F; PORTB|=(value&0xf0); Pulse_E(); delay_ms(1); temp=((unsigned char)value<<4)&0xf0; PORTB&=0x0F; PORTB|=temp; Pulse_E(); delay_ms(1); } // // void LCD_print_string(const char *data_string) { unsigned char i,temp; const char *p; p=data_string; i=0; Send_to_LCD(Command,LCD_CLS);

51 | С т р а н и ц а


do { temp=*p; Send_to_LCD(Char,temp); p++; i++; if(i==8){Send_to_LCD(Command,LCD_LINE2);} } while(temp!=0); } // //---------------------------------------------------------//-----------------STEP MOTOR FUNCTIONS--------------------// // void Delay_button(void) { unsigned char x,y; x=0; y=4; do { x++; if(x==0){y-=1;} } while(y!=0);

52 | С т р а н и ц а


} // // // unsigned char Scan_mode_button(void) { if((PORTA&0x10)==0) { Delay_button(); if((PORTA&0x10)==0){return 1;} else{return 0;} } else{return 0;} } // // // void Change_mode(void) { PORTA=0; Mode++; if(Mode>=6){Mode=0;} Button_flag=1; } // //

53 | С т р а н и ц а


void Display_mode(void) { Mode_temp=Mode; LCD_print_string(tb[Mode_temp].s); while(Scan_mode_button()!=0); Button_flag=0;Mode=Mode_temp; } // // void delay_ms( unsigned long millisec) // Delays a multiple of 1 milliseconds at 4 MHz // using the TMR0 timer { char next = 0; OPTION = 2; // prescaler divide TMR0 rate by 8 TMR0 = 2; // deduct 2*8 fixed instruction cycles delay do { next += 125; while (TMR0 != next); // 125 * 8 = 1000 (= 1 ms) if(Scan_mode_button()!=0){Change_mode();return;} } while ( -- millisec != 0); } // //

54 | С т р а н и ц а


void Wave_mode(unsigned char Direction) { unsigned char i; for(i=0;i<4;i++) { if(Direction==Right) {PORTA=Wave_right[i];} else {PORTA=Wave_left[i];} if(Button_flag){return;} delay_ms(Speed); } } // // // void Full_step(unsigned char Direction) { unsigned char i; for(i=0;i<4;i++) { if(Direction==Right) {PORTA=Full_step_right[i];} else {PORTA=Full_step_left[i];} if(Button_flag){return;} delay_ms(Speed); }

55 | С т р а н и ц а


} // // void Half_step(unsigned char Direction) { unsigned char i; for(i=0;i<8;i++) { if(Direction==Right) {PORTA=Half_step_right[i];} else {PORTA=Half_step_left[i];} if(Button_flag){return;} delay_ms(Speed); } } // // void main(void) { PORTA=0x10; TRISA=0x10; Mode=0; Button_flag=0; LCD_init(); Display_mode();

56 | С т р а н и ц а


// while (1) {

if(Button_flag==1){Display_mode();} else{ switch(Mode) { case 0:{Wave_mode(Right);}break; case 1:{Wave_mode(Left);}break; case 2:{Full_step(Right);}break; case 3:{Full_step(Left);}break; case 4:{Half_step(Right);}break; case 5:{Half_step(Left);} } }

} }

ЗАКЛЮЧЕНИЕ ИЗПОЛЗВАНА ЛИТЕРАТУРА ПРИЛОЖЕНИЯ РЕЗЮМЕ НА ДИПЛОМНАТА РАБОТА

57 | С т р а н и ц а


!#dip#!  
Advertisement
Read more
Read more
Similar to
Popular now
Just for you