Mikrokontrollerek tételsor

Innen: TételWiki
A lap korábbi változatát látod, amilyen Csega (vitalap | szerkesztései) 2009. augusztus 21., 16:08-kor történt szerkesztése után volt. (Soros kommunikáció PIC és PC között)

Tartalomjegyzék

"A" kérdések

Milyen a nyitott kollektoros kimenet?

[1]

Opencollector.jpg

Gyakorlatilag egy tranzisztor aminek a collektora az IC-n kívűlre néz, könnyen lehet vele AND és OR kapcsolásokat csinálni. Általában a tranzisztor bázisa egy IC kimenetére csatlakozik, emittere a földre, a kollektort pedig "nyitott", azaz alapból nincs kötve semmihez. Egy felhúzó ellenállással fel lehet kötni bármilyen feszültségre (nem kell, hogy az IC tápfeszültsége legyen), így összekapcsolható az adott nyitott kollektoros kimenettel rendelkező IC-nk egy másik feszültségen működő áramkörrel. (Ugyanis ha a tranzisztor nyitott állapotban van, akkor a felhúzó ellenálláson keresztül kapott feszültséget kapjuk, egyébként meg a földet.)

Hogyan készíthetünk stabilizált tápfeszültség forrást?

Talán ilyenekre gondolnak: [2] Esetleg egy egyszerű teljesítmény tranzisztor, ami a feszültségkülönbséget hővé alakítjuk. [3]

Ismertesse az analóg komparátor működését!

Talán ilyesmikre gondolnak? [4] [5] A lényeg, hogy két bejövő feszültség esetén a kimenetet ahhoz mérten állítja be, hogy melyik nagyobb. Ha a V1 nagyobb, mint a V2, akkor az elérhető legnagyobb feszültséget adja ki (ez általában a tápfesz), fordított esetben pedig a legkisebbet (ez meg általában a föld).

Op-Amp Comparator.png

Az 555-ös időzítő áramkör felépítése és alkalmazásai.

[6] [7]

  • Lehet használni monostabilként: bejön egy jel, és egy meghatározott impulzust ad ki ennek hatására[8].
  • Lehet használni astabilként: meghatározott frekvenciájú négyszögjelet ad ki ekkor [9].
  • És lehet bistabilként használni: ekkor a trggierre magasba megy, resetre visszajön belőle [10].

A beütésszám átlagmérőknél, digitális méréstechnika laboron például 555-öt használtunk monostabil üzemmódban ahhoz, hogy a beérkező beütéseket azonos lefutású impulzusokká konvertáljuk.

Ellenállás létra és R-2R felépítése és használata D/A konverterekben.

[11]

R2R.png

És VOUT = VREF x VAL / 2^N, ahol VREF a referencia feszültség (általában +5V), VAL az ábrázolt szám (pl. 3), N a használható bitek száma (pl. 2 - két biten a maximum ábrázolható érték 3). Ekkor: VOUT = 5 x 3 / 4 = 3.75

Műveleti erősítők alkalmazási lehetőségei TTL környezetben.

Logikailag más a működési karakterisztikájuk, ezért TTL vagy CMOS környezetben csak kisebb trükkökkel építhetőek be: [12]. Valamint megfelelő kiegészítő áramköri elemekkel különböző feszültségeken lehet működtetni őket, ezért a különböző feszültségen működő áramkörök kapcsolhatóak össze velük.

Magyarázza meg, mik a multiplexerek, demultiplexerek, dekódolók

[13] [14]

Multiplexer/demultiplexer

A demultiplexerek speciális dekódolók, például címeket lehet velük dekódolni.

Hogyan működik a digitális komparátor?

[15] A digitális komparátor összehasonlít két bejövő, bináris jelet és attól függően ad ki nullát vagy egyet, hogy a két bejövő jel megegyezik, vagy nem. (Nullát, ha megegyeznek, és egyet, ha nem). Ezt általában úgy érik el, hogy a két jelet kivonják egymásból. Ha megegyeztek, akkor nulla az eredmény. Ha az eredmény nem nulla, akkor egyet ad vissza a rendszer.

