implementaion of an elevator control with two cabins, by using intel's 8085a microprocessor

31
Универзите Т - Инфо Контрола н користе Семинарска работа која претставу За поширока примена, потре Предмет: Микропроцесори и м Проф. д-р Цветко Митро ет „Св. Климент Охридски“ - Бит ТЕХНИЧКИ ФАКУЛТЕТ - БИТОЛА орматика и компјутерска техника на лифт со две ка ење на микропроц Intel 8085 - семинарска работа - ува истражување кое може да се применува исклу ебни се дополнителни истражувања, дополнувањ микроконтролери овски Са Битола, 2014 тола - абини со цесор учиво за образовни цели. ња, измени и тестови. Кандидат: ашко Крстевски 161

Upload: sashko-krstevski

Post on 10-Jul-2015

109 views

Category:

Education


9 download

TRANSCRIPT

Page 1: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

Универзитет

ТЕХНИЧКИ ФАКУЛТЕТ

- Информатика

Контрола накористење

Семинарска работа која претставува истражување кое

За поширока примена, потребни се

Предмет:

Микропроцесори и микроконтролериПроф. д-р Цветко Митровски

ниверзитет „Св. Климент Охридски“ - Битола

ТЕХНИЧКИ ФАКУЛТЕТ - БИТОЛА

Информатика и компјутерска техника

Контрола на лифт со две кабиникористење на микропроцесор

Intel 8085

- семинарска работа -

Семинарска работа која претставува истражување кое може да се применува исклуч

потребни се дополнителни истражувања, дополнувања, измени и тестови

микроконтролери р Цветко Митровски

Сашко

Битола, 2014

Битола

-

со две кабини со микропроцесор

исклучиво за образовни цели.

истражувања, дополнувања, измени и тестови.

Кандидат:

Сашко Крстевски161

Page 2: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

2

Содржина

1. Вовед .............................................................................................................................................. 3

2. Постоечки имплементации ........................................................................................................... 3

2.1 Систем I ........................................................................................................................................ 3

2.1.1 Кориснички карактеристики ................................................................................................. 4

2.1.2 Главни ограничувања ............................................................................................................ 5

2.1.3 Претпоставки ......................................................................................................................... 6

2.2 Систем II........................................................................................................................................ 6

2.2.1 Недостатоци .............................................................................................................................. 7

2.2.2 Концепти на новиот систем ...................................................................................................... 7

2.2.2.1 Компатибилност ................................................................................................................. 8

2.2.2.2 EIF картици .......................................................................................................................... 8

2.2.2.3 FIF картицa .......................................................................................................................... 9

2.2.2.4 IF картица ............................................................................................................................ 9

2.2.3 Комуникација .......................................................................................................................... 10

2.2.3.1 Комуникациски протокол ................................................................................................. 10

2.2.3.2 Струкутра на пораката ...................................................................................................... 11

2.2.4 Програма ................................................................................................................................. 12

3. Дефинирање на проблемот ......................................................................................................... 13

3.1 Пораки за комуникација ...................................................................................................... 14

3.1.1 Комуникација CPU – ECC ............................................................................................... 15

3.1.2 Комуникација CPU – IF и IF – CPU ................................................................................. 15

3.2 Електронски компоненти ..................................................................................................... 16

3.3 Електронска шема ................................................................................................................ 20

3.4 Организација на меморијата ............................................................................................... 22

3.5 Алгоритам на извршување на програмата .......................................................................... 24

4. Заклучок ....................................................................................................................................... 30

5. Користена литература .................................................................................................................. 31

Page 3: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

3

1. Вовед

Основната функција на еден лифт е пренесување на луѓе или на материјални добра од

точка А до точка Б. Постојат системи од лифтови (системи кои содржат повеќе од две кабини)

во кои најчесто се вршат пресметки за тоа која кабина да пристигне прва до почетната точка.

За извршување на основната функција, дополнително е воведен безбедносен систем со кој:

а) се гарантира дека лифтот нема да се придвижи доколку има човек или материјално добро

помеѓу вратите

б) сензор за тежина со кој се покажува капацитетот на кабината

в) систем за кочење, во случај кабината да се движи побрзо од предвиденото (во двете

насоки)

г) подот од кабината има систем за апсорпција на шокови/потреси предизвикани од тежината

на товарот.

2. Постоечки имплементации

Ќе бидат разгледани две постоечки имплементации на систем од лифтови.

2.1 Систем I

Системот прикажан на слика 1, се состои од два лифта и се придвижува со челично јаже. За

системот е даден дел од SRS – Software Requirements Specification документот, без

навлегување во детали на имплементацијата. Истиот се состои од следните надворешно

видливи компоненти (од страна на патник или оператор):

- Кабината се користи за складирање/сместување на патниците или материјалните добра.

- Копчињата во кабината се користат за контрола на лифтот, за патникот да биде пренесен

на посакуваното одредиште.

- Копчињата на секој кат се користат за да се повика лифтот (да се повика сервис – услуга)

