Digitális technika (VIMIAA01) Laboratórium 11

Hasonló dokumentumok
Digitális technika (VIMIAA01) Laboratórium 11

Digitális technika (VIMIAA01) Laboratórium 9

Digitális technika (VIMIAA01) Laboratórium 9

Digitális technika VIMIAA01

Digitális technika VIMIAA01

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

PWM elve, mikroszervó motor vezérlése MiniRISC processzoron

Mikrorendszerek tervezése

Digitális technika (VIMIAA01) Laboratórium 10

Az interrupt Benesóczky Zoltán 2004

Digitális technika VIMIAA hét

Digitális technika (VIMIAA02) Laboratórium 5.5

Architektúra, megszakítási rendszerek

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

A MiniRISC processzor

A MiniRISC processzor

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 4

A MiniRISC processzor

Digitális technika (VIMIAA01) Laboratórium 4

Digitális technika (VIMIAA02) Laboratórium 4

A MiniRISC processzor (rövidített verzió)

Digitális technika VIMIAA02 9. hét

Labor 2 Mikrovezérlők

Digitális technika (VIMIAA02) Laboratórium 12

Digitális technika (VIMIAA02) Laboratórium 12

Digitális technika VIMIAA02 9. hét Fehér Béla BME MIT

Karakteres LCD kijelző használata MiniRISC processzoron

Nagy Gergely április 4.

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

OPERÁCIÓS RENDSZEREK. Elmélet

Programozási segédlet DS89C450 Fejlesztőpanelhez

A mikroprocesszor felépítése és működése

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással

Egyszerű számítógép működése

A számítógép alapfelépítése

Multi-20 modul. Felhasználói dokumentáció 1.1. Készítette: Parrag László. Jóváhagyta: Rubin Informatikai Zrt.

Járműfedélzeti rendszerek I. 5. előadás Dr. Bécsi Tamás

Digitális technika VIMIAA hét

Digitális technika VIMIAA hét

Digitális technika (VIMIAA01) Laboratórium 8

Digitális technika (VIMIAA02) Laboratórium 3

LOGSYS LOGSYS SPARTAN-3E FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ szeptember 19. Verzió

Digitális technika (VIMIAA02) Laboratórium 3

MSP430 programozás Energia környezetben. Szervó motorok vezérlése

Az operációs rendszer szerkezete, szolgáltatásai

Digitális technika (VIMIAA02) Laboratórium 8

PERREKUP DxxTx - HDK10 Rekuperátor vezérlő Használati Utasítás

Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással

5. Laborgyakorlat. Számláló funkciók, időzítő funkciók.

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

T2-CNCUSB vezérlő család hardver segédlet

Bevezetés a számítástechnikába

SIOUX-RELÉ. Sioux relé modul telepítési leírás Szerkesztés MACIE0191

Számítógépek felépítése, alapfogalmak

LOGSYS LOGSYS LCD KIJELZŐ MODUL FELHASZNÁLÓI ÚTMUTATÓ november 8. Verzió

Yottacontrol I/O modulok beállítási segédlet

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek

Mechatronika és mikroszámítógépek. 2018/2019 I. félév. Külső megszakítások

Az vevő- és vezérlőáramkör programja

Számítógép architektúrák

Periféria illesztési példák áramkörön belüli buszra (kiegészítés az előadás vázlathoz) Benesóczky Zoltán (2017)

Roger UT-2. Kommunikációs interfész V3.0

3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

TM Szervó vezérlő és dekóder

Digitális technika VIMIAA01 5. hét

HSS60 ( ) típusú léptetőmotor meghajtó

Mérési jegyzőkönyv. az ötödik méréshez

A PicoBlaze vezérlő alkalmazása a LOGSYS kártyán

Dr. Oniga István DIGITÁLIS TECHNIKA 8

The modular mitmót system. DPY kijelző kártya C API

A/D és D/A konverterek vezérlése számítógéppel

