Politehica din Bucuresti proiect de diplomă Facultatea transporturi



Yüklə 1,46 Mb.
səhifə4/104
tarix09.01.2022
ölçüsü1,46 Mb.
#91958
1   2   3   4   5   6   7   8   9   ...   104
1.2 Nucleul CPU AVR
În aceasta parte se discută despre arhitectura, nucleului AVR, în general. Funcţia principală a nucleului CPU este aceea de a asigura execuţia corectă a programului. Din acest motiv , nucleul CPU este capabil să acceseze memoriile, execute calcule, controleze perifericele şi sa controleze întreruperile.

Fig.3.1 Diagrama bloc a nucleului CPU AVR

Pentru a maximiza performanţa ,AVR foloseşte o arhitectura Harvard:

-cu memorii separate şi magistrale pentru program şi informaţii. Instrucţiunile din memoria programului sunt executate într-un singur nivel în timp ce o instrucţiune este executată, urmatoarea este preadusa de la memoria de program. Acest concept permite executarea instrucţiunilor la fiecare ciclu de ceas. Memoria de program este o memorie flash reprogramabilă.

Cel mai accesat registru conţine 32×8 biţi, scopul este de a accesa registrele într-un singur ciclu de ceas .Acest singur timp de acces se datorează unitaţi ALU (Aithmetic Logic Unit). Într-o tipică unitate ALU operaţia are loc astfel: operanzi sunt scoşi din registru se efectuează operaţia si rezultatul este introdus în regiştri toate acestea într-un singur ciclu de ceas.

Şase din cele 32 de registre pot fi folosite ca trei registre de 16 biţi cu acess indirect la informaţii, permitând astfel calcularea eficienta a adresei.Una dintre aceste adrese poate fi folosita pentru (tabele de cautare ), a cauta tabele, în memoria flash. Aceste noi funcţii adaugate registrelor sunt la al 16 bit X, Y si Z descris mai tarziu in aceasta parte.

ALU efectuează (suportă) operaţii aritmetice şi logice între registre sau între o constantă şi un registru. După efectuarea unei operaţii aritmetice registrul afisează rezultatul operaţiei.

Programul furnizează sărituri condiţionate, necondiţionate şi apelări de instricţiuni capabile să acceseze tot spaţiul de adresă. Majoritatea instruţunilor AVR sunt formate dintr-un cuvant 16 biti). Fiecare memorie de program conţie o instrucţine de 16 sau 32 de biţi.

Spaţiul memoriei flash de program este împarţit în două secţiuni, secţiunea BOOT şi secţiune de aplicare a programelor. Secţiunea BOOT are biţi speciali pentru protecţia la scriere şi citire/scriere. Instrucţiunea SPM cu ajutorul căreia se scrie în memoria flash de aplicaţii trebuie sa fie în secţiunea BOOT.

În timpul întreruperileor sau a apelări subrutinelor, adresa de întoarcere este conţinuta pe Stack. Stack-ul este evectiv alocat în înformaţiile generale SRAM şi în consecinţă mărimea Stack-ului este limitată doar de marimea totală a SRAM şi de uzura ei. Toţi utilizatori de program trebuie să iniţializeze SP(Stack Pointer) înainte ca subrutina sau întreruperea să fie executata. Stack Pointer-ul se poate citi/scrie în spaţiul de I/O. Informaţiile din SRAM pot fi accesate cu uşurinţa prin cele cinci moduri diferite de adresare suportate de arhitectura AVR.

Spaţiile de memorie în arhitectura AVR sunt liniare şi normale.

Modulele întreruperilor au registrele de control în spaţiul I/O şi în Status Register se afla bitul de întreupere globală. Toate întreruperile au prioritate în funcţie de locul în tabelul de vectori de întrerupere ai întreruperilor lor. Cu cat este mai jos situat în tabel vectorul întreruperi cu atât acea întrerupere are prioritate mai mare. Prioritatea mai mare o are întreruperea cu vectorul cel mai slab plasat in tabel.

Spaţiul de memorie I/O conţine 64 de arese pentru funcţiuni periferice ale CPU ca: controlul registrelor, indicatorul SPI, sau alte funcţii de I/O. Memoria I/O poate fi accesată direct sau indirect .




Yüklə 1,46 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   ...   104




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin