Sunteți pe pagina 1din 5

Circuite periferice externe Circuitele periferice externe sporesc facilitile care n mod normal lipsesc microcontrolerului.

Aceste circuite sunt disponibile cu interfee externe paralel sau seriale. Cele mai rspndite interfee paralel sunt pe 8 bii i au fost dezvoltate de Intel (i oferite i de Tundra sau OKI) i Motorola (oferite i de SGS Thomson). Variantele NMOS ale acestor circuite au un consum ridicat, de aceea sunt recomandate variantele CMOS. Calculatorul IBM PC original a fost dezvoltat pe o magistral Intel, aceste circuite fiind disponibile i azi i funcionnd foarte bine cu microcontrolere pe 8 bii. Perifericele care utilizeaz o interfa serial se pot conecta practic la orice microcontroler, fie c acesta are suportul hardware pentru respectiva interfa sau nu, deoarece o serie de rutine de comunicare sunt oferite gratuit de productor sau sunt disponibile pe Internet. Timer (magistral paralel): conine n cazul tipic pn la 3 timere pe 16 bii care pot fi utilizate independent sau n diverse combinaii. Intel 8253 i 8254 sunt exemple tipice de astfel de timere. UART (magistral paralel): conine unul sau dou UART independente. Aceste circuite externe ofer liniile de handshaking specifice portului serial i care nu sunt prezente la implementrile UART interne. Exist UART cvadruple sau octale cu rate de transfer de pn la 3 Mb/s pentru aplicaii de vitez. Intel 8251 i derivatele sale sunt astfel de exemple. Extensie de port paralel (magistral paralel sau mai nou serie) denumit de exemplu PPI - Parallel Port Interface - mrete numrul de linii I / O digitale. Exemplul tipic este Intel 8255 care ofer 24 de linii I / O suplimentare la o capsul de 40 de pini (interfa paralel). Dac este posibil, este recomandabil utilizarea variantei CMOS fa de cea clasic NMOS (notat de Intel 8255A) deoarece consumul este semnificativ redus. ADC Convertor analog-digital - Analog-digital converter (interfa paralel sau serie): Ofer faciliti care deocamdat nu sunt tipice convertoarelor interne: rezoluie pe 12 bii sau mai mult, zgomot redus i vitez mai mare de operare. RTC Ceas de timp real (interfa serie): un circuit cu oscilatorul cu cuar i baterie proprie, care memoreaz data i ora curent. Memorii nevolatile - Non-Volatile RAM (magistral paralel sau serie): Memorii FLASH sau EEPROM care menin informaia i cnd nu sunt alimentate. Interfaa paralel ofer vitez de operare mult mai mare, dar variantele seriale sunt mai ieftine i se potrivesc cu microcontrolerele de dimensiuni reduse. O serie de circuite TTL, mai ales din familiiele 74HC, HCT, pot fi utilizate direct cu microcontrolerul pentru a rezolva probleme I / O - de obicei se constat c microcontrolerul dispune de prea puini pini I / O, iar un microcontroler "mai mare" este prea scump. Aceste circuite sunt n cazul tipic, tipic latch-uri, multiplexoare, registre de deplasare, decodificatoare i codificatoare. De exemplu circuitul 74HCT574 poate oferi 8 ieiri numerice suplimentare, iar registrul de deplasare 74HCT595 poate fi folosit pentru comanda prin doar trei fire a unui mare numr de ieiri digitale (dei mai lent dect utiliznd ieiri directe, paralel). Arhitecturi de microcontrolere Exist dou tipuri de arhitecturi pentru microprocesoare i microcontrolere: Conform arhitecturii von Neumann (figura 1.18), memoria de date i cea de prpgram folosesc aceeai magistral, deci orice locaie de memorie trebuie s fie definit de o adres unic. Dei ofer un model mai simplu de neles i posibiliti interesante, arhitectura von Neumann are o eficien mai sczut. Un PC utiliznd procesoare din familia x86 este un exemplu tipic de sistem cu arhitectur von Neumann, la care locaiile I / O sunt accesate prin instruciuni de tip IN i OUT. Dintre microcontrolere, Motorola HC05 este un exemplu de arhitectur von Neumann pe 8 bii. Conform arhitecturii Harvard (figura 1.19), memoria de date i cea de cod sunt accesate prin magistrale separate, ceea ce permite unitii centrale s opereze cu ambele memorii simultan, sporind eficiena prelucrrii. Unicul dezavantaj al acestei abordri este dificultatea implementrii de tabele de date n memoria de program (lookup tables) - o instruciune special este utilizat n acest caz. ntr-un procesor Harvard, adresa OH pentru memoria de program i

adresa OH din memoria de date pot coexista far probleme. Majoritatea microcontrolerelor utilizeaz,arhitectura Harvard datorit eficienei sporite.

Magistrale externe O magistral extern permite conectarea la controler a unui numr practic nelimitat de circuite periferice, limitrile provenind mai ales de la dimensiunea plcii," mrimea i numrul circuitelor dect de la caracteristicile electrice ale magistralei. Exist microcontrolere cu i far magistral extern disponibil. Avantajele magistralei externe: flexibilitatea - numrul, tipul i performanele perifericelor pot fi alese de utilizator; preul unui microcontroler far memorie program este extrem de redus; programarea i reprogramarea se face prin intermediul unei memorii EPROM. n consecin nu este necesar un echipament dedicat (i uneori scump) de programare. Dezavantajele magistralei externe: costul final al plcii este ridicat a o producie de mas datorit numrului relativ mare de circuite; programarea EPROM este greoaie (necesit un soclu, un programator, tergere 30 de minute la ultraviolete); ciclul editare cod surs - simulare - programare - testare este relativ lung, de aceea companiile medii i mari s-au orientat n special pe soluii cu memorii FLASH n microcontroler i programare n proiectul final folosind pini dedicai i o interfa ct mai simpl (JTAG, BDM, sau civa pini ai portului paralel de la un PC). Stocarea programului (codului) Un microcontroler cu magistral extern poate stoca programul (denumit i cod code) ntr-o memorie EPROM sau pentru punerea n funciune i testarea aplicaiei ntr-un SRAM care simuleaz un EPROM. Varianta OTP (One-Time Programmable) se poate programa o singur dat (o greeal n program implic aruncarea cipului). Opiunea OTP este atractiv pentru serii de fabricaie medii-mari deoarece preul lor este n continu scdere. OTP se obine din varianta EPROM nlocuind capsula ceramic i geamul de cuar extrem de scumpe cu o capsul ieftin din plastic. Varianta programabil prin masc este folosit doar la producia de mas-programarea se face prin masc la productor pe baza codului furnizat de utilizator. Dei sunt mai ieftine dect n varianta OTP, proiectarea unei mti cost cel puin 1.000 USD, iar cantitatea minim la o comand este de 1.000 buci. Varianta cu memorie FLASH este steaua momentului actual. Un microcontroler cu memorie FLASH se poate reprograma de cel puin 1000 de ori (tipic 100.000 de ori), deci codul poate fi modificat far a arunca vreun circuit. Preul lor este n continu scdere.

Att varianta far ROM, ct mai ales cea FLASH ofer avantajul c microcon trolerul nu trebuie ndeprtat de pe placa de circuit imprimat la modificarea codului, aspect util mai ales n cazul controlerelor cu muli pini care nu pot fi montate pe socluri (soluie scump). Structur CISC i RISC Un procesor CISC (Complex Instruction Set Computer) utilizeaz un set de complex de instruciuni (de ordinul sutelor). Familia Intel Pentium este cel mai cunoscut exemplu de procesoare CISC. In contrast, un procesor RISC (Reduced Instruction Set Computer) ofer cteva zeci de instruciuni simple, codificate tipic pe un singur cuvnt de 12, 14 sau 16 bii (este utilizat evident arhitectura Harvard dac magistrala de date are alt lime dect cea de cod). Un procesor CISC codific instruciunile pe 1, 2, 3 sau 4 octei. n general microcontrolerele RISC sunt proiectate pentru viteza mare de prelu crare i mai puin pentru uurina exploatrii, dar un set de instruciuni redus sau mai greu de neles este un pre modest pentru eficiena obinut (microcontrolere Microchip PIC sau Atmel AVR). Acumulatorul Atunci cnd sunt comparate seturile de instruciuni ale microcontrolerelor, una din diferenele majore const n abilitatea unitii centrale de a executa operaiile numerice i logice ntr-un singur registru, numit acumulator (accumulator), respectiv de a putea folosi orice registru sau cuvnt din RAM pentru aceste operaii. Avantajul utilizrii acumulatorului (figura 1.20) const n eficiena codrii programului - sunt posibile instruciuni scurte, pe 8 bii, pe cnd n cellalt caz sunt necesare instruciuni codificate pe mai muli octei. Trebuie totui subliniat c n cazul acumulatorului pe 8 bii operaiile pe 16 sau 32 de bii se execut mai dificil, iar codul rezultat este mai greu de descifrat (citit). Tendina spre microcontrolere cu arhitectur Harvard i structur RISC se va completa probabil n viitor cu cea de diminuare sau chiar desfiinare a rolului acumulatorului. Microcontrolerele Atmel AVR i Zilog Z8 sunt astfel de exemple.