RUBICON Serial IO kártya

Programozható Logikai Vezérlő

SZORGALMI FELADAT. 17. Oktober

AC-MF1W. RFID kártyaolvasó és kódzár. Felhasználói leírás

Perifériakezelési módszerek (Korrigált) Feltétel nélküli

PMU Kezdı lépések. 6-0 Csatlakozás LG GLOFA-GM és SAMSUNG PLC-hez. 6-1 Kommunikáció LG PMU és LG GLOFA-GM7 / GM6 / GM4 között

A Számítógépek hardver elemei

micron s e c u r i t y p r o d u c t s EzeProx proximity kártyaolvasó és kódbillentyűzet

IDAXA-PiroSTOP. PIRINT PiroFlex Interfész. Terméklap

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD

Digitális technika VIMIAA02

Digitális rendszerek. Mikroarchitektúra szintje

TxBlock-USB Érzékelőfejbe építhető hőmérséklet távadó

Panel bekötési pontok:

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése.

SR mini PLC Modbus illesztő modul. Modul beállítása Bemeneti pontok kiosztása főmodul esetén Bemeneti pontok címkiosztása kiegészítő modul esetében

Mikrorendszerek tervezése

Digitális technika VIMIAA hét

_INVHU000_WriteReadParameter.cxf Frekvenciaváltók

Digitális technika VIMIAA01

Digitális technika VIMIAA01

7.hét: A sorrendi hálózatok elemei II.

Szenzorhálózatok programfejlesztési kérdései. Orosz György

Perifériák hozzáadása a rendszerhez

Átírás:

BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika (VIMIAA01) Laboratórium 11 Fehér Béla Raikovich Tamás, Fejér Attila Digit labor 11., 2014.11. 23. (v1.0) BME MIT

Lab11: A megszakításos perifériakezelés 1. A mikroprocesszorok megszakítási alrendszere 2. A MiniRISC processzor megszakításos perifériái 3. A TIMER időzítő egység programozása 4. A TIMER ISR megszakítás kiszolgáló rutin felépítése 5. A mikro szervó motor tulajdonságai 6. A mikro szervó motor vezérlése 7. A PWM pulzusszélesség modulált vezérlőjel programozott előállítása 8. A laborfeladatok programjainak elkészítése Digit labor 11., 2014.11.23. (v1.0) 1

Lab11: A megszakításos perifériakezelés A mikroprocesszorok megszakítási alrendszere Feladata a program végrehajtáshoz kapcsolódó speciális események kezelése Megszakítást okozhatnak SW vagy HW események Mi csak a HW eseményekkel foglalkozunk, elsősorban a perifériakezeléshez kapcsolódóan Ez a módszer külön egyedi HW részáramköröket kíván a processzorban, a rendszerben és a perifériában egyaránt Digit labor 11., 2014.11.23. (v1.0) 2

Lab11: A megszakításos perifériakezelés A perifériák lehetnek passzív vagy aktív perifériák A passzív perifériák kezelése egyszerű, programozott működtetés Parancs / adat kiadás és azonnali végrehajtás A periféria mindig kész új működtetésre Az aktív perifériák nevükből eredően önálló működéssel rendelkezhetnek Kimeneti periféria, ami a parancs végrehajtásához / adatátvitelhez extra időt igényel Bemeneti periféria, ami tetszőleges időpontban adatot generálhat Digit labor 11., 2014.11.23. (v1.0) 3

Lab11: A megszakításos perifériakezelés Az aktív perifériák kezelése Programozott, lekérdezéses Várakozás a feltétel/esemény megtörténésére Programozott lekérdezés Megszakításos eseményjelzés és kiszolgálás Digit labor 11., 2014.11.23. (v1.0) 4