A digitális komparátor

Hogyan működik a teljes összeadó?

[16] Szemben a félösszeadóval, ez lekezeli a carry-t (maradékot) ezért láncolható, így elvileg tetszőlegesen hosszú számok összeadása megvalósítható vele.

A teljes összeadó áramkör

Milyen feladatokra használhatók a tároló regiszterek és osztók?

A tároló regiszter adatot tárol, és ezeken mennek az ALU-ban a behuzalozott müveletek. Az osztó arra jó, hogy amikor adott egy számláló, és a különböző helyiértékű bitjeiről veszünk le jelet, akkor az az alap órajel kettő hatványú leosztásával fog váltakozni.

Hogyan lehet nyomógombos kapcsolót TTL bemenethez illeszteni?

Felhúzó ellenállással a következő módokon:

Logikai kapuk

Hogyan lehet láthatóvá tenni egy kimenet logikai állapotát?

A legáttekinthetőbb megoldás, ha ráteszünk két műveletierősítőt, egyiket a föld, másikat a táp felé, és ezekről hajtunk meg LED-eket. Ekkor nem terheljük túl, a kisáramra tervezett alkatrészeket.

Ismertesse az I/O ciklus idődiagramját!

Először az Address Enable bit felmegy magasba (a negáltja lemegy alacsonyba). A be vagy kimenet akkor fejeződik be, ha ez a bit viszaáll az eredeti értékére. Kimenetkor először az Adat vezeték felveszi az adat által definiált értéket, majd az IOW negáltja lemegy, és az ezutáni felfutásnál megy ki az adat.

Bemenetnél hasonlóan megy, csak rövidebb időszeletben és az IOR bittel szabályozva.

Az output port felépítése.

Ha az adatbusz által adott cím egyezik az adott port címével, akkor az adatbusz komparátora magasat ad, és ha ekkor az IOW is magas (a negáltja alacsony) akkor engedélyeződik az adat kivitele ezzel az AND-elt jellel mint órajellel vezérelve az adatbuszon lógó fliflopokat.

Az input port felépítése.

Hasonló az Output porthoz, csak az engedélyezést az IOR bit adja, és az adatbuszon nem flipflopok, hanem ugynevezett tristate-ekből [17] alkotott bufferek ülnek. Ezek nem csak 1 és 0 szintet tudnak felvenni, hanem harmadik állapotként magas impedanciájú szintet is, aminek hatására tulajdonképpen lekapcsolódnak az áramkörről. Ez azt jelenti, hogy sok ilyen buffert lehet rákötni egyetlen buszra, és azok (ha csak 1 van kiválasztva, a többi a magas impedanciájú állapotban van) akkor nem fogják egymást zavarni.

A PC printer portjának felépítése.

Ez gyakorlatilag az előző két portfajta egybeépítése, annyi extrával, hogy az adatvezeték 2 bitjét használják még két féle input és a bemenet kiválasztására.

Printerport.png

Ismertesse az ALU felépítését és működését!

Az ALU az aritmetikai és logikai egység végzi a legalapvetőbb adat manipulációs műveleteket regiszterek adatai között. Vázlatosan: az utasítás dekódolásával kiválasztja a végrehajtandó műveletet (és eselteg forrás és célregiszter is) és az órajel megérkezésekor aktiválja azt az áramkört ami az utasításnak megfelelő műveletet végrehajtja. Az átmeneti tároló a W (working) regiszter a PIC esetén. Valamint elvégzi az interruptok és a stack kezelését is.

Ismertesse a CLEAR/SET utasítás működését.

Ha itt a BCF (Bit Clear f) és BSF (Bit Set f) PIC utasításokra gondolnak, akkor ezek az f regiszter b-edik bitjét állítják be, vagy törlik ki (b 3 biten jön be, ez cimzi a 8 bitjét f-nek, f pedig a fileregiszter azonosítja 7 bit-en) . f szerint multiplexelés van, azaz az utasításban az f-et kódoló rész vaáslztja ki az aktív áramkört, a 3 b-t pedig szintén multiplexelik, hogy az adott bitet kiválaszthassák.

