Documente Academic
Documente Profesional
Documente Cultură
Curs SM
Curs SM
ARHITECTURA
O structur electronic destinat controlului unui proces sau, mai general, unei
interaciuni caracteristice cu mediul exterior, fr s fie necesar intervenia
operatorului uman o numim controler.Ce este un microprocesor?.O structura
electronica complexa care de cele mai multe ori ne testeaza inteligenta capacitatea
de a intelege ,si care ne aduce necazuri la examene.
Resursele integrate la nivelul microcircuitului ar trebui s includ, cel puin,
urmtoarele componente:
1. o unitate central (CPU), cu un oscilator intern pentru ceasul de sistem
2. o memorie local tip ROM/PROM/EPROM/FLASH i eventual una de tip RAM
3. un sistem de ntreruperi
4. I/O - intrri/ieiri numerice
5. un port serial de tip asincron i/sau sincron, programabil
6. un sistem de timere-temporizatoare/numrtoare programabile
Structura comuna pentru ambele circuite cu o observatie memoria program
este externa pentru microprocesoare.Cursul prezinta structuri cu microcontrolere.
Este posibil ca la acestea s fie adugate, la un pre de cost avantajos,
caracteristici specifice sarcinii de control care trebuie ndeplinite:
7. un sistem de conversie analog numeric(una sau mai multe intrari analogice)
8. un sistem de conversie numeric analogic i/sau ieiri PWM (cu modulare n
durat)
9. un comparator analogic
10. o memorie de date nevolatil de tip EEPROM
11. faciliti suplimentare pentru sistemul de temporizare/numrare (captare i
comparare)
12. un ceas de gard (timer de tip watchdog)
13. un RTC(Real Time Clock ceas,data,calendar)
14. alte protocoale de transmisie seriala sau paralela (I2C , SPI , 1WIRE , CAN...)
15. faciliti pentru optimizarea consumului propriu
Un microcontroler tipic mai are, la nivelul unitii centrale, faciliti de
prelucrare a informaiei la nivel de bit, de acces direct i uor la intrri/ieiri i un
mecanism de prelucrare a intreruperilor rapid si eficient.
dramatic
numrul
componentelor
electronice
precum
costul
CISC
Aproape toate microcontrolerele au la baza realizrii CPU conceptul
CISC (ComplexInstruction Set Computer). Aceasta nseamn un set uzual
de peste 80 instruciuni, multe din ele foarte puternice i specializate. De
obicei multe din aceste instruciuni sunt foarte diferite ntre ele: unele
opereaz numai cu anumite spaii de adrese sau registre, altele permit
numai anumite moduri de adresare, etc. Pentru programatorul n limbaj de
asamblare exist unele avantaje prin utilizarea unei singure instruciuni
complexe
locul
mai
multor
instruciuni
simple
(analog
fie
utilizat
cu
succes
de
ceva
timp
la
realizarea
reducere
complexitii
microcircuitului,
suprafaa
producie
pe
scar
mic/medie
sau
mask-ROM pentru
producia de mas.
Principalele concepte noi aprute de a lungul timpului n legtur
cu implementarea memoriei de program sau date sunt enumerate n
continuare.
a. OTP - majoritatea productorilor ofer variante de microcontrolere la
care
memoria
local
de
program
este
de
tip
OTP
(One
Time
cnd
este
necesar
un
volum
mare
de
memorie
program
de
cicluri
de
programare
(de
tergere/scriere),
este
LIMBAJE DE PROGRAMARE
Limbajul main i de cel de asamblare
Limbajul main (instruciunile main) este singura form de
reprezentare a informaiei pe care un microcontroler o "nelege".Din
pcate aceast form de reprezentare a informaiei este total nepractic
pentru un programator, care va utiliza cel puin un limbaj de asamblare,
n care o instruciune are drept corespondent o instruciune n limbaj
main.
Un program n limbaj de asamblare este rapid i compact. Aceasta
nu nseamn c un
astfel de program, prost scris, nu poate fi lent i de mari dimensiuni,
programatorul avnd
ontrolul total pentru execuia programului i gestiunea resurselor. Utilizarea
numai a limbajului de asamblare pentru dezvoltarea unei aplicaii complexe este
neproductiv de multe ori, deoarece exist i familii de microcontrolere cu
CPU de tip CISC care au un numr foarte mare de instruciuni (x100)
combinate cu moduri de adresare numeroase i complicate.
Totui, nu trebuie uitat c la ora actual muli din productorii mari
de microcontrolere ofer medii de dezvoltare software gratuite care includ
programe asambloare gratuite. De asemenea, comunitatea utilizatorilor
diverselor familii de microcontrolere a dezvoltat i ea, n timp, multe
astfel de asambloare, care sunt disponibile ca freeware.
Un compilator este o implementare a unui limbaj de nivel nalt, mai
apropiat de limbajul natural. Caracteristic pentru execuia unui program
oferit de
un
un asamblor/compilator ,
mai
rspndite
mijloace
hardware/software
utilizate
dezvoltarea i testarea
aplicaiilor sunt enumerate n continuare.
a. Simulatoarele .
Un
simulator
este
un
program
care
ruleaz
programul
faciliti
de
depanare
similare
simulatorului.
Interfaa
cu
utilizatorul este realizat prin intermediul unui sistem gazd (PC) i/sau a
unui terminal alfanumeric, conectate prin intermediul unui port serial.
Utilizeaz o parte din resursele microcontrolerului : memorie de program
pentru el nsui (de tip ROM) i memorie de date (RAM) pentru variabile
proprii, memorie pentru programul ce se depaneaz, un port serial pentru
comunicaia cu sistemul gazd, eventual ntreruperi, etc. Se utilizeaz de
regul mpreun cu un sistem de dezvoltare (sau evaluare), care este un sistem
minimal realizat n jurul microcontrolerului pe care ruleaz depanatorul, dar
avnd
resurse
suficiente
pentru
permite
testarea
depanarea
aplicaiilor uzuale.
b. Emulatoarele In Circuit (ICE-In Circuit Emulators).
Sunt cele mai eficiente mijloace de testare i dezvoltare i au fost
mult timp cele mai complexe i mai costisitoare. Presupun existena unui
hardware dedicat care nlocuiete practic microcontrolerul (se conecteaz
n locul acestuia n sistemul pentru care se dezvolt aplicaia), n acelai
timp
fiind
disponibile
toate
facilitile
descrise
anterior
altele
10
simulation):
interaciunea
dintre
software-ul
microcontrolerului
codul
cu
medii
de
programare
consacrate
pentru
familia
de
simulatoarele
simulare
deja
codului
menionate.
Pe
sunt
similare
lng
celor
numeroasele
ntlnite
la
dispozitive
sisteme
de
afiare
(LED,
LCD),tastaturi
matriciale
sau
11
a. Costurile aplicaiei
Care va fi scara de producie: prototip, producie mic/medie sau de
mas?
Care sunt costurile permise pentru microcontroler?
Care sunt costurile permise pentru mediul de programare i dezvoltare?
b. Timpul de dezvoltare al aplicaiei
Ce limbaj de programare s aleg?
Ce limbaje de programare cunosc bine i ce medii de dezvoltare am
utilizat?
Ce modalitate de testare i depanare folosesc: simulator, sistem de
dezvoltare, emulator?
c. Caracteristicile fizice
Care este viteza de prelucrare (de calcul) necesar?
De ct memorie am nevoie pentru program i respectiv date?
Va fi necesar si o memorie extern?
Ce fel de alimentare este disponibil i care sunt limitrile acesteia?
De cte intrri i/sau ieiri am nevoie?
Ce fel de intrri i/sau ieiri sunt necesare: intrri/ieiri analogice, ieiri
numerice de curent mai mare?
Care sunt resursele necesare n materie de temporizare/numrare si care
ar fi caracteristicile lor cele mai importante (rezoluie, frecventa maxima
de numrare) ?
Ce tip de capsul, ce dimensiuni fizice i numr de pini ar trebui s aib?
Care este gama temperaturilor de lucru necesare?
12
sunt
resursele
de
comunicaie
necesare:
cte
porturi
seriale
asincrone i cu ce
caracteristici, ce tipuri de magistrale seriale sincrone sunt disponibile?
Este necesar o conectivitate Ethernet (o stiv TCP/IP), USB sau wireless
(stive Bluetooth,
Zigbee, etc.)?
e. Compatibilitate, scalabilitate i dezvoltarea ulterioar
Cu ce tipuri de circuite se poate interfaa ct mai simplu: sisteme de
afiare, senzori, elemente de comand i execuie (relee, motoare de cc,
motoare pas cu pas, etc.)?
Cum se poate realiza extinderea ulterioar, atunci cnd este necesar?
Exist mai multe variante n familia respectiv de microcontrolere, care s
acopere eventualele cerine suplimentare n materie de vitez de lucru,
resurse periferice sau de memorie?
f. Alte aspecte
Ce distribuitori exist i ct sunt de accesibili pentru mine?
Care este suportul oferit de fabricant sau distribuitor icare este baza
de cunostine existent:site-uri web, documentaie on-line sau pe CDuri, note de aplicaii, exemple de proiectare (reference designs),
software din categoria freeware/shareware si, nu n ultimul rnd,
forumuri de discuii pentru utilizatori?
13
practic,
de
cele
mai
multe
ori,
alegerea
unui
specializat
extern.(ex.STK200) -
este
un
circuit
un
soclu
ZIP
in
care
se
pot
conecta
mai
multe
tipuri
de
14
Reprezentari numerice
15
16
17
18
19
20
21
22
Multiplexorul
23
PLA
24
PROM
FPLA
25
FPGA
26
Structuri microprocesoare
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Organizarea memoriei
Spaii de adres separate pentru memoria de program i date. Memoria de program este o
memorie nevolatil avnd o lungime de pn la 64K*8. Dac pinul EA\ este inut din
exterior n starea logic 1, primele 4K locaii de memorie sunt accesate din memoria
intern a microcontrollerului restul fiind accesate din memoria extern. Dac pinul
EA\ este inut din exterior n starea logic 0, toate cele 64K locaii de memorie sunt
accesate din memoria extern.
Acceseaza att de memorie de date intern ct i extern. Memoria de date intern este de
128*8 RAM plus un numr de Regitri cu Funciuni Speciale (Special Function
Registers SFRs). Cele mai mici 128*8 adrese RAM pot fi accesate prin adresare
direct sau indirect. Regitrii cu funciuni speciale pot fi accesai doar prin adresare
direct. Memoria de date extern poate avea o lungime de pn la 64K*8, fiind o
memorie de tip RAM.
41
42
43
44
disparitia acestui semnal, pentru ca scrierea sa fie sigura. Cind un circuit de memorie este
folosit in proiectarea unui sistem trebuic consultata cu atentie foaia de catalog ce-i descrie
functionarea si-i da "timing'-ul critic. Fiecare tip de memorie si fiecare firma poseda
caracteristici ce trebuiesc luate in considerare in definirea unei structuri concrete.
Complexitatea RAM-ului realizat ca o structura liniara de celule este data, in principal,
dc circuitele de acces, DMUX-ul si MUX-ul.daca numarul de locatii depaseste o anumita
dimensiune.
Demonstratia este imediata daca se calculeaza complexitatea RAM-ului
OS'
Fig.3
fig.4
46
Ar fi utila gasirea unei structuri la care efortul structural major sa fie realizat pentru
implementarea latch-urilor, ele fund cele ce dau efectiv functia circuitului. Vom cauta o
solutie de acelasi tip ca in cazul ROM- urilor . Problema suplimentara ce se cere rezolvata
este cea a accesului bidirectional la celula de memorie, in care trebuie sa scriem si pe care
trebuie sa o citim.
MUX-ul bidirectional este structura ce va permite realizarea RAM-ului ca o matrice
bidimensionala la care circuitele de acces vor fi nesemnificative in determinarea
complexitatii.
Pentru inceput vom restructura un MUX sub forma circuitului din figura 5. Un DMUX, cu
iesirile active in unu, asigura deschiderea cite unui NAND cu fan-in = 2. Cele 2" AND-mi vor
fi sumate intr-un OR a carui iesire va fi W. AND-urile vor putea fi tehnologic realizate sub
forma unor porti de transmisie cu ajutorul unui tranzistor MOS. Se obtine astfel, circuitul in
care, daca O, este activata tranzistorul corespunzator va fi deschis si intre Ii si W va fi realizata
o cale bidiretionala in sensul ca va putea circula curentul in ambele sensuri pentru ca
tranzistorul se comporta ca o rezistenta ohmica de mica valoare. Acest circuit se va putea
comporta ca un MUX cu intrarile Ii- si iesirea W, sau ca un DMUX cu intrarea W si iesirile
li. Vom denumi acest circuit multiplexor -demultiplexer, MDX.
Celula elementara a unei memorii RAM porneste de la latch-ul elementar la care se
adauga circuitele ce permit comutarea starii. In figura 6 este prezentata o celula realizata
cu 6 tranzistoare MOS. Tranzistoarele Qi, Q3 i Q2, Q4 formeaza cite un circuit
inversor. lesirea Qjj a inversorului format din Qi i Q3 este conectata la intrarea celuilalt, a
carui iesire, Qif, este legata la intrarea primului. Este format astfel cel mai simplu latch
imaginabil. Q5 i Qt formeaza cite o poarta bidirectionala de acces la Qt] i, respectiv, la Qij'.
Portile de acces sint deschise de semnalul selectie de linie i, LSi (line select). Liniile verticale
permit accesul la celula pentru citire sau scriere. CSjl (selectia coloanei; pentru i) permite
accesul la sau de la Qtj iar CSjO (selectia coloanei j pentru 0) permite accesul la sau de la
Qij'.
fig .5
47
Fig.6
Pentru a inscrie 1 in celula ij se activeaza linia LSi iar pee coloana CSjO se formeaza
semnalul 0 care comuta latch-ul astfel incit Qij = 1. Inscrierea lui 0 in aceeasi celula se face
formand 0 pe coloana CSjl.
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72