Lab11: A megszakításos perifériakezelés Programozott perifériakezelés: Perifériakezelés várakozással: A program működése a várakozási ponton áll, amíg az esemény nem történik meg, semmilyen hasznos egyéb utasítás végrehajtás, feladatvégzés nem történik Perifériakezelés lekérdezéssel A program a futása során periódikusan lekérdezi a periféria státuszregiszterét, ellenőrzi az esetleg kiszolgálási igényt, de közben más feladatot végez Digit labor 11., 2014.11.23. (v1.0) 5

Lab11: A megszakításos perifériakezelés Megszakításos perifériakezelés és kiszolgálás: Lényege: A periféria rendelkezik jelzési lehetőséggel, amennyiben olyan esemény történik, ami a processzor részéről kiszolgálást igényel Speciális hardver megoldás minden részegységben: A processzor kiegészítése a programvégrehajtás, utasítássorrend tetszőleges idejű módosíthatóságára A rendszer kiegészítése a megszakítás kérések és elfogadások kommunikációs igényeire A perifériák kiegészítése a kapcsolódó funkciókkal Digit labor 11., 2014.11.23. (v1.0) 6

Lab11: A megszakításos perifériakezelés A MiniRISC processzor megszakítás alrendszere: Egyszerű, egyszintű megszakításrendszer Egyetlen megszakításkérés bemeneti vonal IRQ Fix cím a megszakítás kiszolgáló rutin (ISR) részére (RESET vektor 0x00 címen) Megszakítás vektor 0x01 címen Extra utasítások: STI, CLI, RTI Extra állapot az utasítás végrehajtásban Aktív IRQ észlelése és elfogadása esetén PC és flagek mentése a verembe, PC IT vektor, IE=0 Digit labor 11., 2014.11.23. (v1.0) 7

Lab 11: MiniRISC processzor Vezérlő állapotgép Töréspont, ekkor a debug modul veszi át a vezérlést ~continue STATE_BREAK continue IR PMEM[PC] PC PC+1 break STATE_INIT PC 0, IE 0, IF 0 STATE_FETCH ~break IR PMEM[PC] PC PC+1 STATE_DECODE A processzor inicializálása Utasítás lehívás Utasítás dekódolás STATE_EX_XXX ~IE ~IRQ Utasítás végrehajtás Digit labor 11., 2014.11.23. (v1.0) IE & IRQ STATE_INT_REQ stack PC,Z,C,N,V,IE,IF PC 0x01, IE 0, IF 1 8 Megszakítás kiszolgálás

Lab11: A megszakításos perifériakezelés Az ISR megszakítás kiszolgáló rutin Aktiválása a külső/belső esemény hatására történik, nincs külön hívó utasítás (tetszőleges időpontban, bármely PC értéknél megtörténhet) A PC-be betöltődik a 0x01, a megszakításvektor értéke, ezen a címen egy ugró utasítás található Az ISR felépítésében hasonló egy normál szubrutinhoz, szokásos perifériakezelési feladatokat végez Valamikor a végrehajtás során olvassa a periféria státuszregiszterét és ezzel törli az IT kérést Visszatérés RTI utasítással (PC+flagek és IE=1) Digit labor 11., 2014.11.23. (v1.0) 9

Lab 11: MiniRISC processzor Interfészek (Programmemória interfész, IRQ elfogadás) Programmemória interfész Ugrás vagy szubrutinhívás esetén a programszámláló értéke módosul(hat) a végrehajtási (execute) fázisban Megszakításkérés kiszolgálása esetén az INT_REQ állapotban a programszámlálóba betöltődik a megszakítás vektor (0x01) A fenti két esetben a következő lehívási (fetch) fázisra éppen időben megjelenik az új cím a programmemória címbuszán clk irq irq állapotának vizsgálata irq állapotának vizsgálata a CPU állapota FETCH DECODE EXECUTE FETCH DECODE EXECUTE INT_REQ FETCH DECODE cpu2pmem_addr 0x15 0x16 0xAC 0xAD 0x01 0x02 pmem2cpu_data jmp 0xAC PMEM[0x16] PMEM[0xAC] PMEM[0xAD] PMEM[0x01] PMEM[0x02] Az utasítás beolvasása itt történik Az utasítás beolvasása itt történik Digit labor 11., 2014.11.23. (v1.0) 10

