Documente Academic
Documente Profesional
Documente Cultură
CARACTERISTICI ALE
MICROCONTROLLERELOR
MICROCONTROLLER
Termeni utilizai
Embedded System (sistem cu calculator nglobat): calculatorul
este nglobat ntr-un sistem i nu are interfaa de programare
accesibil utilizatorului final
Real-Time System (sisteme de timp real): reacia la un
eveniment trebuie s se produc n cadrul unui interval de timp
prestabilit.
Digital Signal Processor (DSP): Procesoare proiectate special
pentru prelucrarea de semnale. Au arhitectur special ce
permite executarea cu vitez mare a operaiilor de adunare
(acumulare) i nmulire.
Termeni utilizai
Mixed-Signal Controller (MSC): Microcontrolere ce pot
prelucra att semnale digitale ct i analogice
Microcontroler (MC) un microcalculator pe un chip care are
ca UCP un microprocesor
Digital Signal Controller (DSC) un microcalculator pe un
chip care are ca UCP un DSP (Digital Signal Processor)
Flash
EEPROM
SRAM
Modul
Counter/
Timer
Magistral intern
Modul
I/O digitale
Modul
I/O
analogice
Modul
Interfa
serial
Controller
ntreruperi
UN MICROCONTROLER CONINE
UN MICROCONTROLER CONINE
2. ORGANIZARE SPECIFIC A
MEMORIEI
Bloc (fiier) de registre: Registre interne UCP ce pot fi
utilizate pentru memorare temporar, sau pentru funcii
de configurare a unitilor funcionale
Memorie de date: memorie volatil intern sau extern.
Memoria intern are o capacitate redus de stocare.
Memoria extern cere hardware suplimentar pentru
acces i transfer date.
Memorie de program: Memorie ne-volatil intern sau
extern pentru stocarea codului (ROM, PROM, EPROM,
EEPROM, FLASH, NV-RAM)
ACCES LA MEMORIE
A. Fiecare tip de memorie adresat separat
Domeniul adreselor pentru diferitele tipuri de memorie pot fi suprapuse
Programatorul specific tipul memoriei la care se face acces prin utilizarea
de moduri de adresare diferite (de ex. pentru accesul la EEPROM se
utilizeaz adresarea indexat printr-un registru index special)
Exemplu:
Flash 32 k, 215
Binary:0000 0000 0000 0000
Hex: $0000
0111 1111 1111 1111
$7FFF
EEPROM 16k, 214 0000 0000 0000 0000
$0000
0011 1111 1111 1111
$3FFF
SRAM 16k, 214
0000 0000 0000 0000
$0000
0011 1111 1111 1111
$3FFF
10
EEPROM
Flash
$0000
$0000
$0000
16K
16K
32K
$3FFF
$3FFF
$7FFF
11
Exemplu
Flash 32 k, 215 Binary: 0000 0000 0000 0000
0111 1111 1111 1111
1000 0000 0000 0000
EEPROM 16k, 214
1011 1111 1111 1111
1100 0000 0000 0000
SRAM 16k, 214
1111 1111 1111 1111
Hex: $0000
$7FFF
$8000
$BFFF
$C000
$FFFF
12
Flash
32K
$7FFF
$8000
EEPROM
16K
$BFFF
$C000
SRAM
16K
$FFFF
13
I/O digitale
14
2.
3.
15
16
18
Acces Read-Modify-Write
MC conin instruciuni speciale pentru scriere pe bit la
porturi (fr modificarea celorlali bii ai portului)
Alt variant este s se utilizeze accesul de tip readmodify-write, care permite modificarea doar pentru
anumii bii ai portului
Secven de operaii (cel puin 3 instruciuni n program):
citete un octet de la port
schimb doar biii ce se doresc a fi modificai
scrie rezultatul la port
INTRRI DIGITALE
Semnalul de intrare se poate schimba doar ntre dou
stri: SUS (corespunztor lui logic 1) i JOS.
Interpretarea nivelelor ca SUS sau JOS depinde de
nivelul tensiunilor conform specificaiilor
microcontrollerului, care la rndul lor depind de
tensiunea de alimentare la care funcioneaz
controllerul.
De exemplu la Atmega16 tensiunea de alimentare (Vcc)
trebuie s fie n intervalul [4.5 5.5] V, iar:
nivelul JOS la intrare e recunoscut ntre [-0.5 0.2 VCC] voli
nivelul SUS al tensiunilor de intrare trebuie s fie n intervalul
[0.6 VCC VCC +0.5] voli
Eantionare digital
Chiar dac aceast metod simpl este util pentru multe dintre
intrrile digitale, adesea n sistemele ce lucreaz n timp real se
ntlnesc i situaii diferite. De exemplu ce se ntmpl dac
schimbarea semnalului de intrare se face foarte lent? E posibil s
citim o stare ne-definit la intrare.
21
Signal
PIN latch
22
Intrare digital
Input Voltage
Vhi
Vlo
t
Output Voltage
23
Cel mai dezavantajos este s se lase o intrare flotant disponibilitatea mare la zgomot (vezi exemplu cu comutator
mecanic conectat la o intrare)
24
REZISTEN PULL-UP
Intrare
microcontroller
Source Input
Pin controlat de circuite
externe
Sink Input
25
Ieiri digitale
26
Comparator analogic
27
CIRCUITE TIMER/COUNTER
28
CIRCUITE TIMER/COUNTER
Valoarea curent contorizat poate fi citit din
registrul asociat contorului i poate fi setat la o
anumit valoare
Cnd valoarea din counter / timer depete
lungimea cuvntului UCP (de exemplu utilizare
de contor pe 16 biii pe un MC de 8 bii) accesul
la valoarea contorizat se face n 2 pai
succesivi
Citirea ncepe obligatoriu cu valoarea (octet) cea
mai puin semnificativ (LSByte)
La scriere se va nscrie mai nti MSB i apoi
LSB
29
CIRCUITE TIMER/COUNTER
Circuitele contor / temporizator sunt elemente extrem de
flexibile n cadrul unui MC
Se pot genera forme de und
Semnalul dreptunghiular de ieire poate fi utilizat pentru
generare de forme de und sinusoidale, sau alte forme de und
periodice
Formele de und periodice pot fi utilizate de exemplu n aplicaii
de telefonie (ton taste, avertizri sonore)
nfurri de motor
nfurri de relee de control
elemente de afiare
impulsuri de declanare evenimente (ceas de timp real, control
cicluri DMA, ntreruperi diverse)
30
CIRCUITE TIMER/COUNTER
Circuitele timer pot genera un semnal de ntrerupere ori
de cte ori se produce o depire a capacitii de
numrare
Acest semnal poate fi folosit la generarea unui semnal periodic,
prin setarea valorii de start a numrrii i apoi ateptarea
semnalului de overflow
Exist probleme de precizie, pentru c dup overflow se mai
pierde timp pentru setarea prin program a valorii de start a
numrrii. La fixarea valorii de start trebuie inut cont i de acest
timp suplimentar
Clock
Timer
Auto-reload Timer
End
counting
Clock
Timer
End
counting
CPU
Loading register
Loading register
Reload
Reload
32
CIRCUITE TIMER/COUNTER
33
34
PRESCALARE
35
36
WATCHDOG TIMER
Este un timer special folosit pentru revenirea din situaii
dificile:
probleme de software, ca de exemplu bucle infinite
probleme de hardware care blocheaz funcionarea corect a
programului
WATCHDOG TIMER
Acest timer verific c anumite poriuni din
program sunt atinse ntr-un timp pre-determinat
Acest timer are propriul oscilator intern cu ceas
i de aceea nu este afectat n funcionare de
modurile tip sleep n care ceasul sistem este
oprit
Sistemul de ntreruperi
Exist doi bii principali pentru logica de
ntreruperi a MC:
Bitul de interrupt enable (IE), setabil de aplicaia
utilizator pentru a indica c la apariia cererii de
ntrerupere controllerul va apela o RTI.
Bitul de interrupt flag (IF), setat automat de
microcontroller atunci cnd s-a produs evenimentul
de ntrerupere. Poate fi resetat automat la saltul ctre
RTI, sau prin program
Practic IF indic faptul c s-a produs evenimentul de
ntrerupere, n timp ce IE poate permite servirea
respectivului eveniment.
39
Controlul ntreruperilor
40
TABELA VECTORILOR DE
NTRERUPERE
41
6. Putere consumat i
managementul puterii
Puterea de comutaie: Pswitching = C Vdd2 f
(contribuie 70-90% din puterea total).
Puterea intern de scurt-circuit, Pint , (contribuie
10 - 30% din puterea total).
Puterea prin cureni de scurgere n regim static,
Pstatic, (contribuie <1% din puterea total).
42
PUTERE DE COMUTAIE
Pswitching = CV2f
C = Capacitate parazit
Inerent datorit interconexiunilor i porilor interne
Minimizat prin metodologia VLSI de proiectare
Se utilizeaz conexiuni scurte, materiale mai bune
V = Tensiune de alimentare
f = Frecvena de comutare
MC sunt proiectate n tehnologie static (Static HCMOS),
care permite reducerea frecvenei pn la valori foarte mici
Scalarea ceasului se face de obicei prin circuite interne de
scalare / multiplicare
Moduri de economisire a energiei (Sleep/Standby)
43
MODURI SLEEP/STANDBY
Capacitatea de a scoate din funcionare ntregul circuit,
sau pri ale circuitului pemntru anumite perioade
Se realizeaz prin blocarea temporar a ceasului (pori
de blocare) i circuite de izolare
Se reduce astfel consumul de putere de comutare pentru
anumite uniti funcionale, sau pentru ntregul circuit
44
Exemplu
StrongARM SA-1100; 3.3V, 1.5V; Run (400 mW), Idle
(50 mW, 10 s), Sleep (0.16 mW, 90s, 16 ms)
Prun = 400 mW
run
10 s
160 ms
90 s
10 s
90 s
idle
Pidle = 50 mW
sleep
Psleep = 0.16 mW
46