Simulare Bloc Comada Grup 2 Ascensoare

download Simulare Bloc Comada Grup 2 Ascensoare

of 18

Transcript of Simulare Bloc Comada Grup 2 Ascensoare

UNIVERSITATEA POLITEHNICA BUCURESTI FACULTATEA DE TRANSPORTURI Catedra Telecomenzi si Electronica in Transporturi

Proiect MICROCONTROLLERE Simularea bloc comanda grup de dou ascensoare pentru 4 etaje

Autori : GROSU Roxana 8314 BURLAC Aurelian 8314 -2011-

Indrumator As. Ing. NICULESCU Mihai

Cuprins

Cap.I Tema Cap.II Proiectare Hardware - 2.1 Schema bloc -2.2 Descriere blocuri - 2.3 Schema electrica generala Cap.III Proiectare software - 3.1 Descriere Generala - 3.2 Schema Logica - 3.3 Listing software Cap.IV Software utilizate Cap.V Bibliografie

2

I.Tema

Tema proiectului o contituie simularea bloc comanda grup de dou ascensoare pentru 4 etaje. Pentru acceasta este nevoie sa folosim un microcontroller impreun cu circuitele aferente si un programator impreuna cu un program. Am ales pentru acest proiect microcontrolerul Atmega16 deoarece: microcontrolerele Atmel sunt substanial mai ieftine, au flash i protecii, au activat un pin de protecie i la o urmtoare tentativ de a citi ROM-ul, returneaz c este gol. Avr-urile (familia Atmega) sunt mai rapide dect pic-urile; au semnificativ mai mult RAM i, de obicei, n aceeai capsul mai mult flash i EEPROM. Structura intern a avr-urilor este mai bine conceput. Un alt motiv pentru a alege microcontrolerul Atmega16 este c n cadrul Facultaii "Telecomenzi i Electronic n Transporturi" exist sisteme de dezvoltare EasyAVR4 care reprezint o soluie complet pentru aplicaiile cu microntrolere AVR Atmel. Alte motive pentru care am ales microcontrolerele din familia Atmega sunt: Microcontrolerele din familia AVR prezint o organizare de tipul RISC executnd o instuciune / ciclu maina. Prezena unor blocuri interne ca: oscilator intern, timere, unitate UART, SPI, rezistoare pull-up, PWM ( pulse widith modulation), ADC, comparatoare, determin utilizarea acestor microcontrolere ntr-o gam foarte larg de aplicaii. Instruciunile acestei familii de microcontrolere au fost proiectate pentru a reduce dimensiunea unui program scris n limbaj C sau n limbaj de asamblare. Posibilitatea programrii memoriei FLASH i a memoriei EEPROM, determin ca aceste microcontrolere s aib o larg utilizare datorat costului mic de dezvoltare a unei aplicaii (timpul de proiectare scurt). O alt calitate remarcabil a acestor microcontrolere este consumul foarte mic de energie. Domeniul tensiunilor de alimentare este cuprins ntre 1.8 i 5V. Prezint 6 moduri diferite de stand-by ceea ce ne asigur c aceste microcontrolere nu vor consuma energie dect atunci cnd este nevoie. Controlul software al frecvenei garanteaz o vitez maxim de execuie atunci cnd este nevoie, iar n restul timpului, microcontrolerul poate trece n stand-by unde consumul de energie este minim. Utilizarea acestor microcontrolere poate reduce semnificativ timpul de dezvoltare a unei aplicaii datorit prezenei pe acestea a unui bloc de depanare n timp real, circuitul aflndu-se chiar pe placa ce reprezint aplicaia. Se pot face n timp real operaii de watch asupra unor regitri, operaii de rulare pas cu pas, operaii de oprire n breakpoint. Sunt produse microcontrolere de uz general precum i microcontrolere cu funcii specializate.

3

.

II. Proiectare Hardware

Mrimile de intrare ale modelului de ascensor sunt de dou feluri: mrimi logice, conectate la portul de ieire al microcontroller-ului i mrimi analogice care sunt recepionate de la portul de ieire de putere sau de la ieirea PWM a microcontroller-ului. n Tabelul nr.1 se prezint denumirea mrimilor de intrare, notaia utilizat, pinii microcontroller-ului de care sunt legate i descrierea lor. Tabel nr.1 Marimi de intrare Pin de legatura la Marimea de intrare Simbol Descriere C Led extern pentru nivelul 0 Indica faptul ca liftul 1 L1E0 PA7 Liftul1 se afla la nivelul 0 Led extern pentru nivelul 1 Indica faptul ca liftul 1 L1E1 PA6 Liftul1 se afla la nivelul 1 Led extern pentru nivelul 2 Indica faptul ca liftul 1 L1E2 PA5 Liftul1 se afla la nivelul 2 Led extern pentru nivelul 3 Indica faptul ca liftul 1 L1E3 PA4 Liftul1 se afla la nivelul 3 Led extern pentru nivelul 4 Indica faptul ca liftul 1 L1E4 PA3 Liftul1 se afla la nivelul 4 Led extern pentru nivelul 0 Indica faptul ca liftul 2 L2E0 PB7 Liftul2 se afla la nivelul 0 Led extern pentru nivelul 1 Indica faptul ca liftul 2 L2E1 PB6 Liftul2 se afla la nivelul 1 Led extern pentru nivelul 2 Indica faptul ca liftul 2 L2E2 PB5 Liftul2 se afla la nivelul 2 Led extern pentru nivelul 3 Indica faptul ca liftul 2 L2E3 PB4 Liftul2 se afla la nivelul 3 Led extern pentru nivelul 4 Indica faptul ca liftul 2 L2E4 PB3 Liftul2 se afla la nivelul 4 Mrimile de ieire ale modelului de ascensor sunt de dou feluri: mrimi logice, conectate la portul de intrare al microcontroller-ului i mrimi analogice care sunt transmise portului analogic al microcontroller-ului. n Tabelul nr.2 se prezint denumirea mrimilor de ieire, notaia utilizat, pinii microcontroller-ului de care sunt legate i descrierea lor.

4

Tabel nr.2

Marimi de iesire Simbol BE4 BE3 BE2 BE1 BE0 B0 B1 B2 B3 B4 Pin de legatura la C PD7 PD6 PD5 PD4 PD3 PD7 PD6 PD5 PD4 PD3 Descriere Chemarea liftului la nivelul 4 Chemarea liftului la nivelul 3 Chemarea liftului la nivelul 2 Chemarea liftului la nivelul 1 Chemarea liftului la nivelul 0 Comanda deplasarea liftului catre nivelul 0 Comanda deplasarea liftului catre nivelul 1 Comanda deplasarea liftului catre nivelul 2 Comanda deplasarea liftului catre nivelul 3 Comanda deplasarea liftului catre nivelul 4

Marimea de iesire Buton extern 4 Buton extern 3 Buton extern 2 Buton extern 1 Buton extern 0 Buton intern 0 Buton intern 1 Buton intern 2 Buton intern 3 Buton intern 4

5

Schema de ansamblu a grupului de ascensoare

6

2.1 Schema bloc

afisor leduri (4x8)

Atmega16

bloc comanda push-butoane

On-board usb 2.0 programmer

Unitate Centrala cu comunicatie serial USB 2.0

7