Lab11: A megszakításos perifériakezelés Az ISR megszakítás kiszolgáló rutin komplexitása A választott megoldások széles skálán mozognak Minden szükséges feladatot elvégeznek az ISR-ben Előny: Nem igényel speciális programszervezést Hátrány: Hosszú időt töltünk az ISR-ben Az ISR-ben csak regisztráljuk az igényt A bejegyzett kiszolgálási igényt valamikor el kell végeznünk, a többi feladat mellett. Jellemzően bonyolult rendszerek (OS, RTOS) esetén használják Előny: Gyors IT reakcióidő, következő IT fogadható Hátrány: Bonyolultabb szervezés Digit labor 11., 2014.11.23. (v1.0) 11

Lab11: A megszakításos perifériakezelés A MiniRISC megszakításos perifériái TIMER időzítő egység BT nyomógomb egység USRT soros kommunikációs egység PS/2 PC billentyűzet/egér interfész egység VGA kijelző egység DMA vezérlő egység Ezeknél az eszközöknél lehet fontos az események gyors észlelése és kiszolgálása Digit labor 11., 2014.11.23. (v1.0) 12

Lab11: A megszakításos perifériakezelés A MiniRISC megszakításrendszere egyszerű, egyszintű, a processzor egyetlen IRQ bemenettel rendelkezik Hardver megoldás: Független IRQ kérések VAGY kapcsolata, nincs prioritás megkülönböztetés assign irq = tmr_irq btn_irq usrt_irq vga_irq kb_irq dma_irq ; Forrás azonosítás? Szoftverben, az ISR rutin elején Ha több eszközt is használunk megszakítással, akkor a prioritást magunk szabhatjuk meg! Digit labor 11., 2014.11.23. (v1.0) 13

Lab11: A megszakításos perifériakezelés Az ISR kialakítása több IT forrás esetén: A belépés után az általunk választott prioritás sorrendjében beolvassuk a státuszregisztereket Teszteljük, aktív-e a periféria IRQ bitje? Ha igen, kiszolgáljuk a kérést és RTI A normál program végrehajtási szintre visszalépve a még aktív korábbi IRQ kérések újabb megszakítást okoznak A fentiek szerint elkezdjük/folytatjuk a még aktív kérések kiszolgálását Digit labor 11., 2014.11.23. (v1.0) 14

Lab 11: A TIMER periféria 8 bites TIMER programozói interfész Felépítés: előosztó és egy 8 bites lefele számláló A számláló az előosztó által meghatározott ütemben számlál Számláló kezdőállapot regiszter (TR) BASEADDR + 0x00, csak írható A számláló kezdőállapota az időzítés mértékét határozza meg 7. bit 6. bit 5. bit 4. Bit 3. bit 2. bit 1. bit 0. bit TR7 TR6 TR5 TR4 TR3 TR2 TR1 TR0 W W W W W W W W Számláló regiszter (TM) BASEADDR + 0x00, csak olvasható Az időzítő számlálójának aktuális értéke 7. bit 6. bit 5. bit 4. bit 3. bit 2. bit 1. bit 0. bit TM7 TM6 TM5 TM4 TM3 TM2 TM1 TM0 R R R R R R R R Digit labor 11., 2014.11.23. (v1.0) 15

