ARM Cortex M0 mag alapú beágyazott rendszer FPGA Spartan 6 alapú rendszeren

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "ARM Cortex M0 mag alapú beágyazott rendszer FPGA Spartan 6 alapú rendszeren"

Átírás

1 MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR SZAKDOLGOZAT ARM Cortex M0 mag alapú beágyazott rendszer FPGA Spartan 6 alapú rendszeren Nagy Szilárd Tervezésvezető: Dr. Vásárhelyi József ME Automatizálási és Infokommunikációs Intézeti Tanszék Miskolc, 2015

2 1. TARTALOMJEGYZÉK 1. Tartalomjegyzék Bevezetés Fejlesztő eszközök XILINX ISE környezet Keil µvision fejlesztő környezet Digilent Nexys3 fejlesztő kártya ARM architektúra és a CORTEX-M processzor család ARM története ARM architektúra felépítése Thumb kódok Thumb-2 kódkészlet Thumb futtatási környezet DSP Enhancement utasítások Jazelle bytekód futtatás Advanced SIMD (NEON) Lebegőpontos koprocesszor (VFP) Biztonsági kiterjesztések (TrustZone) CORTEX-M processzor család CORTEX-M0 mag implementálása AHB-Lite busz rendszer Kommunikációs protokoll AHB-Lite busz jelei A beágyazott rendszer Memóriavezérlő egység bites LED sor

3 6.1. Nyomógombok és kapcsolók Hétszegmenses kijelző Pont-mátrixos LCD kijelző A/D átalakító Függvénygenerátor UART vezérlő egység VGA vezérlő Billentyűzetvezérlő Időzítő A beágyazott rendszer programozása Összefoglalás Summary Irodalomjegyzék

4 2. BEVEZETÉS Napjainkban két fő irányvonala van a beágyazott cél áramkörök tervezésének és gyártásának. Az egyik a mikro vezérlő, mikroprocesszor alapú rendszerek; a másik az FPGA felhasználó által tetszőlegesen programozható kapu mátrix és ASIC architektúrájú rendszerek. Mind a két módszernek megvannak az előnyei és hátrányai, ezért egyértelműen nem mondható ki, hogy az egyik jobb rendszert eredményezne, mint a másik, de könnyen belátható, hogy az FPGA alapú rendszerek nagyobb szabadságot adnak a tervezők kezébe. FPGA használata esetén maga a céláramkör kerül leprogramozásra a chipbe. Nagyobb komplexitású, nagyobb számítási teljesítményű feladatok elvégzésére alkalmasak, mint a processzor alapú technológiák. A komplexitás még tovább fokozható, ha az FPGA logika mellett egy hardprocesszor is helyet kap a chipen, vagy magába az FPGA-ba egy softprocesszor mag is leprogramozásra kerül. A dolgozat egy ilyen softprocesszor mag implementálását mutatja be. A választott processzor napjainkban népszerű ARM processzor család tagja, és a Digilent cég által gyártott Nexys 3 demókártyán kerül megvalósításra. 4

5 Implementáció NAGY SZILÁRD 3. FEJLESZTŐ ESZKÖZÖK 3.1. XILINX ISE környezet Az FPGA eszközökön történő fejlesztésre már több lehetséges módszer is rendelkezésünkre áll. Ezek közül a teljeség igénye nélkül néhány: Hagyományos / tradicionális magas szintű hardverleíró nyelvek (VHDL, Verilog) a mai napig a legelterjedtebb módszer Algoritmikus nyelvek (Handel-C, Impulse-C, Catapult-C, System-C) a lehetséges jövő Modell alapú integrált fejlesztő rendszerek (MatLab / Simulink; LabView) Bármelyik módszert is választjuk a fejlesztéshez kivétel nélkül igaz, hogy a megírt programkód fordítása erőforrás és idő igényes, és a legvégső lépéshez mindenképp szükséges a gyártó által támogatott szintézis eszközök. RTL források HDL leírás Kapcsolási rajz Állapot diagarm Tesztpad Kényszerfeltételek Szintézis RTL Szimuláció Fordítás Funkcionális szimuláció Leképezés Elhelyezés és összekötés Konfigurációs fájl generálás Statikus időzítési analízis Időzítési szimuláció 1. ábra FPGA-alapú rendszertervezés folyamata. Forrás: [1] A 1. ábra szemléleti egy FPGA rendszer tervezésének és fejlesztésének folyamatát. Az ábra szaggatott vonaltól balra eső része a fejlesztés lépéseit, a jobbra eső rész pedig a 5

6 lehetséges verifikációs lépéseket mutatja. A moduláris vagy komponens alapú rendszertervezés első lépése, hogy lentről-felfelé vagy fentről-lefelé tervezési metodikát követve valamilyen HDL nyelven, vagy egyéb módszereket alkalmazva, leprogramozásra kerül maga az áramkör felépítése. Felírásra kerülnek a különböző paraméterek, például a lábkiosztás. Szintézis során a HDL leírások általános kapuszíntű komponensekké transzformálódnak. Az implementáció három fő lépésre bontható. Az első a fordítás (TRANSLATE), a második a leképezés (MAP), a végső pedig az elhelyezés és összekötés (Place and Routing). A fordítás során több, esetleg eltérő hardver leíró nyelven megírt tervezőfájl összerendelése egyetlen netlist-fájlba. A netlist-fájl tartalmazza a komponensek és összekötetéseik szabványos szöveges leírását. A leképezés során az előzőleg generált netlist-fájl kerül egy adott technológia szerint megjelenítésre. Az elhelyezés és összekötés fázisa hozza létre a végleges fizikai áramkör tervet a periféria kényszer feltételeitől függően. Mind az elhelyezés, mind a komponensek huzalozása speciális algoritmusok és optimalizációs eljárások szerint történik. A fejlesztés legvégső lépéseként kapjuk az FPGA-ba tölthető bitfolyamot. XILINX esetén bit fájlt, Altera esetén.sof konfigurációs fájlt. 2. ábra XILINX ISE környezet A XILINX cég által gyártott FPGA-khoz a gyártó egy saját fejlesztésű fejlesztőkörnyezetet biztosít, mely lehetőséget és eszközt ad az előzőekben vázolt fejlesztési lépések gördülékeny elvégzéséhez. Ez a XILINX ISE környezet (2. ábra). Nem egy egyedülálló programról van szó, hanem egy program csomagról, amely az alábbi fő elemekből tevődik össze a teljeség igénye nélkül: 6

7 XILINX ISE Project Navigator maga az integrált fejlesztői környezet, amely keretrendszerként integrálja a fejlesztés egyes fázisait segítő programrészeket vagy belső modulokat CoreGenerator XILINX IP magok generálását és paraméterezését teszi lehetővé a terveinkhez PlanAhead Tervezés menedzselését, I/O portok együttes kezelésére alkalmas Shematic Editor Kapcsolási rajzszerkesztő Timing Analyzer Időzítési analizátor modul XPower Analyzer Teljesítmény analizátor modul Constraint Editor Kényszerfeltételek megadására szolgáló modul. Grafikus nézetet biztosít a lábak bekötésére, amely erősen hardver specifikus FPGA Editor FPGA fizikai szintű logikai és makró celláinak esetleges elhelyezésére és összekötésére Impact Bitfolyam letöltő modul XPS XILINX Platform Studio Integrált keretrendszer beágyazott rendszerek fejlesztéséhez. Elsősorban a MicroBlaze processzor alapú rendszerek fejlesztését támogatja ChipScope Logikai analizátor a működés közben megjelenő belső jelek vizsgálatához System Generator for DSP: MatLab / Simulin programba épülő XILINX DSP feldolgozást támogató eszközök gyűjteménye 3.2. Keil µvision fejlesztő környezet Az ARM Inc. a fejlesztők rendelkezésére bocsájtott egy fejlesztő környezetett, melynek a neve Keil (3. ábra). A csomag sajnos licenc díjas, de oktatási és kipróbálási célokra van egy ingyenesen elérhető változata, mely a teljes változathoz képest kisebb funkcionalitással bír. A legfontosabb különbség, hogy a megírt, program mérete maximálisan 32Kb lehet. 7

8 3. ábra Kail µvision környezet A Keil µvision egy teljes szerszámos ládát biztosít a fejlesztők számár. Többek között a csomag tartalmazza az alábbiakat: IDE fejlesztő felület ARM architektúrára optimalizált C fordító ARM assembler különböző JTAG eszközök támogatása RTOS operációs rendszer fejlesztésének támogatása egyéb segédprogramok, mint például a lefordított bináris kód több formátumba történő konvertálása 3.3. Digilent Nexys3 fejlesztő kártya A Dilgilent cég által gyártott Nexys 3 kártya (4. ábra) fejlesztő kártya, mely alapja a Xilinx Spartan-6 LX 16 FPGA. A Spartan-6 egy nagyteljesítményű FPGA, 50%-val nagyobb teljesítményt és kapacitást kínál, mint az eggyel kisebb kategóriába tartózó Spartan-3 500E FPGA, ami a Nexys 2 kártya alapja. Összefoglalva a Nexys 3 kártya főbb jellemzői: 8

9 4. ábra Digilent Nexys3 fejlesztó kártya Forrás: [2] Xilinx Spartan-6 LX16 FPGA 324 lábú BGA tokozásban 16Mb SRAM, Flash és soros elérésű RAM 10/100 Ethernet csatoló kártyára integrált USB2.0 port programozáshoz és adat mozgatáshoz USB alapú UART csatoló USB-HID csatló, közvetlen egér és billentyűzettámogatással 8-bites VGA csatoló 100MHz-es CMOS oszcillátor 72db szabadon programozható kivezetés 8db LED, 6db nyomógomb, 8db csúszó kapcsoló és 4db hétszegmenses kijelző 9

10 4. ARM ARCHITEKTÚRA ÉS A CORTEX-M PROCESSZOR CSALÁD Az ARM architektúra (korábban Advanced RISC Machine, azelőtt Acorn RISC Machine) egy 32/64 bites, az ARM Limited fejlesztette RISC CPU-architektúra, amely több beágyazott rendszerben található meg. Energiatakarékosságuk miatt az ARM architektúrájú CPU-k a vezetők a hordozható elektronikai piacon, ahol az alacsony energiafogyasztás fontos tervezési szempont. Manapság az összes beágyazott 32 bites RISC CPU 75%-a az ARM családból származik, így ez a világ egyik legelterjedtebb 32 bites architektúrája. Sokféle felhasználói elektronikai eszközben található ARM, kezdve a hordozható eszközöktől (PDA, mobiltelefonok, médialejátszók, kézi számítógépkonzolok és számológépek) egészen a számítógép-perifériákig (5. ábra). 5. ábra Egy Conexant ARM processzor, amely főként routerekben található Forrás: [3] 4.1. ARM története Az ARM fejlesztése egy kísérleti projektként indult 1983-ban az Acorn Computers Ltd-nél. Roger Wilson és Steve Furber vezette csoport egy a MOS Technology 6502-re emlékeztető, ám annál fejlettebb processzort kezdett fejleszteni. 6. ábra ARM1 processzor a BCC microban Forrás: [4] 1985 áprilisában készült el az ARM1-nek nevezett mintával (6. ábra), majd a következő évben megjelent az első, eladásra szánt rendszer, az ARM2. Az ARM2 32 bites adatbusszal és 16 darab 32 bites regiszterrel rendelkezett, valamint 26 bitet használt címzésre (így összesen 64 MByte memória volt címezhető). Ezen regiszterek egyike 10

11 szolgált a (szó-igazított) utasítás-számlálóként úgy, hogy a felső 6 és alsó 2 bitje tárolta a processzor státusz flageket. Valószínűleg az ARM2 volt a legegyszerűbb, használható 32 bites mikroprocesszor a világon, mindössze kb tranzisztorral. Ennek az egyszerűségnek a nagy része a mikro kód és a legtöbb mai CPU-ban megtalálható cache hiányának köszönhető. Az egyszerűsége miatti alacsony áramfelvétele ellenére jobb teljesítményt nyújtott, mint az Intel os. Az egyik utódját, az ARM3-t, 4 Kbyte méretű gyorsító tárral készítették, amely a teljesítményt tovább növelte. Az 1980-as évek végén az Apple Computer és az Acorn együttműködésbe kezdett az ARM új változatának kidolgozásában. A munka annyira fontos volt az Acornnak, hogy a fejlesztő csapatot 1990-ben egy új cégbe, az Advanced RISC Machines Ltd.-be áthelyezték. Ezért nevezik néha az ARM-ot Advanced RISC Machine-nak az Acorn RISC Machine helyett. Az Advanced RISC Machines Ltd. később ARM Ltd.-vé alakult. 7. ábra ARM 610 beslő felépítése Forrás: [4] Ennek az együttműködésnek az eredményeképpen jött létre az ARM6. Az első példányok 1991-ben kerültek piacra, az Apple pedig az ARM6-alapú ARM 610-et (7. ábra) használta az Apple Newton PDA-jában ben, az Acorn az ARM 610-et használta RISC PC-i központi processzoraként. A mag nagyjából azonos méretű maradt a változtatások ellenére. ARM tranzisztorral rendelkezett, míg ARM6 csupán re növelte a tranzisztorok számát. Az elképzelés szerint a gyártó az ARM mag mellé opcionális részeket kínált, amelyekkel egy teljes CPU összeállítható, így alacsony költséggel nagy teljesítmény érhető el. 11

12 Az ARM Ltd. szellemi terméket árul (Intelectual Property), és e licencek alapján építhetőek mikrokontrollerek és CPU-k az ARM magra. A legsikeresebb feljesztés az ARM7TDMI volt, amelyből több százmillió példányt adtak el majdnem minden mikrokontrollerrel. A DEC megvásárolta az architektúra licencét (ezzel némi zavart okozva, mivel ők készítik a DEC Alpha-t is) és elkészítették a StrongARM-ot. 233 Mhz-en a StrongARM mindössze 1 watt energiát használt, az újabb változatok pedig még kevesebbet. Később az Intel-hez került egy jogi egyezség részeként, az Intel kihasználta a lehetőséget és kiegészítette az i960-as szériáját a StrongARM-mal. Az Intel később elkészítette a saját, nagysebességű változatát (Intel XScale), amelyet azóta eladott a Marvell Technology Group-nak. Az okostelefonokban, PDA-kban és egyéb kézi eszközökben megtalálható architektúra az ARMv4. Az ARMv5TE-re épülő XScale és ARM926 már gyakoribbak a high-end készülékekben, mint a StrongARM, az ARM925T és az AM7TDMI alapú ARMv4 processzorok ARM architektúra felépítése Az egyszerűség és gyorsaság miatt mikro kód nélkül készült, hasonlóan a korábbi Acorn mikroszámítógépekben használt, jóval egyszerűbb 8 bites 6502-hez. Az ARM architektúra a következő RISC képességekkel rendelkezik: Load/store architektúra Csak illesztett (aligned) memória elérés az ARMv6-ig Ortogonális utasítás-készlet Nagy, bit regiszter-készlet Egységes, 32 bites utasítások (egyszerűbb dekódolás és pipelining, csökkentett kódsűrűség) Többnyire egy-ciklusos végrehajtás Az egyszerűbb felépítés kompenzálására, néhány egyedi jellemzőt is hozzáadtak: A legtöbb utasításfeltételes végrehajtás, így csökkentve az elágazás idejét és kompenzálva az elágazás predikátor hiányát Az aritmetikai utasítások a feltételes kód regisztert csak kérésre módosítják 32 bites léptető, amellyel teljesítmény-veszteség nélkül lehet aritmetikai és címszámolásokat végezni 12

13 Erőteljes indexelt címzési módok Egyszerű, de gyors, két prioritási szintű megszakítás-alrendszer cserélt regiszterkészlettel Egy érdekes ARM újítás a 4 bites feltételes kód minden utasítás elején, így minden utasítás végrehajtása feltételhez köthető. Ez jelentősen korlátozza a memória-elérési utasításokban az eltolást, viszont rövid if utasítások esetén szükségtelenné teszi az elágazás utasításokat. A standard példa erre az Euklideszi algoritmus: C programozási nyelven a ciklus: int gcd (int i, int j) { while (i!= j) { if (i > j) i -= j; else j -= i; } return i; } ARM assembly-ben a ciklus: loop CMP Ri, Rj ; a feltétel beállítása SUBGT Ri, Ri, Rj ; ha "GT", i = i-j; SUBLE Rj, Rj, Ri ; ha "LE", j = j-i; BNE loop ; ha "NE", akkor ugrás a loop-hoz Így elkerülhetőek az elágazások a then és az else kikötések körül. Az utasításkészlet egy másik egyedi képessége a léptető és forgató utasítások beépíthetősége az adatfeldolgozó (aritmetikai, logikai, és regiszter-regiszter mozgatás) utasításokba, így például a következő C utasítás a += (j << 2), egy-ciklusú utasítás lehet az ARM-on: ADD Ra, Ra, Rj, LSL #2. Ennek eredményeképpen egy szokásos ARM program jóval sűrűbb és kevesebb memória-hozzáféréssel rendelkezik, mint elvárnánk; így a pipeline hatékonyabban kihasználható. Bár az ARM sokak által alacsonynak vélt sebességen fut, felveszi a versenyt összetettebb CPU architektúrákkal. Az ARM processzoroknak vannak, RISC architektúrán ritkán látott képességei. Például: az utasításszámláló-relatív címzés (az utasításszámláló az egyike az ARM processzorok 16 bites regisztereinek). Említésre méltó még, hogy bár az ARM már jó ideje elérhető, az utasítás-készlet alig nőtt. Például néhány korai processzor (az ARM7TDMI előttiek), nem rendelkeztek 2 byteos betöltővel, így ezeken lehetetlen olyan kódot gyártani, amely úgy működne, ahogy az elvárható egy C "volatile short" objektumnál. 13

14 Az ARM7 és a legtöbb korábbi felépítés háromfokozatú utasítás-futószalaggal rendelkeztek: begyűjtés, dekódolás és végrehajtás. A nagyobb teljesítményűek, mint az ARM9,már ötfokozatú futószalaggal bírtak. A nagyobb teljesítmény elérésének módjai között szerepel a gyorsabb összeadó és a kiterjedtebb predikciós rendszer. Az architektúra utasításkészlete kiegészíthető koprocesszorok használatával, amelyek szoftveresen címezhetőek az MCR, MRC, MRRC és MCRR utasításokkal. A koprocesszor-tér 16 logikai koprocesszorra van felosztva (0-tól 15-ig számozva). A 15-ös (cp15) tipikus vezérlési funkcióknak (gyorsítótár és memóriakezelés) van fenntartva. Az ARM alapú gépekben a perifériák általában (a fizikai regisztereik) ARM memóriájába, a koprocesszor-térben vagy egy másik eszközzel (sín) a leképezés során kapcsolódnak a processzorhoz. A koprocesszor elérése kisebb késleltetésű, így néhány periféria (például az XScale megszakítás-vezérlő) mindkét módon elérhető (memórián és koprocesszoron keresztül is) Thumb kódok Az újabb ARM processzorok rendelkeznek egy tömörített utasításkészlettel, a Thumb-bal, amely 16 bites utasításokat használ (de továbbra is 32 bites adatokkal dolgozik). A Thumb rövidebb opkódjaival kevesebb funkció érhető el. Például: csak az elágazások köthetők feltételhez és sok opkód nem érheti el a CPU regisztereit. A rövidebb opkódok használatával növekszik a kódsűrűség, annak ellenére, hogy néhány művelethez több utasítás szükséges. Különösen azokban a helyzetekben, amelyekben a memória, port vagy busz kevesebb, mint 32 bitre van korlátozva, a rövidebb Thumb opkódok jobb teljesítményt nyújtanak, mint a 32 bites, a limitált memória-sávszélesség jobb kihasználása miatt. A beágyazott hardvereknek többnyire kevés 32 bites adatútja létezik, a többi 16 bites. Ebben az esetben van értelme a Thumb code-ra fordításának, majd a CPU-t inkább igénybe vevő részeket kézzel átírni a 32 bites nem Thumb utasításkészlettel, és utóbbiakat a 32 bites busz szélességű memóriába elhelyezni. Az első Thumb utasítás dekóderrel készült processzor az ARM7TDMI volt. Az ARM9 és a későbbiek (ideértve az XScale-t is) rendelkeznek ilyen értelmezővel Thumb-2 kódkészlet A Thumb-2, az ARM1156 core-ban, 2003-ban debütáló technológia, a Thumb 16 bites utasításkészletét egészíti ki 32 bites utasításokkal, hogy az utasításkészlet átfogóbb 14

15 legyen. Így a Thumb-2 a Thumb kódsűrűségével és 32 bites memóriával rendelkező ARM utasításkészlet sebességével bír. A Thumb-2 mind az ARM mind a Thumb utasításkészletet kiegészíti újparancsokkal, így például bitmező-módosításokkal, ugrótáblákkal (elágazási tábla) és feltételes futtatással. Minden ARMv7 chip támogatja a Thumb-2 utasításkészletet. (például a Cortex-M3 csak a Thumb-2-t támogatja). Másik Cortex és ARM 11 sorozatú chipek támogatják az ARM utasításkészlet módot és a Thumb-2 utasításkészlet módot Thumb futtatási környezet A ThumbEE (esetleg Thumb-2EE), a 2005-ben bejelentett, majd a Cortex-A8 processzorban debütáló, Jazelle RCT néven ismert technológia. A ThumbEE a Thumb-2 utasításkészletét egészíti ki úgy, hogy az alkalmas legyen futási időben létrehozott kód futtatására (pl. Just-in-time compilation ("Pont időben fordítás")) megfelelően kezelt futtatókörnyezetekben. A ThumbEE cél-nyelvei között megtalálható a Limbo, a Java, a C#, a Perl és a Python, továbbá segítségével a JIT fordítók teljesítmény-veszteség nélkül képesek rövidebb kódot előállítani. A ThumbEE nyújtotta új szolgáltatások között megtalálható az írás/olvasás műveletkor lefutó automatikus null pointer ellenőrzés (tömbhatár-ellenőrzésnél hasznos), az r8-r15 regiszterek (ezekben tárolódik a Jazelle/DBX Java virtuális gép állapota) elérhetősége, illetve az ún. handlerek ( kezelők : gyakran meghívott kódok) feltételhez kötése (pl.: a magas szintű programozási nyelvek szolgáltatásai-mint pl.:a memóriaallokáció-egyszerűen megvalósíthatók) DSP Enhancement utasítások Az ARM-t fejlesztése során digitális jelfeldolgozás és multimédiás programok új utasításával egészítették ki. Úgy tűnik, ezt az ARMv5TE és ARMv5TEJ nevekben az E jelöli. Ezek az új utasítások gyakoriak a digitális jelfeldolgozó architektúrákban. Különböző variációk előjeles szorzásra, telített összeadásra és kivonásra, és a vezető nullák számolására. 15

16 Jazelle bytekód futtatás A Jazelle DBX (közvetlen bytekód futtatás) technológia segítségével néhány ARM architektúra képes Java bytekódot futtatni az ARM és Thumb futtatási módok mellett. Néhány bytekódot gyorsítva futtat, a többit szoftver-kérésekkel hajtja végre. Az első Jazelle-t támogató processzor az ARM926EJ-S volt: a névben szereplő J jelöli a Jazelle-képességet. Ezt főként mobiltelefonokban használják, így gyorsítva a Java ME játékok és programok futását Fejlett SIMD (NEON) Az Advanced SIMD (továbbfejlesztett egy utasítás - több adat), a NEON néven ismert technológia a média és jelfeldolgozás gyorsítására kínál utasításokat. Egy 10 MHzen futó NEON-képes processzor alkalmas MP3-dekódolására, egy 13 MHz-es pedig a GSM-eknél használt AMR (Adaptive Multi-Rate) kodek használatára. Az ASIMD új utasításokból, új regiszterkészletből és külön futtató hardverből áll. Támogatja a 8, 16, 32 ill. 64 bites egészeket és az egyszeres pontosságú lebegőpontos értékeket, amelyeket SIMD módon kezel, így audió/videó/grafika- és játékszámításokra alkalmas. A NEON-ban a SIMD párhuzamosan akár 16 művelet elvégzésére is képes Lebegőpontos társprocesszor (VFP) A VFP egy az ARM-hoz készült segédprocesszor, az IEEE 754 szabványnak megfelelő lebegőpontos aritmetikát támogató, alacsony költségű megoldás. A VFP széles körben felhasználhatóan támogatja a lebegőpontos számításokat, például használható PDA-kban, nyomtatókban, set-top boxokban, autókban, okos telefonokban. Alkalmas továbbá egyszerűbb vektor-műveletekre, így SIMD párhuzamosságra. Ez jól kihasználható grafikai és jelfeldolgozó programoknál, a kód rövedítésére az átviteli képesség növelése révén. Az ARM-hoz készültek további lebegőpontos és/vagy SIMD segédprocesszorok (pl.: FPA, FPE, iwmmxt). Ezek az VFP funkcionalitását biztosítják, de azzal nem opkódkompatibilisek Biztonsági kiterjesztések (TrustZone) A TrustZone (TM) néven hirdetett biztonsági kiegészítések az ARMv6KZ-től kezdődően találhatók meg az architektúrákban. Egy olcsó alternatívát jelent a dedikált biztonsági mag beépítése mellett. A TrustZone két virtuális processzort szolgáltat, hardveralapú biztonsági rendszerrel. Így egy program két állapot (ún. világ) között váltogathat, és 16

17 a megbízható világból a kevésbé megbízhatóbb világba nem kerülhetnek információk. Ez a világ-váltás általában ortogonális a processzor további képességeivel, mely által mindkét világ függetlenül működhet egy rendszermagot használva. A memória és a perifériák is észlelik ezt a váltást, így engedhetik jelszavak és egyéb titkosított adatok elérését az eszközön. Egy tipikus felhasználási módja, hogy egy teljes értékű operációs rendszer fut a kevésbé megbízható világban, míg egy biztonságra specializált kód fut a megbízható világban CORTEX-M processzor család Az ARM Cortex-M (8. ábra) processzorcsalád egy 32 bites RISC típusú ARM mag architektúra, amelyet mikroprocesszorokban és mikrokontrollerekben való felhasználásra terveztek. Cortex-M0, M0+ és M1 változatai az ARMv6-M utasításkészletet; a Cortex-M3 és Cortex-M4 változatok pedig az ARMv7-M utasításkészlet-architektúrát implementálják. Ezt a családot az ARM Ltd. fejlesztette ki, az okostelefonokba és érintőképernyős tabletekhez fejlesztett Cortex-A családdal (ARMv7-A), valamint a valós idejű alkalmazásokat célzó Cortex-R (ARMv7-R, R mint real time ) családdal párhuzamosan. 8. ábra ARM Cortex-M0 és Cortex M3 chipek NXP-től és Energy Micro-tól Forrás: [5] Az ARM Holdings nem gyárt és nem is forgalmaz saját tervezésű CPU eszközöket, hanem ehelyett processzor-architektúrákat licenccel az érdekelt feleknek. Az ARM a licencfeltételek széles skáláját kínálja, amelyek változatos költség- és mennyiségi igényekhez alkalmazhatók. Minden licencszerződéshez az ARM átadja a kiválasztott ARM mag integrálható hardverleírását valamint a teljes szoftverfejlesztési eszközkészletet, és biztosítja, hogy a gyártónak jogában áll a kereskedelemben forgalmazni a legyártott, ARM processzort tartalmazó integrált áramkört. Az így licencezhető CORTEX-M processzorokat szemlélteti 9. ábra a teljesítmény és képesség függvényében. 17

18 Klasszikus ARM processzorok Beágyazott Cortex processzorok Alkalmazás specifikus Cortex processzorok Cortex-A15 Cortex-A9 Teljesítmény, funkcionalitás ARM9 ARM11 Cortex-A8 Cortex-A5 Cortex-R4 Cortex-M4 Cortex-M3 Cortex-M1 ARM7 Cortex-M0 Képességek 9. ábra Cortex-M processzorok Forrás: [6] Az integrált készülékgyártók (IDM) az ARM processzor szellemi tulajdonát (IP) szintetizálható RTL leírás formájában kapják meg, Verilog hardverleíró nyelven. Ebben a formában megvan a lehetőségük, hogy architekturális szintű optimalizálásokat és kiterjesztéseket végezzenek a tervekben. Ez lehetővé teszi a gyártóknak egyedi tervezési célok megvalósítását, mint például magasabb órajel, nagyon alacsony fogyasztás, utasításkészlet-kiterjesztések, méretbeli optimalizálás, hibakeresési támogatás, stb. A gyártók ezt a lehetőséget előszeretettel alkalmazzák is, és az elkészült módosításokat és alkalmazott komponenseket gyakran csak a gyártó dokumentációjából lehet azonosítani. Néhány legfontosabb opció a CORTEX-M magokhoz: SysTick időzítő: egy 24 bites időzítő, mely kibővíti mind a processzor, mind a beágyazott vektoros megszakítás kezelő (NVIC) funkcionalitását. Ha beépítésre kerül, további lehetőségeket biztosít az általa generált megszakítások prioritásának konfigurálására. Habár a SysTick időzítő nem kötelező, elég ritka, hogy nélküle készülne CORTEX-M családba tartozó mikro vezérlő illetve processzor. Bit-sáv (Bit-band): lehetőséget ad a bit-sáv területen található egy bit hosszúságú adatok közvetlen elérésére.(pl.: C vagy C++ programozási nyelvből közvetlenül beállítható vagy törölhető egy bit anélkül, hogy különböző író vagy olvasó utasításokra lenne szükség a maszkolás során.) 18

19 Védett memória terület (MPU): támogatja a védett memóriaterület kiváltság és szabály alapú hozzáférését. Általában nyolc memória területet támogat, melyek mindegyike felbontható további nyolc egyenlő méretű terültre. A 1. táblázat foglalja össze a teljeség igénye nélkül az előbb felsorolt választható komponensek és néhány alapkomponens rendelkezésre állását a különböző CORTEX-M magok esetében. 1. táblázat ARM CORTEX-M választható komponensei Forrás: [7], [8] SysTick időzítő Bit-sáv MPU TCM CPU gyorsító tár (cache) Memória architektúra Cortex-M0 Opcionális Opcionális Nincs Nincs Nincs Neumann Cortex-M0+ Opcionális Opcionális Opcionális Nincs Nincs Neumann Cortex-M1 Opcionális Opcionális Nincs Opcionális Nincs Neumann Cortex-M3 Van Opcionális Opcionális Nincs Nincs Harvard Cortex-M4 Van Opcionális Opcionális Nincs Lehetséges Harvard Cortex-M7 Van TBD Opcionális Opcionális Opcionális Harvard A CORTEX M0-M1 processzorok az ARMv6-M architektúrára, a CORTEX-M3 processzorok az ARMv7-M architektúrára, míg a COTEX-M4 processzorok az ARMv7E- M architektúrára épülnek. A különböző architektúrák bináris utasítás készlete felfelé kompatibilisek. Vagyis például egy CORTEX-M0 magra megírt program bináris kódja, módosítás vagy újrafordítás nélkül futatható gond nélkül egy CORTEX-M3 magra épülő processzoron, míg ez fordítva már nem igaz. Az egyes magok esetén elérhető utasítás csoportokat a 2. táblázat foglalja össze. 2. táblázat ARM CORTEX-M utasítás csoportok Forrás: [7], [8] Thumb Thumb-2 Hardveres Telített szorzó osztó aritmetika DSP FPU Cortex-M0 Részl. Részl. 1 v. 32 ciklus Nincs Nincs Nincs Nincs Cortex-M0+ Részl. Részl. 1 v. 32 ciklus Nincs Nincs Nincs Nincs Cortex-M1 Részl. Részl. 3 v. 33 ciklus Nincs Nincs Nincs Nincs Cortex-M3 Teljes Teljes 1 ciklus Van Van Nincs Nincs Cortex-M4 Teljes Teljes 1 ciklus Van Van Van Opcionális Cortex-M7 Teljes Teljes 1 ciklus Van Van Van Opcionális A CORTEX M0-M1 processzorok nem támogatják a teljes Thumb és Thumb-2 utasítás készletet, általában az alábbi utasítások hiányoznak: CBZ, CBNZ, IT, DMB, DSB, ISB, MRS, MSR. A fizikai lehetőségeket figyelembe véve, kisebb szilícium mérete esetén a CORTEX M0-M1 magok esetén a hardveres szorzó utasítások lefutásának ideje különböző lehet. Kisebb méret esetén lassabb lefutás, míg nagyobb méret esetén gyorsabb lefutás érhető el. A CORTEX M4 és M7 magok esetén elérhető opcionálisan egy lebegőpontos számításokat támogató egység (FPU). Mikor ez támogatott, a 19

20 Megszakítások NAGY SZILÁRD típusmegjelölés kiegészül egy F toldalékkal. Például FPU támogatással rendelkező CORTEX-M4 mag típusmegjelölése CORTEX-M4F-re változik. Az FPU-k esetén választható, hogy a 4 illetve 8 bájtos lebegőpontos számábrázolást támogassák. A CORTEX-M0 mag kialakításánál törekedtek a lehető legkisebb fizikai méret elérésére, ami azt eredményezi, hogy a legkevesebb utasítással rendelkezik CORTEX-M0 mag implementálása Az ARM által rendelkezésre bocsájtott mag csak a processzort tartalmazza. A magfelépítését a 10. ábra szemlélteti. A DesignStart csomag nem tartalmazza a teljes funkcionalitásában a processzor magot. Néhány funkció részlegesen érhető el, vagy teljes egészében hiányozik. A teljeség igénye nélkül csak a legfontosabb funkciók, melyek hiányoznak, vagy korlátozottan érhetők el: AMBA AHB-Lite csipen belüli busz csak mestertámogatással rendelkezik csak 32 ciklus idejű szorzó egység érhető el NVIC 32 féle megszakítás helyett csak 16-ot támogat nincs SysTick nincs hardveres hibakereső felület a rendelkezésre álló Verilog-kód kommentezés nélkül titkosítva tartalmazza a processzor magot. CORTEX-M0 közvetlen környezete CORTEX-M0 processzor Opcionális hibakereső egység Beágyazott irányított megszakítás vezérlő (NVIC) CORTEX-M0 processzor mag Breakpoint és watchpoint kezelő egység Opcionális megszakítás ébresztéshez (WIC) Busz mátrix Hibakereső interfész Opcionális hibakereső illesztés AHB-Lite Busz rendszer Soros vagy JTAG port 10. ábra CORTEX-M0 processzor mag Forrás: [9] A FPGA-ban történő implementáláshoz nem kell mást tenni, mint a rendelkezésre álló kódot komponensként példányosítani, és a portokat illeszetni, ahogyan az alábbi kód részlet is szemlélteti. 20

21 ARM_Cortex_M0_Core : CORTEXM0DS port map ( HCLK => Clock, HRESETn => Resetn, HADDR => HAddr (31 downto 0), HBURST => HBrust (2 downto 0), HMASTLOCK => HMastlock, HPROT => HProt (3 downto 0), HSIZE => Hsize (2 downto 0), HTRANS => HTrans (1 downto 0), HWDATA => HWdata (31 downto 0), HWRITE => HWrite, HRDATA => HRData (31 downto 0), HREADY => HReady, HRESP => HResp, NMI => NMI, IRQ => IRQ (15 downto 0), TXEV => Txev, RXEV => Rxev, LOCKUP => LockUp, SYSRESETREQ => SysResetReq, SLEEPING => Sleeping ); Az illesztés és működés könnyebb megértéséhez a fenti kódrészletben található portok funkcióját a 3. táblázat foglalja össze. A táblázat csak a DesignStart csomagban elérhető csökkentett funkcionalitású CORTEX-M0 processzormag portjait tartalmazza. 3. táblázat ARM CORTEX-M0 processzormag port listája Forrás: [7] Port Irány Leírás HADDR[31:0] Out HBURST[2:0] Out HCLK In HMASTLOCK Out HPORT[3:0] Out HRDATA[31:0] In AHB-Lite busz címző, adat és vezérlő jelei, részletes leírásuk a Hiba! HREADY In hivatkozási forrás nem található.. fejezetben. HRESETn In HRESP In HSIZE[2:0] Out HTRANS[1:0] Out HWDATA[31:0] Out HWRITE Out IRQ[15:0] In Priorizálható hardveres szubrutin hívás bemenetei. Minden egyes bitje egy-egy megszakítást azonosít. LOCKUP Out A processzor kettő vagy több helyreállíthatatlan hiba jelzésére használja. Például: kísérlet azonosítatlan utasítás futtatására; busz hiba; nem valós terület címzése; stb. NMI In Nem maszkozható megszakítás kérés bemenete RXEV In Esemény fogadó port. Rajta keresztül jelezhető a futó szoftver számára, hogy a külvilágban esemény történt. SLEEPING Out Processzor aktuális állapotának jelzése. Magas jelszint esetén a processzor alapállapotban van, alacsony jelszint esetén éppen valamilyen műveletet hajt végre. SYSRESETREQ Out Rendszer újraindítás kérés szoftverből. TXEV Out Eseményadóport. A processzor minden esetben magas jelszintre állítja, ha a programkódban lefut a SEV utasítás. 21

22 5. AHB-LITE BUSZ RENDSZER A fejlett mikro vezérlő busz architektúra (AMBA) egy nyílt szabványú chipen belüli kommunikációt támogató busz rendszer. Feladata a különböző funkció blokkok összekapcsolása, menedzselése SOC rendszereknél. Így támogatva a többprocesszoros és nagy periféria számú rendszerek tervezését. Megalkotása óta, neve ellenére, az AMBA-t nemcsak mikro vezérlőkben alkalmazzák, hanem ASIC, SOC rendszerekben illetve alkalmazás specifikus processzorokban, mint például a hordozható eszközök processzorai. Az AMBA első változatát az ARM fejlesztette ki 1996-ban és azóta az ARM Inc. bejegyzett védjegye. Az első AMBA buszok a fejlett rendszer busz (ASB) és fejlett periféria busz (APB) voltak. Az elsők megjelenése óta az AMBA több verziója is napvilágot látott, és minden esetben több protokoll specifikációját tartalmazza. A második generációs AMBA 2 csomagja tartalmazza többek között AHB protokollt. A CORTEX- M0 mag által használt AHB-Lite protokoll 2003-ban látott napvilágot a harmadik generációs AMBA 3 csomagban. A csomag az előbb említett protokoll mellett az alábbiakat tartalmazza: AXI3 vagy AXI v1.0 AHB-Lite APB3 ATB Napjainkban már az AMBA 5 csomagnál tartunk. A nyílt szabványnak és a kellően jó dokumentáltságnak köszönhetően az AMBA protokollok a beágyazott rendszerek terén de facto szabvánnyá váltak. Fontos tervezési kérdés a SOC rendszereknél amellett, hogy milyen funkcionális egységekből állnak és azok hogyan épülnek fel, hogy hogyan kommunikálnak egymással. Ezért az AMBA specifikációk megalkotása során a kezdetektől fogva az alábbi irányelvekre nagy hangsúlyt fektettek: elsőre jót irányelvek támogatása a beágyazott rendszerek fejlesztése során beleértve akár a több magos CPU-kat, GPU-kat és DSP-ket és ezek esetleges kombinációját. technológia független IP magok és makro cellák fejlesztésének támogatása. fejlesztők ösztönzése IC független újra hasznosítható IP könyvtárak létrehozására. 22

23 szilícium infrastruktúra minimalizálása, mialatt megmarad a nagy teljesítményű kommunikációs képesség és az alacsony energia felhasználás Kommunikációs protokoll Az AMBA AHB-Lite protokoll eleget tesz a nagy kommunikációs teljesítményű buszrendszerek követelményeinek. Az eredeti AHB protokollal ellentétben csak egy mestert támogat, de továbbra is megmarad a nagy sávszélességű kommunikáció lehetősége. Az AHB-Lite esetében az alábbi funkciók biztosítják a nagy órajelű és nagy teljesítményű működést: tört transzferek (burst transfer) egy órajel élre történő működés nem szükséges háromállapotú kapukat implementálni széles adatbusz konfigurációk (32bit, 64bit, 128bit, 256bit, 512bit 1024bit) A leggyakoribb szolgaalkalmazások - melyek közvetlenül az AHB-litre vannak kapcsolva - a belső memóriák, a külső memóriák illesztő felületei és a nagy sávszélesség igényű perifériák. Habár nincs tiltva alacsony sávszélességű eszközök csatlakoztatása sem, és a lehetőség is adott, de nagyobb rendszereknél ezt mellőzni szokták az esetleges teljesítményromlás veszélye miatt. Gyakorta erre a célra az APB-t használják. A két eltérő protokoll áthidalására AHB/APB hidat (bridege) szoktak használni. Itt szeretném megjegyezni, hogy én ezzel a lehetőséggel nem éltem, mert a rendszerem felépítésekor ez nem volt kritikus szempont. A 11. ábra egy tipikus AHB-Lite rendszer felépítését szemlélteti, egy mesterrel és n számú szolgával. A buszlogika áll egy de-multiplexerből és multiplexerből. A demultiplexer figyeli a címeket és a címek alapján aktiválja, engedélyezi a megcímzett szolgát. A multiplexer pedig továbbítja a mester felé az éppen aktív szolgától érkező adatokat és vezérlő jeleket. 23

24 HWData[31:0] HAddr[31:0] 1. HSel 1. Szolga Mester Demultiplexer 2. HSel 2. Szolga... Multiplexer címzés 3. HSel 1. HRData N. Szolga HRData[31:0] Multiplexer 2. HRData N. HRData 11. ábra AHB-Lite busz felépítése Forrás: [9] A de-multiplexert és a multiplexert általában se mester, se szolga nem tartalmazza. A gyakorlatban egyszerűsége miatt és a címtér szabadon megválaszthatóságának megtartása végett, mindig a rendszer kialakításakor kell lekódolni, vagy erre a célra alkalmas makróval generáltatni. Egyszerűsége miatt általában gyorsan megy és nem okoz különösebb erőfeszítést. Ezt a tény hivatott bizonyítani az alábbi VHDL kód részlet: 24

25 architecture Behavioral of AHB_lite_addressing is signal selection : std_logic_vector (15 downto 0); signal mux_addr : std_logic_vector (3 downto 0); signal mux_phase : std_logic_vector (3 downto 0); begin process (HClk) - Demultiplexer szolga címzéshez begin case HAddr(31 downto 24) is when x"00" => selection <= " "; when x"50" => selection <= " "; when others => selection <= " "; end case; end process; HSel_SRAMFLASH <= selection(0); HSel_LED <= selection(1); process (HClk) - Egyszerűsített címgenerálás multiplexernek begin case HAddr(31 downto 24) is when x"00" => mux_addr <= "0000"; when x"50" => mux_addr <= "0001"; when others => mux_addr <= "1111"; end case; end process; -- Szolgáktól érkező adatok multiplexálása HReady <= HReady_SRAMFLASH when mux_phase="0000" else HReady_LED when mux_phase="0001" else '0'; HRData <= HRData_SRAMFLASH when mux_phase="0000" else HRData_LED when mux_phase="0001" else " "; end process; A kommunikációt a mester indítja a vezérlő jelek megfelelő szintbe állításával és a címzett eszköz címének elküldésével (12. ábra és 13. ábra). Ezek a jelek hordozzák az információt a kommunikáció irányáról, az adat hosszáról és a kommunikáció típusáról (egyszerű, vagy részekre bontott). A mestertől a szolga felé érkező adatok írásnak számítanak és a HWDATA vezetékeken közlekednek (12. ábra), míg a szolgától mester felé érkező adatok pedig olvasásként értelmezhetők és a HRDATA vezetékeken közlekednek (13. ábra). 25

26 12. ábra Adat küldés az AHB-Lite buszon Forrás: [10] 13. ábra Adat fogadás az AHB-Lite buszon Forrás: [10] Minden tranzakció két jól elkülöníthető fázisra bontható: 1. címzési fázis: egy órajel ciklus a vezérlő jelek és cím elküldéséhez 2. adat fázis: egy vagy több órajel ciklus az adatok küldéséhez A szolgák nem kérhetik a címzési fázis meghosszabbítását, ezért a rendelkezésre álló idő alatt, ami egy órajel ciklus, kell mintavételezniük a címzéskor érkező adatokat. Az adat fázist már tudják várakozatni a HREADY jel alacsony szinten tartásával, ekkor több órajel ciklusra is elnyúlhat egy adatcsere. Akkor hasznos ez a módszer, ha a rendszerünknél egy sokkal lassabb külső perifériától kérünk adatot és nincs semmilyen buffer elemünk. A szolgák a HRESP-et használják, hogy jelezzék, ha valamilyen hiba történt a kommunikáció során AHB-Lite busz jelei Az AHB lite busz által a kommunikáció menedzseléséhez használt jeleket 5 csoportba lehet sorolni: globális jelek, mester jelei, szolga jelei, de-multiplexer jelei és multiplexer jelei. Ezeket a jeleket mutatja be a 4. táblázat. 26

27 4. táblázat ARM CORTEX-M0 processzormag port listája Forrás: [10] Név Leírás HCLK A busz órajele, esetek többségében megegyezik a rendszer órajelével HRESETn Busz újraindítását kérő jel negáltja. Az AHB-Lite buszon ez az egyetlen aktív alacsony jel. HADDR[31:0] 32 bites cím HBURST[2:0] Üzenet típusát határozza meg. Egyszeri üzenetről van szó, vagy részekre bontottról. Ha részekre bontott, akkor az állhat 4, 8, illetve 16 szeletből. HMASTLOCK Magas jelszint jelzi, hogy az aktuális tranzakció egy zárt szekvencia része. Az időzítése megegyezik a címzés fázis időzítésével. A védelmi vezérlőjelek további információkat szolgáltatnak a busz hozzáférésről, elsősorban valamilyen védelmi szintet megvalósítani kívánó HPROT[3:0] modulok használják. A jelek mutatják, hogy az adott tranzakció egy műveleti kód vagy adathozzáférés; vagy jelzik, hogy a tranzakció felhasználó szintű adatelérést vagy privilegizált hozzáférést kér. HSIZE[2:0] Jelzi a tranzakció hosszát. mely lehet bájt, félszó illetve szó hosszú. A szabvány további méreteket is megenged 1024bit hosszúságig. Aktuális tranzakció típusát jelzi, ami lehet: alapállapot HTRANS[1:0] foglalt nem szekvenciális szekvenciális HWDATA[31:0] 32 bit hosszúságú adat a mestertől a szolga felé. Az írás irányú adatok. HWRITE A tranzakció irányát jelöli. Magas jelszint esetén írásról van szó, alacsony jelszint esetén pedig olvasásról. HRDATA[31:0] 32 bit hosszúságú adat a szolgától a mester felé. Az olvasás irányú adatok HREADYOUT A tranzakció végét jelző jel. Magas jelszint esetén a tranzakció befejeződött. Alacsony szinten történő tartásával a tranzakció elnyújtható. Az adatok multiplexeren történt áthaladása után szolgáltat információt a HRESP tranzakcióról a mesternek. Alacsony jelszint esetén a tranzakció hibamentesen lezajlott, magas jelszint esetén valamilyen hiba történt. Minden egyes AHB-Lite buszra kötött szolga rendelkezik egy kiválasztó jellel, HSELx mely jelzi feléje, hogy a mester éppen vele akar kommunikálni. A HSELx jelnek és az előző tranzakció végét jelző HREADY jelnek egyidőben rendelkezésre kell állniuk. 27

28 6. A BEÁGYAZOTT RENDSZER A megvalósított beágyazott rendszer vázlatát a 14. ábra szemlélteti. A rendszer alapját egy ARM Cortex-M0 processzor mag képzi, melyhez az AHB-Lite buszrendszeren keresztül csatlakoznak a különböző I/O eszközök és memóriák. SPARTAN 6 FPGA 100Mhz-es kristály 50Mhz-es órajelgenerátor Rendszer órajel AMR Cortex M0 processzormag Reset jel Debouncer Nyomógomb AHB-Lite Busz Mem. vezérlő 8 bites kimenet 12 bites bement 7 szeg. vezérlő LCD vezérlő I2C vezérlő Függvényg. UART vezérlő VGA vezérlő PS2-KB vezérlő Időzítő 8Mb PSRAM 8Mb Flash 8bites LED sor Nyomógombok és kapcsolók Hétszegmenses kijelző Pont-mátrixos LCD kijelző A/D átalakító D/A átalakító UART VGA Billentyűzet Külvilág / Digilent Nexys 3 kártya 14. ábra A megvalósított ARM CORTEX-M0 rendszer felépítése A 14. ábraán szemléltetett perifériák kezdőcímét és a számukra fenntartott tartomány végét a 5. táblázat foglalja össze. 5. táblázat Prifériákhoz rendelt címtartomány Címtartomány Kedő cím Befejező cím Megnevezés 0x x007F-FFFF SRAM memóriavezérlő 0x x00FF-FFFF Flash memóriavezérlő 0x x49FF-FFFF Szabad 0x x50FF-FFFF Kimenetek a LED sornak 0x x51FF-FFFF Bementek a nyomógomboknak 0x x52FF-FFFF 7 szegmenses kijelző vezérlő 0x x53FF-FFFF LCD kijelző vezérlő 0x x54FF-FFFF I2C vezérlő az A/D átalakítónak 0x x55FF-FFFF Függvénygenerátor 0x x56FF-FFFF UART vezérlő 0x x57FF-FFFF VGA vezérlő 0x x58FF-FFFF Billentyűzetvezérlő 0x x59FF-FFFF Időzítő 0x xFFFF-FFFF Szabad 6.1. Memóriavezérlő egység A modul feladata az AHB-Lite tranzakciók konvertálása a Nexys 3 kártyán található SRAM és Flash által feldolgozható tranzakciókká. A vezérlő egyszerre képes kezelni mind a két memória típust. Lehetőséget biztosít VHDL kódból annak a kiválasztására, hogy 28

29 melyik memória típus legyen a kezdőcímen. Erre a FlashATZero láb értékének változtatása szolgál (lásd: 6. táblázat). 6. táblázat Fizikai memória kiosztás lehetőségei FlashATZero Cím Kezdő Befejező Memória típus x x007F-FFFF SRAM 0x x00FF-FFFF Flash x x007F-FFFF Flash 0x x00FF-FFFF SRAM Látható, hogy egyes memóriatípusokból csak 8Mb-ot tud megcímezni, összesen 16Mb-ot. Ezzel ellenben a Nexys 3 kártyán mind a két típusból 16Mb található. A beágyazott rendszerben az első lehetőség lett alkalmazva, ahol is SRAM látható a kezdő címen. A FlashATZero értéke fixen, az elem példányosításakor lett megadva úgy, hogy az SRAM legyen a kezdőcímen, ahogyan ezt az alábbi programrészlet is szemlélteti. Inst_SRAM_Flash_Controller : AHB2SRAMFLSH port map ( HSEL => HSel_SRAMFLASH, HCLK => Clock, -- SRAM / FLASH at 0x0 FlashAtZero => '0', RamWait => Mem_SRAM_Wait, FlashRp => Mem_FlashRp ); bites LED sor Szinte minden fejlesztőkártyán megtalálható eltérő bit számmal az egyik legegyszerűbben vezérelhető periféria LED-sor. Néha csak néhány darabnak jut hely, de vannak olyan esetek is mikor a kettő egész hatványának megfelelő darabszámú LED áll a fejlesztő rendelkezésére. Jelen esetben ez nyolc bitet azaz nyolc darabot jelent. A LED-ek vezérlése minden esetben úgy történik, hogy ha a kimeneten 1 jel jelenik meg a LED világit, 0 jel esetén pedig elalszik. Könnyen belátható, hogy a szükséges vezérlés se bonyolultabb. Az egészhez elegendő egy 8 bites D típusú tároló, amibe a buszról érkező adat beíródik és a kimenete közvetlenül a LED-ekhez kapcsolódik. Ezt szemlélteti a 15. ábra. 29

30 15. ábra n. LED vezérlése Az adatok beírása két órajel ciklusban történik AHB-Lite protokollnak megfelelően. Az első órajel ciklusban mintavételezésre kerülnek a busz vezérlő jeli, és ezek eltárolódnak egy-egy D típusú tárolóban. Ha minden vezérlő jel a megfelelő jelszinten van, akkor a második órajel ciklusban maguk az adatok tárolódnak el egy 8 bites regiszterben, ami majd közvetlenül vezérli a LED-eket. A regiszter kimenete egyrészt a LED-ekhez kapcsolódik, másrészt vissza van csatolva a buszra. Ez teszi lehetővé, hogy olvasni is lehessen a perifériát, ne csak írni. Ilyenkor a kimentek aktuális státuszát kapjuk vissza. A kommunikáció végét jelző HReady jel folyamatosan 1 állapotban lehet, mivel csak olvasás során van jelentősége és ekkor minden időpillanatban rendelkezésre áll a hiteles adat. Észre lehet venni, hogy a vezérlő jelek közül az egyik legfontosabb, hogy a cím nem kerül tárolásra. Ennek oka, hogy a buszon egyszerre 32 bitnyi adatott lehet küldeni és a periféria csak 8 bites regiszterrel rendelkezik. A címzés egy lépésben megoldható és az engedélyező jellel egyértelműen azonosítható az írandó vagy olvasandó regiszter. Vannak előnyei és hátrányai is. Előnye, hogy egyszerűbb, kisebb helyet foglaló kód készíthető így. A hátránya pedig, hogy a következő periféria kezdőcíméig minden egyes címre történő 30

31 címzést vezérli, ami a processzoron futó program írása során áttekinthetetlenséget és hibát okozhat. adatokat. A 7. táblázat foglalja össze a periféria programból történő vezérléséhez szükséges 7. táblázat 8 bites LED sor vezérlő regisztere Megnevezés Cím Méret Típus Reset érték LED-ek állapota 0x bit Olvasható / Írható 0x Nyomógombok és kapcsolók A nyomgombok és a különböző kapcsolók a LED-ekhez hasonlóan a legegyszerűbb perifériák közé sorolhatók. Különböző mennyiségben szinte minden fejlesztő kártyán megtalálhatóak. Jelen esetben öt darab nyomógomb és nyolc darab tolókapcsoló került beépítésre. Elméletileg a kapcsolók és gombok felől érkező jelet elég lenne egy regiszterbe tölteni és onnan szükség esetén a buszon keresztül kiolvasni. Sajnos ez nem így működik a prell hatás miatt. Átváltáskor a mechanikai rezgések miatt többször vált jelszintet az eszköz (16. ábra), ami a nála jóval gyorsabb működésű hálózatban dinamikus hazárdokat eredményezhet, ezért védekezni kell ellene. A védekezésnek több módszere lehet. A módszerek egyik nagy csoportja hardveres alapúak. Ekkor valamilyen módszerrel megpróbáljuk kiszűrni a jelből a káros tüskéket. Az egyik ilyen legegyszerűbb módszer, ha a tüskék lecsengése elég gyors RC tag alkalmazása. 16. ábra Prell hatás A módszerek másik nagy csoportja, mikor valamilyen szoftveres megoldás kerül alkalmazásra. Ezek alapja, hogy detektáljuk a jelváltozást és várunk, ha eltelt elég a megfelelő idő anélkül, hogy bármilyen újabb változás bekövetkezett volna a jelszintben, 31

32 akkor stabilnak tekintjük és továbbítjuk feldolgozásra. Természetesen a várakozás minden egyes változásnál újra kezdődik. A várakozási idő általában 10ms környékén szokott lenni, mert ennyi idő alatt a legrosszabb minőségű eszköz is stabilizálódik. 17. ábra Nyomógomb illetve kapcsoló illesztése Ilyen szoftveres megoldást szemléltet a 17. ábra. Az első kettő D típusú tároló eltérő jelszintje folyamatosan töröl egy számlálóból álló időzítőt. Ha az időzítés végére értünk, vagyis a jel stabilizálódót és nem történt átkapcsolás se, akkor a következő órajelnél az utolsó tárolóba beíródik a kapcsoló vagy nyomógomb aktuális állapota. A módszer egyszerűségét és hatékonyságát tükrözi az alábbi VHDL kód részlet is. counter_set <= Dff_01 xor Dff_02; process (Clock) begin if (Clock'event and Clock='1') then Dff_01 <= button; Dff_02 <= Dff_01; if (counter_set='1') then counter_out <= ( others => '0' ); elsif (counter_out(counter_size) = '0') then counter_out <= counter_out + 1; else deb_button <= Dff_02; end if; end if; end process; A dinamikus hazárd mentes jelek már nem okoznak hibát a feldolgozás során. A különböző vezérlő jelek értelmezése nem szükséges, mert az olvasandó adatok egyértelmű azonosítását elvégzi a buszcímző modulja, ami már korábban bemutatásra került. Mivel kiolvasható adat folyamatosan rendelkezésre áll, és nincs szükség semmilyen várakozásra, ezért a HReady jel folyamatosan gerjesztést kaphat. adatokat. A 8. táblázat foglalja össze a periféria programból történő vezérléséhez szükséges 32

33 8. táblázat 8 bites Kapcsolók és gyomgombok állapot regisztere Megnevezés Cím Méret Típus Reset érték Gombok állapota 0x bit Olvasható N.a Hétszegmenses kijelző A fejlesztő kártyán helyet kapott egy négy számjegyből álló hétszegmenses kijelző. A kijelző elsősorban számjegyek megjelenítésére szolgál, de korlátozottan egyszerűbb betűk is megjeleníthetők rajta. Itt szeretném megjegyezni, az utóbbi lehetőséggel és az egyedi jelek megjelenítésével a továbbiakban nem foglakozom. Hely takarékossági okokból a gyakorlatban a több számjegyet tartalmazó kijelzők közös anóddal vagy közös katóddal készülnek. Jelen esetben egy közös katódú kivitel kerül bemutatásra, illetve a vezérlő ezen felálláshoz készült. Minden számjegynek külön anódja van, de a katódok közösek (18. ábra). Egy adott szegmens megjelenítéséhez az adott digithez tartózó anódot magas jelszinttel, a katódott pedig alacsony jelszinttel kell vezérelni. 18. ábra Közös katódú hétszegmenese kijelző bekötése A szem tehetetlenségét kihasználva, megfelelő frekvenciával kapcsolgatva a vezérlő jeleket, folyamatosan látható lesz mind a négy számjegy. Minimális esetben másodpercenként 24-szer kell ki illetve bekapcsolni egy számjegyet. A kapott érték erősen elméleti, mivel a gyakorlatban ennél sokkal nagyobb frekvencia szükséges, hogy a számjegyek élesek legyenek. Ezt a vezérlést multiplexált működtetésnek nevezik. Ilyen vezérlő látható az 19. ábran. 33

34 FPGA 19. ábra Hétszegmenses kijelző multiplexált vezérlése Az AHB illesztés végzi az érkező adatok regiszterbe történő írását és a hétszegmenses kijelző számára a kódolást. A regiszterben történő tárolás az 15. ábran vázolt módszerhez hasonlóan történik, azzal a különbség, hogy itt négy darab 4 bites regiszter került kialakításra. A kódolás egy egyszerű kombinációs logika szerint történik, amit az alábbi VHDL kódrészlet szemléltet. case BCD is when x"0" => Segment <= " "; when x"1" => Segment <= " "; when x"2" => Segment <= " "; when x"3" => Segment <= " "; when x"4" => Segment <= " "; when x"5" => Segment <= " "; when x"6" => Segment <= " "; when x"7" => Segment <= " "; when x"8" => Segment <= " "; when x"9" => Segment <= " "; when x"a" => Segment <= " "; when x"b" => Segment <= " "; when x"c" => Segment <= " "; when x"d" => Segment <= " "; when x"e" => Segment <= " "; when x"f" => Segment <= " "; when others => Segment <= (others => '1'); end case; A kódból kitűnik, hogy mind BCD kódok, mindtermészetes bináris kódok fogadására alkalmas. Ennek oka, hogy a BCD kód nem más, mint természetes bináris kód azzal a különbséggel, hogy BDC esetén, 4 biten a legnagyobb ábrázolható szám a 9, míg természetes bináris kód esetén ez 15. A kódoló a 9-nél nagyobb számokat természetes bináris kódnak tekinti és a hexadecimális alakjukat továbbítja. Továbbá az is észrevehető, 34

35 hogy a kódban az éppen aktív szegmenseket a 0 érték reprezentálja, míg az inaktívakat az 1. Egy kódolt információ egy multiplexer bementére kerül. A multiplexer címzését egy megfelelő frekvenciával műküödő számláló végzi, mely folyamatosan újra kezdi a számlálást. Ez a számláló egy de-multiplexert is meghajt, melynek feladata, hogy az éppen aktív anódot válassza ki. Mind a multiplexer kimenete, mind a de-multiplexer kimenete közvetlenül az FPGA kivezetéseihez csatlakoznak. Itt szeretném megjegyezni a 8 darab katód közül 7 db magas számot ábrázoló szegmensek a 8. pedig a számjegyhez opcionálisan választható tizedes pont. adatokat. A 9. táblázat foglalja össze a periféria programból történő vezérléséhez szükséges 9. táblázat 7 szegmenses kijelző regiszterei Megnevezés Cím Méret Típus Reset érték Vezérlő bitek 0x bit Olvasható / Írható 00 b 1. számjegy 0x bit Olvasható / Írható 0x0 2. számjegy 0x bit Olvasható / Írható 0x0 3. számjegy 0x C 4 bit Olvasható / Írható 0x0 4. számjegy 0x bit Olvasható / Írható 0x0 Tizedesp. helye 0x bit Olvasható / Írható 0x0 Az előzőektől eltérően itt megjelent már egy regiszter, ami a periféria vezérlését végzi az alábbiak alapján: 00 b : 7 szegmenses kijelző kikapcsolva 01 b : 7 szegmenses kijelző bekapcsolva és csak BCD kódok dolgozandó fel 10 b : 7 szegmenses kijelző kikapcsolva 11 b : 7 szegmenses kijelző bekapcsolva természetes bináris kód dolgozandó fel A tizedes pont helye pedig az alábbiak alapján állítható be: 0000 b : nincs tizedespont 0001 b : 1. helyi érték után van a tizedes pont 0010 b : 2. helyi érték után van a tizedes pont 0100 b : 3. helyi érték után van a tizedes pont 1000 b : 4. helyi érték után van a tizedes pont 6.3. Pont-mátrixos LCD kijelző A pont-mátrixos LCD kijelző (20. ábra) sokkal több lehetőséget biztosít a felhasználó számára a megjelenítési lehetőségek közül, mint a hét szegmens kijelző. Itt már van lehetőség a számok megjelenítése mellett karakterek, írásjelek esetleg egyéni 35

36 szimbólumok megjelenítésére is. A kijelezett információ mennyisége is több. Jelen esetben összesen 32 karakter (2x16). 20. ábra Pontmátrixos LCD kijelző Forrás: [2] Az eszköz processzorhoz történő illesztésére több lehetőség is van. Első ilyen lehetőség, hogy a kijelzőnek küldendő adatokat először egy regiszterbe írjuk, és onnan közvetlenül a kijelző bemeneteire kerülnek. Hasonlóan, a bemutatott LED-sor vezérléséhez. Az adatok küldése közötti várakozás pedig szoftveresen kerül megvalósításra. RW AHB-Lite AHB illesztés 2x16-os LCD vezérlő RS LCD adatok 21. ábra LCD kijelző belső felépítése Ennél jobb megoldás lehet, ha az adatok közötti várakozást is az FPGA vezérli önállóan. Ennek a megoldásnak a blokkvázlatát szemlélteti 21. ábra. A megszokott módon áll az AHB buszra történő illesztésből és egy egyedi vezérlésből. Az egyedi vezérlés feladat, hogy kontrolálja az adatok egymás utáni küldése közötti előírt minimális várakozása időt, és az áramkör bekacsolása után felhasználói igényeknek megfelelően inicializálja a kijelzőt. Mind az inicializálás, mind a jövőbeni adatok küldését egy állapotgép vezérli a 22. ábra alapján. 36

37 Rst=0 Rst=0 Start Bekapcsolás 50ms 2,2ms En=1 Beállítás Kész Küldés Rst=0 50us 22. ábra LCD kijelzőt vezérlő állapotgép Bekapcsolást indítást követően a bekapcsolás állapotba kerül, ahol nem csinál mást, mint várakozik, 50ms-ot időtartamban. Erre azért van szükség, hogy legyen ideje az LCD kijelzőnek felélednie. Az idő leteltével a beállítás állapotba kerül, ahol a VHDL kódban kódolt kezdeti beállításokat küldi el. Ilyen beállítások például: legyen-e kurzor, villogjon-e kurzor vagy milyen legyen a szövegkiírás iránya. A szükséges időt itt is meg várja. A készállapotba lépve várakozik az adatküldés engedélyező jelre. Ezt mindenegyes alkalommal megkapja, mikor új adat érkezik az AHB buszon. A küldés állapotban továbbítja az új adatot és szükséges ideig várakozik. Majd visszalép a kész állapotba. A reset jel érkezésekor bármelyik állapotból a bekapcsolás állapotba lép. Látható, hogy a rendszer semmilyen buffert, FIFO tárolót nem tartalmaz, ezért ha az AHB rendszeren túl gyorsan érkeznek a küldendő adatok, várakoztatja azt, ami egyben azt is jelenti, hogy a processzorban a program futása is várakozik. adatokat. A 10. táblázat foglalja össze a periféria programból történő vezérléséhez szükséges 10. táblázat LCD vezérlő regiszterei Megnevezés Cím Méret Típus Reset érték LCD-nek küldendő adat 0x bit Írható N.a A/D átalakító A fejlesztő kártyához csatolható egy 4 csatornás 12bites A/D átalakító. Az átalakító I 2 C buszon keresztül kommunikál a külvilággal. Maga a vezérlő felépítésének megismerése előtt célszerű magával a kommunikációs protokollal megismerkedni. Az I 2 C kommunikációs buszt a Philips fejlesztette ki. Egyszerű kétirányú, kétvezetékes buszrendszer, ami hatékonyan használható IC-k közötti kommunikációra. Kedvező tulajdonságainak köszönhetően napjainkban már nem csak a Philips gyártmányú IC-k használják. Szinte minden mikrovezérlő tartalmaz beépített I 2 C kommunikációs felületet és a legtöbb neves gyártó kínál különböző áramköröket ezzel a felülettel. 37

38 Mint már említettem a busz két vezetéket használ, és így egy szinkron szimplex kommunikációra alkalmas. a tisztán látás végett tehát a buszon továbbításra kerül egy szinkronizáló órajel (SCL), és az adatvezetéken (SDA) egy időben csak egyirányú kommunikáció történhet. A csatlakoztatott áramkörök mester-szolga hierarchiába vannak szervezve. A kommunikációt minden esetben a mester kezdeményezi a szolga megszólításával. Az eszközök azonosítása címmel történik, mely egy része gyártóspecifikus, a másik része pedig szabadon beállítható a címző lábakon keresztül. Az előzőek alapján a busz típusától függően az alábbi kommunikációs sebességek érhetők el: szabványos mód (standard mode; Sm): gyors mód (fast mode; Fm): gyors mód plusz (fast mode plus; Fm+): nagy sebességű mód (high-speed mode; Hm): ultra gyors mód (ultra fast mode; Um): 23. ábra Adatcsomag az I 2 C buszon Egy a buszon közlekedő adatcsomagot szemléltet a 23. ábra. Alap állapotban,- amikor nem történik kommunikáció a buszon,- mind az adat vezeték (SDA), mind az órajel (SCL) magas logikai szinten van. A mester a küldési szándékot e jelek alacsony logikai szintre állításával jelzi, vagyis elküld egy start bitet. Majd elküldi a cél áramkör címét, ami 7 bit. A 8. bit jelzi a címzettnek a kommunikáció irányát. 0 esetén a mester fog adatot küldeni a szolgának, 1 esetén pedig ez pont fordítva történni. A sikeres címzést a címzett egy alacsony jelszintű nyugtázó jellel nyugtázza. A kommunikáció irányának megfelelően az adó elküldi a 8 bit hosszúságú adatot, amit a vevő szintén egy alacsony jelszintű nyugtázó jellel nyugtáz. A küldés vagy fogadás mindig a legmagasabb helyi értékű bittel kezdődik, és a legalacsonyabbal végződik. Ha a kommunikáló feleknek több bájt hosszú mondandójuk van, akkor ezek követhetik folyamatosan egymást 8 bites csoportokban, ha minden 8. bitet egy nyugtázó jel követ. Mindaddig így működhet, amíg a kommunikáció iránya meg nem változik, vagy amíg a mester egy másik eszközt nem szólít meg, mert egy újabb címzési fázisra van szüksége. 38

39 Az előzőekben elmondottak alapján a kommunikáció egy bizonyos sorrendiséget követ, aminek a vezérlését egy szinkron állapotgéppel könnyedén meg lehet oldani, ezt szemlélteti a 24. ábra. A busz szempontjából beágyazásra egy mester került, és az állapotgép is e funkció ellátásának szemszögéből lett felépítve. En=1 és új cím En=1 és ugyanaz a cím Rw=0 Fogad ás ACK En=0 Kész Parancs Start En=1 Clk=1 Bit_cnt=0 ACK Bit_cnt=0 Bit_cnt=0 Stop Rw=1 Küldés ACK En=0 En=1 és ugyanaz a cím 24. ábra I 2 C kommunikáció vezérlő A rendszer start állapotban várakozik mindaddig, amíg a kommunikációs szándékot engedélyező jel (En) magas jelszintre nem vált. A parancs állapotban beállítja a szükséges belső regisztereket és továbbítja a start bitet. A címzés állapotban elküldi a megcímzett eszköz címét és a kommunikáció irányát jelző bitet, majd várakozik a címzett válaszára. Ha megérkezett a nyugtázó jel, a kommunikáció irányának megfelelően halad tovább az állapotgép. Küldés és fogadás ágak hasonlóan működnek, ezért őket egyben tárgyalom. A rendszer az adott állapotban marad mindaddig, míg a fogadott vagy küldött bitek számát jelző számláló (bit_cnt) el nem éri a nullát, vagyis mindaddig, míg az összes bit feldolgozásra nem került. Itt szeretném megjegyezni, hogy a busz mintavételezése olvasáskor lehetőségéhez mérten a bitidő felénél történik. Az összes bit elküldése vagy fogadása után a nyugtázó jelre váró állapotba kerül. A nyugtázást követően, ha a cím és az irány nem változott, visszalép az előző állapotra és újabb küldést / fogadást indít. Ezt mindaddig folytatja, míg a paraméterek megegyeznek a címzés fázisában eltárolt paraméterekkel. Ha ezek változnak először stop állapotba, majd készenlét állapotba lép a rendszer. A két eltérő kommunikációs protokoll miatt az előzőekben bemutatott vezérlő logikát nem lehet közvetlenül a processzor maghoz csatolni. Szükséges egy külön illesztés, ami összhangot teremt köztük. A sorrendiség miatt ez is egy állapotgéppel könnyen 39

40 megoldható (25. ábra). Többek közül két tényt szeretnék kiemelni, ami a feladat megoldása során felmerült és nagyban befolyásolta azt. Várakozás Hsel=1 Parancs Kész=1 1. 8bit Kész=1 2. 8bit Kész=1 küldése olvasása olvasása Stop Clk=1 25. ábra AHB-Lite illesztő állapotgép Az első hogy az AHB-Lite busz sokkal gyorsabb, mint az I 2 C. Több lehetőség közül kihasználva az AHB-Lite kommunikáció felfüggesztésének lehetőségét, ez a megoldás a legegyszerűbb, hogy az AHB-Lite bevárja az I 2 C-t. Sajnos van egy nagy hátránya, hogy a kommunikáció során a processzor is várakozik. A 25. ábran szemléltetet állapotgép működése akkor kezdődik el, ha az AHB buszon kiválasztásra kerül a periféria, ekkor az I 2 C-n keresztül elküldi az A/D áthalkítónak, hogy melyik csatornát szeretné beolvasni. Minden egyes csatornának és működési módnak külön címe van. Majd beolvas, 2x8bitet. A stop állapotban a regiszterekbe beírja a beolvasott értéket, és felszabadítja a buszt. Jól látható, hogy a vázolt állapotgép nem képes tetszőleges perifériával kommunikációt megvalósítani, csak a csatlakoztatott A/D átalakítóval. adatokat. A 11. táblázat foglalja össze a periféria programból történő vezérléséhez szükséges 11. táblázat A/D átalakító regiszterei Megnevezés Cím Méret Típus Reset érték Működési mód 0x bit Olvasható / Írható 0x00 Fogadottadat 0x bit Olvasható N.a Függvénygenerátor A fejlesztő kártyához a PMOD csatlakozó felületen keresztül csatlakoztatható egy D/A átalakító (26. ábra). Az digitálisból analóg konverziót egy AD5541A típusó D/A konverter IC végzi, amit az Analog Devices cég gyárt. A chip egy csatornás 16bites átalakítást tesz lehetővé. Az átalakítót felhasználva könnyen szerkeszthető egy egyszerű függvény generátor a beágyazott rendszerhez. 40

41 Feszültség [V] Feszültség [V] NAGY SZILÁRD 26. ábra D/A átalakító kiegészítő modul Az átalakító soros szinkron szimplex módon kommunikál a külvilággal. A kommunikáció teljes egészében a szó szoros értelmében nem tekinthető kommunikációnak, mert csak írni lehet az áthalkítót olvasni nem. Az írás folyamatát szemlélteti a 27. ábra. 27. ábra Adatok küldése a D/A átalakítónak Az SCLK jel szolgáltatja a szinkron óra jelet, ami a gyártó specifikációja szerint 2,7 5,5V-os tápfeszültség mellett akár 50MHz is lehet. Elsőre én is ezzel próbálkoztam, de sajnos gyorsan be kellet látnom, hogy a fejlesztő kártya és elsősorban azon a PMOD csatlakozók nem alkalmasak erre, mert a négyszögjel annyira eltorzul és zajos lesz, hogy az átalakító már nem képes értelmezni (28. ábra). A torzulás és a zajosodás az adat és vezérlő bitekre is igaz. Jelentősen csökkentve a frekvenciát az órajel kismértékű zajosodás mellett már átvihető a PMOD csatlakozón a D/A átalakítónak (29. ábra). Az ábráktól függetlenül kísérletek alapján a végleges órajelet 6,25MHz-re választottam. 3,5 3 2,5 2 1,5 1 0, ,05 0,1 0,15 0,2 0,25 Idő [ms] 3,5 3 2,5 2 1,5 1 0, ,2 0,4 0,6 0,8 1 Idő [ms] 28. ábra ~20MHz-es órajel 29. ábra ~3,3MHz-es órajel 41

42 A D/A átalakítóval a kommunikáció a CS jel alacsony jelszintre húzásával kezdődik, és itt is marad, míg az adatbitek küldése be nem fejeződik. Az adatok az MSB bittől LSB bitig haladva sorban érkeznek a D/A átalakítóhoz. Az utolsó bit elküldése esetén a CS vezérlő bit magas jelszintre vált és LADC vezérlő jellel kell jelezni a kommunikáció végét. Az előzőeknek megfelelően az adatok elküldésért felelős vezérlő logika VHDL kódját szemlélteti az alábbi forráskód részlet: SD0 <= wdata0(index); process(rst, datclk) begin if (rst = '1') then DONE <= '0'; SYNC <= '1'; LDAC <= '1'; index <= 0; stcur <= stinit; elsif falling_edge(datclk) then case stcur is when stinit => end case; end if; end process; 42 DONE <= '0'; SYNC <= '0'; index <= 0; stcur <= sttx; when sttx => DONE <= '0'; SYNC <= '0'; index <= index + 1; if (index = 14) then stcur <= stldac; else stcur <= sttx; end if; when stldac => when stdone => DONE <= '1'; SYNC <= '1'; LDAC <= '1'; stcur <= stdone; stcur <= stinit; DONE <= '1'; SYNC <= '1'; LDAC <= '0'; index <= 0; A kód tanulmányozása során észrevehető két érdekes dolog. Az első hogy látszólag a vezérlő egység az előzőektől eltérően az adat biteket nem MSB bittől az LSB bit felé haladva küldi, hanem fordítva. Az oka hogy így egyszerűbb a kódot megszerkeszteni, de ez azt is eredményezi, hogy a példányosításnál, jobban kell figyelni. A wdata0 vektort ellentétes bitsorrenddel kell majd példányosítani, mint ahogyan a vezérlőben van definiálva. A másik érdekes dolog, hogy az adatok küldésért felelős számláló csak 14-es indexig megy látszólag. Az oka hogy a számláló növelése és a következő állapotba lépés párhuzamosan történik. Vagyis mikor a számláló 14 értékről 15 re vált a logika már a következő állapotba lép.

43 Feszültség [V] NAGY SZILÁRD A mérési gyakorlatban azt szokták mondani, hogy egy jel időtartományban történő vizsgálatához 10 minta elegendő. Ebből következik, hogy az elő állításához is elegendő 10 minta periódusonként, de ez elég csúnya jelet eredményez (30. ábra). A szebb jelalak érdekében érdemes a minták számát növelni. A függvény generátornál a minták számát 20 minta / periódusra választottam. 2,5 2 1,5 1 0, Idő[ms] 30. ábra 10 minta/periodús-ú fűrészfogjel A függvény generátornál törekedtem a lehető legegyszerűbb felépítésre és lehessen vele a három alap jelalakot elő állítani. Név szerint szinusz jelet, fűrészfogjelet és négyszög jelet. A felépítését a 31. ábra szemlélteti. Függvény generátor Jelalak Számláló LUT D/A kummunikáció Késleltetés 31. ábra 10 minta/periodús-ú fűrészfogjel Az AHB busz felöl meg kapja, hogy milyen jelalakot kell generálnia, és hogy milyen időközönként kell új jelszintet generálnia. Ennek megfelelően számol a számláló 1-től 20- ig. Ha a rendszernek fűrészfog jelet kell előállítania akkor a számláló értéke közvetlenül D/A kommunikáció vezérlőre kerül, míg szinusz vagy négyszög jel esetén a LUT-ra. A LUT nem más, mint egy 20 elemű vektor, mely rendre tartalmazza a megfelelő jel előállításához szükséges jelszinteket. A rendszer által egy maximum körülbelül 17kHz-es jel generálható, melyeket a 32. ábra ábra szemléltet. Az ábrákon látható hogy a jelek 0 és 2,5 V között változnak, ennek oka hogy a D/A átalakító referencia feszültsége 2,5V és csak pozitív tápfeszültség áll az átalakító rendelkezésére. 43

44 Feszültség [V] Feszültség [V] Feszültség [V] NAGY SZILÁRD 3 2,5 2 1,5 1 0, ,5 2 1,5 1 0, Idő [ms] Idő [ms] 32. ábra ~17kHz-es fűrészfogjel 33. ábra ~17kHz-es négyszögjel 3 2,5 2 1,5 1 0, Idő [ms] adatokat. 34. ábra ~17kHz-es szinuszjel A 12. táblázat foglalja össze a periféria programból történő vezérléséhez szükséges 12. táblázat Függvénygenerátor regiszterei Megnevezés Cím Méret Típus Reset érték Generálandó jelalak 0x bit Olvasható / Írható 00 b Késleltetés 0x bit Olvasható / Írható 0x A generálandó jelalak regsizter határozza meg, hogy milye jelalakot generáljon a függvény generátor az alábbiak alapján: 00 b : a függvény generátor kikapcsolva, a kimenetén 1,25V-os egyenfeszültség 01 b : fűrészfog jel generálása 10 b : szinusz jel generálása 11 b : négyszögjel generálása A késleltetés regiszter pedig azt határozza, meg hogy D/A átalakító kommunikációjához használt órajelhez képest hány ciklust várakozzon, míg új jelet generál. 44

45 6.6. UART vezérlő egység A felhasznált univerzális adó / vevő egység a RS-232 szerinti kommunikáció biztosítására lett telepítve a rendszerbe. A kommunikáció jellemzői 50Mhz órajel esetén: Bitsebesség: 19200kbs Paritás bit: nincs Stop bit: 1db Az eszköz nem biztosít lehetőséget a kommunikációs jellemzők bitsebesség, paritásbit, stop bit, stb. programból történő dinamikus állíthatóságára. A buszrendszerről érkező párhuzamos adatokat az RS-232 szabványnak megfelelően soros adatfolyammá alakítja oda-vissza. Küldés esetén a párhuzamosan érkező adatok egy FIFO tárolóba kerülnek (35. ábra), majd innen kiolvasva történik az átalakítás és a jelek kiküldése a kommunikációs csatornára. Üzenet fogadása esetén először az adatok konvertálása történik meg (35. ábra), majd ezután kerülnek be egy FIFO tárolóba és onnan a buszra, ha van rá igény. azon esetben,ha a vételi tároló üres volt és ezután egy adat érkezik bele, akkor egy megszakítás kérő jelet is továbbit a processzor felé. Az összes adat elküldése és fogadása után vagyis ha mind a kettő FIFO tároló kiürült az eszköz kész jelet küld a processzornak és várakozik mindaddig, míg újabb fogadandó vagy küldendő adat nem érkezik. AHB-Lite IRQ Rx FIFO Tx FIFO P / S átalakító Bitráta generátor S / P átalakító Rxd Txd 35. ábra UART egység belső felépítése A 13. táblázat foglalja össze a periféria programból történő vezérléséhez szükséges adatokat. A regisztert írva adat küldhető az UART-on olvasva pedig adat olvasható onnan. 13. táblázat UART vezérlő regiszterei Megnevezés Cím Méret Típus Reset érték UART adat 0x bit Olvasható / Írható b 45

46 VGA Szinkronizáció NAGY SZILÁRD 6.7. VGA vezérlő A VGA vezérlő különböző modulok kombinációja, hogy szöveges konzolt lehessen generálni vele a Nexys 3 kártya VGA portán keresztül. Részei: egy VGA szinkronizáló, konzol generátor, ami magában foglal egy szinkron RAM-ot az adatok tárolásához és egy ROM-ot a szöveg elemek tárolásához (36. ábra). A Nexys 3 kártya csak 8bites színmélységre ad lehetőséget, amik 3 bit a pirosnak, zöldnek és 2 bit a kéknek felel meg. Ez összesen 256 színvariáció megalkotásához elegendő. A VGA szinkronizáló szabványos 640x480-as felbontást használ. Számlálója 25MHz-es órajelet állít elő. Ez közel van a szükséges 25,2Mhz frekvenciához, ami 60Hz-es képfrissítést tesz lehetővé. Az előállított órajel lesz felhasználva a vízszintes és függőleges kimenet szinkronizáláshoz, melynek segítségével a képpont kirajzolódik a szükséges X;Y koordinátára. Vsync Hsync AHB-Lite VGA konsol 2048x8 bit ROM 4096x7 bit RAM RGB VGA Kép 32768x8 bit RAM 36. ábra VGA vezérlő belső felépítése A VGA rendszer konzol részét használja szöveges tartalom megjelenítéséhez, úgy hogy a minimálisra lehessen csökkenteni a tárolandó adatok mennyiségét. A képernyő egy 80x30 mátrixra osztja fel. Az egyes pozíciókban egy 8x16 képpont méretű karaktert lehet írni. A kerekterek alakja bitképként ROM-ban van tárolva. A kijelezendő karakter ASCII kódja pedig RAM-ban raktározódik. Az Enter billentyű vagy /n új sor karakter új sort hoz létre, és a már meglévőket eggyel feljebb mozgatja. A Backsapce hasonlóan viselkedek, mint a megszokott, de nem tud eggyel feljebbi sorba lépni. A szöveges mód a 0x címtől érhető el. 46

47 A vezérlő lehetőséget ad egy 256x128 méretű kép létrehozására a képernyő jobb alsó sarkában. A rajzoláshoz csak a képpont színét kell elküldeni az adott koordinátához tartozó címre. A képpont 8bit-es színének felépítése: RRRGGGBB, ahol a betűk az adott színhez tartozó biteket jelölik. A rajzolt kép minden esetben a konzolon kiírt szöveg mögött lesz. A képpontok címzése a bal felső sarokponttól indul és jobb alsó sarokban ér véget. Soronként folytatólagosan a 0x57A x57A címtartományon lehet elérni. A vezérlő sajnos az FPGA beépített Block-RAM-ját használja memóriának Billentyűzetvezérlő A vezérlő a PS/2 billentyűzetről érkező adatokat fordítja 7-bites ASCII kóddá, majd továbbítja az AHB-Lite busz felé. Az adat nem íródik ki közvetlenül a buszra, hanem először egy FIFO tárolóba kerül, ahol várakozik a kiolvasásig (37. ábra). Ha a tároló üres volt és új adat érkezett, akkor megszakítás kéréssel jelzi a processzor felé a rendelkezésre álló új adatot. Az összes adat kiolvasása után várokozó üzemmódba kerül mindaddig, míg újabb billentyű nem kerül leütésre. AHB-Lite IRQ Billentyűzetkód ASCII kódá alakítása FIFO Billentyűzetkód PS2 Rxd PS2 órajel PS2 Adat 37. ábra Billenytűzetvezérlő belső felépítése A vezérlő funkcionalitása szorosan korlátozva van az ASCII karakterekre, számokra és szimbólumokra. A funkcióbillentyűket, mint Ctrl, Alt, Caps Lock, Tab, nyilak és F billentyűk nem tudja feldolgozni. Ekkor egy csillag karakter jelzi, hogy a bemenet ismeretlen. adatokat. A 14. táblázat foglalja össze a periféria programból történő vezérléséhez szükséges 14. táblázat UART vezérlő regiszterei Megnevezés Cím Méret Típus Reset érték Billentyű 0x bit Olvasható b 47

48 6.9. Időzítő Az időzítő belső felépítését a 38. ábra szemlélteti. Az órajel teljes egészében vagy előosztást, vagy előosztást követően jut egy multiplexere. A regiszterekben beállított értékeknek megfelelően a multiplexer a megfelelő órajelet továbbítja a lefelé számláló felé. Csak a busszal van kommunikációs kapcsolat, ami a regiszterek beállítására és aktuális számlálási érték kiolvasására szolgál. Működési módtól függően különböző megszakításkérések állíthatók be. Órajel AHB-Lite Előosztó 16 MUX Lefelé számláló Előosztó 256 IRQ Regiszterek 38. ábra Időzítő belső felépítése Az időzítőnek alapvetően két működési módja van. Az első a szabadonfutó-mód. Ha a számlálás a beállított kezdőértékről indulva eléri a nulla értéket egy megszakításkérés jel generálódik, és a számlálás folytatódik tovább a maximum értékről. A második üzemmód periodikus. Ekkor minden egyes alkalommal a kezdő értékről indul a számlálás és minden egyes nulla értéknél generálódik egy megszakítás kérő jel. Ez az üzemmód használható időzített megszakítások kérésére. 15. táblázat Időzítő regiszterei Megnevezés Cím Méret Típus Reset érték Kezdő érték 0x bit Olvasható / Írható 0x Számlálási érték 0x bit Olvasható 0x Futási mód 0x bit Olvasható / Írható 0x0 Alaphelyzetbe állítás 0x C 1 bit Olvasható / Írható 0 Az időzítő regisztereit 15. táblázat tartalmazza. Az elsővel a számlálás kezdő értékét lehet beállítani. A másodikkal pedig kiolvasni az aktuális számlálási értéket. A kívánt futási mód beállításához a szükséges értékeket 16. táblázat tartalmazza. Az értékek binárisan vannak megadva (az X tetszőleges értéket felvehet). Az időzítő alaphelyzetbe állításakor magas jelet kell küldeni a táblázat szerinti utolsó regiszternek. Ekkor az összes 48

49 regiszter törlődik és a számlálás a maximum értékről indul. Ha egyidőben van aktív megszakítás kérő jel, akkor az is törlődik. 16. táblázat Időzítő futási módjai Futási Előosztás mód 1 Folyamatos 000X 010X 1X0X Periodikus 001X 011X 1X1X 49

50 7. A BEÁGYAZOTT RENDSZER PROGRAMOZÁSA Az elkészült konfiguráció több módon is az FPGA-ba tölthető. Az első és ipari gyakorlatban tán a legelterjedtebb módszer, hogy valamilyen JTAG alapú programozó hardvert használunk, amit az ISE fejlesztő környezet is támogat. Ennek a megoldásnak egyik hátránya, hogy szükség van egy költséges hardverre. A másik megoldás azon alapszik, hogy a Digilent cég minden egyes fejlesztőkártyájukba beépít egy programozó felületet és biztosít hozzá egy számítógépes programozó szoftvert. A kártya felprogramozásához én is ezt a módszert választottam. Természetesen kényelem és költséghatékonyság mellett vannak negatív oldalai is a módszernek, például a hibakeresés nem olyan hatékony, mint a JTAG felületű programozókkal. Jelen esetben két dolgot kell a kártyára programozni: az egyik afpga viselkedését leíró.bit fájl, a másik aarm CORTEX-M0 magon futó program kód. először célszerű a kártya RAM-jába tölteni a processzoron futó program kódot, amit a 39. ábra szemléletet. A lefordított bináriskódot programozás előtt.bin formátumba kell konvertálni. 39. ábra RAM programozása Az FPGA-ba töltendő.bit file feltöltésére két lehetőség is van. Az első, mikor az egyszerűség elve mellett a FPGA-ba töltjük, és ki és bekapcsolás után elveszik. A második lehetőség, hogy SPI Flash-be továbbítódik, és raktározódik, melynek előnye, hogy bekapcsolás után is megmarad az FPGA konfigurációja, de a RAM-ba töltött program továbbra is elveszik. Az előbb említett módszereket szemlélteti a 40. ábra és 41. ábra. SPI Flash-be törtőné programozásnál a sorrend akár meg is cserélhető, csak bármelyik kód (FPGA vagy ARM) betöltése után minden esetben a fejlesztő kártyát újraindítani szükséges. a fejlesztő kártya újraindítása szükséges 50

51 40. ábra FPGA direkt konfigurálása 41. ábra SPI Flash programozása Az teszt programok gyanánt a rendszerhez készültek egyszerű bemutató programok néhány ezek közül: villogó LED-ek tolókapcsolókkal vezérelt LED-sor hét szegmenses kijelzőn megjelenített előre számláló Hello világ! kiíratása a LCD kijelzőn 17KHz-es függvény generátor 51

FPGA áramkörök alkalmazásainak vizsgálata

FPGA áramkörök alkalmazásainak vizsgálata FPGA áramkörök alkalmazásainak vizsgálata Kutatási beszámoló a Pro Progressio alapítvány számára Raikovich Tamás, 2012. 1 Bevezetés A programozható logikai áramkörökön (FPGA) alapuló hardver gyorsítók

Részletesebben

1.1. Általános áttekintés

1.1. Általános áttekintés 1.1. Általános áttekintés A mesterséges intelligencia megjelenésének az alapja a számítógép első működő eszköz az ENIAC számítógép volt amit a Manhattan-terv keretében fejlesztették ki 1946-ban. A memóriakezelő

Részletesebben

Robotot vezérlő szoftverek fejlesztése Developing robot controller softwares

Robotot vezérlő szoftverek fejlesztése Developing robot controller softwares Robotot vezérlő szoftverek fejlesztése Developing robot controller softwares VARGA Máté 1, PÓGÁR István 2, VÉGH János 1 Programtervező informatikus BSc szakos hallgató 2 Programtervező informatikus MSc

Részletesebben

Digitális technika VIMIAA01

Digitális technika VIMIAA01 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 Fehér Béla BME MIT Digitális Rendszerek Számítógépek

Részletesebben

ARM (Advanced RISC Machine)

ARM (Advanced RISC Machine) POWERED ARM ARM (Advanced RISC Machine) 1983 kisérleti projekt Acorn Computers Ltd., 1985 ARM1 fejlesztői minták, 1985 ARM2 32 bites adatbusz 64MB memória címezhető, 1989 ARM3 4K cache, 1990 ARM név változtatás

Részletesebben

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Bevezetés A laborgyakorlatok alapvető célja a tárgy későbbi laborgyakorlataihoz szükséges ismeretek átadása, az azokban szereplő

Részletesebben

ARM processzorok felépítése

ARM processzorok felépítése ARM processzorok felépítése Az ARM processzorok több családra bontható közösséget alkotnak. Az Cortex-A sorozatú processzorok, ill. az azokból felépülő mikrokontrollerek a high-end kategóriájú, nagy teljesítményű

Részletesebben

12.1.1. A Picoblaze Core implementálása FPGA-ba

12.1.1. A Picoblaze Core implementálása FPGA-ba 12.1.1. A Picoblaze Core implementálása FPGA-ba A Picoblaze processzor Ebben a fejezetben kerül bemutatásra a Pikoblaze-zel való munka. A Picoblaze szoftveres processzort alkotója Ken Chapman a Xilinx

Részletesebben

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység Mikroprocesszor CPU C Central Központi P Processing Számító U Unit Egység A mikroprocesszor általános belső felépítése 1-1 BUSZ Utasítás dekóder 1-1 BUSZ Az utasítás regiszterben levő utasítás értelmezését

Részletesebben

Mikrorendszerek tervezése

Mikrorendszerek tervezése BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Mikrorendszerek tervezése Beágyazott rendszerek Fehér Béla Raikovich Tamás

Részletesebben

ARM Cortex magú mikrovezérlők

ARM Cortex magú mikrovezérlők ARM Cortex magú mikrovezérlők 3. Cortex-M0, M4, M7 Scherer Balázs Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2018 32 bites trendek 2003-2017

Részletesebben

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk Elméleti anyag: Processzoros vezérlés általános tulajdonságai o z induló készletben

Részletesebben

A mikroszámítógép felépítése.

A mikroszámítógép felépítése. 1. Processzoros rendszerek fő elemei mikroszámítógépek alapja a mikroprocesszor. Elemei a mikroprocesszor, memória, és input/output eszközök. komponenseket valamilyen buszrendszer köti össze, amelyen az

Részletesebben

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

Számítógép Architektúrák Számítógép Architektúrák Utasításkészlet architektúrák 2015. április 11. Budapest Horváth Gábor docens BME Hálózati Rendszerek és Szolgáltatások Tsz. ghorvath@hit.bme.hu Számítógép Architektúrák Horváth

Részletesebben

SZÁMÍTÓGÉPARCHITEKTÚRÁK

SZÁMÍTÓGÉPARCHITEKTÚRÁK ESSZÉ LÁNG LÁSZLÓ Zilog mokroprocesszor családok Z800 2005. December 1. Előszó A Zilog cég betörése a piacra rendkívül eredményesnek mondható volt, sőt később sikerült a csúcsra fejleszteniük a technológiájukat.

Részletesebben

IDAXA-PiroSTOP HI1 Hurokkezelő 1 intelligens hurokhoz 2004/0177/063 Terméklap

IDAXA-PiroSTOP HI1 Hurokkezelő 1 intelligens hurokhoz 2004/0177/063 Terméklap IDAXA-PiroSTOP HI Hurokkezelő intelligens hurokhoz 24/77/63 Terméklap Hexium Kft. HI Terméklap Rev 2 2 Tartalomjegyzék. ISMERTETŐ... 3 2. HARDVER... 4 2. LED... 5 2.2 KAPCSOLAT A VEZ EGYSÉG FELÉ... 5 2.3

Részletesebben

MÉRÉS ÉS TESZTELÉS COBRA CONTROL. NATIONAL INSTRUMENTS Alliance Partner. GÖPEL ELECTRONIC és. DIGITALTEST disztribútor

MÉRÉS ÉS TESZTELÉS COBRA CONTROL. NATIONAL INSTRUMENTS Alliance Partner. GÖPEL ELECTRONIC és. DIGITALTEST disztribútor MÉRÉS ÉS TESZTELÉS COBRA CONTROL NATIONAL INSTRUMENTS Alliance Partner GÖPEL ELECTRONIC és DIGITALTEST disztribútor 1106 Budapest, Fehér út 10. Tel: +36 1 / 432-0270, Fax: +36 1 / 432-0282 RENDSZERINTEGRÁLÁS

Részletesebben

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei Kutató Intézet kisszámítógépes rendszerekben Tudományos számításokban gyakran nagy mennyiségű aritmetikai művelet elvégzésére van

Részletesebben

ismerd meg! A PC vagyis a személyi számítógép

ismerd meg! A PC vagyis a személyi számítógép ismerd meg! A PC vagyis a személyi számítógép A számítógép elsõ ránézésre A PC az angol Personal Computer rövídítése, jelentése: személyi számítógép. A szám í- tógépek rohamos elterjedésével a személyi

Részletesebben

1. Az utasítás beolvasása a processzorba

1. Az utasítás beolvasása a processzorba A MIKROPROCESSZOR A mikroprocesszor olyan nagy bonyolultságú félvezető eszköz, amely a digitális számítógép központi egységének a feladatait végzi el. Dekódolja az uatasításokat, vezérli a műveletek elvégzéséhez

Részletesebben

ELŐADÁS 2016-01-05 SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA

ELŐADÁS 2016-01-05 SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA ELŐADÁS 2016-01-05 SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA A PC FIZIKAI KIÉPÍTÉSÉNEK ALAPELEMEI Chip (lapka) Mikroprocesszor (CPU) Integrált áramköri lapok: alaplap, bővítőkártyák SZÁMÍTÓGÉP FELÉPÍTÉSE

Részletesebben

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások 8. Fejezet Processzor (CPU) és memória: The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley

Részletesebben

Dr. Kincses Zoltán, Dr. Vörösházi Zsolt: FPGA-alapú beágyazott rendszerek tervezése

Dr. Kincses Zoltán, Dr. Vörösházi Zsolt: FPGA-alapú beágyazott rendszerek tervezése Dr. Kincses Zoltán, Dr. Vörösházi Zsolt: FPGA-alapú beágyazott rendszerek tervezése A felsőfokú informatikai oktatás minőségének fejlesztése, modernizációja TÁMOP-4.1.2.A/1-11/1-2011-0104 Főkedvezményezett:

Részletesebben

Digitális elektronika gyakorlat

Digitális elektronika gyakorlat FELADATOK 1. Felhasználva az XSA 50 FPGA lapon található 100MHz-es programozható oszcillátort, tervezzetek egy olyan VHDL modult, amely 1 Hz-es órajelet állít elő. A feladat megoldható az FPGA lap órajelének

Részletesebben

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

Számítógépek felépítése, alapfogalmak 2. előadás Számítógépek felépítése, alapfogalmak Lovas Szilárd SZE MTK MSZT lovas.szilard@sze.hu B607 szoba Nem reprezentatív felmérés kinek van ilyen számítógépe? Nem reprezentatív felmérés kinek van

Részletesebben

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

Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással Megoldás Elméleti anyag: Processzor belső felépítése, adat

Részletesebben

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások 8. Fejezet Processzor (CPU) és memória: The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley

Részletesebben

DIGITÁLIS TECHNIKA. Szabó Tamás Dr. Lovassy Rita - Tompos Péter. Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar LABÓRATÓRIUMI ÚTMUTATÓ

DIGITÁLIS TECHNIKA. Szabó Tamás Dr. Lovassy Rita - Tompos Péter. Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar LABÓRATÓRIUMI ÚTMUTATÓ Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar Szabó Tamás Dr. Lovassy Rita - Tompos Péter DIGITÁLIS TECHNIKA LABÓRATÓRIUMI ÚTMUTATÓ 3. kiadás Mikroelektronikai és Technológia Intézet Budapest, 2014-1

Részletesebben

Jelfeldolgozó processzorok (DSP) Rekonfigurálható eszközök (FPGA)

Jelfeldolgozó processzorok (DSP) Rekonfigurálható eszközök (FPGA) Beágyazott elektronikus rendszerek (P-ITEEA_0033) Jelfeldolgozó processzorok (DSP) Rekonfigurálható eszközök (FPGA) 5. előadás 2015. március 11. Analóg jelfeldolgozás Analóg bejövő jelek (egy folyamat

Részletesebben

Szupermikroprocesszorok és alkalmazásaik

Szupermikroprocesszorok és alkalmazásaik Szupermikroprocesszorok és alkalmazásaik VAJDA FERENC MTA Központi Fizikai Kutató Intézet Mérés- és Számítástechnikai Kutató Intézet 1. Bevezetés ÖSSZEFOGLALÁS Egy rétegezett modell alapján mutatjuk be

Részletesebben

Autóipari beágyazott rendszerek

Autóipari beágyazott rendszerek Autóipari beágyazott rendszerek Dr. Fodor, Dénes Speiser, Ferenc Szerzői jog 2014 Pannon Egyetem A tananyag a TÁMOP-4.1.2.A/1-11/1-2011-0042 azonosító számú Mechatronikai mérnök MSc tananyagfejlesztés

Részletesebben

Apple Macintosh - A kezdetek és a jelen

Apple Macintosh - A kezdetek és a jelen Apple Macintosh - A kezdetek és a jelen 1984. január 22-én a Nemzeti Futball Liga döntőjében a Los Angeles csapata 38-9 arányban lemosta a pályáról a Washington gárdáját, azonban erre ma már szinte senki

Részletesebben

1. Kombinációs hálózatok mérési gyakorlatai

1. Kombinációs hálózatok mérési gyakorlatai 1. Kombinációs hálózatok mérési gyakorlatai 1.1 Logikai alapkapuk vizsgálata A XILINX ISE DESIGN SUITE 14.7 WebPack fejlesztőrendszer segítségével és töltse be a rendelkezésére álló SPARTAN 3E FPGA ba:

Részletesebben

4.1.1. I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA

4.1.1. I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA 4.1.1. I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA A címben található jelölések a mikrovezérlők kimentén megjelenő tipikus perifériák, típus jelzései. Mindegyikkel röviden foglalkozni fogunk a folytatásban.

Részletesebben

Programmable Chip. System on a Chip. Lazányi János. Tartalom. A hagyományos technológia SoC / PSoC SoPC Fejlesztés menete Mi van az FPGA-ban?

Programmable Chip. System on a Chip. Lazányi János. Tartalom. A hagyományos technológia SoC / PSoC SoPC Fejlesztés menete Mi van az FPGA-ban? System on a Chip Programmable Chip Lazányi János 2010 Tartalom A hagyományos technológia SoC / PSoC SoPC Fejlesztés menete Mi van az FPGA-ban? Page 2 1 A hagyományos technológia Elmosódó határvonalak ASIC

Részletesebben

Mérő- és vezérlőberendezés megvalósítása ARM alapú mikrovezérlővel és Linux-szal

Mérő- és vezérlőberendezés megvalósítása ARM alapú mikrovezérlővel és Linux-szal Mérő- és vezérlőberendezés megvalósítása ARM alapú mikrovezérlővel és Linux-szal Fuszenecker Róbert Budapesti Műszaki Főiskola Kandó Kálmán Műszaki Főiskolai Kar 2007. július 18. A mérőberendezés felhasználási

Részletesebben

11.2.1. Joint Test Action Group (JTAG)

11.2.1. Joint Test Action Group (JTAG) 11.2.1. Joint Test Action Group (JTAG) A JTAG (IEEE 1149.1) protokolt fejlesztették a PC-nyák tesztelő iapri képviselők. Ezzel az eljárással az addigiaktól eltérő teszt eljárás. Az integrált áramkörök

Részletesebben

Intelligens és összetett szenzorok

Intelligens és összetett szenzorok Intelligens és összetett szenzorok Galbács Gábor Összetett és intelligens szenzorok Bevezetés A mikroelektronika fejlődésével, a mikroprocesszorok (CPU), mikrokontrollerek (µc, MCU), mikroprogramozható

Részletesebben

IDAXA-PiroSTOP JFE RS485 intelligens repeater 2004/0177/0113 Terméklap

IDAXA-PiroSTOP JFE RS485 intelligens repeater 2004/0177/0113 Terméklap IDAXA-PiroSTOP JFE RS485 intelligens repeater 24/77/3 Terméklap Hexium Kft. JFE Terméklap Rev 2 2 Tartalomjegyzék. ISMERTETŐ... 3 2. HARDVER... 4 2. LED... 6 2.2 KAPCSOLAT A VKGY GYŰRŰVEL... 6 2.3 KAPCSOLAT

Részletesebben

A PC története. Informatika alapjai-9 Személyi számítógép (PC) 1/12. (Personal computer - From Wikipedia, the free encyclopedia)

A PC története. Informatika alapjai-9 Személyi számítógép (PC) 1/12. (Personal computer - From Wikipedia, the free encyclopedia) Informatika alapjai-9 Személyi számítógép (PC) 1/12 (Personal computer - From Wikipedia, the free encyclopedia) A személyi számítógépet ára, mérete és képességei és a használatában kialakult kultúra teszik

Részletesebben

erettsegizz.com Érettségi tételek

erettsegizz.com Érettségi tételek erettsegizz.com Érettségi tételek Az informatika fejlődéstörténete, jogi ismeretek Információ és társadalom Az informatika fejlődéstörténete a XX. Században, napjainkban Jogi ismeretek, szerzőjog, szoftver

Részletesebben

SYS700-R ROUTER modul DDC rendszerelemek, DIALOG-III család

SYS700-R ROUTER modul DDC rendszerelemek, DIALOG-III család DDC rendszerelemek, DIALOG-III család -- 009. március KIVITEL ALKALMAZÁS A SYS00-R a Dialog-III készülékcsalád ROUTER készüléke, amely kifejezetten épületgépészeti automatika kommunikációs feladatok ellátására

Részletesebben

Tervezési módszerek programozható logikai eszközökkel

Tervezési módszerek programozható logikai eszközökkel Pannon Egyetem, MIK-VIRT, Veszprém Dr. VörösháziZsolt voroshazi.zsolt@virt.uni-pannon.hu Tervezési módszerek programozható logikai eszközökkel 7. VHDL FELADATOK: Speciális nyelvi szerkezetek. Sorrendi

Részletesebben

ISE makró (saját alkatrész) készítése

ISE makró (saját alkatrész) készítése ISE makró (saját alkatrész) készítése 1. Makró (saját alkatrész) hozzáadása meglévő projekthez... 2 1.1. Kapcsolási rajz alapú makró készítése... 2 1.2. Kapcsolási rajz alapú saját makró javítása... 4

Részletesebben

IBM Power 550 Express szerver

IBM Power 550 Express szerver IBM Power 550 Express szerver Ideális megoldás alkalmazás-, középméretû adatbázisvagy Linux konszolidációs szerverként egyaránt A Power 550 Express torony és rackbe szerelhetô változata Fôbb jellemzôk:

Részletesebben

TI TMDSEVM6472 rövid bemutatása

TI TMDSEVM6472 rövid bemutatása 6.6.1. Linux futtatása TMDSEVM6472 eszközön TI TMDSEVM6472 rövid bemutatása A TMDSEVM6472 az alábbi fő hardver paraméterekkel rendelkezik: 1db fix pontos, több magos (6 C64x+ mag) C6472 DSP 700MHz 256MB

Részletesebben

A PC története. Informatika alapjai-9 Személyi számítógép (PC) 1/15. (Personal computer - From Wikipedia, the free encyclopedia)

A PC története. Informatika alapjai-9 Személyi számítógép (PC) 1/15. (Personal computer - From Wikipedia, the free encyclopedia) Informatika alapjai-9 Személyi számítógép (PC) 1/15 (Personal computer - From Wikipedia, the free encyclopedia) A személyi számítógépet ára, mérete és képességei és a használatában kialakult kultúra teszik

Részletesebben

LOGSYS LOGSYS ECP2 FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ. 2012. szeptember 18. Verzió 1.0. http://logsys.mit.bme.hu

LOGSYS LOGSYS ECP2 FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ. 2012. szeptember 18. Verzió 1.0. http://logsys.mit.bme.hu LOGSYS ECP2 FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ 2012. szeptember 18. Verzió 1.0 http://logsys.mit.bme.hu Tartalomjegyzék 1 Bevezetés... 1 2 Memóriák... 3 2.1 Aszinkron SRAM... 3 2.2 SPI buszos soros FLASH

Részletesebben

LOGIKAI TERVEZÉS. Előadó: Dr. Oniga István Egytemi docens

LOGIKAI TERVEZÉS. Előadó: Dr. Oniga István Egytemi docens LOGIKAI TERVEZÉS PROGRAMOZHATÓ ÁRAMKÖRÖKKEL Előadó: Dr. Oniga István Egytemi docens A tárgy weboldala http://irh.inf.unideb.hu/user/onigai/ltpa/logikai_tervezes.htmltervezes.html Adminisztratív információk

Részletesebben

Máté: Számítógép architektúrák 2010.12.01.

Máté: Számítógép architektúrák 2010.12.01. Máté: Számítógép architektúrák... A feltételes ugró utasítások eldugaszolják a csővezetéket Feltételes végrehajtás (5.5 5. ábra): Feltételes végrehajtás Predikáció ió C pr. rész Általános assembly Feltételes

Részletesebben

PROTOTÍPUSKÉSZÍTÉS. Előadó: Dr. Oniga István

PROTOTÍPUSKÉSZÍTÉS. Előadó: Dr. Oniga István PROTOTÍPUSKÉSZÍTÉS VERILOG NYELVEN Előadó: Dr. Oniga István A tárgy weboldala http://irh.inf.unideb.hu/user/onigai/pvn/verilog.html Adminisztratív információk Tárgy: Oktató: tó Dr. Oniga István (oniga.istvan@inf.unideb.hu)

Részletesebben

Bevezető előadás Mikrórendszerek összahasonlítása.dsp bevezető

Bevezető előadás Mikrórendszerek összahasonlítása.dsp bevezető Bevezető előadás Mikrórendszerek összahasonlítása.dsp bevezető A DSP (Digital Signal Processor) mikrórendszer a világon a legelterjedtebb beágyazott rendszerben használt processzor. A DSP tulajdonságok

Részletesebben

Bevezetés, platformok. Léczfalvy Ádám leczfalvy.adam@nik.bmf.hu

Bevezetés, platformok. Léczfalvy Ádám leczfalvy.adam@nik.bmf.hu Bevezetés, platformok Léczfalvy Ádám leczfalvy.adam@nik.bmf.hu Mobil készülékek és tulajdonságaik A mobil eszközök programozása, kihívások, nehézségek Mobilprogramozási platformok Java Micro Edition.NET

Részletesebben

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb Input és Output 1 Bevitel-Kivitel Eddig a számítógép agyáról volt szó Processzusok, memória, stb Szükség van eszközökre Adat bevitel és kivitel a számitógépből, -be Perifériák 2 Perifériákcsoportosításá,

Részletesebben

MEMÓRIA TECHNOLÓGIÁK. Számítógép-architektúrák 4. gyakorlat. Dr. Lencse Gábor. tudományos főmunkatárs BME Híradástechnikai Tanszék lencse@hit.bme.

MEMÓRIA TECHNOLÓGIÁK. Számítógép-architektúrák 4. gyakorlat. Dr. Lencse Gábor. tudományos főmunkatárs BME Híradástechnikai Tanszék lencse@hit.bme. MEMÓRIA TECHNOLÓGIÁK Számítógép-architektúrák 4. gyakorlat Dr. Lencse Gábor 2011. október 3., Budapest tudományos főmunkatárs BME Híradástechnikai Tanszék lencse@hit.bme.hu Tartalom Emlékeztető: mit kell

Részletesebben

ARM Cortex magú mikrovezérlők

ARM Cortex magú mikrovezérlők ARM Cortex magú mikrovezérlők Tárgykövetelmények, tematika Scherer Balázs Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2018 Házi feladat: kötelező

Részletesebben

Nagy Gergely április 4.

Nagy Gergely április 4. Mikrovezérlők Nagy Gergely BME EET 2012. április 4. ebook ready 1 Bevezetés Áttekintés Az elektronikai tervezés eszközei Mikroprocesszorok 2 A mikrovezérlők 3 Főbb gyártók Áttekintés A mikrovezérlők az

Részletesebben

AUDIO ENGINEERING SOCIETY

AUDIO ENGINEERING SOCIETY HUNGARIAN SECTION HÍREK MAGYAR TAGOZAT Szerkeszti: dr. Takács Ferenc, Titkár 36. szám. 2002. március 26. PRO TOOLS HD Mérföldk a Digidesign történetében A Digidesign története a nyolcvanas évek közepére

Részletesebben

VLIW processzorok (Működési elvük, jellemzőik, előnyeik, hátrányaik, kereskedelmi rendszerek)

VLIW processzorok (Működési elvük, jellemzőik, előnyeik, hátrányaik, kereskedelmi rendszerek) SzA35. VLIW processzorok (Működési elvük, jellemzőik, előnyeik, hátrányaik, kereskedelmi rendszerek) Működési elvük: Jellemzőik: -függőségek kezelése statikusan, compiler által -hátránya: a compiler erősen

Részletesebben

[cimke:] [feltétel] utasítás paraméterek [; megjegyzés]

[cimke:] [feltétel] utasítás paraméterek [; megjegyzés] Szoftver fejlesztés Egy adott mikroprocesszoros rendszer számára a szükséges szoftver kifejlesztése több lépésből áll: 1. Forrás nyelven megírt program(ok) lefordítása gépi kódra, amihez megfelelő fejlesztő

Részletesebben

Témakiírások 2014/15. őszi félévben

Témakiírások 2014/15. őszi félévben Témakiírások 2014/15. őszi félévben Témavezető: Dr. Vörösházi Zsolt voroshazi@vision.vein.hu voroshazi.zsolt@virt.uni-pannon.hu Veszprém, 2014. szeptember 9. Témaismertetés #1 National Instruments - LabView

Részletesebben

Ipari Robotok Programozása

Ipari Robotok Programozása Ipari Robotok Programozása Vezérlő, StartUp, Szoftverszintek, programozási nyelvek Előadó: Nagy István n (A65) Gyakorlatvezető: : Tolnai András Ajánlott irodalom: B. Leatham-Jones: Elements of Industrial

Részletesebben

3. Az elektronikus számítógépek fejlődése napjainkig 1

3. Az elektronikus számítógépek fejlődése napjainkig 1 2. Az elektronikus számítógépek fejlődése napjainkig Vázold fel az elektronikus eszközök fejlődését napjainkig! Részletesen ismertesd az egyes a számítógép generációk technikai újdonságait és jellemző

Részletesebben

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Bevezetés A laborgyakorlatok alapvető célja a tárgy későbbi laborgyakorlataihoz szükséges ismeretek átadása, az azokban szereplő

Részletesebben

7.2.2. A TMS320C50 és TMS320C24x assembly programozására példák

7.2.2. A TMS320C50 és TMS320C24x assembly programozására példák 7.2.2. A TMS320C50 és TMS320C24x assembly programozására példák A TMS320C50 processzor Ez a DSP processzor az 1.3. fejezetben lett bemutatva. A TMS320C50 ##LINK: http://www.ti.com/product/tms320c50## egy

Részletesebben

(BMEVIMIM322) Az NI 9263 DA és NI 9239 AD kártyákra alapuló mérések NI crio-9074 platformon. (BME-MIT-Beágyazott Rendszerek Csoport)

(BMEVIMIM322) Az NI 9263 DA és NI 9239 AD kártyákra alapuló mérések NI crio-9074 platformon. (BME-MIT-Beágyazott Rendszerek Csoport) Információfeldolgozás laboratórium (BMEVIMIM322) Tárgyfelelős: dr. Sujbert László Az NI 9263 DA és NI 9239 AD kártyákra alapuló mérések NI crio-9074 platformon Krébesz Tamás és dr. Sujbert László (BME-MIT-Beágyazott

Részletesebben

INFORMATIKA E42-101 I. előadás Facskó Ferenc egyetemi adjunktus Adat Információ Adat: a világ állapotát leíró jel Információ: adat értelmezési környezetben (dimenzió, viszonyítás) Tudás: felhalmozott,

Részletesebben

S7021 ADATGYŰJTŐ. 2-csatornás adatgyűjtő számláló és bináris bemenettel. Kezelési leírás

S7021 ADATGYŰJTŐ. 2-csatornás adatgyűjtő számláló és bináris bemenettel. Kezelési leírás S7021 ADATGYŰJTŐ 2-csatornás adatgyűjtő számláló és bináris bemenettel Kezelési leírás Nem hivatalos fordítás! Minden esetleges eltérés esetén az eredeti, angol nyelvű dokumentum szövege tekintendő irányadónak:

Részletesebben

Virtualizációs Technológiák Bevezetés Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák https://www.vik.bme.hu/kepzes/targyak/vimiav89/

Virtualizációs Technológiák Bevezetés Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák https://www.vik.bme.hu/kepzes/targyak/vimiav89/ Virtualizációs Technológiák Bevezetés Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák https://www.vik.bme.hu/kepzes/targyak/vimiav89/ Mi is az a Virtualizáció? Az erőforrások elvonatkoztatása az

Részletesebben

TELL AMR-08. Távfelügyeleti Vevő

TELL AMR-08. Távfelügyeleti Vevő TELL AMR-08 Távfelügyeleti Vevő Telepítői Kézikönyv 2014.01.29. TARTALOMJEGYZÉK 1. BEVEZETÉS...3 2. RENDSZER FELÉPÍTÉS...3 2.1 CPM kártya...3 2.2 LC vonalkártya (opcionális)...4 2.3 PWR tápegység...4 2.4

Részletesebben

Az INTEL D-2920 analóg mikroprocesszor alkalmazása

Az INTEL D-2920 analóg mikroprocesszor alkalmazása Az INTEL D-2920 analóg mikroprocesszor alkalmazása FAZEKAS DÉNES Távközlési Kutató Intézet ÖSSZEFOGLALÁS Az INTEL D 2920-at kifejezetten analóg feladatok megoldására fejlesztették ki. Segítségével olyan

Részletesebben

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő)

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő) Memóriák (felejtő) Memória Kapacitás Ár Sebesség Memóriák - tárak Háttértár (nem felejtő) Memória Vezérlő egység Központi memória Aritmetikai Logikai Egység (ALU) Regiszterek Programok Adatok Ez nélkül

Részletesebben

Digitális rendszerek. I. rész. Dr. Turóczi Antal turoczi.antal@nik.uni-obuda.hu

Digitális rendszerek. I. rész. Dr. Turóczi Antal turoczi.antal@nik.uni-obuda.hu Digitális rendszerek I. rész Dr. Turóczi Antal turoczi.antal@nik.uni-obuda.hu A tárgy célja Bevezető Digitális rendszertervezés alapjai Programozható logikai áramkörök Hardverleíró nyelvek (VHDL) A digitális

Részletesebben

Nagyteljesítményű mikrovezérlők

Nagyteljesítményű mikrovezérlők Nagyteljesítményű mikrovezérlők 4. Cortex M0, M4, M7 Scherer Balázs Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2015 ARM Cortex M (Mikrovezérlő)

Részletesebben

Gyümölcsöző megoldások

Gyümölcsöző megoldások Gyümölcsöző megoldások Mi mindenre használható egy bankkártya méretű számítógép? Németh Gábor www.rpibolt.hu Mi is az a Raspberry PI? Raspberry PI Foundation Bankkártya méretű számítógép TV-re, monitorra

Részletesebben

ARM Cortex magú mikrovezérlők

ARM Cortex magú mikrovezérlők ARM Cortex magú mikrovezérlők Tárgykövetelmények, tematika Scherer Balázs Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2016 Lehetőségek: o Hardware

Részletesebben

Számrendszerek. Átváltás a számrendszerek között: Általában 10-es számrendszerből váltunk tetszőlegesre és tetszőlegest 10-esre.

Számrendszerek. Átváltás a számrendszerek között: Általában 10-es számrendszerből váltunk tetszőlegesre és tetszőlegest 10-esre. Számrendszerek Tízes számrendszer: Ez az általános, informatikán kívül is használt legelterjedtebb számrendszer. Alapja 10 szám 0,1,2,3 9. Decimális számrendszernek is nevezzük. Egyik felhasználása az

Részletesebben

12. NYOMÓGOMBOK ÉS KAPCSOLÓK PERGÉSMENTESÍTÉSE A FEJLESZTŐLAPON

12. NYOMÓGOMBOK ÉS KAPCSOLÓK PERGÉSMENTESÍTÉSE A FEJLESZTŐLAPON 12. NYOMÓGOMBOK ÉS KAPCSOLÓK PERGÉSMENTESÍTÉSE A FEJLESZTŐLAPON 1 Az FPGA eszközök bemeneti jeleit gyakran mechanikai kapcsolókkal hozzuk létre. Használható váltókapcsoló, amely a nulla és az egyes logikai

Részletesebben

I. Bevezető, az elektronikai tervezés során felmerülő megoldandó problémák rövid összefoglalása

I. Bevezető, az elektronikai tervezés során felmerülő megoldandó problémák rövid összefoglalása I. Bevezető, az elektronikai tervezés során felmerülő megoldandó problémák rövid összefoglalása 1 A egy új tervezési módszertan bevezetését az alábbi tényezők indokolják Az elektronikus eszközök bonyolultságának,

Részletesebben

Egyszerű RISC CPU tervezése

Egyszerű RISC CPU tervezése IC és MEMS tervezés laboratórium BMEVIEEM314 Budapesti Műszaki és Gazdaságtudományi Egyetem Egyszerű RISC CPU tervezése Nagy Gergely Elektronikus Eszközök Tanszéke (BME) 2013. február 14. Nagy Gergely

Részletesebben

Programozás és digitális technika II. Logikai áramkörök. Pógár István Debrecen, 2016

Programozás és digitális technika II. Logikai áramkörök. Pógár István Debrecen, 2016 Programozás és digitális technika II. Logikai áramkörök Pógár István pogari@eng.unideb.hu Debrecen, 2016 Gyakorlatok célja 1. Digitális tervezés alapfogalmainak megismerése 2. A legelterjedtebb FPGA-k

Részletesebben

Digitális elektronika gyakorlat

Digitális elektronika gyakorlat FELADATOK 1. Tervezzetek egy félösszeadó VHDL modult 2. Tervezzetek egy teljes összeadó VHDL modult 3. Schematic Editor segítségével tervezzetek egy 4 bit-es öszeadó áramkört. A két bemeneti számot a logikai

Részletesebben

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

Számítógép Architektúrák Cache memória Horváth Gábor 2016. március 30. Budapest docens BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu Már megint a memória... Mindenről a memória tehet. Mert lassú. A virtuális

Részletesebben

A MiniRISC processzor

A MiniRISC processzor BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK A MiniRISC processzor Fehér Béla, Raikovich Tamás, Fejér Attila BME MIT

Részletesebben

Bevitel-Kivitel. Bevitel-Kivitel és Perifériák. Algoritmusok és Alkalmazásaik Tanszék Budapest. 2005. december 16.

Bevitel-Kivitel. Bevitel-Kivitel és Perifériák. Algoritmusok és Alkalmazásaik Tanszék Budapest. 2005. december 16. Architektúrák és operációs rendszerek Balogh Ádám, Lőrentey Károly Eötvös Loránd Tudományegyetem Algoritmusok és Alkalmazásaik Tanszék Budapest 2005. december 16. Tartalomjegyzék Perifériák 1 Perifériák

Részletesebben

Villamos jelek mintavételezése, feldolgozása. Mérésadatgyűjtés, jelfeldolgozás 9. előadás

Villamos jelek mintavételezése, feldolgozása. Mérésadatgyűjtés, jelfeldolgozás 9. előadás Villamos jelek mintavételezése, feldolgozása (ellenállás mérés LabVIEW támogatással) Számítógépes mérőrendszerek Mérésadatgyűjtés, jelfeldolgozás 9. előadás Dr. Iványi Miklósné, egyetemi tanár Schiffer

Részletesebben

0 0 1 Dekódolás. Az órajel hatására a beolvasott utasítás kód tárolódik az IC regiszterben, valamint a PC értéke növekszik.

0 0 1 Dekódolás. Az órajel hatására a beolvasott utasítás kód tárolódik az IC regiszterben, valamint a PC értéke növekszik. Teszt áramkör A CPU ból és kiegészítő áramkörökből kialakított számítógépet összekötjük az FPGA kártyán lévő ki és bemeneti eszközökkel, hogy az áramkör működése tesztelhető legyen. Eszközök A kártyán

Részletesebben

Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék DARU IRÁNYÍTÁSA

Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék DARU IRÁNYÍTÁSA Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék DARU IRÁNYÍTÁSA Önálló laboratórium beszámoló Készítette: Menyhárt Balázs BDVUD4

Részletesebben

Végh János Bevezetés a Verilog hardver leíró nyelvbe INCK??? előadási segédlet

Végh János Bevezetés a Verilog hardver leíró nyelvbe INCK??? előadási segédlet 1 Debreceni Egyetem Informatikai Kara Végh János Bevezetés a Verilog hardver leíró nyelvbe INCK??? előadási segédlet V0.30@14.11.07 Tartalomjegyzék (folyt) 2 Tartalomjegyzék I. Alapfogalmak 1.. A digitális

Részletesebben

8. hét Véges állapotú gépek

8. hét Véges állapotú gépek 8. hét Véges állapotú gépek 8.1. Bevezetés: A véges állapotú gépek definíciója Korábbi előadásokon már tisztáztuk a logikai hálózat fogalmát. Logikai hálózatnak nevezzük azokat a rendszereket, melyeknek

Részletesebben

Cache, Cache és harmadszor is Cache

Cache, Cache és harmadszor is Cache Cache, Cache és harmadszor is Cache Napjainkban, a XXI. században bátran kijelenthetjük, hogy a számítógépek korát éljük. A digitális rendszerek mára a modern ember életének meghatározó szereplőjévé váltak.

Részletesebben

Szükséges ismeretek: C programozási nyelv; mikrokontrollerek; méréstechnika; analóg és digitális elektronika; LabView

Szükséges ismeretek: C programozási nyelv; mikrokontrollerek; méréstechnika; analóg és digitális elektronika; LabView Pozícióérzékelés szilárd közegben terjedő akusztikus jelek segítségével Ha egy szilárd közeg egy pontján akusztikus jelet keltünk, az a közegben szétterjed és annak több pontján detektálható. A közeg (például

Részletesebben

MISKOLCI EGYETEM VILLAMOSMÉRNÖKI INTÉZET AUTOMATIZÁLÁSI TANSZÉK

MISKOLCI EGYETEM VILLAMOSMÉRNÖKI INTÉZET AUTOMATIZÁLÁSI TANSZÉK MISKOLCI EGYETEM VILLAMOSMÉRNÖKI INTÉZET AUTOMATIZÁLÁSI TANSZÉK ZÁRÓVIZSGA TEMATIKA Főiskolai szintű Villamosmérnöki szak Nappali tagozat FOLYAMATIRÁNYÍTÁSI ÉS KOMMUNIKÁCIÓTECHNIKAI SZAKISMERETEK (FVA)

Részletesebben

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

A számítógép alapfelépítése Informatika alapjai-6 számítógép felépítése 1/8 számítógép alapfelépítése Nevezzük számítógépnek a következő kétféle elrendezést: : Harvard struktúra : Neumann struktúra kétféle elrendezés alapvetően egyformán

Részletesebben

BEACon TM. Verzió 2.0

BEACon TM. Verzió 2.0 BEACon TM Verzió 2.0 A Suprema Inc., a BioEntry TM és a BEACon TM a Suprema Inc. regisztrált márkanevei. Minden jog fenntartva. Ennek a munkának semmilyen részét, ami ezek a márkanevek alatt fut nem lehet

Részletesebben

A HV-PCI6 VIDEODIGITALIZÁLÓ KÁRTYA ÉS ALKALMAZÁSAI (HV-PCI6 Video Digitizing Card and its Applications)

A HV-PCI6 VIDEODIGITALIZÁLÓ KÁRTYA ÉS ALKALMAZÁSAI (HV-PCI6 Video Digitizing Card and its Applications) A HV-PCI6 VIDEODIGITALIZÁLÓ KÁRTYA ÉS ALKALMAZÁSAI (HV-PCI6 Video Digitizing Card and its Applications) Ladányi Zoltán, Ladányi Péter, Máthé József, Nagy Ferenc, Nagy Tamás, Patkó Tamás Hexium Műszaki

Részletesebben

INFORMATIKA ZÁRÓSZIGORLAT TEMATIKA

INFORMATIKA ZÁRÓSZIGORLAT TEMATIKA INFORMATIKA ZÁRÓSZIGORLAT TEMATIKA 1. a) A Neumann-elvű számítógép: CPU, Neumann ciklus, operatív memória, I/O. A DMA és regiszterei, IRQ és megszakításkezelés, a memóriába ágyazott és a külön kezelt perifériacímzés.

Részletesebben

Budapesti Műszaki- és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar MIT. Nagyteljesítményű mikrovezérlők tantárgy [vimim342]

Budapesti Műszaki- és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar MIT. Nagyteljesítményű mikrovezérlők tantárgy [vimim342] Budapesti Műszaki- és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar MIT Nagyteljesítményű mikrovezérlők tantárgy [vimim342] 8x8x8 LED Cube Készítette: Szikra István URLJRN Tartalomjegyzék

Részletesebben

Kulcsfogalmak. Hardver. CPU RAM ROM I/O egységek. Szoftver. operációs rendszer felhasználói szoftverek

Kulcsfogalmak. Hardver. CPU RAM ROM I/O egységek. Szoftver. operációs rendszer felhasználói szoftverek Autók mechatronikája - informatika, elektronika, villamosság 1. modul: A jármű főegységek villamos, elektronikai és informatikai egységei 1. lecke. Kiegészítő tananyag: Számítógépek általános jellemzői

Részletesebben