2.2 Descriere blocuriPlaca de dezvoltare Easy AVR este compusa din cinci blocuri functionale si structurale: -Microcontroller ATMEGA 16 -On-board usb 2.0 programmer -Bloc push-butoane -Bloc diode -COMPUTER cu comunicatie USB ATmega 16 este un microcontroler CMOS de 8 bii de mic putere bazat pe arhitectura RISC AVR mbuntit. Dispune de un set de 131 de instruciuni i 32 de regitri de uz general. Cele 32 de registre sunt direct adresabile de Unitatea Logic i Aritmetic (ALU), permind accesarea a dou registre independente ntr-o singur instruciune. Se obine, astfel, o eficien sporit n execuie (de pn la zece ori mai rapide dect microcontrorelerele convenionale CISC). ATmega16 este un microcontroler RISC pe 8 bii realizat de firma Atmel. Caracteristicile principale ale acestuia sunt: - 16KB de memorie Flash reinscriptibil pentru stocarea programelor ; - 1KB de memorie RAM ; - 512B de memorie EEPROM ; - dou numrtoare/temporizatoare de 8 bii ; - un numrtor/temporizator de 16 bii ; - conine un convertor analog digital de 10 bii, cu intrri multiple ; - conine un comparator analogic ; - conine un modul USART pentru comunicaie serial (port serial) ; - dispune de un cronometru cu oscilator intern ; - ofer 32 de linii I/O organizate n patru porturi (PA, PB, PC, PD). Structura intern general a controlerului este prezentat n Figura 1. Se poate observa c exist o magistral general de date la care sunt conectate mai multe module: - unitatea aritmetic i logic (ALU) ; - registrele generale ; - memoria RAM i memoria EEPROM ; - liniile de intrare (porturile I/O Lines) i celelalte blocuri de intrare/iesire. Aceste ultime module sunt controlate de un set special de registre, fiecare modul avnd asociat un numr de registre specifice. Memoria Flash de program mpreun cu ntreg blocul de extragere a instruciunilor, decodare i execuie comunic printr-o magistral proprie, separat de magistrala de date menionat mai sus. Acest tip de organizare este conform principiilor unei arhitecturi Harvad i permite controlerului s execute instruciunile foarte rapid. Modul Power-Down salveaz coninutul registrelor, dar blocheaz Oscilatorul, dezactivnd toate celelalte funcii al chip-ului pn la urmatoarea ntrerupere extern sau Reset Hardware. n modul Power-Save, timer-ul asincron continu s mearg, permind user-ului s menin o baz de timp n timp ce restul dispozitivului este oprit. n modul Stand-by, Oscilatorul funcioneaz n timp ce restul despozitivului este oprit. Acest lucru permite un start foarte rapid combinat cu un consum redus de energie. n modul Stand-by extins (Extended Stanby Mode), att Oscilatorul principal, ct i timer-ul asincron continu s funcioneze. Memoria Flash (On-chip) permite s fie reprogaramat printr-o interfa serial SPI, de ctre un programator de memorie nonvolatil convenional, sau de ctre un program de boot On8

chip ce ruleaz pe baza AVR. Programul de boot poate folosi orice interfa pentru a ncrca programul de aplicaie n memoria Flash . Combinnd un CPU RISC de 8 bii cu un Flash In-system auto programabil pe un chip monolitic, ATmega 16 este un microcontroler puternic ce ofer o soluie extrem de flexibil i cu un cost redus n comparaie cu multe altele de pe pia. ATmega 16 AVR este susinut de o serie complet de instrumente de program i de dezvoltare a sistemului, care include: compilatoare C, macroasambloare, programe debug/ simulare etc.

Descrierea pinilor:

VCC Sursa de curent GND Masa Port A (PA7 .. PA0) Port-ul A servete drept port de intrri analogice pentru Convertorul A/D. Port-ul A servete, de asemenea, i ca un port bidirecional I/O de 8 bii, n cazul n care convertorul A/D nu este folosit. Pinii de port pot fi conectai opional la VCC prin rezistori interni, (selectai pentru fiecare bit). Buffer-ele de ieire ale Portului A au caracteristici de amplificare . Port B (PB7.. PB0) Portul B este un port I/O de 8 bii bidirecional cu rezistori interni (opionali). Buffer-ele de ieire ale Port-ului B au caracteristici de amplificare. Port-ul B ndeplinete, de asemenea, funcii speciale ale microcontrolerului ATmega 16.

Port C (PC7PC0)9

Portul C este un port I/O de 8 bii bidirecional cu rezistori interni (opionali). Buffer-ele de ieire ale Port-ului C au caracteristici de amplificare. Dac interfaa JTAG (de depanare) este activat, rezistorii pinilor PC5 (TDI), PC3 (TMS) i PC2 (TCK) vor fi activai, chiar dac are loc o resetare.Port-ul C ndeplinete, de asemenea, funcii ale interfeei JTAG i alte funcii speciale ale ATmega 16. Port D (PD7PD0) Portul D este un port I/O de 8 bii bidirecional cu rezistori interni conectai opional la VCC (selectai pentru fiecare bit). Buffer-ele de output ale Port-ului D au caracteristici de amplificare. Port-ul D ndeplinete, de asemenea, funcii speciale ale ATmega 16. Reset Un nivel sczut la acest pin mai mare ca durat dect o valoare prestabilit, va genera o iniializare. XTAL 1: Intrare pentru amplificatorul inversor al Oscilatorului ; XTAL 2: Ieire pentru amplificatorul inversor al Oscilatorului. AVCC: AVCC este pin de alimentare pentru Port-ul A i Convertorului A/D. Trebuie conectat extern la Vcc, chiar dac ADC nu este folosit. Dac ADC este folosit , ar trebui conectat la Vcc printr-un filtru trece-jos. AREF: AREF este pinul de referin analogic pentru Convertorul A/D.

On-board usb 2.0 programmerNu este nevoie de un echipament extern pentru programare, deoarece sistemul de dezvolatren EasyAVR4 are propriul su USB 2.0 programmer. Tot ceea ce trebuie fcut este conectarea sistemului la PC folosind cablul USB urmnd apoi ncrcarea programului n microcontroler prin AVRprog programare software

Bloc leduriLight Emitting Diodes (LEDs) sunt cele mai des folosite componente, de obicei pentru prezentarea strilor digitale ale pinilor. EasyAVR4 are 32 de leduri care sunt conectate la PORTA,PORTB, PORTC si PORTD ale microcontrolerului. Fiecare grup de opt leduri poate fi conectat sau nu, folosind switch-ul SW2 arat conexiunea ledurilor la PORT A . Un rezistor este folosit n serie cu ledul pentru limitarea curentului. n acest caz valoarea rezistorului este 1K. Ledul este conectat cnd switch-ul corespunztor, SW2 este ON. Cnd sunt conectate,ledurile vor arta starea pinilor corespunztori microcontrolerului; cnd nu sunt conectate, ledurilentotdeauna vor fi OFF (stinse), necontnd ce stare are portul.

Bloc push-butoaneEasy AVR4 are 32 butoane push. Acestea pot fi folosite pentru schimbarea starilor intrrilor digitale ale porturilor microcontrolerului. Acolo este de asemenea un switch care actioneaz ca RESET. Apsarea butonului produce conectarea pinului port la +5.Astfel, doar cnd butonul este apsat starea pinului microcontrolerului va fi 1 logic, altfel va fi ntotdeauna 0 logic.

COMPUTER cu comunicatie USBPrin intermediul programului AVR Studio si a comunicatiei seriale USB este posibila programarea Microcontrolerului ATMEGA 16

2.3 Schema electrica generala10

S

W

_

1 1 R 1 2 3 4 5 6 L L L L L 1 1 1 1 1 E E E E E 4 3 2 1 0 U 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 2 0 1 2 3 4 5 6 7 8 9 0 1 c A A A A A A A A E E E C C C C C C C C g a P B 0 V P B 1 P P B 2 P P B 3 P P B 4 P P B 5 P P B 6 P P B 7 P R E S E PT P D 0 P P D 1 P P D 2 P P D 3 P P D 4 P P D 5 P P D 6 P P D 7 P X T A L 2P X T A L 1P G N D P A T m e V 4 c3 03 13 23 33 43 53 63 73 03 12 22 72 62 52 42 32 22 12 0 C 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 C

