5.4. Perifériák helyettesítése párhuzamos feldolgozással a Propeller esetében

Hasonló dokumentumok
Parallax Propeller programozási lehetőségei

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

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

Mintavételes szabályozás mikrovezérlő segítségével

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

Labor 2 Mikrovezérlők

Programozás és Digitális technika I. Pógár István eng.unideb.hu/pogari

Mikrovezérlők II. Dr. Odry, Péter

LOGSYS LOGSYS ECP2 FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ szeptember 18. Verzió

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

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

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD

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

Dr. Oniga István DIGITÁLIS TECHNIKA 9

Máté: Assembly programozás

Dr. Oniga István DIGITÁLIS TECHNIKA 9

Nagy Gergely április 4.

Labor gyakorlat Mikrovezérlők

Az MSP430 mikrovezérlők digitális I/O programozása

Labor gyakorlat Mikrovezérlők

Autóipari beágyazott rendszerek CAN hardver

Köves Hugó: Parallax Propeller chip ismertetése. A Parallax Propeller ismertetése Az alapötlet...2

PROPELLER EGY FORRADALMIAN ÚJ MIKROVEZÉRLŐ

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

A Texas Instruments MSP430 mikrovezérlőcsalád

Irányítástechnika Elıadás. PLC-k programozása

A LEGO Mindstorms EV3 programozása

Programozási segédlet DS89C450 Fejlesztőpanelhez

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

Újrakonfigurálható eszközök

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

10. Digitális tároló áramkörök

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

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

Bevezetés a mikrovezérlők programozásába: Ismerkedés az Arduino fejlesztői környezettel

14. TARTALOM FUTTATÁSA A FEJLESZTŐLAP HÉTSZEGMENSES KIJELZŐJÉN

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

SZINOPTIKUS PANEL CA-64 PTSA

loop() Referencia:

Laborsegédlet 3. Labor

Az AVR programozás alapjai. Előadja: Both Tamás

MSP430 programozás Energia környezetben. LED kijelzok második rész

WiLARM-MICRO GSM Modul Telepítői Útmutató Verzió: 2.0

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

A LOGSYS rendszer ismertetése

Fizikai mérések Arduino-val

Labor gyakorlat Mikrovezérlők

A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, Minden jog fenntartva

Java II. I A Java programozási nyelv alapelemei

Digitális elektronika gyakorlat

AVR-Stamp1.0F_USB Leírás, használati útmutató. Rev.B

DIGITÁLIS TECHNIKA 7. Előadó: Dr. Oniga István

ADAX NEO BASIC S5. NORDINOVA ENERGY KFT Budapest X. Jászberényi út 47/c

Avantalk AH5 Bluetooth Mono Headset Használati utasítás

Már megismert fogalmak áttekintése

Fordítás Kódoptimalizálás

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Digitális technika (VIMIAA02) Laboratórium 4

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

1. Jelölje meg az összes igaz állítást a következők közül!

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

Serial 2: 1200/2400 bps sebességû rádiós modem vagy

2008. október 9. Verzió

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Regionális forduló november 19.

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

Regionális forduló november 19.

Gregorics Tibor Tanácsok modularizált programok készítéséhez 1

Digitális technika (VIMIAA02) Laboratórium 4

Ismerkedés az MSP430 mikrovezérlőkkel

XII. PÁRHUZAMOS ÉS A SOROS ADATÁTVITEL

Egy PIC-BASIC program fordítása, betöltése

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

Mikrorendszerek tervezése

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

PR402EN.doc. PR402 v1.0 Egyajtós beléptetõ rendszer FIRMWARE VERZIÓ Telepítési útmutató

Occam 1. Készítette: Szabó Éva

Bevezető a mikrokontrollerek, az IoT és

Leírás. Készítette: EMKE Kft február 11.

Java II. I A Java programozási nyelv alapelemei

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

BASH script programozás II. Vezérlési szerkezetek

DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István

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

Kommunikáció. 3. előadás

Számítógép architektúra

2-3. mérés Mikrokontrolleres rendszer fejlesztése I.-II.

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.

ARM Cortex magú mikrovezérlők. mbed

Kommunikáció. Ebben a fejlődési folyamatban három fontos paraméter van, mely alapvetően meghatározza mindegyik kommunikációfajta hatékonyságát:

USB I/O kártya. 12 relés kimeneti csatornával, 8 digitális bemenettel (TTL) és 8 választható bemenettel, mely analóg illetve TTL módban használható.

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

Digitális technika (VIMIAA01) Laboratórium 4

Fordítóprogramok. Aszalós László szeptember 7.

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

vialan OS-103 vonalfordító készülék kezelési útmutató

Ellenőrző mérés mintafeladatok Mérés laboratórium 1., 2011 őszi félév

Átírás:

5.4. Perifériák helyettesítése párhuzamos feldolgozással a Propeller esetében A nem standard szerkezetű mikorvezérlő, nem megszokott megoldások megvalósítására is alkalmazható, ami sok esetben, nagymértékben leegyszerűsíti a beágyazott eszközfejlesztést. Egész sor folyamatosan bővülő lehetőség található meg a következő címen ##LINK: http://obex.parallax.com/## Parallax mikrokontroller gyártó segíti a potenciális felhasználót abban, hogy mennél könnyebben megismerje és használni tudja a mikrovezérlőt ##LINK: http://www.parallaxsemiconductor.com/appnotes##. A Demo board fejlesztőlap elektromos rajza Parallax szintén biztosít egy ftp szerver hozzá férést is, ahol a C3-as fejlesztőhöz egy sor alkalmazási lehetőséget ír le: ##LINK: ftp://ftp.propeller-chip.com/propc3/ ##

Az egyetlen periféria, amely a Propeller chipbe van építve az UART ##Universal Asynchronous Receiver/Transmitter általános, aszinkron fogadó/küldő## Mivel a Propeller chipnek nyolc független processzormagja van, ezek vannak előrelátva a többi szükséges periféria megvalósítására. Szoftveres úton egy vagy több Cog-mag közösen úgy viselkedik, mint a megvalósítani kívánt hardveres periféria. A következő fejezetekben, kerül bemutatatásra hogyan lehet megvalósítani önálló modulokkal a SPI, IrDA, Bluetooth, USB, CAN perifériákat. Programozási példák A folytatásban gyakorlati példákon keresztül lesz bemutatva a Propeller chip programozása. Erre a célra két fejlesztőlap: a Demo board és az Appl-DSP board lesz felhasználva. A kezdéshez a mellékelt címről: ##LINK: http://www.parallax.com/productinfo/microcontrollers/propellergeneralinformation/propellerm ediapage/tabid/832/default.aspx#software ## le kell tölteni a Propeller Tool ingyenes fejlesztőeszközt, amely a programok a Propeller chipre történő lefordítására szolgál. Az ábrán a Demo board fejlesztő elektromos rajza látható. 1. feladat: A Demo board lapon található LED-ek közül egyet kell ki-/be- kapcsolgatni! Indítsák el a Propeller Tool-t, amelybe be kell gépelni a 14. ábrán látható programot! A LED villogtató programkód $$$ a megjegyzések fordítása: 1. ½ másodperc a LED villogási periódusa 2. a vezérelt LED a P23 lábon van

3. a P23 lábat kimenetnek állítjuk be 4. a P23 kimenetet magas logikai szintre, 1 -re állítjuk 5. a Blink rutint, végtelenül ismételjük 6. invertáljuk a LED állapotát a fordítás vége $$$ Első ránézésre észrevehető, hogy a Parallax fejlesztőkörnyezet kialakításakor nagy figyelmet fordított a vizuális elemek használatára, a programozási folyamat segítése céljából. A 14. ábrán egyértelműen elkülönül négy terület, amelyeket más-más szín jelez: CON a konstansok definiálására szolgáló terület, VAR a változók definiálására szolgáló terület, PUB a nyilvános metódusok definiálására szolgáló terület. A Propeller metódusok hasonlítanak más programozási nyelvek alprogramjaira: paramétereket kap a meghívásakor, elvégzi a szükséges feldolgozásokat, majd eredménnyel tér vissza. Minden programban szerepelnie kell legalább egy nyilvános metódusnak, mert az alkalmazás az első nyilvános metódus futtatásával kezdi meg működését. PRI a privát metódusok definiálására szolgáló terület. Ezek a metódusok a nyilvános metódusokhoz hasonlóan működnek, különbség csak a metódusokhoz való hozzáférésben van. A fenti négy területen kívül léteznek még más programterületek is: OBJ az objektumok definiálására szolgáló terület. A Propeller objektumok különálló egységet képező, metódusok halmaza. DAT a forráskód assemblyben írt részének fenntartott terület. A privát metódusok, csak az őket definiáló objektumok bírják meghívni. A nyilvános metódusok bármely objektum részéről meghívhatóak, még akkor is, ha nem az adott objektumon belül lettek definiálva. Az objektumokból, a privát és nyilvános metódusok, a metódus nevével hívhatóak meg. Az objektumokon kívül, ha egy nyilvános metódust szükséges meghívni, akkor először a célobjektumot szimbolikusan kell deklarálni az OBJ részben. Pl.: OBJ Clk : Clock Ebben az esetben a Clk egy szimbolikus azonosító, amelyet a Clock objektum hívásakor kell használni. Ezután az objektum nyilvános metódusának meghívása az objektum és a metódus nevének a jelölésével történik: Objektum.Metódus alakban. Pl.: PUB Main Clk.PauseMSec(100)

