Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AeronauticaComunicatiiElectronica electricitateMerceologieTehnica mecanica


Microcontrolere

Electronica electricitate



+ Font mai mare | - Font mai mic



Microcontrolere

Microcontrolerul este un procesor specializat, orientat spre aplicatii care au drept scop controlul in timp real al proceselor tehnologice. Diferenta fata de un procesor de uz general consta in includerea in circuit integrat care contine unitatea centrala a unei serii de componente care in mod traditional sunt realizate prin circuite distincte de microprocesor.



O familie importanta de microcontrolere este cea cu indicativul 8051 si a fost lansata de firma INTEL. Se va considera in continuare un exemplu de produs din aceasta familie.

Descriere generala a microcontrolerului 80C535 (Siemens)

In fig.1.1 este prezentat o schema bloc simplificata, care ilustreaza structura de baza a mC. Creierul cipului este constituit de unitatea centrala (UC), care lucreaza intr-un ritm dictat de generatorul de ceas intern. Pentru varianta uzuala de realizare, frecventa maxima de lucru este de 12MHz, frecventa la care durata de executie a unei instructiuni este, in majoritatea cazurilor, de 1ms. Exista si variante de realizare care accepta o frecventa maxima de lucru de 16 MHz. De semnalat faptul ca in ALU este inclus un procesor logic, care realizeaza operatii la nivel de bit cu operanzi reprezentati de biti direct adresabili apartinand memoriei RAM interne. Astfel de operatii sunt: setare, resetare, complementare si operatiile logice SI, SAU intre un bit direct adresabil si indicatorul de transport. Sunt disponibile si instructiuni de salt conditionat cu controlul starii unui bit.

Pentru controlul functionarii corecte a mC este prevazut un ceas de garda (watchdog timer). Printr-o programare adecvata, ceasul de garda poate detecta si semnaliza fie o functionare incorecta a programului de aplicatie, fie o defectiune de natura hard. In astfel de situatii, se comanda automat o resetare a sistemului.

Unitatea centrala comunica printr-o magistrala interna cu un bloc de memorie RAM de 256 octeti si cu o serie de elemente periferice. Acestea din urma asigura:

a. transferul de informatie de la/spre lumea exterioara;

b. controlul evenimentelor in timp real.

In categoria (a) se incadreaza 7 porturi paralele pe 8 biti (P0 P6), un port de comunicatie serial si un convertor analog-numeric.

Porturile P0 P5 pot functiona fie ca porturi de intrare, fie ca porturi de iesire pentru semnale binare de nivel TTL. Portul P6 poate fi folosit numai ca port de intrare si serveste fie la receptionarea a 8 semnale binare de nivel TTL, fie la preluarea a 8 semnale analogice in vederea conversiei analog-numerice.

Porturile P0 si P2 sunt dedicate magistralelor de adrese/date (multiplexate in timp) si asigura accesul la memoria extern ROM sau RAM. Magistrala de date are 8 biti si este oferita prin pinii portului P0. Magistrala de adrese are 16 biti si se conecteaza prin pinii portului P0 (partea mai putin semnificativa a adresei) si ai portului P2 (partea mai semnificativ a adresei). Cu alte cuvinte, mC are magistrala de date multiplexata cu partea mai putin semnificativa a magistralei de adrese.

Fig.1.1. Schema bloc general a mC SAB 80C535

Porturile P1 si P3 sunt prevzute cu posibilitatea realizarii unor asa-numite functii alternate. In aceste cazuri, prin pinii porturilor se genereaza semnale de comanda pentru memoria externa, se receptioneaza semnale de intrerupere externe, se asigura comunicatia seriala etc.

Portul de comunicatie serial respecta in general standardul RS-232C, si, impreuna cu un circuit specializat pentru stabilirea vitezei de comunicatie, asigura transferul de informatie spre/de la un alt sistem de calcul situat la distanta.

Convertorul analog-numeric lucreaza pe 8 biti si este de tipul cu aproximatii succesive. Sistemul de conversie include un circuit de esantionare si retinere (ER) si un multiplexor (MUX) prin care se conecteaza convertorul la unul din cele 8 canale de intrare analogica, reprezentate de pinii portului P6. Gratie blocului care permite programarea tensiunii de referint (Prog.Uref), exista posibilitatea maririi rezolutiei sistemului de conversie. Astfel, prin doua masuratori succesive, se poate obtine un rezultat cu rezolutia corespunzatoare unui convertor pe 10 biti. Blocul de programare a tensiunii de referinta este alimentat din exterior cu tensiunea de V prin VAREF-VAGND.

In categoria (b) se incadreaza trei timere (notate 0, 1 si 2) si circuitul controlor de intreruperi (nefigurat in schema bloc).

Timerele sunt circuite numaratoare cu viteza de lucru programabila, dotate cu posibilitati de reincarcare automata, control al starii curente (captura) si comparare hard a continutului curent cu o valoare prestabilita. Semnalul care ataca un timer poate proveni din semnalul de ceas al sistemului, caz in care circuitul asigura functia de masurare a timpului (circuit temporizator) sau poate fi un semnal extern oarecare, caz in care se efectueaza contorizarea unor evenimente (circuit numarator). Evenimentele produse la nivelul timerelor (depasire, continut egal cu o valoare predefinita) au drept urmare generarea de cereri de intrerupere.

