7

mikropocitace.pdf

Embed Size (px)

DESCRIPTION

Uploaded from Google Docs

Citation preview

Page 1: mikropocitace.pdf

1 Klasi�kácia mikrokontrolérov a oblasti pouºi-

tia

Mikrokontrolér, monolitický mikropo£íta£ je charakterizovaný vysokou integrá-ciou, nízkou spotrebou a nízkou cenou. Na rozdiel od mikroprocessorov prev²eobecné pouºitie mikropo£íta£ obsahuje okrem centrálnej procesorovej jed-notky i pamä´ový podsystém a vstupno výstupný podsystém po£íta£a. Spotrebamikrokontrolérov sa uvádza ako pomer spotreby a výpo£tového výkonu v mW/MIPS,prípadne ako pomer spotreby a hodinovej frekvencie v mW/MHz. Spotrebumikrokontrolérov je moºné riadi´ pomocou :

• zmeny frekvencie,

• aktivovania len práve pouºívaných subsystémov,

• prechodom do stavu so zníºenou spotrebou.

Mikrokontroléry sa £asto pouºívajú v rôznych strojoch a zariadeniach ako súautomobily, periférne zariadenia po£íta£ov, domáce spotrebi£e, hra£ky a pod.

Dne²né mikrokontroléry majú vývody kon�gurovate©né pomocou programu.To znamená, ºe jednému vývodu je moºné priradi´ viacero rôzných funkcií vzávislosti od aktuálnych poºiadaviek.

Fakty:

• Cena od 0,2e po radovo desiatky eur

• Po£et vývodov od 4 po nieko©ko stoviek

• Dlºka spracovaných dát 4,8,16,32,64 bitov

• Pouºívajú Harwardskú ako aj von Neumannovu (Princeton) koncepciu

Obr. 1: Typy mikrokontrolérov

1

Page 2: mikropocitace.pdf

1.1 Princetonská architektúra (pod©a Johna von Neumana)

Von Neumanova koncepcia. Procesor má k dispozícii len jednu mnoºinu adries apreferencia adries po uloºení programu je v moci programátora. Tým vynikámoºnos´ spracováva´ in²trukcie ako dáta a tak modi�kova´ program. Pod©atejto koncepcie sú postavené takmer v²etky v䣲ie po£íta£e, mikroprocesory amikropo£íta£e. Dne²né po£íta£e na rozdiel od von Neumanovej schémy môºupracova´ s viacerými procesormi a tieº paralelne s viacerými programami zárove¬(tzv. multitasking), £o vedie k efektívnej²iemu vyuºívaniu strojového £asu. Pro-gram sa tieº nemusí v dne²ných po£íta£och zavies´ naraz celý ale je moºnézavies´ len jeho £as´ a ostatné £asti zavies´ aº v prípade potreby.

Dáta a in²trukcie pod©a von Neumanovej koncepcie sú uloºené v spolo£nejpamäti. Prístup k in²trukciám a dátam prebieha sekven£ne striedaním cyklov Fa X ( F - Fetch - výber, X - Execute - vykonaj) :

• Cyklus F - > Obsah CS:IP de�nuje adresu pamäte. Z pamäte po dátovejzbernici vstupujúce dáta na základe kontextu sú interpretované ako oper-a£ný kód a vstupujú do registra in²trukcii , dekódujú sa a ukladajú sa dofronty in²trukcii.

• Cyklus X - > Po dekódovaní kódu in²trukcie sa vykoná vlastná in²trukcia,ktorej kód sa získal z fronty in²trukcii.

Dôsledok sekven£ného striedania cyklov F a X je niº²ia priechodnos´ dát a in-²trukcii. Nie v²etky in²truk£né cykly sa v²ak obracajú k pamäti. Po£as inter-valu ke¤ je zbernica vo©ná moºno pristúpi´ k pamäti a uskuto£ni´ predvýber(prefetch) opera£ného kódu in²trukcie alebo operandu s tým, aby sa in²trukciaskôr zaradila do fronty (FIFO) predpripravených in²trukcii, ktoré sabudú vykonáva´. Procesor tak spotrebuje menej cyklov strojového £asu. �al²iezefektívnenie sa dosahuje pomocou prekrývania dekódovania in²trukcie sposledným krokom vykonávania predo²lej in²trukice. = > zre´azené spracov-anie in²trukcii-pipelining.(napriklad 4 stup¬ové pipeline: £ítanie in²trukcie,dekodovanie, vykonanie, uloºenie výsledku).

1.2 Hardwardská koncepcia

na rozdiel od von Neumanovej predpokladá existenciu dvoch oddelených pamätí.V prvej sú uloºené programy a v druhej sú uloºené dáta. Programový kód adáta sú uloºené v oddelene adresovaných oblastiach pamäte. Môºe sa prekrýva´£ítanie a vykonávanie in²trukcii. Priechodnos´ in²trukcii a dát moºno zvý²i´:

• minimalizovaním £asu potrebného na vykonanie in²trukcie;

• rozdelením jednotlivých in²trukcii na men²ie úseky, prekrývanie cyklov.

Hardvardská architektúra umoº¬uje paralelné spracovanie dát ( nieko©ko par-alelne zapojených ALU, ke¤ fyzické oddelenie in²trukcii a dát umoº¬uje sú£asnýprístup k obom. - RALU rekon�gorovate©né ALU v ktorých na£ítanie dát savykoná 1 impulzom).

2

Page 3: mikropocitace.pdf

2 Princíp £innosti a spolupráca jednotlivých podsys-

témov

(centrálna procesorová jednotka, pamä´ový podsystém, preru²ovací podsystém,V/V podsystém)

2.1 Centrálna procesorová jednotka

Procesorové jadro (cpu) je hlavná £ast mikrokontroléra.

Obr. 2: Základná CPU architektúra

• Aritmetická logická jednotka (ALU)- Pouºívaná pre uskuto£¬ovanievýpo£tov(AND, ADC, INC...). Nieko©ko ovládacích prvkov vyberá operá-ciu v ALU, ktorá je aplikovaná na vstupné dáta. ALU vezme 2 vstupya vracia výsledok operácie ako výstup. Zdroj a ciel je bu¤ register alebopamä´. ALU poskytuje dodato£né informácie v STATUS REGISTRI :

� Z(Zero) výsledok operácie je nula.

� N(Negative) výsledok oprácie je záporný (MSB = �1�).

� O(Over�ow) operácia produkuje prete£enie v zmysle zmeny kladného£ísla na záporné (dvojkový doplnok) .

� C(Carry) �ag je nastavený v prípade prekrocenia MSB.

3

Page 4: mikropocitace.pdf

• Súbor registrov (register �le) - Obsahuje precovné registre CPU.Skladá sa z registrov pre v²eobecné pouºitie (môºu by´ pouºite ako zdrojalebo cie© ALU) a z jednoú£elových registrov (napríklad accumulator aleboindex register).

• Ukazovate© na zásobník (Stack pointer) - Zásobník (stack) je £as´sekven£nej pamäte v dátovom priestore. CPU ju pouºíva na uloºenie návra-tových adries a moºných obsahov registrov po£as subrutín alebo po£as ob-sluhy preru²enia. Prístup do tejto pamäte sa uskuto£nuje prostredníctvompríkazov PUSH (vloºi´ do zásobníka) a POP (odstráni´ nie£o zo zásob-níka). Ukazovate© na zásobník je register ukazujúci na vrchol tohoto zá-sobníka. Tento ukazovate© ukazuje obvykle na koniec zásobníku a dekre-mentovaný kaºdým PUSH a inkrementovaný kaºdým POP.

• Riadiaca jednotka (Control unit) - má za úlohu ur£i´, ktorá in²truk-cia by mala by´ spustená ako da©²ia v poradí a adekvátne riadenie dá-tového toku (data path). Pre uchovanie adresy nasledujúcej in²trukcie jepouºitý ²peciálny register PC (program counter). Riadiaca jednotka na£ítatúto in²trukciu do i²truk£ného registra IR (instruction register), dekódujein²trukciu, a nastavý dáta pre jej spustenie. Nastavenie dátovéjo tokuzah¯¬a poskytovanie vhodného vstupu pre aritmeticko logickú jednotkuALU(z registra alebo pamäte), výber vhodnej ALU operácie a uistenie sao tom, £i je výsledok ALU uloºený do správneho cie©a. Potom PC ukazujena ¤al²iu i²trukciu v poradí, alebo je do¬ uloºená nová adresa pri skoku(JUMP) alebo subrutine.

� RISC architektúra (doslova po£íta£ s obmedzenou sadou in²truk-cií) je architektúra procesorov s priamo£iarym vykonávaním pomernejednoduchých in²trukcií. Podstatná je skôr jednoduchá ²truktúra in-²trukcie a najmä jeho priamo£iare vykonávanie, bez mikrokódu. Ztoho vyplývajú základné znaky RISC procesorov:

∗ v䣲ina in²trukcií má rovnakú d¨ºku∗ v䣲ina in²trukcií sa vykonáva v jednom in²truk£nom cykle∗ procesor má sadu (nieko©ko desiatok) rovnocenných registrov(CISC procesory majú obvykle ²pecializované registre, napr. aku-mulátor pre aritmetické operácie, nieko©ko ²pecializovaných reg-istrov pre ukazovatele a pod.)

∗ nad dátovou pamä´ou nie je moºné vykonáva´ zloºitej²ie operá-cie neº na£ítanie a uloºenie (tzv. load-store architektúra); tie súv²ak podporované autoinkrementom/autodekrementom registraslúºiaceho ako ukazovate© pred/po vykonaní prenosovej in²truk-cie.

� CISC architektúra (doslova po£íta£ s rozsiahlou in²truk£nou sadoualebo po£íta£ s úplnou in²truk£nou sadou) je mikroprocesorová ar-chitektúra, v ktorej sa kaºdá in²trukcia vykonáva ako viacero operácií

4

Page 5: mikropocitace.pdf

mikrokódu v jednom takte procesora (napr. na£ítanie z pamäti, vyko-nanie aritmetickej operácie, zapísanie do pamäti). CISC procesorymajú preto rozsiahlu sadu pomerne zloºitých in²trukcií.

2.2 Pamä´ový podsystém

(hlavná pamä´, opera£ná pamä´) slúºi na uloºenie informácií, pri£om pri ma-nipulácii s informáciami v pamäti (£ítanie, zápis) je potrebné pomocou adresyur£i´ miesto kde je informácia uloºená (alebo kam ju chceme uloºi´). Potomje moºné dátovým kanálom prená²a´ príslu²né dáta pod riadením procesoraprostrednístvom riadiaceho kanálu. Podstatnými vlastnos´ami pamäte £íslicov-ého po£íta£a sú:

• d©ºka slova je udávaná v po£te bitov a ur£uje paralelne prístupnú d¨ºkudátovej informácie. V sú£asných po£íta£och je £asto moºné voli´ z nieko©kýchalternatív, obvykle v násobkoch 8 bitov (bajtov).

• kapacita udáva po£et binárnych slov, ktoré je moºné do pamäte uloºi´.Pri£om za násobok �kilo� sa povaºuje 1024 (210), £omu zodpovedá d¨ºkaadresnej informácie 10 bitov. Ak má pamä´ premennú d¨ºku slova, obvykleje kapacita udávaná v po£te bajtov.

• rýchlos´ pamäte je charakterizovaná hlavne dobou prístupu a doboucyklu pamäte. Doba prístupu ur£uje, za aký £as je pamä´ schopná vyda´,resp. zapísa´ informáciu od nastavenia správnej adresy. Doba cyklu je na-jkrat²ia moºná doba, ktorá uplynie medzi dvoma £itaniami, respektivnezápismi.

Poznáme 2 základné typy pamätí

• volatile pamä´- po odpojení napájania sú dáta stratené. rýchlej²ie alacnej²ie

• non volatile pamä´- dáta uchované aj po odpojení napájania. pomal²iea drah²ie

Obr. 3: pamäte

5

Page 6: mikropocitace.pdf

2.3 Preru²ovací podsystém

Mikrokontrolér musí poskytova´ v realnom £ase reakciu na udalosti vstavanéhosystému. Ke¤ nastane ur£itá udalos´, preru²ovací systém signalizuje procesoruaby pozastavil spracovávanie aktuálnych in²trukcií a spustil preru²ovaciu rutinu(ISR, alebo "interrupt handler").

2.4 V/V podsystém

(vstupo/výstup) slúºi na komunikáciu po£íta£a s perifériami, ktoré slúºia ajna komunikáciu po£íta£a s obsluhou. Aktuálnu perifériu opä´ ur£uje adresa.Cez prenosový kanál dát sa prená²ajú informácie na a z periférie a riadiacimkanálom riadi procesor £innos´ bloku.

3 Obvodové rie²enie a £innos´ typického pred-

stavite©a mikrokontrolérov - AT91SAM7SX

Univerálny mikrokontrolér navrhnutý na báze jadra ARM vyrábaný spolo£nos´ouatmel. Je navrhnutý na základe 32-bitového procesorového jadra ARM7TDMIr,pamäte SRAM, pamäte FLASH a vhodne zvoleného súboru integrovaných per-iférií.

Typ FLASH SRAM USB USART Ext.INT PDC �ita£/ V/V Puzdro[kB] [kB] device [kan.] £asova£

SAM7S16 16 4 - 1 1 9 3 21 QFP48SAM7S161 16 4 1 2 2 11 3 32 QFP64SAM7S32 32 8 - 1 1 9 3 21 QFP48SAM7S321 32 8 1 2 2 11 3 32 QFP64SAM7S64 64 16 1 2 2 11 3 32 QFP64SAM7S128 128 32 1 2 2 11 3 32 QFP64SAM7S256 256 64 1 2 2 11 3 32 QFP64SAM7S512 512 64 1 2 2 11 3 32 QFP64

Tabu©ka 1: Mikrokontroléry triedy AT91SAM7S

Systémová riadiaca jednotka obsahuje obvody riadenia re²tartu, ktoré riadiapostupnos´ pripájania subsystémov na napájacie napätie.

6

Page 7: mikropocitace.pdf

4 Programovacie techniky � jazyk symbolických

adries, C, C++

4.1 Asembler (angl. assembler)

je po£íta£ový program na preklad z jazyka symbolických in²trukcií do strojovéhokódu.Procedúra prekladu sa nazýva aj zostavenie.

Asembler okrem prevodu in²trukcií JSI na £íselne vyjadrené in²trukcie posky-tuje moºnos´ pouºitia symbolického ozna£enia pre miesta v pamäti (£o ²etríúnavné ru£né prepo£ítavanie pamä´ových adries po kaºdej malej úprave), prí-padne schopnosti preprocesora ako makrá £i náhrada textu.

Je omnoho jednoduch²ie napísa´ asembler ako kompilátor jazyka vy²²ej úrovnea ako také existujú od 50. rokov 20. storo£ia. Moderné asemblery, obzvlá²´pre RISCové architektúry optimalizujú radenie in²trukcií tak, aby sa optimálnevyuºívala pipeline CPU.

Asemblery vy²²ej úrovne poskytujú jazykové abstrakcie jazykov vy²²ej úrovneako vy²²ie riadiace ²truktúry, deklarácie a volania funkcií a abstraktné údajovétypy ako záznam, mnoºina £i trieda.

4.2 C

Programovací jazyk C je ²tandardný programovací jazyk vyvinutý za£iatkomsedemdesiatych rokov. Autorom jazyka je Dennis Ritchie. Pôvodne bol ur£enýpre pouºitie na opera£ných systémoch UNIX. Odvtedy sa roz²íril na mnohé inéopera£né systémy a je jedným z najpouºívanej²ích programovacích jazykov. Csa cení v¤aka jeho efektívnosti a je najpopulárnej²ím jazykom na písanie sys-témového softvéru, hoci sa pouºíva aj na tvorbu aplika£ného softvéru. Tieº sabeºne pouºíva pri výuke programovania, hoci nie je ur£ený pre úplných za£ia-to£nikov.

4.3 C++

je viacparadigmový programovací jazyk vy²²ej úrovne na v²eobecné pouºitie,ktorý umoº¬uje pracova´ aj s prostriedkami nízkej úrovne. Má statickú typovúkontrolu, podporuje procedurálne programovanie, dátovú abstrakciu, objektovoorientované programovanie, ale aj generické programovanie

7