Milyen alapvető digitális áramkörökből épül fel a számítógép?

Multiplexerek, demultiplexerek, komparátorok, logikai kapuk, regiszterek...

Magyarázza el, mi a Harvard-felépítés és hasonlítsa össze a Neumann-felépítésű számítógéppel

[18] [19]

A Harvard az utasításokat (programkódot) független helyen és független dedikált eléréssel különíti el az adatoktól. Ezzel szemben a Neumann közös memóriát és sávszélt használ a programkód és az adatok elérésére, változtatására, ezáltal felxibilisebb, de valamivel lassabb. A mai komplex processzorok Neumann elvűek, de specifikus chipekben, pl jelfeldolgozásban, ahol a program ritkán kell változzon Harvardot hanszálnak.

A blokkvázlat alapján mutassa be a PIC mikrovezérlők működését!

1Logic.ppt 42. oldal

PIC16F876 blokkdiagramja

Csoportosítsa a PIC mikrovezérlők lábkivezetéseit!

Alapvető működéshez: Táp, föld, reset, oszcillátor Kimeneti/bemeneti csatlakozók..

A jegyzet csoportosítása szerint: adatbusz, címbusz, kimenetek, bemenetek.

Milyen lépésekből áll egy utasítás végrehajtása, és mi a pipe-line?

Utvégrehajtás lépései: utelőkészítés, lehívás; utszámláló reg tartalmának növelése; műveleti kód értelmezése, dekódolás, operandus címének meghatározása; a művelethez szükséges adatok előkészítése; végrehajtás; az eredmény elhelyezése. Pipe-line: míg az egyik utasítást végrehajtjuk, addig lehetséges a következő utasítás memóriából történő lehívása és dekódolása; ha az éppen végrehajtandó utasítás ugró utasítás, akkor nem jól működik (ilyenkor a következő utasítást az ugrás helyéről kell betölteni, a már lehívott utasítást pedig el kell dobni).

Csoportosítsa, és röviden mutassa be a PIC mikrovezérlők utasításkészletét!

Bitekre ható műveletek, Byteokra ható műveletek, és vezérlési, illetve "literal" műveletek. Ez utóbbiak pl. forráskódba írt konstans kifejezések (pl. számok).

Milyen feladatot lát el a veremtár?

A verem egy last in first out tároló. A függvényhívások, és visszatérések kezelésekor játszik szerepet, ugyanis itt tárolódnak a visszatérési címek, regiszterek értékei, esetleg átadandó paraméterek.

Két operandust igénylő utasítások esetén hol képződik az eredmény?

Egy d bittől függően vagy a W regiszterbe, vagy az otasításban hasnzált file regiszterbe kerül.

Magyarázza el a státuszbitek jelentését!

Legfőképpen 3 státuszbit található a PIC-ben, az egyik a Z (Zero) bit, ez logikai összehasonlításoknál, illetve egyéb más utasításoknál állítódik be (például egyenlőség tesztje esetén) és ezt felhasnzálja egy későbbi utasítás (például ugrásra):Ez a PIC-ben az incremetn és decrement utasításoknál van példul hasnzálva, ahol ha a számláls nullát ad, akkor az utána következő utasítást nem hajtja végre, átugorja azt, ez lehet például egy ciklusból való kilépés.

A másik két DC (Digit Carry) és C (Carry) a maradékok kezelését látja el, összeadásnál és kivonásnál.

Miért van szükség memórialapok kialakítására, és mi az a lapváltás?

Ha több a memória, mint amit az adott operandusban indexelni lehet, akkor a hiányzó biteket valahonnan máshonnan olvassa az utasítás. A PIC-en van két bit (l. alább), ezeket használja az utasításbeli 11 mellé. A lapozás folyamata, amikor ezeket a biteket megváltoztatjuk, onnantól minden címzés máshova fog hivatkozni, más lapra.