Stiva Toate microcontrolerele (i microprocesoarele) au o stiv (stack) - o zon de memorie RAM unde sunt memorate adresele de ntoarcere din subrutinele apelate prin adresele de revenire din rutinele de tratare a ntreruperilor i din care sunt extrase aceste adrese la ncheierea rutinelor deja menionate (figura 1.21). Anumite microcontrolere mici cu RAM redus implemeteaz o stiv miniatural de minim 2 locaii (numit de obicei hardware stack) i care limitez sever numrul de rutine imbricate care pot fi executate. Majoritatea procesoarelor necesit iniializarea unui indicator de stiv la pornire, care este apoi actualizat n funcie de introducerea datelor n stiv (Push), respectiv extragerea datelor din stiv (Pop). OBSERVAIE: Atenie, stiva se poate dezvolta n sus sau n jos !

Dac memoria RAM este redus, estimarea dimensiunii maxime a stivei este esenial. Rezervarea unui spaiu corespunztor pentru stiv este urmtorul pas. Exist deja microcontrolere care semnalizeaz depirea superioar sau inferioar a stivei (PIC18F452 este un asemenea exemplu, dei aici stiva este organizat separat, este o stiv hardware i nu n memoria RAM). Dac stiva e gsete n RAM i nu sunt luate msuri de prevedere corespunztoare, ea poate fi alterat de variabilele din RAM sau mai probabil poate ajunge s altereze ea zone utilizate din RAM. Majoritatea procesoarelor permit accesul direct la stiv prin instruciuni de tip Push (introducere/memorare n stiv) i Pop (extragere din stiv). Aceasta este o modalitate extrem de comod de salvare temporar a datelor dac nu sunt disponibile registre. O serie de microcontrolere salveaz n stiv automat la apariia unei ntreruperi starea curent (acumulatorul i indicatorii de condiie, cel puin). Vectori Un vector (vector) este o secven special de program executat de microcontroler dup Reset sau o ntrerupere. Prin aceasta se asigur execuia predictibil, repetabil dar i flexibil a codului. Un vector se poate prezenta n una din urmtoarele forme: o secven de cod, care n majoritatea cazurilor este un salt (jump, branch, goto), a crui adres este clar precizat n memoria program a procesorului. Aceast instruciune determin execuia rutinei de tratare a evenimentului (Reset sau ntrerupere). o adres coninut ntr-o locaie predefmit care indic rutina de tratare a ntreruperii. La apariia evenimentului, procesorul va ncrca n PC adresa respectiv i va rula rutina de tratare corespunztoare. Toi vectorii sunt de obicei memorai ntr-o zon compact, denumit tabela vectorilor de ntrerupere. Adresa tabelei se specific n codul surs prin intermediul directivei ORG.

Alegerea microcontrolerului potrivit


Alegerea microcontrolerului potrivit pentru o aplicaie dat nu este o sarcin uoar. Criteriile de selecie sunt diferite de cele referitoare la dezvoltarea unei aplicaii software pe PC, setul de instruciuni al microcontrolerului fiind mult mai puin important dect ali factori. Urmtoarele criterii trebuie analizate: Instrumente de dezvoltare: Reprezint probabil cel mai important criteriu de selecie. Dac un sistem de dezvoltare se poate realiza n condiii de amator la un pre njur de 100 USP, dezvoltarea unui asamblor, a unui mediu integrat sau a unui compilator depesc cu mult posibilitile financiare ale unei.singure persoane. Recomand acea variant n care aceste programe se gsesc gratuit sau la un pre modic, n aceste condiii combinaia dintre un software gratuit i un microcontroler FLASH programabil serial este imbatabil ca pre. Un asemenea programator poate costa cel mult 15 USD, iar un microcontroler ntre 1 i 5 USD. Exemple de asemenea microcontrolere sunt cele produse de Microchip (PIC), de Atmel (AVR) sau Hitachi (H8). La noi n ar familia PIC este disponibil la o serie de distribuitori naionali (Vitacom www.vitacom.ro, Cornet - www.comet.srl.ro, n Timiora la Datronic -www.electronic.ro). Pentru o abordare profesional un emulator este o achiziie util (dar scump), de aceea folosind cu pricepere un debugger se vor putea rezolva cele mai multe probleme. Debugger-ul Microchip