0

S

W

D

I P

- 2

1

R

1

2 3 4 5 6

L L L L L

2 2 2 2 2

E E E E E

4 3 2 1 0

r e s

e t 1 0 k 1 0 0 E E E V C C j u 2m 1 p e E r E 4 3 2 1 0 n

0

V V 5 V d C c C

C

C

0

0

1 6

0

0

Pushbutoanele BE0, BE1, BE2, BE3, BE4 sunt conectate la pinii 7-3 ai portului D ele reprezint comanda pentru chemarea liftului i totodat comanda din interiorul cabinei. Pushbutoanele sunt conectate la o surs de tensiune de 5V prin intermediul jumper-ului astfel atunci cand se execut apsarea la portul D al microcontrollerului se va citi valoarea logic 1. Ledurile indic pozitia cabinei liftului, ele sunt conectate la pinii 7-3 ai portului A(liftul 1) si la pinii 7-3 ai portului B (liftul 2). In momentul in care se aplic tensiune pe porturile microcontrolerui ledurile se aprind dac SW_1 este conectat la mas, seturile de rezistori R1 sunt pentru protecie. La pinul RESET este conectat circuitul de reset format din: pushbutonul reset, o surs de tensiune de 5V, o rezisten de 10k si un condensator de 100nF. In momentul n care butonul reset este apsat la pinul RESET se aplic o tensiune de de 0V (valoarea logica 0)

III Proiectare Software11

3.1 Descriere GeneralSe initializeaz stiva dup care se iniializeaz poturile A,B de iesire si portul D de intrare cu rezistene de pull-up activate. Pe portul D sunt iniializate pushbutoanele pd7 pentru parter, pd6 pentru etajul 1 si aa mai departe pan la pd3 pentru etajul4. Se verific starea butoanelor de pe portul D, dac nu e nici un buton apsat programul asteapt pan cnd unu din butoanele portului D se apas, apoi verific care din pushbutoane s-a apsat pentru a ti la ce etaj s urce sau s coboare liftul. n r18 este memorat poziia primului lif, n r19 poziia celui de-al doilea lift, iar n r20 poziia unde trebuie sa urce/coboare liftul. Se face compararea dintre r18 i r20 respectiv 19 si r20 pentru a ti care lift e mai aproape de poziia dorit i se face diferena apoi rezultatul se incarc n r21 respectiv r22. Pentru micare lift 1 sau lift 2 se face compararea dintre r21 si r22 dac valoarea este mai mic se va misca liftul 1 dac rezultatul comparrii este mai mare se va misc liful 2 si se va adresa una din etichetele miscare_lift_1 sau miscare_lift_2. Se va compara valoarea din r19 (unde este incarcata pozitia liftului) cu cea din r20 (unde trebuie s ajung liftul) daca valoarea este mai mic liftul va urca dac este mai mic va cobor. Urcare_lift_x:se apeleaz eticheta Wait_1sec, apoi se incrementeaz r18 i se incarc in r16 valoarea portuluiX, funcia lsr are rolul de a deplasa spre stnga valoarea din r16, se incarc valoarea rezultat in portulX dup care face un salt la eticheta miscare_lift_x iar programul intr intr-o bucl pna cnd r18=r20. Coborare_lift_x: se apeleaz eticheta wait_1sec, se decrementeaza r18 si se incarc in r16 valoarea portuluiX, funcia lsl are rolul de a deplasa spre dreapta valoarea din r16, se incarc valoarea rezultat in portulX dup care se face salt la eticheta coborare_lift_x iar eticheta intr intr-o bucl pna cnd r18=r20. Dupa finalizarea operaiei se asteapt din nou apsarea unuia din butoanele de pe portul D.

3.2 Schema logica12

start

stiva

initializare porturi A,B iesiri D intrare, cu rezistenta de pull-up activate

nu

buton apasat port D?

iesire

da

PD7 apasat?

da

r20=0

r18