Mir az RP0, RP1, IRP bitek

Az első kettő az említett kiegészítő bitek, ezek adják meg, hogy melyik lapon dolgozunk. Innen következik az is, hogy 4 lap van a PIC-ben. Az IRP bit az indirekt címzéshez kell, ekkor a filregister+ az IRP bitje határozza meg a lapot és azon belül a címet az utasítás végrehajtásához (gyakorlaitlag az f regiszter által mutatott címet használja).

Mi a RESET feladata, és hogyan működik ez a PIC-eknél?

Alaphelyzetbe állítja a PIC-et. Ha van bootloader program az indul el először. Minden port bemenetre állítódik, az adatregisztereket nullára állítja, az ADC kontrol regiszer is nullára állítódik (azaz analóg bemenet lesz).

Órajel generálása PIC-eknél.

  • Kisfrekvenciás kvarzkristályos: alacosny fogyasztás.
  • Kvarc vagy kerámia rezonátor: normál működés.
  • Nagyfrekvenciás kvarc vagy rezonátor: gyors működéshez (4 MHz felett).
  • Külső RC elemekből felépített oscillátor.

Hogyan valósítható meg az indirekt címzés

Lásd feljebb.

Milyen célt szolgál a Watch Dog Timer?

A WDT egy önálló, független oszcillátorról járatott számláló, amely ha lejár, akkor reseteli a PIC-et. Ez például valamilyen külső behatásból, ami megakasztja, vagy kiakasztja a PIC-et, szolgál visszatérésként.

Mi a polling? Mi a megszíkítás (interrupt-IT)?

Pollingnak nevezzük azt a megoldást, amikor folyamatosan olvassuk egy külső bemenetről, hogy ott van-e változás, vagy érkezik-e adat. Interrupt az, amikor ha beérkezik egy jel, akkor az megszakítja a programkód vérehajtását, elugrik egy bizonyós másik programkódrészhez, azt végrehajtja, madj ha végzett vele, akkor folytatja az eredeti programot. Interruptokkla lehet például hatékonyan megoldani a perifériák kezelését.

Milyen időbeli viszonyokra kell ügyelnünk a megszakítások használatánál?

Interrupt feldolgozása alatt másik interrupt nem jöhet, addig le kell tiltani a megszakításokat. Továbbá van egy rövid 3 usec-es késés, belső utasítások lefutása miatt.

Hogyan lehet programozni a PIC-eket?

Feltöltünk a bootloaderbe egy olyan programot, ami soros USART kommunikációt próbál meg létesíteni a PIC és valami külső eszköz között. Ha sikerül, akkor kezeli ezt, és például programot tölt le, ha nem sikerül, akkor egy korábban feltöltött programkód végrehajtásával folytatja a működést. Az áttöltött programkód gépikódú utasítások sora, ezt valamilyen más eszközön, például PC-n állítjuk elő, áltlaában valamilyen szerkesztő és fordító programmal.

Ismertesse röviden a PIC perifériákat.

  • 3 Port (A, B, C), ezek közül az egyik digitális és analóg is lehet, a másik kettő csak digitális. További portok is vannak, nagyrészt nem foglalkoztunk velük (D, E, ezek külön programozható lábak, ki, bemenetre).
  • 3 Timer (2 8 bites, egy 16 bites), átskálázható.
  • 10 bites AD konverter.
  • Univerzális Szinkron-Aszinkron Fogadó-Küldő Port (USART).
  • Jelszélesség Moduláló (PWM).

Van más is, azokkal nem foglalkoztunk.

PIC I/O portok működése.

Használat előtt a portokhoz tartozó beállító regisztereken (TRISX) be kell állítani, hogy ki- vagy bemenetként szeretnénk őket használni. Ezen felül az A portnál beállítható analóg üzemelés is. Ezek után a PortX regisztereken keresztül írhatjuk, olvashatjuk a portokat.

