Date post: | 22-Feb-2023 |
Category: |
Documents |
Upload: | upg-ploiesti |
View: | 0 times |
Download: | 0 times |
IntroducereIntroducere
Microcontrolerul este un microcomputer construit dintr-un singur chip de siliciu
este un sistem care include cel putin un microprocesor, memorie de program,memorie de date si I/O (input/output = unitate de intrare/iesire)
microcontrolerele se gasesc in multe aparate de uz casnic: cuptor de microunde,telecomanda TV, Hi-Fi, CD player, etc.
micro = dispozitiv mic
controler = poate fi folosit pentru aplicatii de control
diferenta dintre microcontroler si microprocesor: microprocesorul are nevoie dealte componente pentru a functiona (memorie de program si de date, dispozitiveI/O, circuit de ceas extern), microcontrolerul are aceste componente incorporatepe acelasi chip
toate microcontrolerele opereaza pe un set de instructiuni stocate in memorie
microcontrolerul extrage instructiunile una cate una din memoria de program,decodeaza instructiunile si executa operatiile cerute
Curs 3
un microcontroler poate fi programat utilizand un limbaj de asamblare(dezavantaje: consta in mnemonice, este greu de invatat, difera de la producatorla producator) sau un limbaj de nivel inalt, ca de ex. BASIC, PASCAL, C (avantaje:mai usor de invatat, se pot realiza usor programe complexe)
microcontroler PIC
microcontrolerul executa un program care este incarcat in memoria lui deprograme
Curs 3
datele sunt obtinute de la dispozitive externe (intrari), manipulate iar apoi trimisela dispozitivele externe (iesiri)
ex. cuptor cu sistem pentru controlul temperaturii: microcontrolerul citestetemperatura utilizand un senzor de temepratura; in functie de temperaturadorita, se actioneaza un radiator sau un ventilator
sistem de control al temperaturii din cuptor cu un microcontroler
intr-un sistem mai complex, am putea avea o tastatura numerica pentru a setatemperatura si un LCD pentru afisarea temperaturii curente
Curs 3
sistem de control al temperaturii cu tastatura si LCD
un sistem mai complex ar include o alarma pentru a informa utilizatorul dacatemperatura este in afara intervalului dorit
valorile temperaturilor pot fi trimise unui calculator in fiecare secunda pentruarhivare si procesare suplimentara (ex. reprezentare grafica a temperaturilor)
microcontrolerele sunt clasificate relativ la numarul de biti pe care proceseaza:cele mai raspandite sunt microcontrolerele pe 8 biti, cele pe 16 sau 32 biti suntmult mai puternice si mult mai scumpe
Curs 3
arhitectura microcontrolerului
un microcontroler este construit dintr-un microprocesor, memorie si I/O
microprocesorul consta in unitatea centrala de procesare a datelor (CPU = CentralProcessing Unit) si unitatea de control (CU = Control Unit)
unitatea centrala este “creierul” microcontrolerului deoarece aici se efectueazatoate operatiile aritmetice si logice
unitatea de control controleaza operatiile interne microprocesorului si trimitesemnale de control catre celelalte parti ale microcontrolerului pentru ca acesteparti sa execute instructiunile necesare
memoria:
memoria de program – stocheaza programele scrise de programator; este omemorie non-volatila (datele nu se pierd daca nu se alimenteaza cu tensiune)
memoria de date – stocheza datele temporare necesare programului careruleaza, este de obicei volatil (se sterge daca nu este alimentata cu tensiune)
Curs 3
2.5.1 Memoria2.5.1 Memoria
stocheaza informatii
pentru o anumita intrare obtinem continutul
unei locatii de memorie adresate
memoria consta in locatii de memorie si prin
adresare selectam o locatie specifica
linia de control R/W determina daca se
efectueaza o operatie de scriere sau citire din
memorie
daca R/W = 1, se executa citire din memorie
daca R/W = 0, se executa scriere in memorie
exista diferite tipuri de memorie utilizate in
microcontroler: RAM, ROM, EPROM, EEPROM, model simplificat al unei unitati de memorie
Flash EEPROM
Curs 3
RAM (Random Access Memory)RAM (Random Access Memory)
stocheaza de obicei datele utilizate intr-un program
este o memorie volatila = datele se pierd in momentul in care nu mai estealimentata cu tensiune
pentru microcontroler se folosesc de obicei 256 bytes de RAM
ROM (Read Only Memory)ROM (Read Only Memory)
stocheaza de obicei programe si date constante
este programat in timpul procesului de fabricatie si continutul acestuia nu poate fischimbat de utilizator
EPROM (Erasable Programmable Read Only Memory)EPROM (Erasable Programmable Read Only Memory)
continutul poate fi sters utilizand lumina ultravioleta
memoria poate fi reprogramata de utilizator
Curs 3
EEPROM (Electrically Erasable Programmable Read Only Memory)EEPROM (Electrically Erasable Programmable Read Only Memory)
continutul poate fi sters si poate fi reprogramat prin utilizarea unui program scrisde utilizator
dezavantaj: functioneaza lent
Flash EEPROMFlash EEPROM
datele sunt sterse si reprogramate prin utilizarea unui dispozitiv programator
avantaj: functioneaza foarte repede
Curs 3
2.5.22.5.2 UnitateaUnitatea aritmeticaaritmetica sisi logicalogica
numita si unitatea centrala de procesare a datelor (CPU)
are abilitatea de a multiplica, imparti, scadea si de a-si muta continutul dintr-olocatie de memorie in alta
locatiile de memorie ale microprocesorului
se numesc registrii
registrii stocheaza datele utilizate de
CPU pentru diferite calcule, precum stocheaza
si rezultatele operatiilor efectuate de CPU
model simplificat al unitatii aritmetice si logice
Curs 3
2.5.32.5.3 MagistralaMagistrala
daca de ex. dorim sa adunam continuturile a doua locatii de memorie si sareturnam rezultatul in memorie, avem nevoie de o conexiune intre unitateacentrala si memoria
aceasta conexiune, prin care se deplaseaza datele de la unitatea centrala catrememorie, se numeste magistrala
fizic este alcatuit dintr-un
grup de 8, 16 sau mai multe fire
magistrala pentru adrese – este
alcatuita din atatea linii, cata cantitate
de memorie dorim sa adresam
- transmite adrese de la CPU la
memorie
magistrala pentru date – este la
fel de lata ca si datele pe care le
transmite conexiunea intre CPU si memorie
- conecteaza toate blocurile functionale intr-un microcontroler Curs 3
2.5.42.5.4 UnitateaUnitatea dede intrareintrare//iesireiesire
unitatea centrala si memoria, conectate prin magistrale, compun un sistem carepoate functiona individual, insa care nu are contact cu lumea exterioara
pentru a compensa aceasta deficienta, trebuie adaugat un alt bloc functional carecontine mai multe locatii de memorie, care sunt conectate la magistrala de datepe de o parte, si la liniile (pinurile) de iesire ale microcontrolerului pe de alta parte
aceste locatii de memorie se
numesc porturi
tipuri de porturi: intrari, iesiri sau
porturi bidirectionale
intai trebuie ales portul cu care
dorim sa lucram, dupa aceea se trimit
date acelui port sau se citesc date de pe
acel port unitate de intrare/iesire
aceste porturi se comporta asemenea locatiilor de memorie: se citeste informatie
din locatie sau se scriu date in locatie
Curs 3
2.5.52.5.5 InterfataInterfata serialaseriala
comunicarea seriala inseamna transmiterea datelor cate un bit deodata,secvential, pe un singur fir
in contrast, comunicarea paralela inseamna transmiterea a mai multor biticoncomitent, pe mai multe fire
pentru a exista o comunicare eficienta intre doua dispozitive, inainte decomunicare se stabilesc anumite reguli care definesc cum decurge schimbul dedate
aceste reguli se numesc protocoale
protocolul folosit intr-o comunicare
dintre diferite dispozitive este stabilit
in prealabil
comunicare seriala
Curs 3
ex. protocolul NRZ (Non-Return to Zero):
pe linia de transmisie se trimite un “1” logic inainte de transferul de date
cand incepe transferul, intai se trimite un “0” logic pentru o perioada de timp T siin acest fel receptorul stie ca va primi date
transmitatorul pune pe linia de comunicare mai multe “0” si “1” logice, incepandcu cel mai putin semnificativ bit (LSB) si incheiand cu cel mai semnificativ bit(MSB)
fiecare bit este transmis pe linia de comunicare pentru o perioada de timp T
dupa transferul si celui de-al optulea bit, se transmite din nou “1” logic pentru amarca sfarsitul transferului unei unitati de date, 8 biti = 1 byte
Curs 3
o configuratie tipica de interfata seriala consta in 3 linii: o linie pentrureceptionare de date, o linie pentru transmitere de date si o linie de referinta
intr-o asemenea configurare seriala se pot trimite date si receptiona date inacelasi timp – comunicare full-duplex
comunicare half-duplex – comunicarea este posibila in ambele directii(receptionare, transmisie), insa nu simultan
comunicare simplex – comunicarea este posibila intr-o singura directie (transmisiesau receptie de date)
Curs 3
2.5.62.5.6 NumaratorNumarator
unitatea de ceas genereaza semnale in intervale de timp regulate
la baza generatorului de ceas sta un numarator, care este un registru a caruivaloare numerica se incrementeaza cu unu in intervalele pare
Curs 3
2.5.7 Watchdog2.5.7 Watchdog
sa presupunem ca din cauza unor interferente perturbatoare, microcontrolerulintrerupe executarea programului, sau programul se executa incorect
daca ar fi vorba de un calculator, un simplu reset ar solutiona problema, insa nuexista butoane de reset pe microcontrolere
din acest motiv trebuie introdus un alt bloc functional in diagramamicrocontrolerului: watchdog-ul
watchdog-ul este un numarator, unde programul trebuie sa scrie cate un “0” defiecare data cand se executa corect
in cazul in care programul se blocheaza, nu se va mai scrie “0” si dupa un anumittimp numaratorul va reseta microcontrolerul
acest detaliu de proiectare asigura functionarea corecta a microcontrolerului faraa fi necesara supravegherea umana
Curs 3
2.5.8 Convertor analog2.5.8 Convertor analog--digitaldigital
semnalele trimise de periferiale sunt substantial diferite de cele pe caremicroprocesorul le poate intelege (1 si 0)
din acest motiv, semnalale care provin de la periferiale trebuie transformate intr-un semnal digital (1 si 0)
aceasta sarcina este indeplinita de convertorul analog-digital
Curs 3
toate blocurile functionale prezentate sunt asamblate intr-un componentelectronic
blocurile interne vor fi accesate prin pin-urile externe
configuratia fizica a interiorului
microcontrolerului
liniile de la centru spre margine reprezinta firele care conecteaza blocurile internede pini
Curs 3
2.5.92.5.9 ProgramulProgramul
ex. de program:
acest program aduna continuturile a doua locatii de memorie si trimite suma laportul A
REGISTER1 = MEMORY LOCATION_A – continutul locatiei de memorie A estemutat intr-un registru intern al unitatii logice si aritmetice
REGISTER2 = MEMORY LOCATION_B – continutul locatiei de memorie B estemutat intr-un registru intern al unitatii logice si aritmetice
PORT_A = REGISTER1 + REGISTER2 – unitatea logica si aritmetica adunacontinuturile celor doi registrii si trimite rezultatul la portul A, pentru ca rezultatulsa fie vizibil utilizatorilor
programarea microcontrolerelor se poate efectua in mai multe limbaje deprogramare: Assembler, C, Basic
Curs 3
Assembler:
limbaj de programare de nivel jos
se programeaza incet, dar ocupa cea mai mica cantitate de spatiu in memoriesi returneaza cel mai bun rezultat din punct de vedere al vitezei executieiprogramului
limbajul de programare utilizat cel mai des la microcontrolere
C:
limbaj de programare de nivel inalt
programul este mai usor de scris si de inteles, dar se executa mai incet decatprogramul scris in assembler
Basic:
este cel mai usor de invatat, iar instructiunile folosite se aseamana foartemult cu argumentarea umana
se executa incet
Curs 3