Documente Academic
Documente Profesional
Documente Cultură
Arhitectura Microcontrolerelor
Arhitectura Microcontrolerelor
Arhitectura microcontrollerelor
2.1. Procesorul
Elementul de baz[ din structura unui microcontroller (sau microprocesor) este procesorul.
Procesorul este un sistem format dintr-o unitate aritmetic[ logic[ =i registre (RALU Registers and
Aritmethic Logic Unit) =i o unitate de comand[ (UC) [A.2].
RALU este un automat aritmetic ac\ionat de o succesiune de comenzi sosite din exterior care
transform[ un =ir de date de intrare ]ntr-un alt =ir de date de ie=ire. Prelucr[rile suferite de date se numesc
opera\ii elementare =i se efectueaz[ asupra unor cuvinte binare cu lungimea de n bi\i.
DI
FL
RALU
F
DO
A CK
C
AD AP
DO
A
RALU
DI
AA
UC
Procesor
SO SI
2.1
MD
AD
D
C
Procesor
AP
I
C
MP
Fetch I n
Decode In
Exec I n
Fetch I n+1 Decode In+1 Exec I n+1
Tn+1
Procesor
A
D,I
C
MEM
2.4. Memoria
Memoria de date a microcontrollerelor este, ]n general, de tip RAM. Exist[ ]ns[ =i microcontrollere,
]n special cele moderne, care posed[ memorie de date suplimentar[, de tip EEPROM.
Celulele memoriei de date de tip RAM sunt numite registre. Lungimea lor (num[rul de bi\i)
corespunde, ]n general, lungimii magistralei de date (DI/DO din RALU) =i constituie un criteriu major de
clasificare a microcontrollerelor.
Anumite registre controleaz[ periferice incorporate sau circuite suport, caz ]n care sunt denumite
registre cu func\ii speciale (Special Function Registers SFR).
Unele clase de microcontrollere ofer[ posibilitatea extinderii memoriei de date prin expunerea
magistralei interne de date.
Memoria program sau memoria de instruc\iuni poate fi de tip ROM, PROM, EPROM sau EEPROM
(FLASH). Exist[ microcontrollere cu memoria program incorporat[ pe chip (intern[), cu sau f[r[
posibilitatea extinderii ei, a=a cum exist[ =i microcontrollere f[r[ memorie program intern[. Acestea din
urm[ sunt considerate microcontrollere care lucreaz[ ]n regim de microprocesor.
Adresa curent[ din memoria program este p[strat[ ]ntr-un registru special numit contor de program
(Program Counter PC).
Lungimea unei instruc\iuni (num[rul de bi\i) este un element cu implica\ii majore ]n arhitectura
intern[, constituind un alt criteriu ]n clasificarea microcontrollerelor.
2.6. Subprograme
O tehnic[ de programare foarte folosit[ este cea a subprogramelor sau subrutinelor.
Subprogramul este o secven\[ de instruc\iuni care poate fi tratat[ ca un program de sine st[t[tor (are
propriile date de intrare =i de ie=ire).
Implementarea acestui mecanism de programare se bazeaz[ pe:
existen\a unui suport hardware adecvat (stiva);
existen\a a dou[ instruc\iuni speciale: instruc\iunea de apel a subprogramului =i instruc\iunea de
revenire din subprogram.
Stiva este un tip special de memorie care stocheaz[, ]n principal, adresele de revenire din
subprograme.
Adresa loca\iei curente din stiv[ este memorat[ ]ntr-un registru special numit indicator de stiv[ (Stack
Pointer SP).
Programul care utilizeaz[ subprograme, numit program principal (sau program apelant), activeaz[
subprogramul prin intermediul instruc\iunii de apel (CALL). La execu\ia acestei instruc\iuni, se
declan=eaz[ urm[toarea secven\[ de evenimente:
adresa instruc\iunii urm[toare instruc\iunii de apel (adresa de revenire) este memorat[ ]n stiv[
iar indicatorul de stiva este modificat corespunz[tor (PUSH);
contorul de program este ]nc[rcat cu adresa de start a subprogramului.
}n acest fel, urm[toarea instruc\iune citit[ va fi prima instruc\iune din subprogram (controlul fluxului
de instruc\iuni apar\ine subprogramului).
2.4
PC
PP
apel
n-1
n
n+1
SR
CALL
revenire
PC
k
k+1
RETURN
2.5
C1
Clock In
RF
Clock Out
RS
C2
Microcontroller
Figura 2.7. Oscilator cu cuar\ sau rezonator piezoceramic.
Vcc
R
Clock In
Microcontroller
Figura 2.8. Oscilator RC.
Oscilatorul RC (figura 2.8) reprezint[ cea mai ieftin[ dar =i cea mai pu\in stabil[ solu\ie (1020%).
Valorile componentelor din figurile 2.7 =i 2.8 depind de tipul microcontrollerului =i de tipul de cuar\
sau rezonator.
Anumite microcontrollere incorporeaz[ oscilatoare de tip RC (care nu necesit[ componente externe).
Solu\ia cu ceas extern se utilizeaz[ ]n situa\iile ]n care semnalul este disponibil din alte surse ale
sistemului cu microcontroller.
Trebuie f[cut[ distinc\ie ]ntre ciclul instruc\iune (TCY) =i ciclul de ceas sistem (TCLK). Durata unui
ciclu instruc\iune cuprinde mai multe cicluri ale ceasului sistem (412 TCLK) =i este ]mp[r\it[ ]n mai multe
segmente (numite faze sau st[ri) care eviden\iaz[ diverse etape ale execu\iei instruc\iunii.
}n figura 2.9 se prezint[, spre exemplificare, structura unui ciclu instruc\iune ]n cazul
microcontrollerelor din familia Intel 8051.
TCLK
P1
P2
S1
P1
P2
S2
P1
P2
P1
S3
P2
S4
P1
P2
S5
TCY
2.6
P1
S6
P2
P1
S1
P2
Vcc
Buton RESET
C
RESET
RESET
Buton RESET
R
Microcontroller
C
Microcontroller
2.7
Citire Latch
Data Bus
Func\ie alternativ[
Control ie=ire
D
Data Latch Q
Scriere PORT
Buffer ie=ire
Pin de
intrare-ie=ire
Buffer intrare
Citire PORT
Figura 2.11. Structura general[ a unui PORT de intrare-ie=ire.
2.8
Vcc
Intrare
Rs
Ie=ire
N
Vcc
Intrare
Ie=ire
Intrare
Ie=ire
b)
c)
Control ie=ire
a)
2.9
Vcc
Pin ie=ire
R
LED
b)
LED
Pin ie=ire
Pin ie=ire
RB
LED
a)
c)
Mot
Rel
Pin ie=ire
Pin ie=ire
RB
RB
a)
b)
Vcc
Vcc
Vcc
Pini de intrare
2.10
Pini de ie=ire
Pini de intrare
Divizor
Num[r[tor
Ext
Sel
Dep[=ire
Poart[
Ceas
Num[r[tor
Dep[=ire
Pin ie=ire
}ntrerupere
PR
Figura 2.18. Num[r[tor cu auto-]nc[rcare.
Prezen\a unor registre suplimentare permite realizarea unor func\ii complexe, cum ar fi: captur[,
comparator sau generator de impulsuri modulate ]n durat[ (Puls Wide Modulation PWM).
Schema de principiu a unui circuit de captur[, care permite m[surarea duratei unui semnal de intrare,
este prezentat[ ]n figura 2.19.
La detec\ia unui front al semnalului de intrare, con\inutul num[r[torului este memorat (capturat) ]n
registrul de captur[ REGCAP =i se genereaz[ un semnal de ]ntrerupere.
2.11
Num[r[tor
Captur[
Divizor
Selec\ie
front }ntrerupere
REGCAP
Ceas
Egalitate
Control
ie=ire }ntrerupere
Num[r[tor
Comparator
REGCOMP
Reg. durat[
Comparator 1
Pin ie=ire
Ceas
R
S
Num[r[tor
Reset
Comparator 2
Reg. perioad[
Figura 2.21. Generator de impuls modulat ]n durat[ (PWM).
Registrul perioad[ controleaz[ perioada impulsului de ie=ire iar registrul durat[ controleaz[ durata
impulsului de ie=ire (duty cycle). Atunci c`nd con\inutul num[r[torului coincide cu con\inutul registrului
perioad[ (ie=ire comparator 2), bistabilul de ie=ire este pus ]n starea 1 =i num[r[torul este resetat.
C`nd con\inutul num[r[torului coincide cu con\inutul registrului durat[, bistabilul de ie=ire este pus ]n
starea 0. }n acest fel, durata activ[ a impulsului de ie=ire este propor\ional[ cu valoarea ]nscris[ ]n
registrul durat[ (figura 2.22).
2.12
Perioad[
t
Durat[
(Duty Cycle)
Intrare PWM
Ie=ire tensiune
Start
Celul[-bit
1 0 1
Bi\i de date
Stop
2.13
Generator
rat[ Baud
Buffer transmisie
Registru deplasare
TXD
Registru deplasare
RXD
Buffer recep\ie
Figura 2.25. Schema de principiu a unui circuit UART.
Circuitul UART poate fi folosit direct ]n cazul transmisiei ]ntre subsisteme situate la distan\e mici (pe
aceea=i plac[).
UART
TXD
RXD
RXD
TXD
UART
UART
Interfa\[ RS-232C
DTE
UART
Cablu serial
Protocol RS-232C
Interfa\[ RS-232C
DCE
Figura 2.27. Comunica\ie RS-232C ]ntre DTE =i DCE.
Principalele specifica\ii mecanice ale standardului sunt:
conector tip D cu 25 sau 9 pini, tat[ la DTE =i mam[ la DCE;
lungimea maxim[ a cablului este de aproximativ 17m.
Cablul de leg[tur[ DTE-DCE (cablul serial) este de tip pin la pin (pinul 1 DTE este conectat cu pinul
1 DCE, etc).
Standardul RS-232C utilizeaz[, ]n afar[ de semnalele pentru transmisia/recep\ia datelor (TX =i RX), un
num[r de alte semnale, destinate controlului fluxului de date dintre DTE =i DCE. Multe dintre aceste
2.14
Pin D-9
Semnal
Direc\ie
TX
DTEDCE
RX
DCEDTE
RTS
DTEDCE
CTS
DCEDTE
DSR
DCEDTE
SG
CD
DCEDTE
20
DTR
DTEDCE
22
RI
DCEDTE
2.15
+25
U[V] 0
"0" logic
(Space)
+3
Regiune de
tranzi\ie 0
-3
"1" logic
(Mark)
-25
PC
(DTE)
RS-232C
MODEM
(DCE)
Linie telefonic[
PC
(DTE)
RS-232C
MODEM
(DCE)
TD
RD
SG
DTR
DSR
CD
RTS
CTS
DTE
TD
RD
SG
DTR
DSR
CD
RTS
CTS
DTE
SDA
SCL
RP
RP
SCL SDA
SCL SDA
Dispozitiv I2C
Dispozitiv I2C
Date stabile
Datele se pot
modifica
SDA
SCL
Figura 2.32. Transmisia unui bit pe magistrala I2C.
Transmisia pe magistrala I2C este ]ncadrat[ ]ntre dou[ st[ri unice: condi\ia de START =i condi\ia de
STOP. O tranzi\ie 10 pe linia SDA c`t timp linia SCL este ]n 1 define=te condi\ia de START
S, iar o tranzi\ie 01 pe SDA c`nd SCL este ]n 1, define=te condi\ia de STOP P (figura 2.33).
2.17
SDA
SCL
S
START
P
STOP
SDA
emi\[tor
NAK
SDA
receptor
SCL
master
ACK
8
SDA
MSB
SCL
9
ACK
ACK
receptor
9
ACK
Adresare
S
Adres[
Transmisie date
RW ACK
Data 1
ACK
Data n
RW=0 scriere
Adres[ SLAVE
Start
ACK P
Stop
Adresare
S
Adres[
Transmisie date
RW ACK
Data 1
ACK
Data n
RW=1 citire
Adres[ SLAVE
Start
ACK P
Stop
2.19
CS
SCK
SDO
SDI
SS
SCK
MOSI
MISO
CS
SCK
SDI
SDO
Master SPI
Slave SPI
SS - Slave Select
MISO - Master In, Slave Out
MOSI - Master Out, Slave In
Figura 2.38. Interfa\a SPI.
}n figura 3.39 sunt prezentate formele de und[ pe liniile de interfa\[ SPI.
CS
SCK
SDI
SDO
HiZ
Figura 2.39. Formele de und[ pe magistrala SPI.
Interfa\a SPI permite viteze de transfer de p`n[ la 20 Mbps, num[rul de bi\i dintr-un transfer fiind de
obicei multiplu de 8.
Num[rul liniilor de interfa\[ poate fi redus prin conectarea ]mpreun[ a liniilor SDI =i SDO (figura
2.40). Aceast[ configura\ie este posibil[ deoarece, atunci c`nd linia SDI este activ[ (transfer de la master
c[tre slave), linia SDO este ]n starea de mare impedan\[. Circuitul master SPI poate utiliza o singur[ linie
bidirec\ional[ pentru transferul de date.
CS
SCK
I/O Data
Master SPI
CS
SCK
SDI
SDO
Slave SPI
2.20