Számlálók és időzítők a PIC-ben. TMR0, TMR1,TMR2

A számláló áramköröket perifériaként használva a processzort tudjuk tehermentesíteni: a számláló bemenetére egy külső esemény esetén megjelenő jelváltás kapcsolva, a számláló önállóan képes a külső események számlálására. A processzornak csak le kell kérdezni a számláló tartalmát. Ha a kontrollert működtető leosztott órajelet jutattunk erre a számláló bemenetre, akkor a számláló tartalma és az órajel periódus idejének szorzata az eltelt idővel arányos. A számláló által átfogható számlálási tartomány növelése miatt a számlálót alkotó flip-flopokból álló számlálólánc hosszát növelik meg.

  • TMR0: időzítő áramkör; 2 bemenetű multiplexe; kontroll reg-gel beállítani: ha 0 - belső jel, ha 1 - külső jel.
  • TMR1: 16 bites + felbontást növelő elosztó + bemenet lehetőség: egy kisfrekvenciás kvarcosszc.; létezik asszinkron számláló üzemmód.
  • TMR2: 8 bites, soros adatátviteli egység ütemadójaként használjuk; periódusreg:n adott értékelérése->saját magát törli; van elő és utóosztója
Tmr0.png
Tmr1.png
Tmr2.png

PWM modulátor működési elve és felhasználási lehetőségei.

A PWM a négyszögjel szélességét tudja szabályozni, adott kitöltési tényező szerint (10-bites pontossággal), továbbá a frekvenciája is beállítható.

[20]

Használható telekommunikációban, különböző szélességű jelek kiadására, vagy teljesítmény finomszabályozására (pl. villanykörte fényereje), és használják még kapcsolóüzemű tápegységekben feszültség szabályozásra.

"B" kérdések

mikroPascal utasításkészlete és a fordító használata

A sztenderd pascal utasításokon kívül (melyek azért csak redukáltan érhetőek el), a mikroPascal tartalmaz egy sor beépített könyvtárat a különböző perifériák kezeléséhez és a különböző regiszterek programozásához. A perifériák kezeléséhez leggyakrabban használt könyvtárak az USART és az LCD könyvtárak. Ezekben találhatóak a kiíratásra, ki-, és beolvasásra stb. szolgáló parancsok. A különböző portok, regiszterek stb. a dokumentációban közölt néven érhetőek el. Például a PortA.1 = 0; utasítás az A port első kimenetét nullára állítja.

A PIC16F86-os mikrovezérlő (továbbiakban PIC) felépítése

Nincs jobb ötletem, lásd feljebb.

A PIC működéséhez szükséges minimális hardware követelmények

A PIChezminimálisan szükséges hardverek.

Digitális I/O megvalósítás PIC-kel

ez lenne az További hasznos leírás itt: szóval itt a 31. oldalon (ábrával).

Ehhez mindössze annyit fűznék hozzá, hogy a digitális I/O megvalósítása egyszerűen a portok megfelelő irányregisztereinek beállításával érhető el. Az A port esetén kell egyedül külön megmondani, hogy digitális, vagy analóg módban szeretnénk használni.

Analóg feszültség mérése PIC-kel

Teljes leírásként linkelném be ide ezt.

LCD panel illesztése PIC-hez

ez lenne az

LCD.png

Soros kommunikáció PIC és PC között

ez lenne az Bővebb leírás található itt: DataSheet A 97. oldalon.

Léptetőmotorok működése

Leptetomotor.png

Unipoláris vezérlőmotor vezérlése PIC-kel

Egyelőre a jegyzetben csak ilyet találtam, ha valaki tud jobbat, ne habozzon megosztani. :)
Bipolarmotor.png

Szervómotorok működése

Meg kell adni, hogy milyen irányban kell elmozdulnia (pl. egy ellenállás változásával), és pl. egy jelszélesség modulált jelet (hogy milyen gyorsan menjen a motor).