Képfeldolgozó vezérlıegység fejlesztése programozható hardverkörnyezetben



Hasonló dokumentumok
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?

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

Mikrorendszerek tervezése

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

Digitális eszközök típusai

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

Irányítástechnika Elıadás. PLC rendszerek konfigurálása

Rendszertervezés FPGA eszközökkel

PROGRAMOZHATÓ LOGIKAI ESZKÖZÖK. Elıadó: Dr. Oniga István Egytemi docens

A PET-adatgy informatikai háttereh. Nagy Ferenc Elektronikai osztály, ATOMKI

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

Előadó: Nagy István (A65)

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

SEGÉDLET. A TTMER102 - FPGA-alapú hálózati eszközfejlesztés című méréshez

2004 Xilinx, Inc. All Rights Reserved. EDK Overview Xilinx, Inc. All Rights Reserved

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

Joint Test Action Group (JTAG)

Ezeket a kiemelkedı sebességő számítógépeket nevezzük szuperszámítógépeknek.

A Xilinx FPGA-k. A programozható logikákr. Az FPGA fejlesztés s menete. BMF KVK MAI, Molnár Zsolt, 2008.

Szárazföldi autonóm mobil robotok vezérlőrendszerének kialakítási lehetőségei. Kucsera Péter ZMNE Doktorandusz

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Ó

BEÁGYAZOTT RENDSZEREK TERVEZÉSE UDP csomag küldése és fogadása beágyazott rendszerrel példa

1. DIGITÁLIS TERVEZÉS PROGRAMOZHATÓ LOGIKAI ÁRAMKÖRÖKKEL (PLD)

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

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

Útjelzések, akadályok felismerése valós időben

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

Programozó- készülék Kezelőkozol RT óra (pl. PC) Digitális bemenetek ROM memória Digitális kimenetek RAM memória Analóg bemenet Analóg kimenet

Linear Motion and Assembly Technologies Pneumatics Service

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

Intelligens biztonsági megoldások. Távfelügyelet

Csoportos üzenetszórás optimalizálása klaszter rendszerekben

Digitális technika (VIMIAA02) Laboratórium 3

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

Digitális technika (VIMIAA02) Laboratórium 3

Programozási segédlet DS89C450 Fejlesztőpanelhez

WAGO PLC-vel vezérelt hő- és füstelvezetés

Integrált áramkörök/5 ASIC áramkörök

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

Irányítástechnika Elıadás. Programozható logikai vezérlık

ASZTALI DIGITÁLIS VIDEÓRÖGZÍTİ EVD-04/025A1MJU FELHASZNÁLÓI KÉZIKÖNYV

USB adatgyűjtő eszközök és programozásuk Mérő- és adatgyűjtő rendszerek

Szaniszló Gábor, ABB Kft MEE szakmai nap elıadás, Az IEC61850-es szabvány gyakorlati alkalmazása. ABB Group June 1, 2010 Slide 1

PAL és s GAL áramkörök

Digitális technika VIMIAA hét

Scherer Balázs: Mikrovezérlık fejlıdési trendjei

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

Adatstruktúrák, algoritmusok, objektumok

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

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

Mobil Peer-to-peer rendszerek

10. EGYSZERŰ HÁLÓZATOK TERVEZÉSE A FEJLESZTŐLAPON Ennél a tervezésnél egy olyan hardvert hozunk létre, amely a Basys2 fejlesztőlap két bemeneti

Új kompakt X20 vezérlő integrált I/O pontokkal

Nagy Gergely április 4.

Digitális technika VIMIAA hét

A Microsoft terminálszolgáltatás ügyfél oldali hardverigényének meghatározása

MÉRNÖK-SZÓTÁR. számítógépes program rendszer. magyar-angol-német-orosz és más nyelvek. Mérnökök által összeállított szakmai szótárak, szakembereknek!

Orvosi készülékekben használható modern fejlesztési technológiák lehetőségeinek vizsgálata

Java I. A Java programozási nyelv

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

Kombinációs áramkörök modelezése Laborgyakorlat. Dr. Oniga István

Számítógép felépítése