- Светлата на секој кат покажуваат на кој кат се наоѓа лифот.

- Светлата во кабината покажуваат кон кој кат се движи кабината.

- Вратите на лифтот вклучуваат внатрешни и надворешни врати.

- Електричниот мотор на лифтот се користи за да ја придвижи кабината нагоре или надолу.

- Електричниот мотор за вратите се користи за да ги отвора и затвора истите.

Истиот систем се состои од следните невидливи компоненти (од страна на патник или

оператор):

Page 4: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

4

- Тајмер се користи за да испрати сигнал за да се затворат вратите.

- Систем за контрола на лифтот.

- Сензор за лоцирање на кабината (светлосен или магнетен сензор кој се наоѓа на една

страна од лифтот и истиот детектира отвори на вертикална лента која е поставено по

вертикалата во празнината во која се движи лифтот).

- Аларм.

- Останати сензори (сензори за врати, сензори за оптовареност).

Слика 1

2.1.1 Кориснички карактеристики

Патник или материјално добро: товарот кој треба да биде пренесен. Доколку се работи за

патник, тогаш истиот може да вклучи звучен аларм, аларам за пожар или да го притисне

копчето „Стоп“ за итни случаи.

Оператор: обучено лице кое управува со системот од лифтови. Може да го префрли системот

во неколку режими на работа: AUTO, HOLD, SERVICE MODE, да го вклучи и исклучи целиот

систем. Доколку не влијае врз состојбата на системот, тогаш операторот може да се смета као

Page 5: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

5

обичен патник. На слика 2 е прикажан изгледот на корисничкиот интерфејс за операторот, а на

слика 3 е даден приказ на корисничкиот интерфјс доколку се работи за обичен патник.

Слика 2 Слика 3

Timer: иницијатор за испраќање на time-out сигнали.

Сензор за позиција на подот: иницијатор кој го известува системот за запирање на катот кој

претставува избрано одредиште.

Сензор за состојба на вратите: иницијатор кој го известува системот дали вратите се

комплетно затворени или отворени.

Сензор за преоптеретување со тежина: го известува системот за тежината во кабината.

Сензор за детекција на објект помеѓу вратите: иницијатор кој го известува системот дека

помеѓу вратите има објект кој ги блокира да се затворат.

2.1.2 Главни ограничувања

1. Кабината е со ограничен капацитет.

Page 6: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

6

2. Надворешната врата/преграда треба да биде затворена, сè додека лифтот не запре на

соодветниот кат за да се отвори.

3. Лифтот почнува да се движи само ако вратата е целосно затворена.

4. Кабината на лифтот се движи со одредена брзина и постепени започнува или запира со

движење.

2.1.3 Претпоставки

1. Системот се состои од два лифта.

2. Постојат две врати за секој лифт – врата за кабината и врата на катот. Кога се отвора

вратата на кабината, тогаш се отвора и врата на катот. Кога се затвора вратата на кабината,

тогаш се затвора и вратата на катот.

3. Секое копче и прекинувач од контролната табла на лифтот испраќа сигнал до контролниот

систем на лифтот.

4. Кабината не може да се движи повеќе од најгорниот кат и подолу од најдолниот кат во

зградата.

5. Не постојат грешки во комуникацијата.

2.2 Систем II

Целта на овој систем е комплетно да се

редизајнира конвенционалниот контролер за

лифтови со врска од точка до точка (eng: point-to-

point connection), кој е развиен пред повеќе од 15

години.

Стариот систем може да опслужува

максимум 18 ката. Се состои од 6 контролни

картици: CPU, ECC, DLC, PU1, PU2 и PU3. Сите

контролни картици се сместени во главниот

контролер кој пак е сместен најгоре во лифтот

(слика 4).

Слика 4

Главната програма се извршува на CPU картицата, која откако ќе ги обработи I/O сигналните, ја

контролира кабината на лифтот.

Page 7: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

7

Моторот на лифтот е контролиран од ECC (Engine Control Card) картицата.

Осветлувањето на кабината и движењето на вратите се контролирани од DLC (Door and Cabine

control Card) картицата.

I/O сигналите од катовите се обработуваат во Периферните картици (Peripheral Card/Units, PU1,

PU2 и PU3).

2.2.1 Недостатоци

Секој сигнал се обработува во главниот контролер. Доколку корисникот притисне копче на

првиот кат, сигналот мора да биде пренесен до 18-тиот кат до контролерот. Таму ќе биде

обработен и ќе биде потврден (назад) на првиот кат. Секое копче, дисплеј, прекинувач и секој

сензор се поврзани со главниот контролер преку соодветни жици за таа намена. За

имплементација на ова решение, потребни се многу точку за поврзување, како и огромно

количество на кабли. Со ова се воведува голема веројатност за проблеми во работата.

Исто така, проблем претставува и недостатокот на модуларност. Системот не може да

биде надграден со повеќе PU картици, за да може да управува објект со повеќе од 18 ката.

Секој проблем во работата, подразбира многу време за негово откривање, како и

проблеми за замена за неисправните елементи бидејќи се работи за затворен систем.

2.2.2 Концепти на новиот систем

Крајниот резултат од редизајнот е намалување на

ожичувањето, надградба на целиот систем со последните

расположливи технологии и подобрување на флексибилноста.

Намалувањето на ожичувањето значи замена со магистрала за

комуникација со 4 жици. Надградбата на системот подразбира замена

на картиците кои се поставени на секој кат (слика 5).

Слика 5

Page 8: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

8

2.2.2.1 Компатибилност

Во првата верзија, CPU картицата е зачувана (Z80 микропроцесор). Промените кои ќе

бидат направени, не смеат да нарушат компатибилност на системот со претходната верзија.

Задачата за одржување на компатибилноста со стариот модел на системот припаѓа на IF

картицата, која е и најважниот дел од развојот. IF картицата треба да ја симулира работата на

стариот CPU и ECC картиците и во исто време да овозможи интерфејс за двата нови четворо-жични

поврзувачки магистрали (слика 6).

Слика 6

2.2.2.2 EIF картици

Овие картици ги контролираат и обработуваат влезно-излезните сигнали од катовите. Мора да

бидат поставени на секој кат за системот да може да работи. Задачи на EIF картиците се:

- Обработка на сигналите од контролните копчиња на лифтот. Доколку обработката е

успешна, тоа треба да му се сигнализира на корисникот.

- Два седум сегментни дисплеи мора да бидат поставени во кабината, со цел да му се

покаже положбата/локацијата на кабината.

- Мора да биде прикажана насоката на движење на кабината.

- Директна комуникација мора да постои со IF картицата.

- Доколку постои некакво барање, истото мора да биде упатено до IF картицата. Доколку

барањето е направено од корисникот, тогаш треба да биде покажан и правецот на

движење на кабината.

Page 9: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

9

- Инструкциите од IF картицата мора да бидат обработени.

Овие картици имаат предност што можат локално да ги обработат сигналите и со тоа ја

отстрануваат потребата истите да бидат испратени до главниот контролер. Оваа обработка

мора да биде извршена брзо, во некоја точно одредена временска рамка.

2.2.2.3 FIF картицa

Оваа картица ги обработуваат сигналите кои доаѓаат од сензорите на кабината и за тоа е

сместена во кабината. Задачи на FIF картицата се:

- Обработка и потврдување на состојбите на копчињата.

- Обработка на сигналите од сензорите.

Сигналите од сензорите се најзначајните сигнали за обработка од FIF картицата. Од нив се добива

позицијата на кабината. Во зависност од сигналите, софтверот може да ја контролира работата на

моторот (кога да запре, кога да се кочи, кога да се забрза или да се детектира дека се движи

побрзо отколку што треба). Затоа, времето за обработка на овие сигнали е исклучително важно и

потребни се брзи магистрали за комуникација, како што се потребни и за EIF картиците. Во овој

случај системот мора да е „Hard Real Time“ (систем во кој постои детерминизам и гарантирање на

временските рамки во кои некоја задача ќе биде завршена).

2.2.2.4 IF картица

IF картицата е најсложената картица од сите претходно наведени. Од една страна симулира

статуси од претходниот систем (до CPU и EIF картиците), со цел главниот контролер да може да се

користи. Од друга страна, прави одвоен интерфејс кон FIF и EIF картиците.

Користи четворо-жичен интерфејс за комуникација со EIF картиците. Протоколот за комуникација

е master-slave, во кој IF картицата е на страната master. Програмата, периодично упатува

барања/прашалници до секоја EIF картица. За овој случај, доволен е „Soft Real Time“ систем.

Доколку настане грешка, голема е веројатноста да биде поправена во следното барање. Под

грешка се подразбира, задоцнето потврдување на некоја акција. На пример: по притискање на

копче, корисникот по половина секунда (или повеќе) ќе добие потврда (визуелна) дека притиснал

копче.

Комуникацијата со FIF картицата бара поголема точност и помало време на одговор. Во овој случај

не постои master-slave комуникација, бидејќи само две единици/картици комуницираат помеѓу

себе. Обработката на сигналите се извршува колку што е можно побрзо, па за тоа се користи

техника на прекини (eng: interrupts).

Page 10: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

10

2.2.3 Комуникација

Разгледани се протколите I2C, CAN, RS-485 и MODbus од следните различни гледишта:

- Мора да биде колку што е можно поедноставен за користење.

- Мора да има голем отпор на EMC (електромагнетни пречки од останатите уред/елементи).

- Мора да биде доволно брз, за да може да комуницира со најмалку 20 единици.

Земајќи ги предвид наведените гледишта, I2C не е ги задоволува барањата во поглед на брзината

на комуникација и нема доволна заштита од електромагнетни пречки. Исто така и MODbus е

отфрлен, поради недоволната брзина и недоволната отпорност од електромагнетни пречки.

