„Mikrokontrollerek alkalmazástechnikája - Mintavizsga” változatai közötti eltérés
a David14 átnevezte a(z) Mintavizsga (http://home.mit.bme.hu/~benes/oktatas/vimm9151/vizsga/minta v.htmforrás) lapot a következő névre: Mikrokontrollerek alkalmazástechnikája - Mintavizsga |
a vissza link |
||
| (Egy közbenső módosítás ugyanattól a felhasználótól 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]] | ||