ICD2 cost circa 100 USD, permite rularea pas cu pas a programului, programarea n montaj a microcontrolerului, setarea unui punct de ntrerupere i mai multe ferestre de inspecie a variabilelor, memoriei RAM, ROM, etc. Se conecteaz la PC prin portul serial sau USB i i se poate asocia un soclu ZIF (Zero Insertion Force) exterior, devenind programator. Aceast variant este cea mai bun opiune pentru firme mici - medii. Pre i accesibilitate: Microcontrolerul trebuie s fie n fabricaie de cel puin un an pentru a fi siguri c orice defect minor a fost deja corectat. Trebuie s se gseasc uor la distribuitori i n cantiti suficiente. Preul su trebuie s fie acceptabil, chiar atunci cnd este achiziionat la bucat. Prin pre acceptabil se nelege o valoare de 1 -5 USD la bucat pentru microcontrolere de 8 bii i pn la 15 USD pentru microcontrolere de 16 bii. Familiile de microcontrolere PIC18Fxx i mai ales PIC16Fxx oferite de firma Microchip satisfac aceste cerine. Suport: este o familie rspndit, cunoscut, documentat? Sunt disponibile gratuit aplicaii hardware i software? Productorul sau distribuitorul ofer sprijin n etapa de dezvoltare? Varietate: Investind timp i bani ntr-o familie de microcontrolere, este bine de tiut ci membri ai familiei exist i ce faciliti ofer. Cu aceasta se poate folosi setul de instruciuni i o arhitectur deja cunoscute la circuite diverse, principala deosebire constnd n perifericele oferite (Timere, USART, PWM, WDT, ADC, DAC, etc) i caracteristicile lor. Cea mai mare varietate de microcontrolere o are familia 8051 Intel, dar i microcontrolerele HC05 (Motorola) i PIC (Microchip) stau bine la acest capitol. Fiabilitate: Noile familii sau chiar produsele noi dintr-o familie consacrat pot I avea mici probleme, mai des hardware dect software. Nu utilizai un circuit mai nou ; de un an dac nu suntei pregtit s nfruntai i un mic risc. Sincer vorbind, este puin probabil ca un microcontroler dezvoltat n anii '80 - 90 s mai prezinte azi vreun defect hardware! Flexibilitate: Dac dorii s adugai proiectului n viitor mai mult memorie I sau alte periferice, variantele tar ROM reprezint o opiune natural n acest caz. Exemplele cele mai potrivite n acest caz sunt Intel 8051 i Motorola HC11. Dac avei noroc, se poate comanda un microcontroler din aceeai familie, n aceeai capsul i \ compatibil ca terminale, dar care ofer mai mult memorie sau periferice suplimentare. Microcontrolerele Microchip PIC se nscriu n aceast categorie. Capsula: Circuitul trebuie s fie uor de mnuit i montat. Capsulele QFP (Quacl Fiat Pack) sunt un comar de lipit far echipamentul i pregtirea necesare. Capsula PLCC poate utiliza un soclu i este uor de montat, iar capsula DIP este cea mai comod. Dac sunt necesare o mulime de linii I / O i dorii evitarea componentelor SMD, se pot alege variante de microcontrolere iar ROM i cu expandoare externe de magistral (8255) sau circuite HCMOS, de exemplul 74HCT574. Deoarece tendina de miniaturizare a componentelor devine tot mai accentuat, capsulele se micoreaz continuu i accesibilitatea capsulelor mari (DIP) este tot mai redus. Imunitatea la zgomot: ntr-un mediu industrial comportarea unui microcontroler poate fi deosebit de cea din laborator. Cmp electromagnetic puternic, parazii, variaii mari de temperatur, de tensiune de alimentare - toate acestea pot cauza probleme. In acest caz experiena inginerului proiectant joaca un rol puternic i acest criteriu poate deveni esenial dac proiectul va funciona ntr-un asemenea mediu.

S-ar putea să vă placă și