Arhitektura AVR mikrokontrolera
Indeks Älanka
Arhitektura AVR mikrokontrolera
Strana 2
Strana 3
Sve strane

 

slika

Arhitektura svih mikrokontrolera familije AVR je indentiÄna. Ovdje će biti objaÅ¡njenja arhitektura mikrokontrolera Atmega48. Potpuno ista arhitektrua je kod mikrokontrolera Atmega88 i Atmega168, pri Äemu se oni meÄ‘usobno razlikuju po veliÄini fleÅ¡ memorije, podrÅ¡kom boot loader-a, veliÄine vektora prekida (interapta) i nekim dodatnim fukcijama.

Karakteristike mikrokontrolera Atmega48/88/168:

 

  • 4K/8K/16K FleÅ¡ memorije koja se programira na ISP principu (eng. In System Programming)

  • Mogućnost samoprogramiranja memorije (eng. Self-Programming Memory)

  • Mogućnost Äitanja iz memorije u toku upisa (eng. Read while Write)

  • 256/512/512 bajta EEPROM memorije

  • 512/1K/1K bajta SRAM memroije,

  • 23 ulazno-izlazne linije opÅ¡te namjene

  • 32 registra opÅ¡te namjene

  • Tri tajmera/brojaÄa sa modulom za poreÄ‘enje i capture jedinicom (eng. compare mode)

  • Interni i eksterni prekidi (interapti)

  • Programibilni univerzalni sinhroni i asinhroni serijski prijemnik i predajnik (USART)

  • 2-wire serijski interfejs

  • SPI serijski port

  • 6-kanalni 10-bitni A/D konvertor

  • Programibilni wtchdog tajmer sa internim oscilatorom

  • 5 razliÄith modova (Å¡ema) za Äuvanje energije (eng. power saving), koji se kontroliÅ¡u softverski.

 

Blok šema AVR arhitekture prikazana je na sljedećoj slici:

 

slika

 

AVR mikrokontroleri koriste koncept Hardvarske arhitekture koja je karakteristiÄna po tome da ima odvojen memorijski prostor za programske instrukcije i memorijski prostor za podatke (programska memorija i memorija podataka). Postoji ugraÄ‘en pipeline mehanizm koji omogućava da se u toku izvrÅ¡avanja jedne instrukcije preuzima sljedeća instrukcija iz programske memorije. Pipeline mehanizmom i RISC arhitekturom omogućeno je da se jedna instrukcija izvraÅ¡ava u svakom taktu.

AritmetiÄko-logiÄka jedinica (ALU) može da vrÅ¡i aritmetiÄke i logiÄke operacije izmeÄ‘u registara ili izmeÄ‘u konstante i registra, te operacije nad bitovima. Nakon obavljanja neke aritmetiÄke operacije u  status registru se reflektuje informacija o rezultatu operacije.

ALU jedinica je direktno povezana sa 32 8-bitna registra opÅ¡te namjene – registarki fajl. Svaki registar može se koristiti kao akumulator pri obavljanju aritmetiÄkih operacija. Na ovaj naÄin omogućeno je da se aritmetiÄka operacija obavi u jednom taktu. Obavljanje aritmetiÄke operacije sastoji se iz toga da ALU uzima dva operanda iz registar fajla, izvrÅ¡ava aritmetiÄku operaciju i rezultat vraća nazad u registar fajl i sve to u jednom taktu, kao Å¡to je prikazano na sljedećoj slici:

 

slika_alu_operacija

 

Status registar sadrži infromaciju o rezultatu poslednje izvrÅ¡ene aritmetiÄke operacije. Ova informacija se može iskoristi za kontrolu razvoja toka programa. Stanje status registra mijenja se nakon svake ALU operacije. Potrebno je naglasiti da stanje STATUS registra nije saÄuvano od strane hardvera u trenutku pojave prekida, tako da u toku izvrÅ¡avanja instrukcija koje pripadaju nekoj prekidnoj rutini može doći do promjene stanja STATUS registra. Ukoliko je potrebno da stanje STATUS registra bude kao Å¡to je bilo prije izvrÅ¡enja prekidne rutine, potrebno ga je saÄuvati prije ulaska u prekidnu rutinu i vratiti nakon zavrÅ¡etka prekidne rutine, a to se radi programskim putem. Status registar prikazan je na sljedećoj slici:

 

 slika_status_registar

 

Slijedi opis pojedinih bitova STATUS registra:

Bit 7 – I: Omougćava globalni prekid (interapt). Ovaj bit mora biti postavljen na logiÄku jedinicu, da bi se omogućilo izvrÅ¡avanje bilo koje prekidne rutine. Pojedine prekidne rutine kasnije se omogućavaju u drugim odgovarajućim registrima. Nakon pojave prekida (interapta), ovaj bit je automatski, od strane hardvera postavljen na logiÄku nulu, pri Äemu su onemogućene nove prekidne rutine dok se zapoÄeta prekidna rutina ne zavrÅ¡i. Ukoliko se želi omogućiti pojava nove prekidne rutine, u toku izvrÅ¡avanja neke druge prekidne rutine, tada se ovaj bit postavlja na „1“ pomoću naredbe RETI. Manipulacija bitom je moguća pomoću naredbi SEI i CLI, detaljnije u instrukcionom setu. Detaljna analiza o internim i eksternim prekidima biće objaÅ¡njenja u Älanku Prekidi (interapti)!

Bit 6 – T: Bit Copy Storage. Instrukcije BLD i BST koriste ovaj T-bit kao izvor ili destinaciju za bit nad kojim se vrši operacija. Bit iz registar fajla može se kopirati u T-bit pomoću naredbe BST i T-bit može biti kopiran u registar fajl pomoću naredbe BLD.

Bit 5 – H: Half Carry Flag. Ovaj bit pokazuje „Half Carry“ u nekim aritmetiÄkim operacijama. On je koristan u BCD aritmetici.

Bit 4 – S: Sign Bit, bit predznaka S=N+V

Bit 3 – V: Two’s Complement Overflow Flag, podržava aritmetiku dvostrukog komplementa.

Bit 2 – N: Negative Flag, ovaj bit pokazuje negativan rezultat prilikom aritmetiÄke ili logiÄke operacije.

Bit 1 – Z: Zero Flag, Bit Z pokazuje rezultat nule u aritmetiÄkoj ili logiÄkoj operaciji.

Bit 0 – C: Carry Flag, Indetifikuje prenos u aritmetiÄkoj ili logiÄkoj operaciji.