Дизајнерите на новиот систем се одлучиле за CAN, како оптимално решение. CAN има голема

отпорност од електромагнетни пречки, брзина од 250 kbps на 200 m растојание и не е неопходно

да се користи официјалниот CAN протокол.

2.2.3.1 Комуникациски протокол

Како што беше спомнато претходно, IF комуницира со EIF картиците по моделот на master-

slave, при што периодично упатува барање до секоја EIF картичка. Кога IEF картица ќе го прими

барањето, колку што е можно побрзо враќа одговор назад. Во одговорот се содржи статусот на

LED диодите за потврда и дали корисникот ја повикал кабината. IF картицата ја обработува

пораката, го менува записот за соодветната EIF картица и прави измени, доколку е потребно. IF

картицата ја користи оваа порака како и моментална положба на кабината за да креира нова

порака, односно ново „polling“ барање до EIF картиците. Во новата порака, IF дава наредби до EIF

за промена на вредностите на дисплеите. Ова значи дека секоја „polling“ порака е потрврда за

претходно примената порака која содржи одговор за упатеното барање.

За време на развој на системот, пробно време во кое IF картицата треба да упати барање

до сите EIF картици е 250 ms. За 20 катови, ова значи дека доделено време за EIF картица е 12.5

ms. Доколку IF не добие одговор од EIF за 12.5 ms, се продолжува со следната EIF картица.

Неуспешното упатување на барање до EIF картицата се зачувува во IF картицата и се испраќа во

следната порака до EIF картицата. Благодарение на ова, IEF картицата ќе знае дека имало проблем

и ќе ја испрати новата состојба наместо старата.

Доколку IF картицата постојано не прима одговор од некоја EIF картица, ќе испрати порака

за грешка до главниот контролер.

За поголема безбедност, секоја порака содржи CRC код, кој е додаден на крајот на

пораката. Доколку се појави грешка во CRC пресметката на страната која ја прима пораката, истата

ќе биде отфрлена и ќе се смета дека EIF нема испратено порака до IF.

Page 11: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

11

2.2.3.2 Струкутра на пораката

IF испраќа порака до EIF во должина од 7 B (слика 7).

Слика 7

Првиот бајт во пораката е специјален бајт, кој назначува дека пораката е пратена од IF картицата.

Вториот бајт ја содржи адресата на соодветната EIF картица. Пораката нема да биде обработена

од другите EIF.

Вториот и третиот бајт ја содржат позицијата на кабината, која мора да биде прикажана на два 7-

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

Следниот бајт статус на LED диодите за потврдување. Првите 4 бајти го содржат модот на работа.

Вклучени се два мода на работа: номален мод или трепкање. Вторите два бајти се искористени за

статус на LED диодите.

Последниот бит на контролниот бајт се користи за да укаже на грешка со последното упатување на

барање. Останатите битови можат да се искористат за кодови за грешка.

CSUM го содржи CRC кодот.

Пораката која ја праќа EIF до IF картицата е со должина од 3 бајти (слика 8).

Слика 8

Во овој случај, нема потреба од специјален бајт. Ниту една адреса нема да се совпадне со

специјалниот бајт.

Page 12: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

12

Првиот бајт ја претставува пораката на EIF картицата. Така IF картицата ќе знае од кого доаѓа

пораката.

Следниот бајт ги содржи промените на состојбите, во споредба со претходната порака. Во

содржината се вклучени состојбите на копчињата и состојвите на LED диодите.

Последниот бајт е CRC.

2.2.4 Програма

Развиени се два софтвера. Едниот е за IF картицата, а другиот за EIF картиците. Двата

софтвера имаат иста структура. Главната функција (функцијата main) го иницијализира хардверот,

променливите и рутните за прекини (interrupt routines). По ова, доаѓа извршување на код во

бескрајна јамка (слика 9).

Слика 9

Рутните за обработка на прекините (interrupt routines) се одговорни за исправна работа на

системот. Искористени се три различни прекини (IT). Еден прекин е за примена порака, втор

прекин е за испратена порака и трет прекин е за тајмер. Кога ќе настане прекин, се детектира кој

прекин е настанат и понатаму се продолжува со соодветно преземање на акции, односно

извршување на соодветен програмски код (слика 10).

Слика 10

Page 13: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

13

Исписот на 7-сегментните дисплеи е реализиран со мултиплексирање, со цел да се заштеди на

пинови. Мултиплексирање бара соодветни временски рамки, па за тоа е искористен тајмерот.

EIF картиците се изработени со микроконтролер PIC18F4680, а за CAN комуникација се користи

PCA82C250 CAN трансивер.

3. Дефинирање на проблемот

Системот кој ќе биде претставен треба да биде способен да контролира две кабини и да биде

изработен со микропроцесор Intel 8085. CPU картицата ќе биде во директна комуникација со IF и

ECC картиците. IF картицата ќе биде во комуникација со EIF и FIF картиците и ќе ги обработува

сигналите, кои потоа ќе ги проследи до CPU картиците од кадешто ќе чека инструкции за работа.

ECC картицата ќе добива контролни пораки од CPU картицата, со кои ќе се контролира работата на

електричните мотори за кабините. На слика 11 е прикажан блок дијаграм на системот кој ќе биде

изработен.

Слика 11

ECC картицата ќе работни директно со два електрични мотори (приказ на слика 12).

Слика 12

Page 14: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

14

3.1 Пораки за комуникација

CPU картицата ќе комуницира со една IF и една ECC картица во двонасочна комуникација.

Бидејќи се работи за систем од лифтови (две кабини), во пораките за комуникација ќе мора да

биде вклучен податок кој ќе кажува за која контролна картица е наменета пораката, односно

за кој лифт се работи. За комуникација на CPU картицата со IF и ECC картиците ќе се користи

RS-485 протокол. За секое испратено барање (request), мора да биде вратен одговор

(response).

Форматот на една порака за комуникација е даден на слика 13, а во табела 1 е дадено

објаснување на полињата на пораката.

Header

Req/Resp

Слика 13

Поле Значење

Header Почеток на порака

Request/Response Барање или одговор

N/A 00000 - неискористени

Cabine_number/Node_address Број на кабина и/или адреса на јазол (256)

Command Наредба

Data Податок (за наредбата)

CRC Checksum

Табела 1

ECC и IF картиците ќе бидат приклучени на RS-485 магистралата (слика 14).

Слика 14

Page 15: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

15

3.1.1 Комуникација CPU – ECC

Во табела 2 се дадени пораките за комуникација помеѓу CPU и ECC картиците, коишто CPU картицата ги праќа до ECC картиците.

Наредба Код Податок Значење Насока

start_motor 0x40 Cab. number Да започне моторот со работа CPU � ECC

slow_down_motor 0x41 Cab. number Моторот да ја намали брзината CPU � ECC

speed_up_motor 0x42 Cab. number Моторот да ја зголеми брзината CPU � ECC

stop_motor 0x43 Cab. number Да запре моторот со работа CPU � ECC

find_cabine 0x44 Level На кој кат се наоѓа кабината both

Табела 2

3.1.2 Комуникација CPU – IF и IF – CPU

Во табела 3 се дадени пораките за комуникација помеѓу CPU и IF картиците.

Наредба Код Податок Значење Насока

calc_closest_cabine 0x10 Level Која кабина да стигне до корисникот IF � CPU

stop_sys_err 0x11 Да се запре системот, настаната е грешка both

cpu_error 0x13 Грешка во CPU картицата CPU � IF

start_sys 0x14 Да започне системот со работа CPU � IF

stop_sys 0x15 Да запре системот со работа CPU � IF

closest_cabine 0x16 1 or 2 Одговор на пораката calc_closest_cabine CPU � IF ping_if 0x17 Проверка на IF картицата CPU � IF

test_equ 0x18 Тест на опремата CPU � IF

check_srvc_days 0x19 Проверка кога треба да се изврши сервис CPU � IF

Табела 3

Page 16: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

16

3.2 Електронски компоненти

На слика 15 е даден функциски распоред на пиновите/изводите на микропроцесорот 8085.

Слика 15

Сигналите/Линиите во микропроцесорот 8085 можат да бидат класифицирани во седум групи

во зависност од нивните функции:

- Сигнали за напојување и фреквенции

- Податочни и адресни магистрали

- Управувачка/контролна магистрала

- Сигнали за прекини

- Сериски I/O сигнали

- DMA сигнали (меморија со директен пристап)

- Сигнали за ресет

На слика 16 е дадена архитектурата на микропроцесорот 8085.

Page 17: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

17

Слика 16

Микропроцесорот се состои од следниве функционални блокови:

- Регистри

- Аритемтичко-логичка едница (ALU)

- Адресен бафер

- Леч коло за инкрементирање/декрементирање на адреса

- Контрола на прекини

- Контрола/управување на сериски I/O порти

- Електронски кола за контрола и тајминзи

- Декодер на инструкции и енкодер на машинските циклуси

За чување на конфигурација ќе биде искористена 16kb EPROM меморија со влезно-излезни

порти - Intel 8755. Блок дијаграм како и распоред на пиновите се дадени на слика 17.

Page 18: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

18

Слика 17

Од ИК 8755 ќе биде искористена само EPROM меморијата, во која ќе се чуваат параметри

за системот кои ќе вчитуваат при иницијализација/покренување.

Како RAM меморија (меморија со случаен пристап или статична меморија) ќе се искористи

Intel 8155 (2kb меморија со влезно-излезни порти). Распоред на пиновите и блок дијаграм се

дадени на слика 18.

Слика 18

Page 19: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

19

Адресниот пин од микропроцесорот А12 ќе биде искористен за контрола на насоката на

проток на податоци на ИК DS75176.

Електронска компонента како примопредавател (трансивер) за RS-485 е земена DS75176

(слика 19 а).

Слика 19 а