Lab 11: A TIMER periféria 8 bites TIMER programozói interfész Parancs regiszter (TC): BASEADDR + 0x01, csak írható 7. bit 6. bit 5. bit 4. bit 3. bit 2. bit 1. bit 0. bit TIE TPS2 TPS1 TPS0 - - TREP TEN W W W W n.a. n.a. W W Státusz regiszter (TS): BASEADDR + 0x01, csak olvasható 7. bit 6. bit 5. bit 4. Bit 3. bit 2. bit 1. bit 0. bit TIT TPS2 TPS1 TPS0 0 TOUT TREP TEN R R R R R R R R Bit TEN TREP TOUT TPS[2:0] TIE / TIT Digit labor 11., 2014.11.23. (v1.0) Funkció Engedélyező bit (0: a működés tiltott, 1: a működés engedélyezett) Működési mód kiválasztása (0: egyszeri, 1: ismétlődéses) Időzítési periódus lejárt jelzőbit Az előosztás (PS) mértékét beállító bitek 0 : nincs előosztás 1 7 : 22 22 TTTTTT+11 előosztás (16, 64, 256, 1024, 4096, 16384 vagy 65536) Időzítő megszakítás engedélyezés és jelzés bitek 16

Lab11: A TIMER periféria A TIMER periféria felprogramozása A kívánt időzítési értékek alapján a szükséges paraméterek kiszámítása: TT = TTTT + 11 PPPP TT CCCCCC TTTT = 11.. 222222, PPPP = 11, 1111, 6666666666 TT CCCCCC = 6666, 555555 Beállítható időzítések: ~100ns ~1s tartományban Minden tartományban 0,5% relatív pontosság Parancsbitek az előző dia szerint Biztonsági okokból felprogramozás után azonnal egy státusz olvasás, az esetleg aktív TOUT törlésére Digit labor 11., 2014.11.23. (v1.0) 17

Lab11: A TIMER periféria A TIMER periféria ISR rutinja Ha csak a TIMER képes IRQ kérésre Belépés után feladatok ellátása IRQ kérés törlése és visszatérés RTI-vel Digit labor 11., 2014.11.23. (v1.0) 18

Lab11: A mikro szervó motor A mikro szervó motor Paraméterek: Működési tápfeszültség: 3,7V - 6V, mi 3,3V-ról használjuk Kis méret Kis nyomaték Kis energiaigény Mi csak demonstrációs célra használjuk Digit labor 11., 2014.11.23. (v1.0) 19

Lab11: A mikro szervó motor A mikro szervó motor Vezérlés: Impulzusszélességgel A vezérlő áramkör periódikus vezérlőjelet vár, 50 100 Hz (10 20 ms) ismétlődési periódussal Ezen belül a pozícióvezérlést egy 1ms 2ms közötti impulzusszélesség szabja meg (1,5ms KÖZÉPÁLLÁS) Digit labor 11., 2014.11.23. (v1.0) 20

Lab11: A mikro szervó motor A vezérlőjelek időfüggvénye generálható Programozott időzítéssel A processzort teljesen lefoglalná TIMER alapú lekérdezéses időzítéssel Bonyolult programszervezés, az időzítések betartására Megszakításos időzítéssel Az adott feladatra a legkedvezőbb megoldás A főprogram részéről minimális adminisztrációt igényel A periódikus jelek beállítása egy megfelelően megválasztott időzítés felbontás alapján egyszerű Digit labor 11., 2014.11.23. (v1.0) 21

Lab11: A mikro szervó motor A javasolt időzítési beállítások: Legyen a időfelbontás finomsága 4 us Így az 1ms 2 ms pulzusszélesség átfogás 256 lépésben adható meg (illeszkedik a 8 bithez) A teljes periódus legyen ennél 8x hosszabb, azaz ~16ms Pontosan 4us* 2 12 -re állítjuk Az időzítő 4us időkvantumait 12 hasznos biten számoljuk, 0-tól 4095-ig. Ez a 4096 időegység a teljes periódus. Ennek első 1/8-a a vezérlési időtartam. Digit labor 11., 2014.11.23. (v1.0) 22

