41 0 2MB
UNIVERSITATEA Facultatea de Electronică, comunicaţii şi calculatoare Specializarea: Inginerie Electrică
LUCRARE DE LICENŢĂ
Indrumător proiect: Conf. dr. Ing.
Absolvent
2010
CUPRINS
Capitolul 1 – Sisteme de reglare pentru acţionări electrice.............................3 Capitolul 2 – Motorul de curent continuu.......................................................8 Capitolul 3 – Encodere pentru mişcări de rotaţie..........................................19 Capitolul 4 – Organizarea unui microsistem de comandă cu microcontrolerul PIC 16F877...................................................................................................25 Capitolul 5 – Proiectarea sistemului de măsurare şi reglare......……......…37 Concluzii…………………………………………………………………...59 Bibliografie...................................................................................................61 Anexe............................................................................................................63
2
CAPITOLUL 1 Sisteme de reglare pentru acţionări electrice 1.1 Sisteme cu buclă deschisă şi bucla închisă Sistemele de control, în general, pot fi împărţite in doua categorii: - sisteme cu bucla deschisa - sisteme cu bucla inchisa Intr-un sistem cu bucla deschisa, controlerul calculeaza independent valoarea tensiunii sau curentului necesar actuatorului pentru a indeplini sarcina propusa si o trimite la acesta. In acest mod, controlerul nu va sti daca actuatorul a realizat sarcina de lucru propusa, deoarece nu exista reactie inversa din partea actuatorului. Altfel spus, controlerul nu primeste nici o informatie din partea actuatorului. Acest tip de sistem depinde doar de cunoasterea de catre controler a caracteristicilor si parametrilor actuatorului. In figura urmatoare se prezinta schema bloc a unui sistem cu bucla deschisa. Actuatorul este un motor ce conduce un brat de robot. In acest caz, procesul este bratul de robot ce se roteste, iar variabila controlata este pozitia unghiulara a bratului de robot. Consideram ca viteza unghiulara a motorului este de 5 grade pe secunda. Presupunem ca acest controler a primit sarcina de a deplasa bratul de robot cu 30 de grade. Inseamna ca durata cat se aplica tensiunea la motor va fi de 6 secunde. S-ar putea, in zilele reci, cand lubrifiantul este mai vascos, bratul de robot sa se deplaseze doar cu 25 de grade. Apare astfel o eroare de 5 grade. Controlerul nu are cum sa stie de ea si nu va actiona in vreun fel pentru reducerea acestei erori.
3
Sistemele cu bucla deschisa sunt potrivite in aplicatiile unde actuatorii executa operatii repetabile si sigure. Releele si motoarele pas cu pas sunt dispozitive cu caracteristici ce prezinta un grad de siguranta in control. Intr-un sistem cu bucla inchisa, iesirea procesului (variabila controlata)este permanent controlata de un senzor, cum este aratat in figura urmatoare. Senzorul ia cateva probe de la iesirea sistemului si converteste aceasta masuratoare intr-un semnal electric, ce este adus inapoi la controler.
Deoarece controlerul stie de fapt ce actiune realizeaza sistemul, poate face cateva ajustari pentru a readuce iesirea sistemului la valoarea necesara. Trecerea semnalului de la controler catre actuator formeaza calea directa, iar trecerea semnalului de la senzor catre controler este calea de reactie, calea inversa. Inaintea controlerului se gaseste un comparator. Acesta efectueaza o operatie de scadere dintre semnalul de referinta si semnalul primit de la senzor. Astfel, ia nastere semnalul de eroare al sistemului. Acest semnal este diferenta dintre unde esti acum si unde ti-ai dorit sa fii. Controlerul intotdeauna actioneaza pentru a micsora aceasta eroare!
4
Controlerul poate utiliza o strategie de control mai simpla sau mai complexa pentru a minimiza aceasta eroare a sistemului. O strategie de control simpla se poate referi la oprirea sau pornirea unui actuator, de exemplu un radiator ce este pornit sau oprit pentru a mentine temperatura la un nivel dorit. Consideram acum exemplul cu bratul de robot, dar intr-un sistem cu bucla inchisa. Pozitia initiala a bratului de robot este la 0°. Dorim sa aducem bratul de robot in pozitia ungiulara de 30°. De data aceasta intervine un potentiometru care este montat pe axul motorului si are rol de senzor de pozitie. Pe masura ce motorul se roteste, se va roti si potentiometrul. Astfel exista o dependenta liniara intre rezistenta potentiometrului si pozitia bratului de robot. Informatia de la potentiometru poate fi convertita usor intr-o tensiune ce va fi prezenta la intrarea comparatorului. Initial, comparatorul sesizeaza diferenta mare dintre valoarea propusa de 30° si valoarea reala de 0°. Astfel, semnalul de eroare va fi maxim si motorul se va roti. Astfel, semnalul de eroare se va micsora si la un moment dat va fi zero. Astfel, la acest moment motorul se opreste, atingand pozitia dorita.
Caracteristica de auto-corectie ale controlului prin bucla inchisa determina alegerea acestui mod de control in locul controlului prin bucla deschisa in multe aplicatii, chiar daca exista componente electronice aditionale. Se intampla acest lucru pentru ca sistemele cu bucla inchisa furnizeaza performante sigure si repetabile chiar atunci cand componentele sistemului insusi nu au caracteristici absolut precise sau repetabile.
5
1.2 CONTROLER PID
Un controler proporţional-integral-derivativ este mecanism de feedback des utilizat în sistemele de control industriale. PID este cel mai utilizat tip de controler de feedback. Un controler PID calculeaza valoarea de erorii ca diferenţa dintre variabila măsurată şi cea setată a fi obţinută. Controlerul încearcă să minimiteze eroarea prin ajustarea intrărilor sistemului de control. Pentru cele mai bune performanţe, parametrii PID utilizaţi în sistem trebuie proiectaţi în funcţie de natura acestuia. Algoritmul controlerului PID implică trei parametri numiţi şi cei trei termeni de control
PROPORŢIONAL
INTEGRAL
DERIVATIV
Aceste valori sunt notate cu P, I şi D. Valoarea proporţională determină reacţia la curentul de eroare. Valoarea integrală determină reacţia pe baza sumei erorilor recente. Valoarea derivativă determină reacţia bazată pe rata la care eroare s-a schimbat. Aceste trei acţiuni sunt utilizate pentru ajustarea procesului printr-un un element de control cum ar fi poziţia valvei sau sursa de alimentare a unui element termic. Euristic, aceste valori pot fi interpretate în termeni de timp: P depinde de eroarea prezentă, I de acumularea erorilor trecute iar D este o predicție a erorilor viitoare. Prin combinarea celor trei constante într-un algoritm PID, controlerul poate asegura controlul pentru procesul sistemului dar utilizarea acestuia nu poate garanta controlul optim al sistemului sau stabilitatea acestuia. Unele aplicații necesită folosirea a unei sau a două dintre contante pentru a asigura controlul optim. Un controler PID poate fi numit controler PI, PD , P sau I în funcție de acţiunile sale. PI este cel mai utilizat controler în timp ce PD este foarte sensibil la zgomot.
6
7
Capitolul 2 Motorul de curent continuu
2.1 Motorul de curent continuu a fost inventat în 1873 de Zénobe Gramme prin conectarea unui generator de curent continuu la un generator asemănător. Astfel, a putut observa că maşina se roteşte, realizând conversia energiei electrice absorbite de la generator. Motorul de curent continuu are pe stator polii magnetici şi bobinele polare concentrate care creează câmpul magnetic de excitaţie. Pe axul motorului este situat un colector ce schimbă sensul curentului prin înfăşurarea rotorică astfel încât câmpul magnetic de excitaţie să exercite în permanenţă o forţă faţă de rotor. 2.2 Generatoarele de curent continuu Dacă un rotor se învârte între doi poli magnetici staţionari, curentul din rotor circulă într-o direcţie pe parcursul unei jumătăţi de rotaţie şi în cealaltă pe parcursul celeilalte jumătăţi. Pentru a produce o trecere constantă, într-o singură direcţie a curentului dintr-un astfel de dispozitiv, este necesară furnizarea unui mijloc prin care curentul rezultat să aibă acelaşi sens pe parcursul întregii rotaţii. La maşinile mai vechi această este realizată cu ajutorul unor plăcuţe colectoare, un inel de metal împărţit în două, montat pe axul rotorului. Cele două jumătăţi sunt izolate şi sunt bornele bobinei. Perii fixe de metal sau carbon sunt ţinute pe plăcuţele colectoare în timp ce acestea se rotesc, conectând electric bobina la fire exterioare. În timp ce rotorul se învârte, fiecare perie intră în contact alternativ cu plăcuţele colectoare, schimbându-şi poziţia în momentul când curentul din bobină îşi schimbă sensul. Astfel circuitul exterior la care generatorul este conectat este alimentat cu un curent continuu. Generatoarele de curent continuu sunt de obicei folosite la tensiuni mici pentru a evita scânteile dintre perii şi plăcuţe care rezultă la tensiuni mari. Cel mai mare potenţial obţinut în general de astfel de generatoare este de 1500 de volţi. În unele maşini mai noi această inversare se face folosind dispozitive electronice de mare putere, cum ar fi de exemplu diode redresoare. Generatoarele moderne folosesc rotoare cilindrice care, de obicei sunt constituite dintr-un număr mare de bobinaje aşezate longitudinal în lăcaşuri speciale şi conectate la
8
plăcuţe colectoare. Într-un bobinaj în care este un număr mic de lăcaşuri, curentul produs va creşte şi scădea în funcţie de partea de câmp magnetic prin care rotorul trece. Un bobinaj compus din mai multe segmente şi un rotor circular conectează în permanenţă circuitul aproape constant deoarece întotdeauna un bobinaj longitudinal se deplasează printr-o suprafaţă cu un câmp magnetic intens. Câmpurile de la generatoarele moderne sunt de obicei din patru sau mai mulţi poli, pentru a creşte mărimea şi puterea câmpului magnetic. Câteodată poli mai mici sunt adăugaţi pentru a compensa distorsiunile din fluxul magnetic cauzat de efectul magnetic al rotorului. 2.1 Motoarele cu curent continuu
În general, sunt similare în construcţie cu generatoarele de curent continuu. Ele pot, de fapt să fie descrise ca generatoare care „funcţionează invers”. Când curentul trece prin rotorul unui motor, este generat un câmp magnetic care generează o forţă electromagnetică, şi ca rezultat rotorul se roteşte. Acţiunea periilor colectoare şi a plăcuţelor colectoare este exact aceiaşi ca la generator. Rotaţia rotorului induce un voltaj în bobinajul rotorului. Acest voltaj indus are sens opus voltajului exterior aplicat rotorului. În timp ce motorul se roteşte mai rapid, voltajul rezultat este aproape egal cu cel indus. Curentul este mic, şi viteza motorului va rămâne constantă atât timp cât asupra motorului nu acţionează nici o sarcină, sau motorul nu efectuează alt lucru mecanic decât cel efectuat pentru învârtirea rotorului. Când asupra rotorului se aplică o sarcină, voltajul va fi redus şi un curent mai mare va putea să treacă prin rotor. Astfel, motorul este capabil
9
să primească mai mult curent de la sursa care îl alimentează, şi astfel să efectueze mai mult lucru mecanic. Deoarece viteza rotaţiei controlează trecerea curentului prin rotor, mecanisme speciale trebuie folosite pentru pornirea motoarelor cu curent continuu. Când rotorul se află în repaus, el, efectiv, nu are nici o rezistenţă, şi dacă voltajul normal este aplicat, va trece un curent mare, ceea ce ar putea avaria periile colectoare sau motorul. Mijloacele obişnuite pentru prevenirea acestor accidente este folosirea în serie a unei rezistenţe, la început, împreună cu rotorul, pentru a limita curentul până când motorul începe să dezvolte un curent suficient. Pe parcurs ce motorul prinde viteză, rezistenţa este redusă treptat, fie manual ori automat. Viteza cu care un motor cu curent continuu funcţionează, depinde de puterea câmpului magnetic care acţionează asupra rotorului, cât şi de curentul rotorului. Cu cât este mai puternic câmpul magnetic, cu atât este mai mică rată rotaţiei necesare să creeze un curent secundar necesar pentru a contracara curentul aplicat. Din acest motiv viteza motoarelor cu curent continuu poate fi controlată prin variaţia câmpului curentului. În funcţie de modul de conectare a înfăşurării de excitaţie motoarele de curent continuu pot fi clasificate în: motor cu excitaţie independentă - unde înfăşurarea statorică şi înfăşurarea rotorică sunt conectate la două surse separate de tensiune motor cu excitaţie paralelă - unde înfăşurarea statorică şi înfăşurarea rotorică sunt legate în paralel la aceeaşi sursă de tensiune motor cu excitaţie serie - unde înfăşurarea statorică şi înfăşurarea rotorică sunt legate în serie motor cu excitaţie mixtă - unde înfăşurarea statorică este divizată în două înfăşurări, una conectată în paralel şi una conectată în serie.
Caracteristicile motoarelor de curent continuu Schema electrică echivalentă a unui motor de curent continuu este ca aceea prezentată în figură de mai jos.
10
Ia’ Ra Ex U
E
În Ie
schemă
această Ra
reprezintă Ue rezistenţa înfăşurării rotorice (a indusului) a motorului de curent continuu, U este tensiunea de alimentare a motorului iar Ia’ este curentul absorbit de motor (curentul principal din indusul motorului). E reprezintă tensiunea electromotoare indusă în înfăşurarea rotorică, aceasta are sens opus curentului rotoric. Ex este înfăşurarea de excitaţie a motorului alimentată cu tensiunea Ue iar Ie este curentul absorbit de înfăşurarea de excitaţie. Scriind teorema a II-a a lui Kirchhoff pentru circuitul indusului avem: -E = Ra Ia’ – U U E Ia’ = Ra
de unde:
La pornire, când turaţia motorului este nulă, tensiunea electromotoare E indusă în înfăşurarea rotorică este nulă şi, ca urmare, curentul absorbit de motor este foarte mare, el poate fi de 6...20 de ori mai mare decât curentul nominal. Prin urmare este necesară reducerea acestuia cu ajutorul unui reostat de pornire înseriat cu circuitul rotoric. Curentul de pornire al motorului va fi:
Ip
U Ra R p Valoarea turaţiei motorului de curent continuu se poate exprima astfel:
n
U Ra I a ' E kE kE
R M' M' U a kM kM kE kE
U Ra
Această expresie ne arată care sunt factorii ce influenţează turaţia motorului de curent continuu.
11
Motorul de curent continuu cu excitaţie în derivaţie sau separată are o caracteristică mecanică
n(M’) rigidă deoarece fluxul magnetic de excitaţie Ф este
constant (tensiunea Ue este constantă). Aceste motoare se folosesc în acţionări electrice unde turaţia este practic constantă independent de sarcină (cuplul M’). Regalarea turaţiei la aceste motoare se poate face prin modificarea tensiunii U de alimentare sau prin modificarea curentului de excitaţie (deci a fluxului de excitaţie Ф). Din expresia turaţiei n se observă că la o eventuală funcţionare în gol a motorului, când M’ = 0, dacă fluxul de excitaţie Ф scade turaţia motorului poate creşte foarte mult. Se prezintă în figură de mai jos caracteristica mecanică a motorului de curent continuu cu excitaţie derivaţie sau separată (cazul a) precum şi caracteristicile mecanice la modificarea tensiunii (cazul b) şi la modificarea curenului de excitaţie (cazul c).
n
n
O
a Caracteristica mecanică a motorului cu excitaţie derivaţie sau separată
Mn M
n
Ie=const.
O
b Caracteristicile mecanice ale motorului cu excitaţie derivaţie sau separată la modificarea tensiunii
M
O
U=const.
c Caracteristicile mecanice ale motorului cu excitaţie derivaţie sau separată la modificarea excitaţiei
Se observă că turaţia se poate modifica în limite largi prin modificarea tensiunii de alimentare (cazul b) dar este necesară o sursă de curent continuu cu tensiune reglabilă.
12
Prin modificarea curentului de excitaţie turaţia se modifică, dar nu în limite prea largi. Se folosesc în practica acţionărilor electrice sisteme cs combină cele două principii de modificare ale turaţiei. Motorul de curent continuu cu excitaţie serie are o caracteristică mecanică de formă celei prezentate în figură de mai jos. Caracteristica mecanică are o formă de variaţie suplă, favorabilă sistemelor de tracţiune electrică. Astfel, se observă că la o creştere accidentală a cuplului rezistent, când intervine inerent o micşorare a turaţiei motorului (când maşina urcă o pantă, de exemplu) cuplul dezvoltat de motor creşte până ce va egala cuplul mecanic rezistent. Această caracteristică este extrem de utilă la maşinile de ridicat sau la maşinile de extracţie. Este important de menţionat faptul că motorul cu excitaţie serie nu poate funcţiona în gol, adică fără să antreneze mecanic un utilaj care să aibă un cuplu nrezistent. Dacă valoarea cuplului scade foarte mult turaţia motorului creşte la valori foarte mari, indmisibile. De aceea pentru a limita turaţia motorului la o valoare n max este necesar că valoarea cuplului să nu scadă sub o valoare minmă Mmin.
n nmax nn
O
Mmin Mn
Mmax
13
M M
Turaţia motorului cu excitaţie serie se poate regla prin modificarea tensiunii de alimentare sau prin modificarea curentului de excitaţie. Motorul de curent continuu cu excitaţie mixtă are două înfăşurări de excitaţie: una conectată în derivaţie (paralel) şi alta conectată în serie. De regulă înfăşurarea serie este cuplată magnetic adiţional rezultând astfel caracteristici mecanice de formă intermediară între cele ale motorului derivaţie şi serie. Asemenea motoare se folosesc în tracţiunea electrică, de exemplu la troleibuze. La aceste motoare se poate modifica uşor turaţia prin reglarea curentului de excitaţie.
2.3 Elemente de acţionare 2.3.1 Dispozitive de putere – Tranzistorul MOS Circuitele integrate MOS au fost realizate la început în tehnologia PMOS, datoriă predictibilităţii tensiunii de prag pentru tranzistoarele PMOS. Pe masură perfecţionării tehnologiei prin recurgerea la implantare ionică, tranzistorul NMOS a devenit tot mai raspândit. Evoluţia tehnologiei a condus, în continuare, la apariţia dispozitivelor CMOS. Acest capitol este consacrat tranzistoarelor NMOS şi PMOS din punctul de vedere al structurii şi operării.
Fig 2.1 Secţiune transversală printr-o celulă n-MOS
14
b
a Fig 2.2 Structura tranzistor
În figura de mai jos se prezintă: (a) măştile pentru un tranzistor NMOS, (b) o secţiune transversală prin structura tranzistorului şi familiile de caracteristici (c) IDS = f( VDS,VGS), (d) IDS = f(VGS,VB), pentru VDS = const. Tensiune VB este tensiunea de polarizare a substratului. Modificarea acestei tensiuni de polarizare conduce la modificarea tensiunii de prag.
a b Fig 2.3 (a) mastile pentru un tranzistor NMOS, (b) o secţiune transversală prin structura
15
c
d
Fig 2.4 Familiile de caracteristici ale tranzistorului NMOS
Mai jos se prezintă o secţiune prin: a - structura tranzistorului şi b - caracteristicile IDS = f(VDS).
a b Fig 2.5 a - structura tranzistorului şi b - caracteristicile IDS = f(VDS) 2.3.2 Operarea tranzistorului. Operarea tranzistorului poate fi examinata în cadrul a doua regiuni: regiunea liniara şi regiunea de saturatie (pinch-off)
16
Fig2.6 Structura tranzistorului şi tensiunea drena-sursa
Fig2.7 Terminalele tranzistorului MOS şi caracteristicile Tensiune-Curent
2.3.3 Ecuatia curentului IDS. In cele ce urmeaza se vor deduce o serie de ecuatii pentru curentul IDS, pe baza modelului simplificat al controlului prin sarcina. Pentru regiunea liniara, unde VGS> Vtn şi VD < VG - Vtn, se poate presupune o distributie uniforma a sarcinii, ceea ce face ca urmatoarea ecuatie sa fie valida: Qc ~ - Cox (VGS - Vtn ) unde Qc este densitatea de sarcina în canal (coulombi/unitatea de arie) şi Cox este capacitatea portii pe unitatea de arie. Se poate observa ca semnul este negativ datorita faptului ca sarcina este constituita din electroni. Elementele geometrice ce caracterizeaza canalul L – lungime, W- latime sunt prezentate în figura urmatoare:
17
Fig 2.8 Elementele geometrice ce caracterizeaza canalul L – lungime, W- latime Raportul W/L poarta numele de raport- aspect. 2.3.4. Tensiunea de prag (Vtn). Tensiunea de prag poate fi definita ca tensiunea între poarta şi sursa unui dispozitiv MOS sub valoarea careia curentul IDS devine zero. Considerand o valoare mica pentru VGS se pot face urmatoarele constatari: - sarcina initiala în canal se datoreaza numai acceptorilor ionizat din regiunea saraca ; - concentratia de purtatori minoritari de la suprafata devina egala cu concentratia purtatorilor majoritari din substrat; - cresterea în continuarea a lui VGS induce un puternic strat de inversie; - tensiunea de prag Vtn/ Vtp poate fi controlata prin modificarea grosimii stratului de dioxid de siliciu tox, care nu constituie un parametru de proiectare, fiind controlat de specialistul în procesul de fabricatie.
Capitolul 3 18
Encodere pentru măsurări de rotaţie 3.1 Encodere liniare Deplasarea liniara poate fi măsurată şi transmisă de un dispozitiv denumit encoder, fără să se utilizeze vreo formă de conversie analog-digitala deoarece semnalul de ieşire de bază este deja într-un format digital. În mediul industrial termenul encoderliniar se referă la traductoare Standard bazate pe forme geometrice aplicate de-a lungul unei scale liniare şi detectate prin una sau mai multe metode. Encoderele liniare sunt disponibile pentru citiri incrementale sau absolute şi cuprind tehnici de detecţie de ţip: - optic: - magnetic; - capacitiv; - bazate pe perii. Encoderele trebuie să ofere şi caracteristici cum ar fi: - soliditate; - rezoluţie; - dimensiuni fizice mici. Istoria encoderelor Cel mai vechi tip de encoder este cel bazat pe perii. Mai multe lamele de metal realizează un contact mecanic pe o suprafaţă împărţită în zone conducătoare şi izolatoare. Când lamela se afla în contact cu un segment conducător se închide un contact electric, altfel contactul rămâne deschis. Constructiv, encoderul este format dintr-un cap de citire fixat rigid de partea mobila a maşinii unelte care se deplasează liniar peste o suprafaţă formată din grila de suprafeţe conducătoare sau izolatoare.
19
Dezavantajul cel mai mare al acestei tehnici de măsurare este uzura mare a lamelelor şi suprafeţelor de contact, sau chiar defectări ale lamelelor. După 1990 acest tip de encodere, considerat depăşit din punct de vedere tehnic, nu a mai fost acceptat în schemele de măsurare industriale, fiind total înlocuit cu cele optice sau magnetice.
3.2 Encodere incrementale şi absolute Encoderul absolut oferă întotdeauna informaţie referitoare la distanţa faţă de poziţia de start. Dacă la poziţia curentă, codul este de exemplu 97610, codat binar pe 10 biţi înseamnă că distanţă faţă de origine este 97610 x, exprimată binar 11011011002. În cazul encoderelor incrementale, la ieşirea encoderului se oferă numai un bit de informaţie sau doi biţi în cazul codoarelor în quadratura la 900. Ieşirea codorului informează prin modificarea bitului 0 sau 1 dacă mişcarea părţii mobile a depăşit valoarea unui increment x. Trenul de impulsuri generat modifică valoarea unui numărător up/down. Distanţa este dată de valoarea numărătorului. La encoderele incrementale cu 2 biţi în quadratura cel de-al doilea bit serveşte la detectarea sensului mişcării. În plus
20
detectoarele incrementale mai pot oferi şi un bit (impuls) de index care se poate utiliza la detectarea unei soluţii complete a unui arbore.
3.3 Encodere optice Un encoder optic utilizează o pereche emiţător/receptor. Emiţătorul este o sursă de lumină, de obicei o diodă LED, iar receptorul un fototranzistor. Al doilea receptor optic este util în cazul encoderelor incrementale, fiind poziţionat la o distanţă necesară pentru a produce o deplasare cu 900 între cele două ieşiri, obţinându-se o ieşire în quadratură.
3.4 Encodere magnetice Un encoder magnetic utilizează o bandă magnetică în care e înregistrată informaţia de poziţie şi dispune de un senzor magnetic pentru citirea datelor. Senzorii sunt de obicei traductori cu efect Hall sau cu magneto-rezistentă.
21
Pentru detectarea şi utilizarea semnalului de măsurare al senzorului, circuitul electronic se bazează pe o punte Wheatstone.
Punte Wheatstone utilizată cu sezori magnetorezistivi de poziţie
3.5 Encodere în quadratura Sunt encodere incrementale cu 2 ieşiri A şi B. Ele oferă impulsuri în quadratură ceea ce înseamnă că sunt separate în fază de 900.
22
Se numesc în quadratură deoarece “quad” înseamnă patru, corespunzând la cele 4 combinaţii a celor doi biţi A şi B pentru un ciclu. Ciclul se consideră de 360 grade chiar dacă nu este vorba de o mişcare de rotaţie. În consecinţă, sunt 4 tranziţii pe ciclu, o fază fiind întârziata fata de cealaltă cu 900, adică ¼ din 3600. Cele 4 stări posibile sunt AB, AB, AB, AB.Motivul pentru care sunt 2 ieşiri este ca în acest mod pot oferi o informaţie asupra direcţiei de mişcare atât la incrementare cât şi la decrementare. De exemplu: dacă A trece din 0 în 1 în timp ce B este 0 atunci poate fi vorba de o incrementare, altfel dacă A trece din 1 în în 0 când B este 1 poate fi vorba de o decrementare. Altă posibilitate de a stabili sensul este să se monitorizeze stările lui A şi B continuu folosind o rată de eşantionare suficient de mare. Această metodă se foloseşte de obicei cu un microcontroler reducându-se foarte mult numărul de erori. Utilizarea codului Gray în encodere În encoderele absolute informaţia poate fi codată în Codul Binar Natural, BCD sau GRAY. Codul BCD este similar cu cel binar pe 4 biţi. BCD = Binary Coded Decimal. Codurile binar natural sau BCD sunt uşor de folosit direct cu circuitele digitale standard. Ele au însă şi un dezavantaj important: uneori la schimbarea unui singur increment se schimba simultan mai mult decât un singur bit. Acest lucru poate însemna o eroare dacă bitii nu se schimba exact în acelaşi timp. De exemplu, presupunând schimbarea de la 7 la
23
8: 01111000, dacă cel mai semnificativ bit se schimbă cu câteva fracţiuni de secundă mai devreme decât ceilalţi, se poate citi ca rezultat pentru un moment de timp: 1111=15. Această valoare reprezintă o eroare şi poate provoca instabilitatea sistemului. Problema prezentată mai sus se rezolvă folosind codul GRAY în locul Codului Binar Natural sau BCD. Codul GRAY este astfel conceput încât prin incrementarea cu un bit îşi schimbă starea la ieşire cu un singur bit. N Binar
GRAY
r. 0 1 2 3 4 5 6 7 8 9 A B C D E F
0000 0001 0011 0010 0110 0111 0101 0100 1100 1100 1111 1110 1010 1011 1001 1000
natural 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
CAPITOLUL 4 Organizarea unui microsistem de comandă cu microcontroler PIC 16F877 4.1 Ce este un microcontroler?
24
La modul general un controler ("controller" - un termen de origine anglo-saxonă, cu un domeniu de cuprindere foarte larg) este, actualmente, o structură electronică destinată controlului unui proces sau, mai general, unei interacţiuni caracteristice cu mediul exterior, fără să fie necesară intervenţia operatorului uman. Primele controlere au fost realizate în tehnologii pur analogice, folosind componente electronice discrete şi/sau componente electromecanice (de exemplu relee). Cele care fac apel la tehnica numerică modernă au fost realizate iniţial pe baza logicii cablate (cu circuite integrate numerice standard SSI şi MSI) şi a unei electronici analogice uneori complexe, motiv pentru care "străluceau" prin dimensiuni mari, consum energetic pe măsură şi, nu de puţine ori, o fiabilitate care lăsa de dorit. Apariţia şi utilizarea microprocesoarelor de uz general a dus la o reducerea consistentă a costurilor, dimensiunilor, consumului şi o îmbunătăţire a fiabilităţii. Există şi la ora actuală o serie de astfel de controlere de calitate, realizate în jurul unor microprocesoare de uz general cum ar fi Z80 (Zilog), 8086/8088 (Intel), 6809 (Motorola), etc. Pe măsură ce procesul de miniaturizare a continuat, a fost posibil ca majoritatea componentelor necesare realizării unei astfel de structuri să fie încorporate (integrate) la nivelul unui singur microcircuit (cip). Astfel că un microcontroler ar putea fi descris ca fiind şi o soluţie (nu în sens exhaustiv) a problemei controlului cu ajutorul a (aproape) unui singur circuit. Legat de denumiri şi acronime utilizate, aşa cum un microprocesor de uz general este desemnat prin MPU (MicroProcessor Unit), un microcontroler este, de regulă, desemnat ca MCU, deşi semnificaţia iniţială a acestui acronim este MicroComputer Unit. O definiţie, cu un sens foarte larg de cuprindere, ar fi aceea că un microcontroler este un microcircuit care incorporează o unitate centrală (CPU) şi o memorie împreună cu resurse care-i permit interacţiunea cu mediul exterior. Resursele integrate la nivelul microcircuitului ar trebui să includă, cel puţin, următoarele componente: a. o unitate centrală (CPU), cu un oscilator intern pentru ceasul de sistem b. o memorie locală tip ROM/PROM/EPROM/FLASH şi eventual una de tip RAM
25
c. un sistem de întreruperi d. I/O - intrări/ieşiri numerice (de tip port paralel) e. un port serial de tip asincron şi/sau sincron, programabil f. un sistem de timere-temporizatoare/numărătoare programabile Este posibil ca la acestea să fie adăugate, la un preţ de cost avantajos, caracteristici specifice sarcinii de control care trebuie îndeplinite: g. un sistem de conversie analog numerică (una sau mai multe intrări analogice) h. un sistem de conversie numeric analogic şi/sau ieşiri PWM (cu modulare în durată) i. un comparator analogic j. o memorie de date nevolatilă de tip EEPROM k. facilităţi suplimentare pentru sistemul de temporizare/numărare (captare şi comparare) l. un ceas de gardă (timer de tip watchdog) m. facilităţi pentru optimizarea consumului propriu Un microcontroler tipic mai are, la nivelul unităţii centrale, facilităţi de prelucrare a informaţiei la nivel de bit, de acces direct şi uşor la intrări/ieşiri şi un mecanism de prelucrare a întreruperilor rapid şi eficient. Utilizarea unui microcontroler constituie o soluţie prin care se poate reduce dramatic numărul componentelor electronice precum şi costul proiectării şi al dezvoltării unui produs. Utilizarea unui microcontroler, oricât de evoluat, nu elimină unele componente ale interfeţei cu mediul exterior (atunci când ele sunt chiar necesare): - subsisteme de prelucrare analogică (amplificare, redresare, filtrare, protecţielimitare); - elemente pentru realizarea izolării galvanice (optocuploare, transformatoare); - elemente de comutaţie de putere (tranzistoare de putere, relee electromecanice sau statice). 4.2 Utilizarea microcontolerelor
26
Toate aplicaţiile în care se utilizează microcontrolere fac parte din categoria aşa ziselor sisteme încapsulate-integrate (“embedded systems”), la care existenţa unui sistem de calcul incorporat este (aproape) transparentă pentru utilizator. Pentru că utilizarea lor este de foarte multe ori sinonimă cu ideea de control, microcontrolerele sunt utilizate masiv în robotică şi mecatronică. Printre multele domenii unde utilizarea lor este practic un standard industrial se pot menţiona: în industria de automobile (controlul aprinderii/motorului, climatizare, diagnoză, sisteme de alarmă, etc.), în aşa zisa electronică de consum (sisteme audio, televizoare, camera video şi videocasetofoane, telefonie mobilă, GPS-uri, jocuri electronice, etc.), în aparatura electrocasnică (maşini de spălat, frigidere, cuptoare cu microunde, aspiratoare), în controlul mediului şi climatizare (sere, locuinţe, hale industriale), în industria aerospaţială, în mijloacele moderne de Figura 2.1 Johnnie
măsurare - instrumentaţie (aparate de măsură, senzori şi
traductoare inteligente), la realizarea de periferice pentru calculatoare, în medicină. „Johnnie” (figura 2.1) un robot umanoid destul de simplu, construit la Universitatea Tehnică din Munchen în 1998, utilizează 5 microcontrolere, conectate prin intermediul unei magistrale CAN la un calculator PC. „Alpha” un alt robot umanoid (fotbalist ca destinaţie) dezvoltat la Universitatea din Freiburg utilizează, intr-o variantă a sa, 11 microcontrolere conectate similar. Un număr foarte mare de microcontrolere sunt folosite şi de aşa zisele jucării inteligente, din care „capetele de serie” cele mai cunoscute sunt cei doi roboţi, unul canin şi altul umanoid: AIBO (Sony) şi ASIMO (Honda). ASIMO foloseşte 26 de microcontrolere numai pentru controlul individual al celor 26 de elemente de acţionare inteligente (motoare). Tot în categoria roboţilor umanoizi intră şi QRIO (Sony) sau HOAP-1 (Fujitsu). Roboţii respectivi sunt produşi în serie, unii dintre ei chiar la un preţ „accesibil”. Ca un exemplu din industria de automobile (automotive industry), unde numai la nivelul anului 1999, un BMW seria 7 utiliza 65 de microcontrolere, iar un Mercedes din clasa S utiliza 63 de microcontrolere. Practic, deşi am prezentat ca exemple concrete numai sisteme robotice şi mecatronice, este foarte greu de găsit un domeniu de aplicaţii în care să nu se utilizeze microcontrolerele.
27
4.3 Clasificări şi variante constructive Există la ora actuală un număr extrem de mare de tipuri constructive de microcontrolere. Un criteriu de clasificare care se poate aplica întotdeauna este lungimea (dimensiunea) cuvântului de date. Funcţie de puterea de calcul dorită şi de alte caracteristici se pot alege variante având dimensiunea cuvântului de date de 4, 8,16 sau 32 de biţi (există chiar şi variante de 64 de biţi). Nu este obligatoriu ca dimensiunea cuvântului de date să fie egală cu dimensiunea unui cuvânt maşină (cuvânt program). Există şi multe variante zise dedicate, neprogramabile de utilizator la nivel de cod maşină, strict specializate pe o anumită aplicaţie, prin intermediul codului preprogramat şi al resurselor hardware, utilizate pentru comunicaţii, controlul tastaturilor, controlul aparaturii audio/video, prelucrarea numerică a semnalului, etc. 4.4 Tehnologiile de fabricaţie utilizate Practic, toate microcontrolerele se realizează la ora actuală în tehnologie CMOS (tehnologii similare celor utilizate la seriile standard CMOS de circuite numerice: HC, AC, ALV, etc.). Se pot realiza astfel structuri cu o mare densitate de integrare, cu un consum redus (care va depinde de frecvenţa de lucru), permiţând eventual alimentarea de la baterie. Logica internă este statică (total sau în cea mai mare parte) permiţând astfel, în anumite condiţii, micşorarea frecvenţei de ceas sau chiar oprirea ceasului în ideea optimizării consumului. Tehnologia este caracterizată şi de o imunitate mai mare la perturbaţii, esenţială într-un mare număr de aplicaţii specifice. Se realizează variante pentru domeniu extins al temperaturii de funcţionare (de ex.- 40 +85 C). Există foarte multe variante de încapsulare (capsule de plastic şi mai rar de ceramică), multe din ele destinate montării pe suprafaţă (SMD): SOIC, PLCC, PQFP, TQFP (x100 pini), etc., dar şi variante clasice cu pini tip DIP/DIL (tipic de la 8 la 68 pini). 4.5 Caracteristici arhitecturale ale unităţii centrale
28
Arhitectura unităţii centrale de calcul (CPU) este unul din elementele cele mai importante care trebuie avut în vedere în analiza oricărui sistem de calcul. Principalele concepte luate în considerare şi întâlnite aici sunt următoarele: a. Arhitecturi de tip “von Neumann” Cele mai multe microcontrolere sunt realizate pe baza acestei arhitecturi de sistem. b. Arhitecturi de tip "Harvard" La această arhitectură există spaţii de memorie separate pentru program şi date c. CISC Aproape toate microcontrolerele au la baza realizării CPU conceptul CISC (Complex Instruction Set Computer). d. RISC RISC (Reduced Instruction Set Computer) este un concept de realizare a CPU care a început să fie utilizat cu succes de ceva timp şi la realizarea microcontrolerelor. 4.6 Controlul puterii consumate şi alimentarea la tensiuni reduse Majoritatea microcontrolerelor pot fi trecute sub control soft în stări speciale cum ar fi: în aşteptare (STAND-BY), inactiv ("IDLE") sau oprit ("HALT", "POWER DOWN"), denumirile acestor stări diferind şi funcţie de fabricant. În aceste moduri starea CPU, conţinutul RAM-ului intern, starea I/O-urilor poate fi conservată în condiţiile unei tensiuni de alimentare reduse (faţă de cea nominală) şi deci al unui consum mult redus. Flexibilitatea acestui sistem este strâns legată de faciltităţile şi programabilitatea sistemului de generare a ceasului de lucru. De exemplu, într-un mod de tip "IDLE" toate activităţile sunt oprite cu excepţia circuitului oscilatorului local de ceas şi, dacă acestea există: circuitul "watchdog" (ceasul de gardă), circuitul de monitorizare a oscilatorului de ceas şi eventual un temporizator dedicat ("idle timer"). Puterea consumată este redusă la cca. 30%, iar ieşirea din acest mod se face prin reset (iniţializare) sau printr-un stimul exterior (de regulă o întrerupere). Temporizatorul dedicat poate scoate periodic microcontrolerul din această stare, pentru îndeplinirea anumitor sarcini, după care se reintră în starea respectivă.
29
În modul "HALT" toate activităţile sunt oprite, tensiunea de alimentare poate fi coborâtă sub valoarea nominală, fără alterarea stării (CPU, RAM, I/O), puterea consumată fiind minimă. Ieşirea din această stare se face prin reset sau ca urmare a unei cereri de întrerupere. Toate aceste moduri de lucru sunt de regulă valorificate în aplicaţii în care alimentarea sistemului se face de la o sursă de tip baterie (în funcţionarea normală sau numai în anumite situaţii). Se mai oferă uneori ca facilitate o protecţie la scăderea accidentală (în anumite limite) a tensiunii de alimentare ("brownout protection"). La scăderea tensiunii de alimentare sub o anumită limită ("brownout voltage") microcontrolerul este iniţializat (resetat) şi ţinut în această stare atâta timp cât condiţia respectivă persistă. Tensiunea de alimentare standard pentru microcontrolere a fost mult timp din considerente istorice (vezi TTL-ul), de Vcc = 5V (cu o anumită toleranţă). La ora actuală se oferă, pentru multe din ele, şi variante cu tensiune de alimentare redusă (Low Voltage) cu Vcc = 1.8 .. 3.3V, destinate unor aplicaţii unde consumul este un parametru critic. Există variante cu plajă mare a tensiunii de alimentare, de exemplu Vcc = 2..6V, funcţionarea la limita inferioară implicând doar o micşorare a frecvenţei maxime de ceas. 4.7 Sistemul de ceas Orice microcontroler este caracterizat cel puţin de existenţa circuitelor electronice aferente oscilatorului care generează ceasul de sistem. Astfel este posibilă implementarea simplă a oscilatorului doar prin adăugarea, în exterior, a unui rezonator extern (cuarţ sau piezoceramica) pentru stabilizarea frecvenţei şi eventual a unor capacitori. Dacă stabilitatea şi precizia frecvenţei nu este o cerinţă importantă, la anumite microcontrolere se poate utiliza doar un circuit RC extern sau există un circuit RC intern, care determină frecvenţa de oscilaţie. Există microcontrolere la care configuraţia oscilatorului este programabilă prin intermediul unor „fuzibile” FLASH (se programează similar memoriei de program): rezonator extern şi tipul acestuia, varianta RC intern sau extern, gama de frecvenţă, etc. 4.8 Interfaţa externă (sistemul de intrări şi ieşiri)
30
Toate microcontrolerele au un număr oarecare de intrări- Inputs / ieşiri numericeOutputs (de la x1 la x10) organizate sub forma unor porturi I/O; conexiunile exterioare sunt bidirecţionale sau unidirecţionale, unele sunt multifuncţionale (se oferă funcţii alternative pe acelaşi pin), unele pot avea o capacitate sporită de a absorbi curent (de exemplu pentru comanda directă a unui LED, cu IOL max = - 20mA), etc. În afară de acest set de intrări/ieşiri de uz general, pentru interfaţa cu mediul exterior se oferă o serie de alte facilităţi importante de intrare/ieşire cum ar fi: a. UART (Universal Asynchronous Receiver Transmitter) este un port serial bidirecţional destinat implementării unui protocol clasic de comunicaţie asincron; USART (Universal Synchronous Asynchronous Receiver Transmitter) este un port similar, dar care permite implementarea şi a unui protocol sincron cu obţinerea unor viteze mai mari de comunicaţie; SCI (Serial Communications Interface) este un circuit de tip UART îmbunătăţit, definit şi utilizat de firma Freescale (Motorola). LIN (Local Interconnect Network) reprezintă o implementare particulară a unui protocol de comunicaţie asincron, utilizată în industria de automobile ca o alternativă de mică viteză dar cu preţ scăzut pentru magistrala şi protocolul CAN (vezi mai jos). b. Porturi seriale sincrone dedicate - sunt destinate transferului serial de date de mare viteză cu unele periferice specializate (sisteme de afişare, convertoare analognumerice, etc.) sau care permit conectarea într-o reţea de comunicaţie. Presupun existenţa, împreună cu datele, a unui semnal de ceas (implicit sau explicit) pentru sincronizarea acestora. Implică şi implementarea unor protocoale mai mult sau mai puţin complexe de transfer al informaţiei, fiind de fapt vorba de o magistrală serială. Există câteva implementări răspândite (sunt prezentate în ordinea crescătoare a complexităţii): - SPI (Serial Peripheral Interface) este un port serial sincron definit de firma Motorola - Microwire / Microwire Plus este o interfaţă serială bidirecţională sincronă definită şi utilizată de firma National Semiconductors - I2C (Inter Integrated Circuits bus) este o interfaţă serială bidirecţională (pe numai 2 fire), dezvoltată de Philips, destinată aplicaţiilor de 8 biţi. Există şi multe circuite "periferice" care sunt prevăzute cu o astfel de interfaţă. Este cunoscută şi sub denumirea TWI (Two Wire Interface)
31
- CAN (Controller Area Network) proprietate intelectuală a firmei Bosch, foarte utilizat în Europa şi Japonia, oarecum similar ca funcţionalitate lui SAE J1850 care este utilizat în America de Nord (SAE -Society of Automotive Engineers), este un standard (o magistrală şi un protocol) de comunicaţie serială sincronă utilizat în industria de automobile, permiţând interconectarea într-o reţea a diverselor componente inteligente (senzori, elemente de execuţie, indicatoare, etc.) omniprezente într-un automobil modern. În ultimul timp magistrala CAN a început să fie utilizată şi în alte domenii decât industria de automobile (automatizări industriale, robotică, acţionări electrice). c. Conectivitate Ethernet/Web – implică existenţa unor resurse care să permită integrarea cu uşurinţă într-o reţea de tip Ethernet, pentru a face posibilă, în final, implementarea unui protocol TCP/IP (a unei stive TCP/IP). Resursele respective pot fi de natură software (stivă soft) care presupun o viteză de prelucrare (putere de calcul) a CPU suficient de mare pentru a nu afecta vizibil operarea propriu-zisă a controlerului, sau hardware (stivă hardware). Pe baza acestei stive se poate realiza o conectivitate tip HTTP, FTP, STMP, POP3, etc. d. Conectivitate USB - magistrala serială USB (Universal Serial Bus) a fost creată pentru conectarea cu uşurinţă a diverselor periferice la un calculator PC (cu rolul de gazdă - host). Conexiunea permite şi furnizarea tensiunii de alimentare. Varianta USB 1.1 permite atingerea unei rate de transfer maxime a datelor de 12Mbytes/sec, iar varianta USB 2.0 a unei rate maxime de cca. 480MBytes/sec. La ora actuală există pe piaţă multe firme care oferă o gamă largă de microcontrolere cu conectivitate USB (majoritatea compatibile USB 1.1), cu un preţ de cost minim pentru componentele hardware şi software. Exemple în acest sens ar fi firmele: Atmel, Microchip, Intel, Cypress, ST, Infineon, s.a. Majoritatea sunt destinate realizării unor periferice USB şi mai puţine realizării unui USB host. e. Conectivitate Wireless - se referă la existenţa unor resurse hardware şi/sau software care să permită integrarea cu uşurinţă şi la un preţ de cost avantajos într-o reţea de tip wireless, pentru a face posibilă, în final, implementarea unui protocol (a stivei aferente protocolului). Exemplele cele mai cunoscute de astfel de reţele, protocoale şi stive sunt Bluetooth (IEEE 802.15.1) şi Zigbee (IEEE 802.15.4).
32
f. Convertoarele Analog Numerice (CAN, ADC) - convertoarele utilizate fac parte de regulă dintr-un sistem de achiziţie de date, existând şi un multiplexor analogic cu mai multe canale de intrare. Rezoluţia disponibilă este tipic de 8, 10 sau 12 biţi, uneori cu precizia (rezoluţia adevărată) corespunzătoare unui număr mai mic de biţi. În marea majoritate a cazurilor ele sunt realizate pentru mărime de intrare unipolară. Sursa de referinţă utilizată este internă sau externă. Timpul minim de conversie este în plaja x μsec la x10 μsec. Există microcontrolere care utilizează tehnici de recalibrare (auto-zero, corecţie câştig, etc.) pentru mărirea şi/sau menţinerea preciziei. Tehnicile de conversie cele mai utilizate sunt: aproximaţii succesive (majoritatea) cu eşantionare implicită (circuit Track-Hold inclus), rampă digitală (mai rar). Există şi subsisteme locale care, în cazul în care sunt prezente, pot fi folosite pentru implementarea unor alte tehnici de conversie bazate pe integrare (cu utilizarea unui număr minim de componente exterioare): numărătoare de impulsuri, circuite comparatoare (analogice, standard), intrări de captare (forţează memorarea - "captarea" valorii unui numărător care numără liber, în momentul activării, permiţând astfel măsurarea intervalelor de timp sau frecvenţelor), etc. În ultimul timp au apărut şi variante de CAN cu rezoluţii mari şi foarte mari, realizate în tehnica sigma-delta (σ-δ). Realizările respective sunt mai degrabă un CAN cu microcontroler (firma Analog Device oferă un nucleu de microcontroler 8051 plus un CAN sigma-delta cu rezoluţii de până la 24 biţi) g. Convertoarele Numeric Analogice (CNA, DAC) Cea mai răspândită tehnică de conversie numeric analogică folosită este bazată pe modulaţia în factor de umplere (PWM- Pulse Width Modulation). Există unul sau mai multe canale pe care se poate genera un tren de impulsuri cu factor de umplere programabil (de la 0 la 100%). Factorul de umplere este controlat cu o rezoluţie de la 8 biţi sau 16 biţi. Frecvenţa trenului de impulsuri este şi ea programabilă, în limite largi. La un microcontroler fără un sistem PWM dedicat, în acest scop se poate utiliza, cu o flexibilitate mai scăzută, sistemul de timere/numărătoare şi orice ieşire numerică. Printr-o filtrare exterioară relativ simplă, de tip trece jos (FTJ, Low Pass), se poate obţine o tensiune de ieşire proporţională cu factorul de umplere. Convertoarele numeric analogice propriu-zise sunt mai rar întâlnite.
33
h. Interfaţa pentru sisteme de afişare tip LCD (panou LCD) În ultimul timp în familiile de microcontrolere deja consacrate sau în familiile noi au apărut variante care posedă un subsistem destinat conectării directe, cu utilizarea unui număr minim de componente exterioare, unui sistem de afişare (un panou) de tip LCD (cu cristale lichide). Interfaţa respectivă generează toate semnalele necesare pentru comanda panoului LCD. Complexitatea sa este descrisă prin numărul maxim de segmente LCD care pot fi controlate, fiind limitată în primul rând de numărul de conexiuni externe necesare (pentru un număr mare de segmente oricum se folosesc tehnici de multiplexare). 4.9 Criterii de alegere a unui microcontroler În momentul în care se doreşte alegerea unui microcontroler (sau mai bine zis a unei familii de microcontrolere) pentru dezvoltarea unei aplicaţii de tip “embedded system” există mai multe criterii care trebuie luate în considerare, ţinând cont de implicaţiile multiple ale acestei alegeri. Vom încerca să grupăm aceste criterii după cerinţele impuse aplicaţiei şi să prezentăm câteva din întrebările rezultate, la care trebuie dat un răspuns. a. Costurile aplicaţiei Care va fi scara de producţie: prototip, producţie mică/medie sau de masă? Care sunt costurile permise pentru microcontroler? Care sunt costurile permise pentru mediul de programare şi dezvoltare? b. Timpul de dezvoltare al aplicaţiei Ce limbaj de programare să aleg? Ce limbaje de programare cunosc bine şi ce medii de dezvoltare am utilizat? Ce modalitate de testare şi depanare folosesc: simulator, sistem de dezvoltare, emulator? c. Caracteristicile fizice - Care este viteza de prelucrare (de calcul) necesară? - De câtă memorie am nevoie pentru program şi respectiv date? Va fi necesară si o memorie externă?
34
Ce fel de alimentare este disponibilă şi care sunt limitările acesteia? De câte intrări şi/sau ieşiri am nevoie? Ce fel de intrări şi/sau ieşiri sunt necesare: intrări/ieşiri analogice, ieşiri numerice de curent mai mare? Care sunt resursele necesare în materie de temporizare/numărare si care ar fi caracteristicile lor cele mai importante (rezoluţie, frecvenţă maximă de numărare) ? Ce tip de capsulă, ce dimensiuni fizice şi număr de pini ar trebui să aibă? Care este gama temperaturilor de lucru necesare? Aplicaţia va funcţiona într-un mediu cu caracteristici speciale, de exemplu în care există perturbaţii electromagnetice puternice? d. Conectivitatea Care sunt resursele de comunicaţie necesare: câte porturi seriale asincrone şi cu ce caracteristici, ce tipuri de magistrale seriale sincrone sunt disponibile? Este necesară o conectivitate Ethernet (o stivă TCP/IP), USB sau wireless (stive Bluetooth, Zigbee, etc.) e. Compatibilitate, scalabilitate şi dezvoltare ulterioară Cu ce tipuri de circuite se poate interfaţa cât mai simplu: sisteme de afişare, senzori, elemente de comandă şi execuţie (relee, motoare de cc, motoare pas cu pas, etc.)? Cum se poate realiza extinderea ulterioară, atunci când este necesară? Există mai multe variante în familia respectivă de microcontrolere, care să acopere eventualele cerinţe suplimentare în materie de viteză de lucru, resurse periferice sau de memorie? f. Alte aspecte Ce distribuitori există şi cât sunt de accesibili pentru mine? Care este suportul oferit de fabricant sau distribuitor şi care este baza de cunostinţe existentă: site-uri web, documentaţie on-line sau pe CD-uri, note de aplicaţii,
35
exemple de proiectare (reference designs), software din categoria freeware/shareware şi, nu în ultimul rând, forumuri de discuţii pentru utilizatori? Din păcate răspunsurile la multe din aceste întrebări sunt corelate între ele. Un exemplu este legătura care există între criteriile de cost şi cele de timp de dezvoltare. Principial, utilizarea unui limbaj de nivel înalt împreună cu un emulator pentru testare şi depanare poate duce la scurtarea consistentă a timpului de dezvoltare. Dar preţul unui compilator este întotdeauna mai mare decât cel al unui asamblor (nimic nu e mai ieftin decât ceva ce poate fi gratis), iar preţul unui emulator este şi el mai mare decât cel al unor mijloace mai simple de testare şi depanare. În practică, de cele mai multe ori, alegerea unui microcontroler pentru a anumită aplicaţie este şi trebuie să fie rezultatul unui compromis. Prezentare caracteristici PIC 16F877: Microcontrolerul 16F877 are urmatoarele caracteristici: -35 cuvinte de comandă -frecvenţă maximă de operare-20MHz -memorie flash 8K -memorie RAM 368 bytes -memorie EEPROM 256 bytes -SLEEP mode pentru un consum redus de energie -domeniul de tensiune 2.2V-5.5V -consum redus