За RS-232 комуникација е земено интегрално коло Intel 8251 (слика 19 б).

Слика 19 б

Останатите електронски компоненти кои се стандардни за нормална работа на горенаведените

електронски компоненти ќе бидат изоставени (напојување, филтри, осцилатори и т.н.).

Page 20: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

20

3.3 Електронска шема

На слика 20 е дадена електронска шема на CPU картицата која се состои од горенаведените електронски компоненти кои се

неопходни за нормална работа на системот. Како микропроцесор е избран Intel 8085 кој е поврзан со EPROM 8755 и RAM 8155, за трајно

и привремено складирање на податоци, соодветно. За комуникација со IF и ECC картиците, преку RS-485 протокол, е одбрано ИК 8251A

(RS-232) во спрега со DS75176 за конвертирање во напонски нивоа за RS-485 EIA стандардот. Како селектор на интегрално коло, кое ИК

да биде активно на податочната магистрала е искористен декодер 74138.

Изводот RxRDY на ИК 8251 е поврзан на RST 7.5 изводот за прекин со што ќе се сигнализира дека има веќе примен податок преку

RS-485 кој треба да биде обработен и да се врати соодветен одговор.

Page 21: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

21

Слика 20

Page 22: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

22

3.4 Организација на меморијата

CPU картицата е поврзана со два вида на мемории – RAM и EPROM мемории. Во EPROM

меморијата се чуваат вредности кои се вчитуваат при секое стартување на картицата (се копираат

во RAM меморијата). RAM меморијата се користи за проверка на кодови на барања упатени до

CPU картицата, како и за сместување на резултати од пресметки, бројачи и т.н. Во табела 4 е

дадена организација на EPROM меморијата, а во табела 6 е дадена организација на RAM

меморијата.

hex 0 1 2 3 4 5 6 7 8 9 A B C D E F

4000 10 11 12 13 14 15 16 17 18 00 00 00 00 00 00 00

4010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

4020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

4030 40 41 42 43 00 00 00 00 00 00 00 00 00 00 00 00

4040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

4050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

4060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

4070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

4080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

4090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

40A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

40B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

40C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

40D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

40E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

40F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Табела 4

Со црвена боја се означени вредностите кои веќе се сместени во меморијата, а со зелена боја

се означени локациите кои се резервирани (но не се искористени). Во табела 5 се дадени

значењата на искористени мемориски локации.

Мемориски опсег Искористено за Променлива

4000h – 402Fh Наредби за работа со IF картицата /

4030h – 405Fh Наредби за работа со ECC картицата /

Табела 5

Page 23: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

23

hex 0 1 2 3 4 5 6 7 8 9 A B C D E F

2000 10 11 12 13 14 15 16 17 18 00 00 00 00 00 00 00

2010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

2020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

2030 40 41 42 43 00 00 00 00 00 00 00 00 00 00 00 00

2040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

2050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

2060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

2070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

2080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

2090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

20A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

20B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

20C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

20D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

20E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

20F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Табела 6

Со црвена боја се означени вредностите кои веќе се сместени во меморијата, а со зелена

боја се означени локациите кои се резервирани (но не се искористени). Во табела 7 се дадени

значењата на искористени мемориски локации.

Мемориски опсег Искористено за Променлива

2000h – 202Fh Наредби за работа со IF картицата / 2030h – 205Fh Наредби за работа со ECC картицата /

2060h – 2064h Формирање на порака /

2070h – 2074h Примање на порака /

2080h Локација кон која се движи кабина 1 r_cabin_01

2081h Локација кон која се движи кабина 2 r_cabin_02

2082h Број на катови од кабина 1 до бараниот кат r_diff_cabin_01

2083h Број на катови од кабина 2 до бараниот кат r_diff_cabin_02

2084h Кат на кој се наоѓа кабина 1 (моментално) r_curr_cabin_01

2085h Кат на кој се наоѓа кабина 2 (моментално) r_curr_cabin_02

2090h Код На CPU грешка (грешка во CPU картица) r_cpu_err_adr

2091h Код на системска грешка r_sys_err_adr 20A0h Бројач за примена порака rx_msg_counter

Табела 7

Page 24: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

24

3.5 Алгоритам на извршување на програмата

По стартување на микропроцесорот, потребно е да се иницијализираат периферните уреди

(EPROM, RAM и RS-232). На слика 21 е даден алгоритам за чекорите на иницијализација.

Слика 21

По стартување на микропроцесорскиот систем, програмата го копира кодовите на наредбите

од EPROM меморијата во RAM меморијата. При пристигнување на порака до CPU картицата,

програмата ќе провери дали кодот на наредбата е познат за CPU картицата. Доколку не е познат,

Page 25: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

25

CPU картицата припрема и праќа порака со грешка за непозната наредба/команда. Доколу кодот

на наредбата (или барањето) е познат, се продолжува со понатамошна обработка на пораката.

Овој чекор од иницијализацијата е имплементиран во потфункцијата read_cmds_EPROM2RAM.