Circuitul controlor de intreruperi gestioneaza cererile de intrerupere mascabile provenite din exterior sau de la perifericele proprii mC si permite programarea prioritatii aferente fiecareia dintre intreruperi. Semnalele de intrerupere externa, in numar de 7, sunt receptionate prin anumiti pini ai porturilor P1 si P3. Exista posibilitatea programarii tipului de semnal recunoscut ca intrerupere externa: nivel, front pozitiv sau front negativ. Perifericele interne care genereaza semnale de intrerupere sunt, in afara de cele trei timere, convertorul analog-numeric si portul de comunicatie seriala. Tehnica de lucru la intreruperi este de tipul modului A descris la mP pe 8 biti, cu vectori de intrerupere ficsi (predefiniti) si pini distincti pentru receptionarea fiecarei cereri de intrerupere.

Harta memoriei

Microcontrolerul poate accesa o memorie externa avand o capacitate maxima de 64KO (gama de adrese 0000H FFFFH). In plus, pe cip se afla o memorie RAM de 256 octeti, cu adrese pe un octet, in gama 00 FFH. Aceasta memorie aflata chiar pe cipul mC va fi numita in continuare memorie RAM interna. Distinctia dintre primele 256 de locatii ale memoriei externe (adrese 0000 00FFH) si memoria RAM interna este asigurata, din punct de vedere soft, prin utilizarea unor instructiuni specifice, care opereaza in mod implicit cu adrese pe doi octeti si respectiv, pe un octet. O imagine grafica a celor doua zone de memorie este prezentata in fig.2.1.


Fig.2.1. Memoria interna si externa

Celulele memoriei RAM interne au urmatoarele functii:

- adresele 00-1F contin 4 bancuri de cate 8 registre de uz general R0-R7, la un moment dat fiind activ un singur banc, ales prin programare;

- zona cuprinsa intre adresele 20-2F poate fi exploatata la nivel de octet sau la nivel de bit;

- zona cuprinsa intre adresele 30-FF poate fi exploatata la nivel de octet

Registrele cu functii speciale (SFR)

Sunt registre prin intermediul carora unitatea centrala controleaza perifericele aflate pe cip, precum si cele care participa la executarea operatiilor aritmetice si logice standard (acumulator, registrul B), la indicarea adreselor din memoria externa sau interna (registre pointer) si la memorarea indicatorilor de conditie. Toate aceste registre sunt accesibile programatorului.

In total, mC poseda 42 de registre SFR de 8 biti. Dintre acestea, 16 registre sunt adresabile la nivel de bit, existand deci un total de 128 de biti direct adresabili in zona SFR.

Prin comparatie cu un mP de uz general, mC are mult mai multe registre aflate la dispozitia programatorului. Se spune ca mC este un procesor orientat spre registre, in timp ce un mP de uz general este un procesor orientat spre memoria principala, externa cipului.

Pentru exemplificare, se vor prezenta registrele speciale care intervin in programarea si exploatarea CAN.

Registrul ADCON

Prezinta importanta pentru CAN numai 5 biti ai acestui registru, care determina (sau indica):

- selectia canalului de intrare (trei biti), prin stabilirea comenzii adresate multiplexorului MUX;

- modul de lucru: conversie continua sau o singura conversie (1 bit);

- starea procesului de conversie: in desfasurare sau conversie incheiata (1 bit).

In mod concret destinatia bitilor este ilustrata de tabelele care urmeaza.

BD

CLK

BSY

ADM

MX2

MX1

MX0

 

Semnificatia bitilor registrului ADCON legati de functionarea CAN

Bit

Functie

MX0

MX1

MX2

Determina numarul canalului de intrare selectat:

MX2=0; MX1=0; MX0=0 selecteaza canalul 0

MX2=0; MX1=0; MX0=1 selecteaza canalul 1 etc

ADM

Stabileste regimul de conversie:

ADM=0: convertorul se opreste dupa terminarea unei conversii

ADM=1: convertorul functioneaza continuu dupa declansarea primei operatii de conversie

BSY

BSY=1 indica faptul ca o conversie este in curs de desfasurare. La terminarea conversiei acest bit este resetat prin hard

Registrul ADDAT

In acest registru este memorat automat rezultatul operatiei de conversie, continutul sau ramanand neschimbat pana in momentul incheierii urmatoarei conversii. Utilizarea rezultatului implica citirea continutului registrului si memorarea sa in alt registru sau in memoria RAM. Dat fiind faptul ca ADDAT poate fi scris si prin soft, in cazul in care nu se utilizeaza CAN, registrul poate fi folosit si ca un registru de uz general.

Registrul DAPR

Continutul registrului DAPR stabileste nivelele tensiunii de referinta a convertorului (VintREF si VintGND) in functie de tensiunea de referinta externa (VAREF si VAGND). Scrierea acestui registru determina totodata si declansarea procesului de conversie.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1123
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved