Microcontrolere
Cap.4 Microcontrolere
Circumstanțele in care ne gasim în prezent în domeniul microcontrolerelor și-au avut începuturile în dezvoltarea tehnologiei circuitelor integrate,făcând posibila înmagazinarea a sute de mii de tranzistoare într-un singur cip.Acesta fiind premisa pentru producția de microprocesoare,iar primele calculatoare au fost făcute prin adaugarea perifericelor ca memorie,timer-i,lini de intrare-ieșire și altele.Urmatoarea creștere a volumului capsulei a dus la crearea circuitelor integrate continând atât procesorul cât și perifericele,numindu-se mai târziu microcontroler.
Un microcontroler este un microcircuit în care se găsește o unitate centrală și o memorie împreună cu celelalte periferice care să îi permită interacțiunea cu mediul exterior.
Figura de mai jos arată structura internă a unui microcontroler:
Figura 4.1.Structura internă și conexiunile microcontrolerului
4.1.Unitatea de memorie
Memoria este o parte a microcontrolerului care are ca funcție memorarea datelor.Pentru a simplifica explicația aceasta este ca un dulap mare cu multe sertare,marcate într-un asemenea fel încât să nu fie confundate,oricare din conținutul lor fiind accesibil ușor.Este suficient să stim adresa locației de memorie și astfel conținutul ei va fi cunoscut în mod sigur.Memoria este alcătuită din toate locațile de memorie și adresa nu este altceva decât selectarea uneia dintre ele,aceasta înseamnă că selectăm locatația de memorie la un capăt,iar la celalalt capăt așteptăm conținutul acelei locații.Pe lângă faptul că citim dintr-o locație de memorie,memoria trebuie să permită și scrierea în ea,aceasta fiind posibilă cu ajutorul unei linii de control numită R/W(citește/scrie).Linia de control este utilizată astfel: dacă R/W=1 actunci se face citirea,iar dacă R/W=0 atunci se face scrirea.
Exemplul simplificat al unei unitați de memorie este prezentat în figura 4.2.
Figura 4.2.Exemplu de memorie
4.2 Unitatea de procesare centrală
Să adăugăm trei locatii de memorie unui bloc specific care are capabilitatea încorporată de a face operatii matematice si de a muta conținutul unei locații de memorie în alta,acest bloc numindu-se unitatea de procesare centrală,iar locațiile de memorie ale acestuia se numesc registri.
Figura 4.3 Exemplu unitate de procesare centrală
4.3.Bus-ul
Bus-ul (magistrala) reprezintă un număr de 8,16 sau mai multe fire,acestea fiind împărțite în două tipuri:bus-ul de adrese si bus-ul de date.Bus-ul de adrese constă din atâtea linii cât este cantitatea de memorie pe care dorim să o adresăm,servind la transmiterea adreselor de la CPU la memorie,iar bus-ul de date este atât de lat cât sunt datele si face posibilă conectarea tuturor blocurilor din interiorul microcontrolerului.
Figura 4.3.Bus-uri(magisrtale)
Funcționarea microcontrolerului s-a îmbunătățit, dar a apărut o altă problemă.Avem o unitate centrală capabilă să lucreze singură,dar nu are nici un contact cu lumea exterioară.Pentru a înlătura această problemă vom adăuga un bloc ce conține câteva locații de memorie,capătul acestora fiind conectat la bus-ul de date,iar celălalt are conexiune cu liniile de ieșire la microcontroler ce pot fi văzute ca pini la componenta electronică.
4.4.Uitatea I/O
Locațiile pe care le-am adăugat la acest bloc sunt numite porturi,acestea fiind de diferite tipuri:intrare,ieșire sau porturi pe două căi.Ca să se lucreze corect cu porturi este necesar mai întâi de toate să se aleagă cu ce port se lucrează,apoi să se trimită date sau să se ia date de la port.
Figura 4.5.Exemplu de unitate I/O
x.5.Comunicația serială
Am adăugat posibilitatea conunicării cu lumea exterioară,dar aceast mod de comunicare are neajunsurile lui.Unul din acestea este numărul mare de linii ce trebuie să fie folosite pentru a transfera date,dar acest număr poate fi redus doar la trei linii:recepție,transmitere si referința.
Figura 4.6.Unitate serială
Având linii de transmisie și recepție separate,este posibil să transmitem și să recepționăm de date în același timp.Blocul ce permite acest mod de comunicare este numit bloc de comunicare serială prezentat în figura 4.6.Spre deosebire de transmisia paralelă,aici datele sunt mutate bit cu bit sau într-o serie de biți.După recepția datelor,acestea trebuie citite din locația de transmisie și înmagazinate în memorie spre deosebire de transmiterea acestora unde procesul este invers.Datele circulă prin bus din memorie către locația de trimitere,și de acolo către unitatea de recepție conform protocolului.
4.6.Unitatea timer
Blocul timer este foarte important la un microcontroler,acesta furnizând informația de timp,durată,protocol etc.Unitatea de bază a blocului timer este un contor liber care este de fapt un
registru a cărui valoare numerică crește cu unu la intervale egale,astfel încât luându-i valoarea după intervalele T1 și T2,iar pe baza diferenței lor să putem determina timpul care a trecut.
Figura 4.7.Unitatea timer
4.7.Watchdog-ul
Ca un microcontroler să funcționeze incorect sau fără defecte este nevoie să adăugăm si blocul watchdog(câine de pază).Acest bloc este de fapt un contor liber unde programul trebuie să scrie un zero ori de câte ori se execută corect.În cazul în care programul nu se mai execută corect în contor se va scrie unu,iar acesta se va reseta sigur,atunci va duce la rularea programului din nou și de data aceasta corect pe toată durata
Figura 4.8.Unitatea Watchdog
4.8.Convertorul analog/numeric
Deoarece semnalele de la periferice sunt substanțial diferite de cele pe care le înțelege microcontrolerul (zero și unu),acestea trebuie convertite într-un mod care să fie înțeles de microcontroler.Această sarcină îi revine blocului de conversie analog-digital sau de un convertor A/D.Acest bloc este responsabil cu conversia unui semnal de o anumită valoare analogică într-un număr binar de aceeași valoare și pentru al urmări pe tot parcursul la o unitate de procesare centrală,ca aceasta să îl poată procesa
Figura 4.9.Blocul de conversie analog-digital
4.9. Programul
Programul este un domeniu special de lucru al microcontrolerului și este denumit programare.Acesta poate fi scris în câteva limbaje de programare cum ar fi Assembler,C sau Basic,fiind cele mai folosite limbaje.Assembler este un limbaj de nivel scăzut ce sunt programate lent,dar folosesc un spațiu de memorie mai mic și dă cele mai bune rezultate când se are în vedere viteza de execuție a programului.Programaele în limbaj C sunt mai ușor de înteles,mai ușor de scris,dar viteza de executare este mai lentă.Limbajul Basic este cel mai ușor de învațat,instrucțiunile sale fiind cele mai apropiate de modul de gândire al omului,dar la fel ca și limbajul C,acesta are o viteză de execuție mai lentă.
4.10. Microcontrolerul PIC16F682A
Microcontrolerul PIC16F628A are o arhitectură RISC și aparține unei clase de microcontrolere pe 8 biți.Structura generală a acestuia este arătată in figura urmatoare reprezentând blocurile de bază:
Figura 4.10 Structura generala a
microcontrolerului PIC16F628A
În continuare vom descrie blocuri din structura generală a microcontrolerului PIC16F628A:
Memoria program FLASH – pentru memorarea programului scris.Memoria facută in tehnologia FLASH poate fi programată și ștearsă mai mult decât odată,aceasta făcând microcontrolerul potrivit pentru dezvoltarea de componentă.
Memoria EEPROM este o memorie de date unde acestea trebuie salvate atunci când se oprește sau se întrerupe alimentarea.
Memoria RAM este tot o memorie de date dar este folosită de un program în timpul executării sale.În acesta sunt memorate toate rezultatele intermediare sau datele temporale ce nu sunt cruciale la oprirea sau întreruperea sursei de alimentare.
Portul A și Portul B sunt conexiuni fizice între microcontroler și lumea exterioară,adică pini fizici ai acestia.
Timer-ul liber este un registru pe 8 biți în interiorul microcontrolerului ce lucreză separat de program.La fiecare impuls de ceas al oscilatorului crește cu unu până atinge maximul de 255,și apoi începe să numere din nou de la zero.
Unitatea de procesare centrală are rolul unui element de conectivitate între celelalte blocuri ale microcontrolerului,execută programul utilizatorului și coordonează modul de lucru al altor blocuri.
Termenul RISC este adeseori găsit în literatura despre calculatoare,și are nevoie să fie explicat aici mai în detaliu.Arhitectura von-Neumann este un concept mai vechi decât arhitectura Harvard.În arhitectura Harvard,bus-ul de date este separat de bus-ul de adrese,acest lucru crescând debitul de date prin unitatea centrală de procesare și viteza de lucru a microcontrolerului.
Microcontrolerele cu arhitectură Harvard sunt de asemenea numite microcontrolere RISC (Reduced Instrucțion Set Computer),iar cele cu arhitectură von-Neumann sunt numite CISC (Complex Instrucțion Set Computer).
Blocurile arhitecturilor Harvard și von-Neumann sunt prezentate în figura 4.11:
Figura 4.11.a.Arhitectura Harvard;b. Arhitectura von-Neumann
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Microcontrolere (ID: 162811)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