SZENZORMODUL ILLESZTÉSE LEGO NXT PLATFORMHOZ. Készítette: Horváth András MSc Önálló laboratórium 2 Konzulens: Orosz György

DIGITÁLIS TECHNIKA I

Autóipari beágyazott rendszerek Dr. Balogh, András

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

Napjainkban a korábbiaknál is nagyobb szükségünk van arra, hogy eszközeink rugalmasak legyenek és gyorsan igazodjanak a változó környezethez.

Microblaze Micro Controller

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

Termeléshatékonyság mérés Ipar 4.0 megoldásokkal a nyomdaiparban

The modular mitmót system. 433, 868MHz-es ISM sávú rádiós kártya

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

QuickSend. , és SMS küldés program. Felhasználói kézikönyv. Program dokumentáció 2008 JMGM Magyarország Informatikai Kft.

PAL és GAL áramkörök. Programozható logikai áramkörök. Előadó: Nagy István

Laboratóriumi műszerek megvalósítása ARM alapú mikrovezérlővel és Linux-szal

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

VIII. BERENDEZÉSORIENTÁLT DIGITÁLIS INTEGRÁLT ÁRAMKÖRÖK (ASIC)

Intelligens Autonom Kamera Modul (IAKM)

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar

Prolan Zrt. fejlesztéseiben. Petri Dániel

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

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

3D számítógépes geometria és alakzatrekonstrukció

Digitális technika VIMIAA01 9. hét

TELE-OPERATOR UTS v.14 Field IPTV műszer. Adatlap

1. Digitális írástudás: a kőtáblától a számítógépig 2. Szedjük szét a számítógépet 1. örök 3. Szedjük szét a számítógépet 2.

A Netburner fejlesztőeszköz alkalmazástechnikája

6.2. TMS320C64x és TMS320C67xx DSP használata

Digitális technika (VIMIAA02) Laboratórium 5.5

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

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

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

IoT alapú mezőgazdasági adatgyűjtő prototípus fejlesztési tapasztalatok

ÖNÁLLÓ LABOR Mérésadatgyűjtő rendszer tervezése és implementációja

Folyamatirányítás NIVISION FOLYAMATKIJELZÔ RENDSZER

Közösség, projektek, IDE

Operációs rendszerek

Az Innováció és az ember avagy: Miért (nem) szeretnek a felhasználók kattintani?

Részletes Hardver- és Szoftvertervezés

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. 0. TANTÁRGY ISMERTETŐ

Átírás:

Képfeldolgozó vezérlıegység fejlesztése programozható hardverkörnyezetben Kardos László Budapesti Mőszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék Mérnök Informatikus Szak (Master of Science) Budapest, 2009 Konzulens: Vajda Ferenc PhD, adjunktus

BEVEZETÉS...3 ALAPISMERETEK...5 Field Programmable Gate Array (FPGA)... 5 Az FPGA-k architektúrája... 6 Az FPGA-k programozása... 6 Modern fejlesztések... 7 FELHASZNÁLT ESZKÖZÖK...8 Hardvereszközök... 8 A Xilinx University Program Virtex-II Pro (XUPV2P) panel... 8 VDEC1 Video Decoder Board... 10 Kamera... 10 Szoftvereszközök... 11 Xilinx ISE Foundation 9.1i... 11 Xilinx ISE Embedded Developers Kit (EDK) 9.1... 11 Szoftverkörnyezet... 12 A TÉMA IRODALMA...13 A pipeline struktúra... 13 A TCP/IP kommunikáció megvalósítása FPGA-n... 14 A FÉLÉVI MUNKA BEMUTATÁSA...17 A beágyazott processzor, mint feldolgozó egység... 17 A kommunikáció kiépítése... 19 ÖSSZEFOGLALÁS...21 FELHASZNÁLT IRODALOM...22

Bevezetés Napjainkban a digitális képfeldolgozás gyors fejlıdése, mind a fogyasztói, mind az ipari szektorokban szignifikánsan magas elvárásokat hozott az olyan mérnökök számára, akik kiváló minıségő termékeket akarnak elıállítani. Ahhoz, hogy a lehetı legjobb képeket lehessen kinyerni a felvevı eszközökbıl, illetve ezek feldolgozására számos megfelelıen szofisztikált algoritmus létezik. Ezek implementálása azonban gyakran limitált, különbözı hátráltató tényezık miatt. Ilyen például az algoritmusok komplexitása, a fejlesztési módok, szabványok különbözısége. Szintén jelen van az állandó nyomás az anyagköltségek csökkentésére és a rendszerek testreszabhatóságára. A digitális képfeldolgozás alapvetı célja, hogy olyan rendszereket alkossunk, amelyek képi információt tudnak automatikusan feldolgozni, és azok alapján döntéseket hozni. Mindezt sokkalta gyorsabban és konzekvensebben kell tenniük, mint egy megfelelı képességekkel felruházott emberi megfigyelı. Ehhez nyújtanak segítséget jelen technológia szerint az FPGA (Field Programmable Gate Array) hardverek. Ezek a szoftveres fejlesztıkörnyezetbıl konfigurálható hardver eszközök a számításigényes feladatok széles terén (így például videojelek valósidejő feldolgozására) gyorsabb megoldást nyújtanak, mint más tisztán szoftveres megoldások. A korábbi féléves munkám során elkészítettem egy ilyen hardveres képfeldolgozó rendszert, különös tekintettel annak vezérlıegységére. A feladatom ebben a félévben ennek a rendszernek a továbbfejlesztése volt. A továbbfejlesztési feladat két részfeladatra volt bontható. Elsıként meg kellett vizsgálnom a processzor feldolgozó egységként történı felhasználását, másodsorban pedig a rendszerre ki kellett dolgoznom egy megvalósítást PC-vel történı nagy sávszélességő kommunikációra.

A dokumentum ezek alapján a következıképpen tagolódik. A második fejezet olyan alapismereteket mutat be, amelyek elengedhetetlenek a megértés és a tervezés során. Így kiemelt szerepet kapnak az FPGA-k. Külön alfejezet foglalkozik azok architektúrájával, illetve programozásával. Emellett rövid betekintést nyerhet az olvasó a modern beágyazott mikroprocesszorral rendelkezı FPGA hardverek típusaiba. A harmadik fejezet a megoldás során felhasznált eszközökkel foglalkozik, mind hardver, mind szoftver irányban. A hardvereszközök alfejezet három egység bemutatásával foglalkozik. A Xilinx Virtex-II Pro FPGA Xilinx University Program keretében megvalósított paneljának a feladat megoldásában szükséges részletei kerülnek ismertetésre, majd konkrétan magának az FPGA-nak az elsıdleges tulajdonságait mutatja be az alfejezet. Ezután a VDEC1 video dekóder egység ismertetése következik, majd a hozzá kapcsolt kamera legfontosabb tulajdonságairól kaphat információt az olvasó. A szoftvereszközök alfejezet a fejlesztés során használt szoftverek rövid bemutatásával foglalkozik. Így részletezésre kerül a Xilinx ISE Foundation 9.1i verziója, a Xilinx ISE Embedded Developers Kit (EDK) 9.1 verziója és a feladat megoldása során használt szoftverkörnyezet. A negyedik fejezet a feladat megoldásában használt korábbi irodalmakat veszi sorra, így külön figyelmet szentelve a pipeline struktúrás megoldásokra és a nagy sávszélességő kommunikáció FPGA-n történı megvalósítására. Az ötödik fejezetben a félévi munka kerül bemutatásra, így a korábbiakban ismertetett irodalom szerinti továbbfejlesztést ismertetem, kitérve az ezzel kapcsolatos nehézségekre, hátráltató tényezıkre. A hetedik fejezetben a munka összefoglalása található, különös tekintettel az elvégzett munka eredményére, annak hatékonyságára, kitérve egyéb továbbfejlesztési lehetıségekre.