A programblokkok (CON, DAT, OBJ, PRI, PUB és VAR) a könnyebb vizuális elkülönülés céljából mind saját színezéssel vannak ellátva. Ez egyes blokk addig tart, míg nem követi őket egy másik programblokk. A program forráskódjában az utasítások behúzással vannak ellátva. Azok az utasítások, amelyek jobbra be vannak húzva, a felettük levő (egy kicsit balra elhelyezkedő) utasítás alá tartoznak. Például a 14. ábrán a repeat utasítástól egy kicsit jobbra található az őt követő Blink metódushívás, így a metódushívás a repeat utasítás hatáskörébe tarozik. a forráskód részletes tárgyalása: Az első programsorban a CON jelöli a programblokk kezdetét, amelyben a konstansok kerülnek definiálásra: _clkmode = xtal1 + pll2x _xinfreq = 5_000_000 A fenti két sor a Propeller chip órajelét definiálják. A _clkmode definiálása két részből áll: az első az órajelhez használandó forrást, míg a második a PLL ##Phase Locked Loop fáziszárt hurok## áramkör szorzóját határozza meg. A definíció két része a + jellel van összekötve. Az órajel forrása lehet belső vagy külső. A következő azonosítók használhatóak: azonosító a forrás helye a forrás rezgésszáma RCSlow belső 13 33 khz RCFast belső 9 20 MHz xtal1 külső 4 16 MHz xtal2 külső 8 32 MHz xtal3 külső 20 80 MHz A PLL szorzótényezőjének a lehetséges értékei *2, *4, *8 és *8. Az ehhez tartozó programazonosítók pedig: pll2x, pll4x, pll8x és pll16x. Az _xinfreq konstans a külső oszcillátor pontos rezgésszámát őrzi. Bekapcsoláskor a Propeller chip az RCSlow üzemmódban indul el, 50 ms elteltével átvált RCFast üzemmódba. Ezután külső forrásból (soros vagy E2PROM kapcsolat) betölti a programot a Hub memóriába a programot. Végül a programban definiált _clkmode és _xinfreq szerinti üzemmódba vált. A következő két programsor: waitperiod = 5_000_000 LED = 23 Az első a LED be- és kikapcsolásának gyakoriságát definiálja. A Demo Board elektromos rajzán (13. ábra) látható, hogy a LED-ek a P16-P23 lábakhoz vannak csatlakoztatva. A P23-as lábra

kötött LED-et szeretnénk villogtatni. A LED szimbolikus konstansnak 23-as értéket adván, ezt használhatjuk a 23-as érték helyett a program folyamán. A CON programrészt a VAR programrész zárja le. Mivel ehhez a példához nincs szükség változókra a VAR blokk üresen marad! A folytatásban a PUB nyilvános rész következik, amelyben csak egy, a Main metódus van definiálva. Mivel ez az első (és egyetlen) nyilvános metódus a programban, az alkalmazás futtatása ezzel a metódussal fog kezdődni. A Main metódusban található első két utasítás: DIRA[LED] := 1 OUTA[LED] := 1 A DIRA egy 32 bites regiszter, amely bitjeinek írásával az egyes lábak irányát tudjuk beállítani. Az 1 -be állított lábak kimenetek, míg a 0 -ba állítottak bemenetek. Az első utasítás a P23-as lábat kimenetnek definiálja. Az OUTA egy 32 bites regiszter, az egyes bitekbe írt értékek megjelennek a nekik megfelelő kimeneti lábakon. Természetesen csak akkor ha az adott láb kimenetnek van definiálva. A második utasítás a P23-as lábra 1 -es vagyis magas logikai szintet küld, ami ebben az esetben, fizikailag 3.3VDC-nek felel meg. A Main metódus utolsó két utasítása a : repeat Blink A repeat utasítás folyamatosan meghívja az alá tartozó (alatta és behúzott) Blink metódust. A PUB blokknak a PRI blokk kezdetével van vége. Ebben az új programblokkban egy privát metódus a Blink található, mely két utasítást tartalmaz:!outa[led] waitcnt(waitperiod+cnt) Az első utasítás invertálja a LED kimeneti láb (avagy P23) pillanatnyi értékét. A metódus utolsó utasítása a Cog-magot készenléti állapotba helyezi, míg a rendszerszámláló nem éri el a zárójelben megadott értéket. A cnt a rendszerszámláló pillanatnyi értéke. Vagyis a mag 5000000 órajelet fog várni. Ezután lezárul a Blink metódus és visszatér a meghívó Main metódushoz a végrehajtás, ami egy újboli repeat-blink páros A Demo board-ra tápfeszültséget kell kötni, összekötni a számítógéppel egy USB kábellel, a fejlesztőkörnyezetben meg kell nyomni az <F10> tasztert. Ezután a Propeller Tool fejlesztőkörnyezet le fogja fordítani az alkalmazást és felfogja programozni a Demo boardon található Propeller chippet.