„Mikrokontrollerek alkalmazástechnikája - Mintavizsga” változatai közötti eltérés
A VIK Wikiből
Új oldal, tartalma: „{{GlobalTemplate|Valaszthato|MintaVizsga}} <!-- Mikrokontrollerek alkalmazástechnikája --> ==I.== ===1. Melyik volt a világ első uC-je?=== TMS1000 (Texas Inst…” |
a vissza link |
||
(2 közbenső módosítás, amit 2 másik szerkesztő végzett, nincs mutatva) | |||
1. sor: | 1. sor: | ||
{{ | __NOTOC__ | ||
{{Vissza|Mikrokontrollerek alkalmazástechnikája}} | |||
===1. Melyik volt a világ első uC-je?=== | ===1. Melyik volt a világ első uC-je?=== | ||
TMS1000 (Texas Instruments) | |||
===2. Sorolja fel, hogy milyen | ===2. Sorolja fel, hogy milyen típusú memóriákban tárolják a mikrokontrollerek programját és jellemezze ezeket!=== | ||
* Egyszer programozható (One Time Programmable): Olcsó, főleg nagy szériánál alkalmazzák. | |||
* Egyszer programozható (One Time Programmable): | * Többször programozható: Régebben EPROM (UV fénnyel törölhető, nehézkes), manapság FLASH (ISP, reset lábon keresztül pl., PIC-nél járulékos feszültség kellhet). | ||
* Többször programozható: | |||
===3. Milyen óragenerátorai lehetnek egy uC-nek, és melyek ezek jellemzői?=== | ===3. Milyen óragenerátorai lehetnek egy uC-nek, és melyek ezek jellemzői?=== | ||
* RC oszcillátor: gyenge stabilitás, pontatlan frekvencia, de gyors beállási idő, olcsó. | * RC oszcillátor: gyenge stabilitás, pontatlan frekvencia, de gyors beállási idő, olcsó. | ||
* Kvarc oszcillátor: gyakori, nagy pontosságú, nagy frekvencia stabilitás, de nagy beállási idő (~100 ms). | * Kvarc oszcillátor: gyakori, nagy pontosságú, nagy frekvencia stabilitás, de nagy beállási idő (~100 ms). | ||
23. sor: | 15. sor: | ||
===4. Rajzoljon le egy felharmonikus Pierce oszcillátort!=== | ===4. Rajzoljon le egy felharmonikus Pierce oszcillátort!=== | ||
Jegyzet 12. old. | |||
===5. Milyen frekvencia tartományban használható felharmonikuson rezgő kvarc oszcillátor?=== | ===5. Milyen frekvencia tartományban használható felharmonikuson rezgő kvarc oszcillátor?=== | ||
40 - 80 MHz (általában a 3. felharmonikuson rezegnek) | |||
===6. Milyen forrásai lehetnek egy uC belső RESET jelének?=== | ===6. Milyen forrásai lehetnek egy uC belső RESET jelének?=== | ||
34. sor: | 26. sor: | ||
===7. Rajzolja fel egy uC párhuzamos slave portjának belső kialakítását továbbá rajzolja fel, hogyan lehet rákapcsolni egy mikroprocesszoros rendszer buszára!=== | ===7. Rajzolja fel egy uC párhuzamos slave portjának belső kialakítását továbbá rajzolja fel, hogyan lehet rákapcsolni egy mikroprocesszoros rendszer buszára!=== | ||
33. old. | |||
===8. Hogyan lehet egyszerű kialakítású időzítővel ciklikus működést megvalósítani?=== | ===8. Hogyan lehet egyszerű kialakítású időzítővel ciklikus működést megvalósítani?=== | ||
*Init: | |||
**timer inicializálása | |||
* timer inicializálása | **üzemmód beállítás | ||
* üzemmód beállítás | **kezdőérték beírás | ||
* kezdőérték beírás | **timer engedélyezés | ||
* timer engedélyezés | *interrupt: | ||
**kezdőérték újratöltése | |||
* kezdőérték újratöltése | |||
===9. Rajzolja le egy fel-le számlálóval és egyenlőség komparátorral kialakított PWM egység blokkvázlatát, és magyarázza el működését! Rajzolja le az egység jellemző | ===9. Rajzolja le egy fel-le számlálóval és egyenlőség komparátorral kialakított PWM egység blokkvázlatát, és magyarázza el működését! Rajzolja le az egység jellemző idődiagramját is!=== | ||
31. old. | |||
===10. Mi a funkciója a parity error, frameing error és overrun státus biteknek a SIO egységben?=== | ===10. Mi a funkciója a parity error, frameing error és overrun státus biteknek a SIO egységben?=== | ||
*parity error: jelzi a vett adat paritáshibáját (vett és számított paritás nem egyezik) | |||
* parity error: jelzi a vett adat paritáshibáját (vett és számított paritás nem egyezik) | *frameing error: jelzi, hogy a stop bit nem volt végig H szintű | ||
* frameing error: jelzi, hogy a stop bit nem volt végig H szintű | *overrun: nem bufferelt vevőegységeknél jelzi, hogy új adat érkezett még a régi kiolvasása előtt | ||
* overrun: nem bufferelt vevőegységeknél jelzi, hogy új adat érkezett még a régi kiolvasása előtt | |||
===11. Mely paraméterektől függ leginkább a CMOS logikák fogyasztása?=== | ===11. Mely paraméterektől függ leginkább a CMOS logikák fogyasztása?=== | ||
Órajeltől. | |||
===12. Milyen esetekben célszerű interruptosan kezelni egy perifériát?=== | ===12. Milyen esetekben célszerű interruptosan kezelni egy perifériát?=== | ||
*ha a periféria két kiszolgálása közt sok utasítást tudna a mikrokontroller végrehajtani (lassú periféria) | |||
* ha a periféria két kiszolgálása közt sok utasítást tudna a mikrokontroller végrehajtani (lassú periféria) | *ha véletlenszerű a kiszolgálási igény, de gyorsan ki kell szolgálni | ||
* ha véletlenszerű a kiszolgálási igény, de gyorsan ki kell szolgálni | *ha nem túl hosszú az interrupt, vagy megszakítható (többszintű interrupt rendszer) | ||
* ha nem túl hosszú az interrupt, vagy megszakítható (többszintű interrupt rendszer) | *ha ettől áttekinthetőbb lesz a program | ||
* ha ettől áttekinthetőbb lesz a program | |||
===13. Jellemezze az AVR mikrokontrollerek I/O, adat RAM és regiszter címzési lehetőségeit!=== | ===13. Jellemezze az AVR mikrokontrollerek I/O, adat RAM és regiszter címzési lehetőségeit!=== | ||
*regiszterek: r0-r31-ig, utolsó 3 pár (X, Y, Z) használható pointerként (inkrementálás pre/post), stack SP (I/O területen) | |||
* regiszterek: r0-r31-ig, utolsó 3 pár (X, Y, Z) használható pointerként (inkrementálás pre/post), stack SP (I/O területen) | *A regiszterek memóriaként is címezhetők (0x00-0x1F cím) | ||
* A regiszterek memóriaként is címezhetők (0x00-0x1F cím) | *Másolás memóriából regiszterbe: ld, st, indexelés: ldd | ||
* Másolás memóriából regiszterbe: ld, st, indexelés: ldd | *I/O regiszterek: in, out (I/O regiszterek első fele bitcímezhető is: sbi, cbi, sbic). | ||
* I/O regiszterek: in, out (I/O regiszterek első fele bitcímezhető is: sbi, cbi, sbic). | |||
===14. Jellemezze az AVR mikrokontrollerek interrupt rendszerét!=== | ===14. Jellemezze az AVR mikrokontrollerek interrupt rendszerét!=== | ||
* Interrupt esetén SP lementése, IT letiltása, majd a kódmemória elején lévő megfelelő címre ugrik a vezérlés, ide kell a jmp utasítást írni. | * Interrupt esetén SP lementése, IT letiltása, majd a kódmemória elején lévő megfelelő címre ugrik a vezérlés, ide kell a jmp utasítást írni. | ||
* Az interrupton belül érdemes lementeni az SREG és a használt regiszterek tartalmát. | * Az interrupton belül érdemes lementeni az SREG és a használt regiszterek tartalmát. | ||
84. sor: | 68. sor: | ||
===15. Rajzolja fel az MCS-51 mikrokontroller külső memória írás ciklusának jellemző idődiagramját!=== | ===15. Rajzolja fel az MCS-51 mikrokontroller külső memória írás ciklusának jellemző idődiagramját!=== | ||
Csak az AVR-ekhez van a jegyzetben ilyen diagram, de valószínű hasonló az MCS-knél is. (54. old.) | |||
===16. Mit csinálnak az MCS-51 mikrokontrollerek idle és power down állapotban?=== | ===16. Mit csinálnak az MCS-51 mikrokontrollerek idle és power down állapotban?=== | ||
*Power down: leállítja az oszcillátort, regiszterek megőrzik a tartalmukat, de minden órajelet igénylő funkció leáll, RESET hatására ébred. | |||
* Power down: leállítja az oszcillátort, regiszterek megőrzik a tartalmukat, de minden órajelet igénylő funkció leáll, RESET hatására ébred. | *Idle: CPU órajele leáll, de a perifériák (időzítő, soros vonal) tovább működnek, IT, RESET hatására ébred. | ||
* Idle: CPU órajele leáll, de a perifériák ( | |||
===17. Milyen funkciói vannak a programozó (égető) készülékeknek?=== | ===17. Milyen funkciói vannak a programozó (égető) készülékeknek?=== | ||
*Adat betöltés (pl. intel hex fájlból). | |||
* Adat betöltés (pl. intel hex fájlból). | *Betöltött adatok módosítása. | ||
* Betöltött adatok módosítása. | *CRC kód generálása (a feltöltendő kód hibavédő kódja). | ||
* CRC kód generálása (a feltöltendő kód hibavédő kódja). | *Eszköz törlése (EEPROM-nál. FLASH-nél). | ||
* Eszköz törlése (EEPROM-nál. FLASH-nél). | *Törölt állapot ellenőrzése. | ||
* Törölt állapot ellenőrzése. | *Spec. bitek beállítása (lock bitek, FUSE bitek). | ||
* Spec. bitek beállítása (lock bitek, FUSE bitek). | *Felprogramozás, és ellenőrzés (visszaolvasás után). | ||
* Felprogramozás, és ellenőrzés (visszaolvasás után). | *Ellenőrzés: a chipben lévő tartalom megegyezik-e a bufferben lévővel. | ||
* Ellenőrzés: a chipben lévő tartalom megegyezik-e a bufferben lévővel. | |||
===18. Részletesen írja le, hogyan lehet megvalósítani a monitorok lépésenkénti program végrehajtás funkcióját?=== | ===18. Részletesen írja le, hogyan lehet megvalósítani a monitorok lépésenkénti program végrehajtás funkcióját?=== | ||
*Lehet törésponti hardverrel, ekkor minden memóriaolvasáskor kell NMI-t kérni. | |||
* Lehet törésponti | *Lehet szoftverből kiváltott IT-vel, ha nincs engedélyezve, akkor szoftverből kiváltott NMI-vel. | ||
* Lehet szoftverből kiváltott IT-vel, ha nincs engedélyezve, akkor szoftverből kiváltott NMI-vel. | *Lehet úgy, hogy a program folytatását kiváltó ret alatt idézünk elő interruptot, ekkor a ret utáni utasítás mindenképpen végrehajtódik még (feature), és csak utána lépünk be az IT-be. Ez megoldható mondjuk egy szabad timer egységgel. pl.: | ||
* Lehet úgy, hogy a program folytatását kiváltó ret alatt idézünk elő interruptot, ekkor a ret utáni utasítás mindenképpen végrehajtódik még (feature), és csak utána lépünk be az IT-be. Ez megoldható mondjuk egy szabad timer egységgel. pl.: | **monitorból visszatérés: | ||
***timer init | |||
***timer start | |||
***sei (ha kell) | |||
***reti | |||
**progi: | |||
***a reti utáni utasítás akkor is végrehajtódik, ha közeben IT jött. | |||
* Timer helyett használhatunk szoftveresen hívható IT-t is. | * Timer helyett használhatunk szoftveresen hívható IT-t is. | ||
===19. Sorolja fel a mikrokontrolleres assemblerek néhány mikrokontroller specifikus tulajdonságát!=== | ===19. Sorolja fel a mikrokontrolleres assemblerek néhány mikrokontroller specifikus tulajdonságát!=== | ||
*WinAVR: lokális címkék | |||
* WinAVR: lokális címkék | *A51 abszolút szegmenshivatkozás: CSEG/DSEG/XSEG/ISEG/BSEG AT cím. | ||
* A51 abszolút szegmenshivatkozás: CSEG/DSEG/XSEG/ISEG/BSEG AT cím. | *A51 helyfoglalás a RAM területen DS/DBIT direktívával. | ||
* A51 helyfoglalás a RAM területen DS/DBIT direktívával. | *Regiszterekre hivatkozás a nevükkel a megfelelő fájl beinkludolása után (AVR) / be van építve az assemblerbe (MCS-51). | ||
* Regiszterekre hivatkozás a nevükkel a megfelelő fájl beinkludolása után (AVR) / be van építve az assemblerbe (MCS-51). | *A51: hivatkozás portra pl.: P1.2 | ||
* A51: hivatkozás portra pl.: P1.2 | *A51: egyes bankok regisztereire hivatkozás a USING kulcsszó után AR0-AR7-el. pl.: USING 1, majd push AR2 | ||
* A51: egyes bankok regisztereire hivatkozás a USING kulcsszó után AR0-AR7-el. pl.: USING 1, majd push AR2 | |||
===20. Hogyan oldják meg a több modulból álló assembly programban a modulok szimbólumaira történő külső hivatkozást?=== | ===20. Hogyan oldják meg a több modulból álló assembly programban a modulok szimbólumaira történő külső hivatkozást?=== | ||
*A megosztandó szimbólumokat PUBLIC direktívával kell definiálni pl.: PUBLIC SUB1, SUB2<br> | |||
* A megosztandó szimbólumokat PUBLIC direktívával kell definiálni pl.: | SUB1: függvény...<br> | ||
SUB2: függvény... | |||
*Ahol használni akarjuk, ott az EXTRN direktívával kell erre utalni: EXTRN CODE(SUB1, SUB2)<br> | |||
call SUB1 ... call SUB2 | |||
* Ahol használni akarjuk, ott az EXTRN direktívával kell erre utalni: | |||
===21. Ábrákkal és szövegesen mutassa be az egyszerű mikrokontrolleres programok tipikus felépítését!=== | ===21. Ábrákkal és szövegesen mutassa be az egyszerű mikrokontrolleres programok tipikus felépítését!=== | ||
90. oldal | |||
*perifériák és változók inicializálása | |||
* perifériák és változók inicializálása | *IT engedélyezés | ||
* IT engedélyezés | *végtelen ciklus, amit a perifériák interruptjai megszakítanak időről időre | ||
* végtelen ciklus, amit a perifériák interruptjai megszakítanak időről időre | *IT-ken belül: mentés, kiszolgálás, visszatöltés, reti | ||
* IT-ken belül: mentés, kiszolgálás, visszatöltés, reti | |||
===22. Mi a szerepe a bufferelésnek, hogyan lehet jelzést bufferelni?=== | ===22. Mi a szerepe a bufferelésnek, hogyan lehet jelzést bufferelni?=== | ||
* A burst-ösen jövő adatokat lehet vele becacheelni, hogy aztán processzálni tudjuk a main_loop-ban :) | |||
* A | |||
* A jelzés bufferelésére általában elég egy unsigned char változó, amit a beérkező jelzéskor növelünk (esetleg az overrunt is vizsgáljuk), feldolgozáskor pedig csökkentjük (ha nem 0). | * A jelzés bufferelésére általában elég egy unsigned char változó, amit a beérkező jelzéskor növelünk (esetleg az overrunt is vizsgáljuk), feldolgozáskor pedig csökkentjük (ha nem 0). | ||
===23. Mi az In-circuit Programming és az In-circuit Debugging? Hogyan valósul meg mindez a PIC mikrokontrollereknél?=== | ===23. Mi az In-circuit Programming és az In-circuit Debugging? Hogyan valósul meg mindez a PIC mikrokontrollereknél?=== | ||
169. sor: | 128. sor: | ||
===25. Ismertesse a H8/300H processzor regiszterkészletét és annak jellegzetességeit, valamint a CCR regiszter bitjeit!=== | ===25. Ismertesse a H8/300H processzor regiszterkészletét és annak jellegzetességeit, valamint a CCR regiszter bitjeit!=== | ||
===26. Rajzolja fel egy 4x2-es billentyű mátrix mikrontrollerhez illesztését, ha 6 I/O port áll rendelkezésre! Írja meg a hardvert kezelő szubrutint (AVR assembly nyelven), mely főprogram szinten fut. Rendelkezésre áll egy timer IT, mely a tim 1 byte-os változó értékét csökkenti 1ms-onként, mindaddig, amíg az 0 nem lesz. Ekkor a timout nevű flaget 1-be írja. (Mellékletként megkapja az AVR utasításkészletét tartalmazó táblázatot.)=== | ===26. Rajzolja fel egy 4x2-es billentyű mátrix mikrontrollerhez illesztését, ha 6 I/O port áll rendelkezésre! Írja meg a hardvert kezelő szubrutint (AVR assembly nyelven), mely főprogram szinten fut. Rendelkezésre áll egy timer IT, mely a tim 1 byte-os változó értékét csökkenti 1ms-onként, mindaddig, amíg az 0 nem lesz. Ekkor a timout nevű flaget 1-be írja. (Mellékletként megkapja az AVR utasításkészletét tartalmazó táblázatot.)=== | ||
101. old. | |||
===27. Készítse el az alábbi feladat részletes specifikációját, a részletes funkcionális blokkvázlatát, végezze el a hardver szoftver szétválasztást és készítse el a hardver rendszertervet! Egy hagyományos orvosi vérnyomásmérőt kell kiváltani a mandzsetta automatikus felfújását és leeresztését elvégző készülékkel, mely a mandzsetta aktuális nyomását is kijelzi. (Az orvos hagyományos módon állapítja meg szisztolés és diasztolés értéket.) A készülék hálózatról működik. A készüléknek megadható a felfújáskor elérendő végnyomás értéke (3 értékből lehet választani 180, 200, 220 Hgmm). A készülék kézzel indítható. Az indítás hatására először egy SZ1 gyors leeresztő szeleppel teljesen leereszti mandzsettát, majd vár 1sec-ot. A nyomásérzékelővel ekkor mért értéket tekinti 0Hgmm-nek. Ezután elkezdi felfújni egy előzőleg kiválasztott nyomásértékig. Ha ezt elérte egy SZ2 lassú leeresztő szelep kinyitásával lassan leereszti, 30 Hgmm elérésekor pedig az SZ1 szelep kinyitásával teljesen leereszti. A mandzsetta felhasználói beavatkozásra is bármikor gyorsan leereszthető. A készülék hibajelzést ad, ha a felfújó motor kikapcsolása után is növekszik a nyomás. Ekkor az SZ1 gyors leeresztő szelep kinyitásával leereszti a mandzsettát. A nyomás érzékelő a nyomással fordítottan arányos frekvencia kimenettel rendelkezik, 0 Hgmm esetén 1MHz, 300 Hgmm esetén 500kHz frekvenciájú TTL jelet ad ki.=== | |||
===27. Készítse el az alábbi feladat részletes | |||
[[CsuzdyCsabaDavid|Csaba]] - 2009.06.02. | |||
{{Vissza|Mikrokontrollerek alkalmazástechnikája}} | |||
[[Category:Valaszthato]] | [[Category:Valaszthato]] |
A lap jelenlegi, 2013. december 28., 14:00-kori változata
1. Melyik volt a világ első uC-je?
TMS1000 (Texas Instruments)
2. Sorolja fel, hogy milyen típusú memóriákban tárolják a mikrokontrollerek programját és jellemezze ezeket!
- Egyszer programozható (One Time Programmable): Olcsó, főleg nagy szériánál alkalmazzák.
- Többször programozható: Régebben EPROM (UV fénnyel törölhető, nehézkes), manapság FLASH (ISP, reset lábon keresztül pl., PIC-nél járulékos feszültség kellhet).
3. Milyen óragenerátorai lehetnek egy uC-nek, és melyek ezek jellemzői?
- RC oszcillátor: gyenge stabilitás, pontatlan frekvencia, de gyors beállási idő, olcsó.
- Kvarc oszcillátor: gyakori, nagy pontosságú, nagy frekvencia stabilitás, de nagy beállási idő (~100 ms).
- Kerámia oszcillátor: elfogadható pontosság, kiváló stabilitás, rövidebb beállási idő, mint a kvarcnál, olcsó.
- Oszcillátor chip
4. Rajzoljon le egy felharmonikus Pierce oszcillátort!
Jegyzet 12. old.
5. Milyen frekvencia tartományban használható felharmonikuson rezgő kvarc oszcillátor?
40 - 80 MHz (általában a 3. felharmonikuson rezegnek)
6. Milyen forrásai lehetnek egy uC belső RESET jelének?
- Bekapcsolási reset áramkör
- Külső reset (pl. nyomógomb)
- Egyéb (pl. brown-out, watch-dog, egyéb hiba)
7. Rajzolja fel egy uC párhuzamos slave portjának belső kialakítását továbbá rajzolja fel, hogyan lehet rákapcsolni egy mikroprocesszoros rendszer buszára!
33. old.
8. Hogyan lehet egyszerű kialakítású időzítővel ciklikus működést megvalósítani?
- Init:
- timer inicializálása
- üzemmód beállítás
- kezdőérték beírás
- timer engedélyezés
- interrupt:
- kezdőérték újratöltése
9. Rajzolja le egy fel-le számlálóval és egyenlőség komparátorral kialakított PWM egység blokkvázlatát, és magyarázza el működését! Rajzolja le az egység jellemző idődiagramját is!
31. old.
10. Mi a funkciója a parity error, frameing error és overrun státus biteknek a SIO egységben?
- parity error: jelzi a vett adat paritáshibáját (vett és számított paritás nem egyezik)
- frameing error: jelzi, hogy a stop bit nem volt végig H szintű
- overrun: nem bufferelt vevőegységeknél jelzi, hogy új adat érkezett még a régi kiolvasása előtt
11. Mely paraméterektől függ leginkább a CMOS logikák fogyasztása?
Órajeltől.
12. Milyen esetekben célszerű interruptosan kezelni egy perifériát?
- ha a periféria két kiszolgálása közt sok utasítást tudna a mikrokontroller végrehajtani (lassú periféria)
- ha véletlenszerű a kiszolgálási igény, de gyorsan ki kell szolgálni
- ha nem túl hosszú az interrupt, vagy megszakítható (többszintű interrupt rendszer)
- ha ettől áttekinthetőbb lesz a program
13. Jellemezze az AVR mikrokontrollerek I/O, adat RAM és regiszter címzési lehetőségeit!
- regiszterek: r0-r31-ig, utolsó 3 pár (X, Y, Z) használható pointerként (inkrementálás pre/post), stack SP (I/O területen)
- A regiszterek memóriaként is címezhetők (0x00-0x1F cím)
- Másolás memóriából regiszterbe: ld, st, indexelés: ldd
- I/O regiszterek: in, out (I/O regiszterek első fele bitcímezhető is: sbi, cbi, sbic).
14. Jellemezze az AVR mikrokontrollerek interrupt rendszerét!
- Interrupt esetén SP lementése, IT letiltása, majd a kódmemória elején lévő megfelelő címre ugrik a vezérlés, ide kell a jmp utasítást írni.
- Az interrupton belül érdemes lementeni az SREG és a használt regiszterek tartalmát.
- A RETI utasítás automatikusan engedélyezi az interruptokat.
- Prioritások: az alacsonyabb címhez tartozó IT rutin magasabb prioritású.
- Minden perifériának van egyéni IT engedélyező flagje is.
15. Rajzolja fel az MCS-51 mikrokontroller külső memória írás ciklusának jellemző idődiagramját!
Csak az AVR-ekhez van a jegyzetben ilyen diagram, de valószínű hasonló az MCS-knél is. (54. old.)
16. Mit csinálnak az MCS-51 mikrokontrollerek idle és power down állapotban?
- Power down: leállítja az oszcillátort, regiszterek megőrzik a tartalmukat, de minden órajelet igénylő funkció leáll, RESET hatására ébred.
- Idle: CPU órajele leáll, de a perifériák (időzítő, soros vonal) tovább működnek, IT, RESET hatására ébred.
17. Milyen funkciói vannak a programozó (égető) készülékeknek?
- Adat betöltés (pl. intel hex fájlból).
- Betöltött adatok módosítása.
- CRC kód generálása (a feltöltendő kód hibavédő kódja).
- Eszköz törlése (EEPROM-nál. FLASH-nél).
- Törölt állapot ellenőrzése.
- Spec. bitek beállítása (lock bitek, FUSE bitek).
- Felprogramozás, és ellenőrzés (visszaolvasás után).
- Ellenőrzés: a chipben lévő tartalom megegyezik-e a bufferben lévővel.
18. Részletesen írja le, hogyan lehet megvalósítani a monitorok lépésenkénti program végrehajtás funkcióját?
- Lehet törésponti hardverrel, ekkor minden memóriaolvasáskor kell NMI-t kérni.
- Lehet szoftverből kiváltott IT-vel, ha nincs engedélyezve, akkor szoftverből kiváltott NMI-vel.
- Lehet úgy, hogy a program folytatását kiváltó ret alatt idézünk elő interruptot, ekkor a ret utáni utasítás mindenképpen végrehajtódik még (feature), és csak utána lépünk be az IT-be. Ez megoldható mondjuk egy szabad timer egységgel. pl.:
- monitorból visszatérés:
- timer init
- timer start
- sei (ha kell)
- reti
- progi:
- a reti utáni utasítás akkor is végrehajtódik, ha közeben IT jött.
- monitorból visszatérés:
- Timer helyett használhatunk szoftveresen hívható IT-t is.
19. Sorolja fel a mikrokontrolleres assemblerek néhány mikrokontroller specifikus tulajdonságát!
- WinAVR: lokális címkék
- A51 abszolút szegmenshivatkozás: CSEG/DSEG/XSEG/ISEG/BSEG AT cím.
- A51 helyfoglalás a RAM területen DS/DBIT direktívával.
- Regiszterekre hivatkozás a nevükkel a megfelelő fájl beinkludolása után (AVR) / be van építve az assemblerbe (MCS-51).
- A51: hivatkozás portra pl.: P1.2
- A51: egyes bankok regisztereire hivatkozás a USING kulcsszó után AR0-AR7-el. pl.: USING 1, majd push AR2
20. Hogyan oldják meg a több modulból álló assembly programban a modulok szimbólumaira történő külső hivatkozást?
- A megosztandó szimbólumokat PUBLIC direktívával kell definiálni pl.: PUBLIC SUB1, SUB2
SUB1: függvény...
SUB2: függvény...
- Ahol használni akarjuk, ott az EXTRN direktívával kell erre utalni: EXTRN CODE(SUB1, SUB2)
call SUB1 ... call SUB2
21. Ábrákkal és szövegesen mutassa be az egyszerű mikrokontrolleres programok tipikus felépítését!
90. oldal
- perifériák és változók inicializálása
- IT engedélyezés
- végtelen ciklus, amit a perifériák interruptjai megszakítanak időről időre
- IT-ken belül: mentés, kiszolgálás, visszatöltés, reti
22. Mi a szerepe a bufferelésnek, hogyan lehet jelzést bufferelni?
- A burst-ösen jövő adatokat lehet vele becacheelni, hogy aztán processzálni tudjuk a main_loop-ban :)
- A jelzés bufferelésére általában elég egy unsigned char változó, amit a beérkező jelzéskor növelünk (esetleg az overrunt is vizsgáljuk), feldolgozáskor pedig csökkentjük (ha nem 0).
23. Mi az In-circuit Programming és az In-circuit Debugging? Hogyan valósul meg mindez a PIC mikrokontrollereknél?
24. Milyen üzemi paraméterek állíthatók régiónként a H8/3002-es eszköz esetében? Mik a megkötések?
25. Ismertesse a H8/300H processzor regiszterkészletét és annak jellegzetességeit, valamint a CCR regiszter bitjeit!
26. Rajzolja fel egy 4x2-es billentyű mátrix mikrontrollerhez illesztését, ha 6 I/O port áll rendelkezésre! Írja meg a hardvert kezelő szubrutint (AVR assembly nyelven), mely főprogram szinten fut. Rendelkezésre áll egy timer IT, mely a tim 1 byte-os változó értékét csökkenti 1ms-onként, mindaddig, amíg az 0 nem lesz. Ekkor a timout nevű flaget 1-be írja. (Mellékletként megkapja az AVR utasításkészletét tartalmazó táblázatot.)
101. old.
27. Készítse el az alábbi feladat részletes specifikációját, a részletes funkcionális blokkvázlatát, végezze el a hardver szoftver szétválasztást és készítse el a hardver rendszertervet! Egy hagyományos orvosi vérnyomásmérőt kell kiváltani a mandzsetta automatikus felfújását és leeresztését elvégző készülékkel, mely a mandzsetta aktuális nyomását is kijelzi. (Az orvos hagyományos módon állapítja meg szisztolés és diasztolés értéket.) A készülék hálózatról működik. A készüléknek megadható a felfújáskor elérendő végnyomás értéke (3 értékből lehet választani 180, 200, 220 Hgmm). A készülék kézzel indítható. Az indítás hatására először egy SZ1 gyors leeresztő szeleppel teljesen leereszti mandzsettát, majd vár 1sec-ot. A nyomásérzékelővel ekkor mért értéket tekinti 0Hgmm-nek. Ezután elkezdi felfújni egy előzőleg kiválasztott nyomásértékig. Ha ezt elérte egy SZ2 lassú leeresztő szelep kinyitásával lassan leereszti, 30 Hgmm elérésekor pedig az SZ1 szelep kinyitásával teljesen leereszti. A mandzsetta felhasználói beavatkozásra is bármikor gyorsan leereszthető. A készülék hibajelzést ad, ha a felfújó motor kikapcsolása után is növekszik a nyomás. Ekkor az SZ1 gyors leeresztő szelep kinyitásával leereszti a mandzsettát. A nyomás érzékelő a nyomással fordítottan arányos frekvencia kimenettel rendelkezik, 0 Hgmm esetén 1MHz, 300 Hgmm esetén 500kHz frekvenciájú TTL jelet ad ki.
Csaba - 2009.06.02.