Alapismeretek A beágyazott rendszerek szakterülete számos programozható eszközt állít lehetıségként a képfeldolgozási feladatok megvalósítására. Ezen eszközök sorából a legmegfelelıbbnek a Field Programmable Gate Array (továbbiakban: FPGA) programozható hardvereszközöket tekinthetjük a jelen technikai helyzetben a nagyteljesítményő Digital Signal Processorok (DSP) mellett a hardveralapú digitális képfeldolgozás úttörıinek. Ezek közül egyértelmően a párhuzamos mőködésre alkalmas hardverek kerülnek elıtérbe az alkalmazások során, a számításigényes algoritmusok megvalósíthatóságának fényében. Ennek megfelelıen a következı alfejezet az FPGA-k bemutatására szolgál. Field Programmable Gate Array (FPGA) Az FPGA-k olyan félvezetı eszközök, amelyek úgynevezett logikai blokkokat (configurable logic blocks, CLB) és programozható kapcsolókat (programmable interconnect) tartalmaznak. A logikai blokkokat fel lehet programozni oly módon, hogy valamilyen alapszintő logikai kapcsolás (pl.: AND, XOR) vagy komplexebb kombinációs hálózatok szerepét lássák el. Ezeken felül a legtöbb FPGA beépített memóriaelemeket is tartalmaz. A programozható kapcsolók hierarchiájából adódóan különbözı hálózatokat lehet összeállítani, amely által az FPGA-kat testre lehet szabni egy adott feladat megoldásához. Az FPGA-k konfigurálása egy megadott specifikáció alapján egy logikai szemantikus ábra vagy egy úgynevezett hardverleíró nyelv (Hardware Description Language, HDL) által történik. A HDL-ek közül a két legelterjedtebb a VHDL, illetve a Verilog. A két említett nyelv szintaktikájában különbözı, de kifejezıképességük a hardverleírás területén megegyezı.

Az FPGA-k architektúrája Az FPGA-k legfıbb elemei a CLB-k. Ezekben lehetséges a különbözı logikai funkciók realizálása, illetve a bennük található memóriaelem Flip-Flopként történı felhasználása. Egy klasszikus CLB egy 4-bementő Look-Up-Table bıl (LUT) és egy Flip-Flopból áll, amint az alábbi ábrán látható. A CLB kimenete csatlakozhat bármelyik vele határos csatorna szegmenséhez. A csatornák keresztezıdéseiben programozható kapcsolók találhatóak, amelyek segítségével az egyes logikai blokkok tetszılegesen összekapcsolhatóak. Ezt illusztrálja az alábbi ábra. Az FPGA-k programozása Az FPGA-k adott specifikáció szerinti programozása megvalósítható HDL, illetve logikai szemantikus ábra segítségével is. A HDL alkalmazása a lehetıségekhez mérten ugyan, de egyszerőbb és gyorsabb fejlesztést tesz lehetıvé például az értékek numerikus specifikálása miatt is. Azonban nem szabad lemondani az esetleges logikai ábra alapján történı tervezés lehetıségérıl, amely jelentısen megkönnyíti a tervezett rendszer belsı felépítésének vizuális alapon történı elemzését, finomítását.

A programozás elsı fázisában egy logikai hálózati megfeleltetés (netlist) legenerálása történik, amelyet az aktuális architektúrába történı illesztés feladatát ellátó place-and-route folyamat követ. Ezek után a rendszer verifikációja és validációja következik, amelynek az elvégzése után egy bináris fájl generálható. A bináris fájl ezek után letölthetı a hardverre, az arra alkalmas eszközök segítségével. Modern fejlesztések Az iparban jelentkezı igények hatására szükségessé vált az FPGA-k mikroprocesszorral és egyéb perifériákkal történı együttmőködésének egyszerősítése, amely ezeknek egy hardverbe történı integrálását tette lehetıvé. Ezekkel a beágyazott processzorokkal és változó perifériákkal az FPGA-k egyre jobban a system-on-a-programmable-chip elvnek tesznek eleget, alkalmassá téve ıket így komplexebb feladatok megvalósítására. Ilyen hibrid technológiákat alkalmaznak a robosztusabb Xilinx FPGA-k, amelyek egy vagy akár több beágyazott PowerPC mikroprocesszort is tartalmaznak. Ezen keményprocesszoros (hard processor) technológiák mellett párhuzamosan alkalmazzák az iparban a lágyprocesszoros (soft processor) megoldásokat is, amelynek során egy mőködı processzor magot hoznak létre teljes mértékben a technológia adta logikai szintézis keretein belül az FPGA-kban. A legelterjedtebbek között említhetjük a MicroBlaze, PicoBlaze, OpenSPARC vagy NIOS lágyprocesszorokat.

Felhasznált eszközök Ebben a fejezetben a feladat megoldása során használt hardver- és szoftvereszközök kerülnek bemutatásra. Hardvereszközök A Xilinx University Program Virtex-II Pro (XUPV2P) panel A XUPV2P fejlesztıi panel egy elsı sorban oktatási és kutatási célokra, egyetemek számára kifejlesztett összeállítás. Központi egysége egy Xilinx Virtex- II Pro típusú FPGA. Emellett számos ki- és bemeneti egység található rajta. A feladat megoldásához különösen fontos egységek a következık: nagysebességő Hirose FX2 csatlakozó XSGA video kimenet Max 2GB-ig illeszthetı JEDEC-standardú 184 lábú DDR SDRAM csatlakozó USB 2.0 port RS-232 DB9 csatlakozó 100 MHz-es rendszerórajel PowerPC 405 reset áramkör

Xilinx Virtex-II Pro XC2VP30 FPGA A Xilinx Virtex-II Pro FPGA fontosabb tulajdonságai a következıek: Tulajdonság Mennyiség Logikai szeletek/blokkok 13969 Tömb méret 80x46 Elosztott RAM 428 KB Szorzó blokkok 136 Blokk RAM 2448 KB DCM-ek 8

Power PC RISC processzormagok 2 Elızetesen megemlítendı, hogy a belsı Blokk RAM mennyisége csak kis mennyiségő digitális kép letárolására alkalmas, ezért célszerő alkalmazni a külsı DDR SDRAM memóriát képfeldolgozási feladatok megvalósításához. VDEC1 Video Decoder Board A Digilent Inc. által szállított VDEC1 video dekódoló panel NTSC, PAL és SECAM szabvány szerinti analóg videojelek digitalizálását végzi el. A panel az Analog Devices ADV7183B video dekóder lapkája köré épül, és ahhoz kompozit, S-Video valamit RGB komponens alapú analóg bemeneti lehetıséget, illetve nagysebességő Hirose FX2 csatlakozójú digitális kimenetet valósít meg. A panel a kimenetén (egyéni konfigurációtól függıen) 8 vagy 16 biten tárolt YCrCb 4:2:2 digitális videojelet szolgáltat. Az ADV7183B felkonfigurálása I 2 C protokollon keresztül történik. Az ehhez szükséges SDA és SCL vonalak szintén a nagysebességő digitális csatlakozón keresztül érhetıek el. Kamera Videojelek biztosítására egy SPY gyártmányú SS2000C kamera szolgált. Ez a kamera 352 x 288 pixeles felbontású képet küld ki kompozit jelként a kimenetén. A video dekóder ezt a képet interpolálással átalakítja 720 x (sorok_száma)

felbontásra, ahol a sorok száma NTSC-tıl, illetve PAL-tól függıen 480, illetve 578 lehet. Szoftvereszközök Xilinx ISE Foundation 9.1i A Xilinx ISE Foundation 9.1i Xilinx cég termékeihez nyújt egységes fejlesztıi felületet. A felépítendı hardver HDL-lel történı specifikálására biztosít lehetıséget. A HDL leírás logikai szintézise, a konkrét FPGA-ra történı implementálása, valamint az ehhez tartozó programozófájl generálása is elvégezhetı a fejlesztıkörnyezetben. Mindezeken túl lehetıség van a felépített hardverrendszer kapuszintő kirajzolására, valamint szimulációjára is. Az FPGA felprogramozásának lehetısége szintén integrálva van a környezetbe. Xilinx ISE Embedded Developers Kit (EDK) 9.1 Az EDK lehetıséget nyújt beágyazott processzoros rendszerek tervezésére és implementálására. Az EDK a következı részegységeket tartalmazza: Xilinx Platform Studio (XPS) A beágyazott rendszer eszközkészlete Beágyazott magokat, mint például processzorokat vagy perifériákat Platform Studio Software Development Kit (SDK), amely az Eclipse szabad keretrendszerére épül A tervezési folyamat a következı részekre bomlik: A hardveregységek megtervezése és összeállítása

A szoftveregységek elkészítése A hardver egységek szimulációja, verifikálása A szoftver verifikálása Az eszköz konfigurálása Szoftverkörnyezet A fentebbi szoftvereszközökhöz egy 32 bites Microsoft Windows XP Professional operációs rendszert futtató PC került felhasználásra.

A téma irodalma A pipeline struktúra A pipeline struktúra az informatikában egy visszatérı séma, azonban az FPGA-k és a képfeldolgázás körében alkalmazva viszonylag új kutatási területnek számít. Ennek megfelelıen az eddigi megvalósítások elsısorban cégek által történtek, amelyek nagymértékben nélkülözik a mélyebb elméleti megfontolásokat, amelyek magyarázatként szolgálnak az adott megvalósítás mikéntjére. A fentiek fényében mutatok be néhány alkalmazást, irodalmat, amelyek ötletet adtak a további munkához, illetve mutatták, hogy az elızı félévekben alkalmazott, fejlesztett rendszer jó irányba halad. Elsıként említem [Quinn] munkáját, aki azt a fontos, nem elhanyagolható dolgot veszi figyelembe, hogy képfeldolgozási feladatok ilyen módszerekkel történı alkalmazása során elkerülhetetlen a hardver-szoftver együttmőködés. A megfontolás felveti rögtön azt a kérdést, hogy milyen arányban célszerő, adott esetben optimális a hardver-szoftver feladatmegosztás. Természetes heurisztikaként állíthatjuk, hogy az FPGA alapú megvalósítások esetében elsıdleges szempont a minél nagyobb, annál hatékonyabb elv, hiszen az egyes képek vágása, méretezése szükséges overheadet ad a feladathoz, amelynek a költsége meghaladhatja a teljes kép feldolgozásának költségét, ha a kép kismérető. Mindezeket figyelembe véve állítható, hogy a késleltetési idık hardver-szoftver esetén alapjaiban függnek a feldolgozandó kép méretétıl, ezt [Quinn] munkájában mérésekkel igazolja. Elméleti szempontból fontos figyelembe venni, hogy egy N komponensbıl álló pipeline N 2 különbözı konfigurációt vehet fel, ráadásul konfiguráció (profil) váltás esetén az FPGA-t újra fel kell programozni. [Quinn] eltekint a felprogramozási költségektıl és kizárólagosan a futási idıre koncentrál, ahol az elsıdleges költségeket a hardver-szoftver átalakítások jelentik. A cikk a következı eseteket sorolja fel, mint fontos különbségek, ahol a szürke egységek a hardver-szoftver határokon elvégzendı feladatokat jelzik:

A következı táblázatban azt vizsgálja [Quinn], hogy milyen futási idıket produkálnak a fenti megvalósítások, ha x a képpontok számát jelenti. Jól látható, hogy a legjobb megoldás a hardver-hardver megvalósításnál jelentkezik, míg a döntés hardver-szoftver kombináció esetén a szoftverbıl hardverre történı alakítás mellett hoz hatékonyabb eredményt. Fontos még megemlíteni [Tenesix] munkáját, ahol kiemeli a szerzı, hogy nagyobb alkalmazások esetében fontos a kimeneti kép megjelenítı eszközhöz történı hangolása, mind az újraméretezés, mind a vezérlı jelek esetében. A TCP/IP kommunikáció megvalósítása FPGA-n A TCP/IP kommunikáció megvalósítása FPGA-n szintén elsısorban megvalósítások szintjén ismertetett. El kell különíteni azokat a lehetıségeket, amelyek során a megvalósítás a processzoron keresztül történik, és azokat, amelyek nem használnak beágyazott feldolgozóegységet a kommunikációhoz. Az én feladatom szempontjából alapvetı tervezési döntésnek bizonyult, hogy

nem vettem figyelembe a szoftvert nélkülözı megoldásokat, mivel a processzor beépítése szintén részfeladatként jelentkezett, amely remekül használható volt a vezérlési információk továbbítására. A többféle megoldás közül a Xilinx cég által támogatott lwip szabad forráskódú TCP/IP protokoll-stackrıl található kimerítı irodalom. Ezt röviden bemutatom. [Xapp1026] szerint az lwip (light-weight) IP minimális hardverkövetelménye egy beágyazott processzor, amely lehet PowerPC 405 hardprocesszor, vagy MicroBlaze szoftprocesszor is. E mellett szükséges a rendszernek egy Ethernet MAC IP-vel rendelkeznie, amelyek a Xilinx EDK-ban megtalálhatóak. (xps_ethernetlite, xps_ii_temac). Szükséges egy megszakítás kezelı és egy programozható idızítı. A következı ábra egy Spartan-3E rendszer blokkvázlatát mutatja MicroBlaze processzor használata esetén: Fontos tudni, hogy az lwip-nek két mőködési módja van. Lehetséges Socket API módban használni, ehhez azonban szükséges egy kernelnek a használata a

processzoron. A második mód az úgynevezett Raw Mode, amelyben callback függvényeket alkalmazhatunk az adatforgalom kezelésére. A következı táblázat különbözı hardverkonfigurációk mellett ismerteti az átviteli maximális sebességet:

A félévi munka bemutatása A beágyazott processzor, mint feldolgozó egység Fontosnak tartom elıször röviden ismertetni a korábbi munkák eredményét, amelyek során a következı képfeldolgozási pipeline-t hoztam létre, és mőködését teszteltem is. A pipeline blokkvázlata a következı: Az ábrán jól látható, hogy az FPGA-n belül megvalósításra került egy vezérlıegység, mint logikai rendszer és különbözı feldolgozó modulok is. Ezek natív módon összehuzalozva szállítják a képinformációkat, konfigurálásuk pedig dedikált címek segítségével buszokon keresztül történik. A rendszer része még a beágyazott processzor, amely azonban az eddigiekben csak konfigurációs feladatokat látott el.

A félév során elıször a beágyazott processzor feldolgozóegységként történı felhasználásával foglalkoztam. Ennek alapjában véve egy lehetıségét találtam: a processzorhoz kapcsolódó buszok alkalmazása, ahhoz hogy a képinformációkat továbbítsuk. A beágyazott PowerPC 405-ös processzor az alábbi két busszal rendelkezik: Tulajdonság PLB OPB Processzorcsalád PowerPC405 PowerPC405 MicroBlaze Adatbusz szélessége 64 32 Címbusz szélessége 32 32 Órajel 100 125 Masterek max. száma 16 16 Masterek tipikus száma 2-8 2-8 Slave-ek max. száma 16 16 Slave-ek tipikus száma 2-6 2-8 Adatsebesség (max.) 1600 MB/s 500 MB/s Adatsebesség (tipikus) 533 MB/s 167 MB/s Konkurens írás/olvasás Igen Nem Jól látható, hogy az alkalmazás szempontjából a PLB busz használata kedvezıbb az átviteli sebesség miatt, ezért ennek az implementálása mellett döntöttem. Ez elegendı a nagymennyiségő képinformáció továbbítására. Ennek megfelelıen a korábbi implementációk után alkalmassá tettem a processzort a PLB buszon érkezı adatfolyamok kezelésére, hiszen eddig csak vezérlı információkat továbbított és fogadásra nem volt képes. A buszon kapott információ megszakításként jelentkezik, amelyet aztán fel lehet dolgozni. A rendszer külsı memória hiánya miatt, egyelıre nem képes a képinformációk összegyőjtésére, és annak egy csomagban történı szállítására, így byte-onként érkeznek a csomagok, amelyek az egyes pixeleket jelentik. Az alábbi tesztelési kép azonban jól mutatja, hogy a processzor interruptjainak lassúsága miatt az így kapott adatok hiányosak, és értelmezhetetlenek:

A kommunikáció kiépítése A kommunikációra több megoldás is adódott. Lehetıség nyílt soros vonalon kezelni az eszközt, és így vezérlési információkat küldeni a rendszernek PC-rıl, illetve adódott a korábbi irodalomban már részletezett TCP/IP megvalósítás. A soros vonali vezérlés már a korábbi félévekben elkészült, ezt némileg továbbfejlesztve az elızı alpontban kapott képet megpróbáltam átvinni a PC-re, azonban a normál RS-232-es vonal átviteli sebessége lassúnak bizonyult ehhez a feladathoz. A második és egyértelmően jobb megoldás a TCP/IP alapú kommunikációnak a megvalósítása a processzoron. Ehhez a fentebbi irodalomban ismertetett lwip szabad forráskódú TCP/IP stacket használtam. A Xilinx cég által biztosított volt egy referencia megvalósítás, amelynek a blokkvázlata a következı:

A blokkvázlat egyértelmően szemlélteti, hogy az adat- és utasításátvitelhez szükséges olyan IP-k használata, mint: 10/100 Ethernet MAC PLB2OPB Bridge Sajnos azonban a Xilinx EDK 9.1-es verziójánál ezek az IP-k liszenszkötelesek, amely liszenszek a korábbi évek fejlesztései során lejártak. Ennek sajnálatos következménye volt a félév során, hogy a legnagyobb feladatot ezek beszerzése, meghosszabbítása jelentette. Ez azonban továbbra is technikai akadályokba ütközött, habár a létezı referencia terv, mind szoftver-forráskódban, mind hardvertervben a rendelkezésre áll, és alkalmas az lwip Raw módjában a jelenlegi rendszerrel történı integrálásra.

Összefoglalás Az iparban jelenleg az elsısorban tisztán számítógép- és szoftveralapú megoldások az elterjedtek, amelyekben felhasznált algoritmusok azonban nem képesek a valós idejő kiértékelésre az esetek többségében. Erre megfelelınek bizonyulnak az olyan konfigurálható összeállítások, amelyekben sikerrel ötvözik a hardverek és a szoftverek adta lehetıségeket. Mint ismeretes, ezekben a rendszerekben azonban alapvetı tervezési döntésként jelentkezik a szoftver-hardver megosztás aránya. Mérések bizonyítják, hogy legjobb, ha kismérető képek esetén szoftveres megoldásokat alkalmazunk, míg nagyobb képmérettel rendelkezı alkalmazásokban a hardvert helyezzük elıtérbe. Fontos, hogy a létrejövı képinformációkat diagnosztikai és mérési szempontból PC-n történı feldolgozásra alkalmassá tegyük. Ehhez a jelen technológia adta hálózatok remek lehetıséget biztosítanak, ugyanakkor ügyelnünk kell arra, hogy a rendszer erıforrásait ne ezek kezelései emésszék fel. A félév során sajnálatos technikai akadályokba ütköztem a hálózati megvalósítás során, azonban az akadályok elhárítása után teljes mértékben integrálható lesz a korábbi rendszer az új, PC-alapú diagnosztikát használóval. Továbbfejlesztési lehetıségként merül fel a külsı memória integrálása a rendszerbe, amely majd lehetıséget szolgáltat nagyobb képcsomagok processzorra történı áthelyezésére, megırizve ez által a teljes képinformációt. Ezen felül a képek PC-re történı áthelyezésénél fontos lépés, hogy a számítógép kliens alkalmazása képes legyen ne csak bináris információ szöveges formában, hanem azok képként történı megjelenítésére is, amelyre leghatékonyabban az OpenCV könyvtárat lehet felhasználni.

Felhasznált irodalom [Quinn] Heather Quinn, Miriam Leeser, Laurie Smith King Implementing Image Processing Pipelines in a Hardware/Software Environment [Tenesix] Tenesix Inc. - Low Latency Image Processing Pipeline in a Xilinx or Altera FPGA [Xapp1026] Xilinx Inc. - LightWeightIP (lwip) Application Examples [Xapp663] Xilinx Inc. TCP/IP on Virtex-II Pro Devices Using lwip [Kardos08] Kardos László Elhagyott csomagok és rögzített objektumok felismerése programozható hardver alapú rendszerrel