Следен чекор е иницијализација на 8251 ИК, односно иницијализација за работа со RS-

232/485. Во овој чекор, се запишуваат параметри за комуникација преку RS-232 како: stop bit,

parity, char length и baudrate. ИК 8251 е спремно за комуникација кога од неговиот статусен

регистар ќе се прочитаат вредности RxRDY = 1 и TxRDY = 1 (receiver ready и transmitter ready). Кога

ИК 8251 е спремно за комуникација, потребно е ИК да се постави во мод за работа со податоци,

односно во мод како предавател (C/D изводот од ИК да се постави на 0). Овој чекор од

иницијализацијата е имплементиран во потфункцијата init_8251.

Следен чекор од процесот на иницијализација е поставување на иницијални вредности на

променливте во системот (RAM меморијата). Овој чекор од иницијализацијата е имплементиран

во потфункцијата init_system_vars.

По иницијализацијата на периферните уреди, се тестира опремата во системот. Доколку

тестовите покажат дека има проблем исправноста на опремата или пак потребно е извршување на

редовен сервис, систем ќе биде запран и ќе се прикаже типот на грешката. Доколку сè е во ред,

тогаш системот започнува со нормална работа (слика 22), односно CPU картицата испраќа порака

start_sys до целиот систем. Овој чекор е имплементиран со формирање на порака во

потфункцијата msg_start_sys и повикување на потфункција transmit_8251 за испраќање по RS-485.

Оваа порака се испраќа до IF картицата со која се поврзани останатите картици, освен ECC

картицата.

Page 26: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

26

Слика 22

По стартување на системот, извршувањето на главната програма се базира на работа со

прекини. Искористен е надворешен, хардверски прекин RST 7.5 кој е поврзан со RxRDY изводот од

ИК 8251 со кој се сигнализира дека примен е еден бајт преку RS-232/485. При овој прекин,

програмскиот бројач автоматски „скокнува“ на предефинирана мемориска локација 3Ch, кадешто

е сместена рутина/функција (ISR_low_003CH)со која:

- Се оневозможува примање и извршување на маскирани прекини (се извршува DI – Disable

Interrupts)

- Регистрите кои се користат во останатите потфункции во кои е овозможено опслужување

на прекини се сместуваат на врвот на Stack меморијата.

- Се повикува потфункција (ISR – Interrupt Service Routine) ISR_high_003CH во која ќе се

обработи прекинот во целост (во имплементацијата, земено е формирање на порака за

пресметка за повикување на најблиската кабина до катот од каде што е пристигнато

барањето)

- По извршување на ISR_high_003CH извршувањето на кодот продолжува во ISR_low_003CH,

каде што од Stack меморијата се копира содржина во регистрите чија содржина претходно

била сместена во Stack меморијата, со цел извршувањето на потфункцијата која била

прекината да продолжи онаму каде што настанал прекинот.

На слика 23 е прикажан алгоритам на извршување на ISR на прекин RST 7.5.

Page 27: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

27

Слика 23

Page 28: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

28

Потфункцијата ISR_high_003CH проверува дали примениот бајт е почеток на нова порака.

Доколку е почеток на нова порака тогаш бројачот за примени бајти (rx_msg_counter) на порака се

поставува на вредност 60h, што претставува покажувач кон мемориска локација во која треба да

се зачува првиот бајт од примена порака. Потоа, примениот бајт (зачуван во акумулаторот А се

запишува во RAM меморијата на локација 60h) и извршувањето на програмата продолжува онаму

каде што застанало претходно (во чекање на прекин за примен бајт од системот). Доколку не се

работи за почеток на нова порака, примениот бајт се зачувува во соодветната мемориска локација

кон која покажува бројачот rx_msg_counter. По запишувањето на примениот бајт во RAM

меморијата, бројачот се зголемува за 1, односно да покажува кон следната мемориска локација

на која треба да биде запишан следниот бајт кој ќе биде примен (под услов да не се работи за

нова порака). По инкрементирањето на вредноста на rx_msg_counter, се прави проверка дали

вредноста е поголема од 64h, односно дали веќе се примени 5 бајти, што означува комплетно

примена порака која треба да се обработи. Доколку не се работи за комплетно примена порака,

извршувањето на програмата продолжува онаму каде што застанало претходно (во чекање на

прекин за примен бајт од системот). Доколку е примена целосна порака, тогаш се ресетира

rx_msg_counter, односно се припрема за примање на нова порака. Потоа се прави проверка, дали

пораката е намената за CPU картицата. Доколку пораката не е наменета за CPU картицата,

извршувањето на програмата продолжува онаму каде што застанало претходно (во чекање на

прекин за примен бајт од системот). Доколку пораката е наменета за CPU картицата, се прави

проверка дали се работи за ново барање од IF или ECC картиците. Ако се работи за одговор на

претходно испратено барање (претходно испратена порака), тогаш

потребно е да се означи дека е примен одговор на претходно

испратената порака и извршувањето на програмата продолжува онаму

каде што застанало претходно (во чекање на прекин за примен бајт од

системот). Ако се работи за ново барање од картиците, тогаш се

проверува дали е познат кодот на барањето (командата/наредбата).

Доколку се работи за непознато барање, се формира порака за грешка со

код за грешка „Unknown command“ и се праќа до испраќачот на

пораката. Доколку се работи за позната наредба, тогаш се проверува

полето „Data“ од пораката за дополнителни информации за барањето.

Во опишаниот случај, примено е барање за пресметка на најблиска

кабина до катот од кој извршен повикот. Катот е од кој е извршен

повикот и кон кој треба да се испрати една од двете кабини, е запишан

во полето „Data“ (податочното поле) на пораката. Податокот за катот се

сместува во регистарот B. Регистарот B ќе се искористи за проследување

на параметар до потфункцијата cmd_calc_closest_cabin. Формирањето и

пресметката на одговорот е прикажан на слика 24.

Слика 24

Page 29: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

29

За формирање на порака за одговор closest_cabine се повикува потфункција find_cabins во која

се праќа порака за пронаоѓање на моменталните локации на двете кабини. Потфункција за

пронаоѓање на една кабина е find_cabin на која како параметар се проследува бараната кабина (1

или 2) преку акумулаторот А. Откако ќе се најдат моменталните локации на двета кабини, се

повикува потфункција за пресметки и припремање на порака за одговор (потфункција:

msg_calc_closest_cabin). Најблиска кабина ќе се пресметува по формулата:

��� = |�� − ��| + |�� − �| (1)

кадешто:

cbn – closest cabin number (број на кабината која ќе стигне најбрзо до одредиштето)

nl – next level (кат кон кој моментално се движи кабината)

cl – current level (кат на кој моментално се наоѓа кабината)

rl – requested level (кат – одредиште)

На табела 8 се дадени два примери за пресметка на кабина која ќе стигне набрзо до одредиштето.

cabin current level next level requested level |nl – cl| |nl – rl| closest cabin number

1 5 10 1 5 9 14

2 3 9 1 6 8 14

1 8 5 2 3 3 6

2 5 5 2 0 3 3

Табела 8

Во првиот случај, кабината број 1 ќе биде испратена до кат број 1. Доколку е потребно исто време

и за двете кабини да пристигнат до одредиштето, тогаш се испраќа првата кабина.

Во вториот случај ќе биде испратена втората кабина, бидеќи е потребно помалку време (помалку

катови да се поминат) за да стигне до одредиштето.

Откако ќе се состави пораката за одговор, истата се испраќа по RS-232 со потфункцијата

transmit_8251 и потоа се овозможува обработка на маскирани прекини со EI (Enable Interrupts).

Page 30: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

30

4. Заклучок

Системот кој беше разгледан може да контролира систем од лифтови со две кабини во објект

со 18 ката, без за се наруши времето на одговор и извршување на соодветна акција после дадена

наредба од корисникот. Доколку микропроцесорот 8085 не е доволно моќен за да контролира

систем од лифтови за обејкт кој има повеќе од 18 ката, може да се искористи друг микропроцесор

кој има поголема работна фреквенција, побрзо извршување на инструкциите и можност за

адресирање на повеќе меморија. Денешните микропроцесори се поделени во главно 3

производни линии според примената:

- апликациски микропроцесори (уреди со графички интерфејс)

- микропроцесори со примена во индустријата (human-machine интерфејс, контролни

системи, медицински инструменти и т.н.)

- микропроцесори со примена во критични системи (Real-time системи)

Секој вид на микропроцесор (според намената), може да најде соодветно место во дизајнот на

комплексен систем во кој покрај контрола, во овој случај на систем од лифтови со две кабини, ќе

има и богат кориснички интерфејс за полесна контрола на системот од страна на корисникот.

Дополнително, процесот на развој на системот може да се подобри со примена на програмски

јазик од повисок ред како C/C++.

Page 31: Implementaion of an elevator control with two cabins, by using Intel's 8085A microprocessor

31

5. Користена литература

Предавања и вежби по предметот „Микропроцесори и микроконтролери“ од проф. д-р Цветко

Митровски

„Microcontroller based elevator controlling system“ – Akos Becker, Department Of Measurement and

Information Systems

„Software Requirements Specification for Low-Raise Building Elevator System” – Qian (Kevin) Chen

„ LABORATORY 1 - INTRODUCTION TO 8085 MICROPROCESSOR DEVELOPMENT SYSTEM BOARD “ - http://www.unimap.edu.my „8085 INSTRUCTION SET - INSTRUCTION DETAILS“ - http://unilins.edu.br „ 8251 AND 8253 - PROGRAMMABLE COMMUNICATION INTERFACE AND PROGRAMMABLE INTERVAL TIMER “ - http://www.esaindia.com

„Understanding 8085/8086 Microprocessors and Peripherals ICs through Questions and Answers“, Second Edition – S. K. Sen http://www.alldatasheet.com