Lab11: A mikro szervó motor A vezérlési időtartam használata A MINIMUM érték 1 ms, azaz 256 db 4us időegység A MAXIMUM érték 2ms, azaz 512 db 4us időegység Ezt a vezérlési időtartamot hasonlítjuk össze minden 4us-os megszakítási időpontban a teljes periódust mérő 0-4095-ig számoló aktuális perióduson belüli idővel. Ha ez kisebb, a kimenet 1 Ha ez már nagyobb, a kimenet 0 lesz. Ezt adjuk a mikro szervóra Digit labor 11., 2014.11.23. (v1.0) 23

Lab11_1 feladat: A vezérlési paraméterek A mikro szervó motor a LOGSYS Spartan3E FPGA kártya A bővítő csatlakozójára csatlakozik, egy 1x3 pontos toldó tüskesorral Csatlakoztatás a mikro szervó vezetékeinek színkódja alapján: Sárga : GPIO_C[1], Piros: +3,3V, Barna: GND Ügyeljünk a csatlakoztatásra! SÁRGA PIROS BARNA Digit labor 11., 2014.11.23. (v1.0) 24

Lab11_1 feladat: A vezérlési paraméterek Fontos feladat a mikro szervó motor vezérlését biztosító vezérlőjel kimenet felkonfigurálása a GPIO_C port 1, bitjére Alapértéke 0, használati módja: állandó kimenet Digit labor 11., 2014.11.23. (v1.0) 25

Lab11_2 feladat: A TIMER ISR rutin A vezérlés a TIMER ISR rutinban történik Először az aktuális pozíció értéket hasonlítjuk a perióduson belüli aktuális időhöz A pozíció értéket a főprogram olvassa be az SW perifériáról (8 bit), MINIMUM = 0, KÖZÉP = 127/128, MAXIMUM = 255) Ezt kiegészíti egy 1ms értékű (16 biten 256) ofszet Ennek képzése: {r13,r12} = {0000_0001_SW[7:0]} A teljes lehetséges értéktartomány: 256 511 Ezt komparáljuk a 0-4095-ig futó periódusidő számlálóval, és így egy 1ms és 2ms közötti pulzust kaphatunk. Digit labor 11., 2014.11.23. (v1.0) 26

Lab11_2 feladat: A TIMER ISR rutin Az előzően felsorolt műveletek a TIMER ISR rutinban történnek A jelet a GPIO_C[1] lábon adjuk ki Ellenőrizzük a teljes periódust Az ISR végén töröljük a TOUT flaget és RTI-vel visszatérünk Digit labor 11., 2014.11.23. (v1.0) 27

Lab11_2a feladat: Mikro szervó használata Az elkészített TIMER ISR rutin használatával teszteljük a mikro szervó motor adott időzítési feltételek melletti működési paramétereit Inicializálás után a TIMER elindítja az időzítést és 4 us múlva majd megszakítást kér Ezalatt a főprogram (más fontos dolga nem lévén) beolvasgatja a SW[7:0] értékét, ami a pozíció adat lesz a következő IRQ érvényre jutásakor A program ezt az egy funkciót hajtja végre Digit labor 11., 2014.11.23. (v1.0) 28

Lab11_2b feladat: Mikro szervó használata Az előbbi program kiegészítése, oly módon, hogy a főprogramban, szoftveres időzítést használva a mikro szervó motort fokozatosan végig vezéreljük a MIN MAX vagy a MAX MIN irányban a teljes mozgási tartományban A visszatérés a számláló átfordulása miatt a legnagyobb sebességgel fog történni A szoftveres időzítés számlálója legyen 16 bites, a pozíció számláló értéke 8 bites Az elfordulási sebességeket a számlálók inkrementálási értékével szabályozhatjuk Digit labor 11., 2014.11.23. (v1.0) 29

Lab11_1 feladat: Feladatok értékelése A feladatok elvégzése után az eredmények a Labor_11 eredmények lapon összegezzük! Digit labor 11., 2014.11.23. (v1.0) 30