Érzékelők és beavatkozók I.

Hasonló dokumentumok
Mikrorendszerek tervezése

Dr. Schuster György október 30.

A szoftverfejlesztés eszközei

A szoftverfejlesztés eszközei

Érzékelők és beavatkozók I.

Labor 2 Mikrovezérlők

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

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

Érzékelők és beavatkozók

Java I. A Java programozási nyelv

TI TMDSEVM6472 rövid bemutatása

Fizikai mérések Arduino-val

6.2. TMS320C64x és TMS320C67xx DSP használata

Iman 3.0 szoftverdokumentáció

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. 1. BEVEZETÉS

IK Algoritmusok és Alkalmazásaik Tsz, TTK Operációkutatás Tsz. A LEMON C++ gráf optimalizálási könyvtár használata

evosoft Hungary Kft.

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

Digitális technika VIMIAA01 9. hét

(kernel3d vizualizáció: kernel245_graph.mpg)

SZOFTVER = a számítógépet működtető és az azon futó programok összessége.

A LabVIEW 8.5 támogatja a többmagos processzorok lehetőségeinek kihasználását

4. Programozási nyelvek osztályozása. Amatőr és professzionális

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft.

Közösség, projektek, IDE

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

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

iphone és Android két jó barát...

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

Programozási nyelvek a közoktatásban alapfogalmak I. előadás

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

Operációs rendszerek. Bemutatkozás

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

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

ARM Cortex magú mikrovezérlők. mbed

Utolsó módosítás:

Mobil operációs rendszerek. Készítette: Kisantal Tibor

Internet programozása. 1. előadás

Nagy Gergely április 4.

Programozás alapjai Bevezetés

Alkalmazások típusai Szoftverismeretek

Számítógépes alapismeretek 1.

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

OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS. Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem

Mobil Informatikai Rendszerek

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

Labor gyakorlat Mikrovezérlők

OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc -

Programozási nyelvek 6. előadás

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

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

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

Biztonsági folyamatirányító. rendszerek szoftvere

Mobil Informatikai Rendszerek

Dr. Schuster György október 14.

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

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete

TANMENET 2018/2019. tanév

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

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

A SZÁMÍTÓGÉPRENDSZEREK SZOFTVERE

OPERÁCIÓS RENDSZEREK. Elmélet

Mobil készülékek programozása

Labor gyakorlat Mikrovezérlők

Kommunikációs rendszerek teljesítőképesség-vizsgálata

1. tétel. A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei. Informatika érettségi (diák)

Adatbázis rendszerek 7. előadás State of the art

1. Bevezető. 2. Sérülékenységek

Operációs rendszerek. Az NT folyamatok kezelése

Párhuzamos programozási platformok

SEAGUARD. Integrált Biztonság-felügyeleti Rendszer

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

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.

Mi legyen az informatika tantárgyban?

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

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

Mobilplatformok Merre tart a világ? Kis Gergely MattaKis Consulting

Készítette: Ruzsinszki Gábor webmaster442

Párhuzamos programozási platformok

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

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

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

Nagyteljesítményű mikrovezérlők

Magas szintű optimalizálás

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

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

Bevezetés az informatikába

Több platform egy kódbázis Tanulságok a Tresorittól. Budai Péter, vezető fejlesztő

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

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

Nagy bonyolultságú rendszerek fejlesztőeszközei

Széchenyi István Szakképző Iskola

LabVIEW 2010 Minden az időről szól

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

Bankkártya elfogadás a kereskedelmi POS terminálokon

Firmware fejlesztés. Mártonfalvi Zsolt Hardware programozó

TANÚSÍTVÁNY (E-MS03T_TAN.SW) MELLÉKLETE

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Átírás:

Érzékelők és beavatkozók I. Mikrovezérlők, mikroszámítógépek (szoftver) egyetemi docens - 1 -

Beágyazott rendszerek programozása Beágyazott számítástechnikai rendszerek: Általános architektúra. A feladatspecifikus tartalmat nagyobb részt a program (programok, szoftver) képviseli. Kisebb részt jelentenek általában a speciális hardver komponensek. - 2 -

Beágyazott szoftver Speciális vonások: Általában egy fixen, nem törlődő memóriában elhelyezett, automatikusan induló, és a leállításáig folyamatosan működő program. A programozás, programok letöltése, felújítása a működéstől külön álló folyamat, speciális szakértelmet és segédeszközöket követelhet meg. Interakció a kezelővel, külvilággal csak előre tervezett módon. - 3 -

Beágyazott szoftver Speciális követelmények: A hardver bonyolultságától függően egyszerűbb vagy bonyolultabb programszerkezet. Kis áramfogyasztás (elemes táplálású készülékek): speciális utasítások a rendszer elaltatása, készenléti mód, a programok optimalizálása kis fogyasztásra. Valós idejű (Real Time RT) működés: kis válaszidő a külső eseményekre, párhuzamosan zajló konkurens folyamatok, ütemezés. - 4 -

A programozás folyamata Hagyományos programozás: Programtervezés. A program megfogalmazása, kódolás. Fordítás: letölthető kód előállítása. Program letöltés. Program tesztelés, hibakeresés, javítás. A fenti lépések ismétlése a minél hibamentesebb állapot elérése érdekében. - 5 -

Feladatspecifikáció: Programtervezés Szöveges, grafikus vagy logikai megfogalmazása a feladatnak. Hagyományos módszer: Modern törekvések: Szöveges specifikáció Folyamatábra A specifikáció legyen maga a program, vagy legalább annak első (felső szintű) megfogalmazása top-down megközelítés. Specifikáció és programtervezés összefonódása. - 6 -

Programtervezési elvek Top-down tervezés. Moduláris tervezés: kisebb, egyszerűbb feladatokra bontás, már létező elemekre bontás. Objektum orientált programozás: osztályok, objektumok. Újrafelhasználás: modulok, osztályok, intellectual property IP Szimbolikus, logikai, grafikus programozás Automatikus kódgenerálás. - 7 -

A program megfogalmazása Gépi kódok: Bináris szekvenciák, emberi megértésre hexadecimális számokkal jelölik, pl. 1A 9C 55 Assembly nyelv: Gépi kódok helyett emlékeztető kódok (mnemonic), szimbolikus nevek és címek, makrók. Magas szintű programozási nyelvek: Beágyazott rendszerekben ma: C, C++, Java, C#. Szimbolikus, logikai, grafikus programtervezési nyelvek: Példák: Matlab/Simulink (Mathworks), LabVIEW (NI). - 8 -

Gépi kód és assembly nyelv Címek Gépi kódú utasítások 392: df 93 push r29 394: cf 93 push r28 396: cd b7 in r28, 0x3d ; 61 398: de b7 in r29, 0x3e ; 62 39a: 64 97 sbiw r28, 0x14 ; 20 39c: 0f b6 in r0, 0x3f ; 63 39e: f8 94 cli Assembly nyelvi forma Mnemonik-ok Operandusok Regiszterek, konstansok, 3a0: de bf out 0x3e, r29 ; 62 3a2: 0f be out 0x3f, r0 ; 63 3a4: cd bf out 0x3d, r28 ; 61 címkék - 9 -

Gépi kód Gépi kódban nem programozunk. Hol találkozhatunk gépi (bináris, hexadecimális) kóddal? Hibakeresés során - 10 -

Assembly nyelv Assembly nyelven ritkán programozunk. Tipikus példák assembly alkalmazásra: C (vagy más programozási nyelv) startup kódja Biztonságkritikus programozás Garantált időzítésű eszköz meghajtó eljárások, megszakítás kezelők Gyors, tömör eljárások - 11 -

Magas szintű programozási nyelvek Beágyazott rendszerek fejlesztésének standard programozási nyelve a C. Régebbi kísérletek: Pascal, Delphi. Újabb próbálkozások: az objektum orientált programozás meghonosítása C++, Java, C# A letölthető/futtatható program előállítása: Szövegszerkesztés Fordítás Összeállítás Editing Compilation Linking - 12 -

Programfejlesztési környezetek Szövegszerkesztés - Editor Fordítás Compiler Összeállítás Linker Letöltés Loader Tesztelés, hibajavítás - Debugger Programfejlesztési környezet A beágyazott rendszerek területén általában: Alapfunkciókat ellátó programfejleszési környezetet a gyártók ingyenesen biztosítanak. Editor, Assembler, Loader, Debugger Támogatja a cég hardver fejlesztőeszközeit - 13 -

Programfejlesztési környezetek Magas szintű nyelvi támogatás: általában külön kell beszerezni, lehetőségek: Professzionális eszközök kereskedelmi forgalomban megvásárolhatók: IAR, Keil, Altium Tasking. Szabad forráskódú (Open Source) eszközök: ingyenesen letölthetők és használhatók. Open Source: Nem kereskedelmi alkalmazásokra ingyenes. GNU licenc: közzétételi kötelezettség. Csatlakozni lehet a fejlesztő közösséghez. - 14 -

Programfejlesztési környezetek A professzionális eszközök előnyei: Általában kiterjedt könyvtárak (újrafelhasználható kód) tartoznak hozzájuk. Kiépített terméktámogatás. (Korlátozott) felelősségvállalás a gyártó részéről. Hátrányai: Magas beszerzési ár. Magas fenntartási költségek (terméktámogatás nem ingyenes). Sok esetben royalty az előállított termékekre. Kiszolgáltatottság - 15 -

Programfejlesztési környezetek Példa: Atmel Studio az Atmel AVR 8, 16 és 32- bites, valamint ARM mikrovezérlőihez Az Atmel cég weblapjáról ingyenesen letölthető programfejlesztő rendszer - assembly és C/C++. Az Atmel teljes mikrovezérlő választékát lefedi. Teljes körű támogatást ad az Atmel programozó és hibakereső hardvereihez. Kiterjedt szoftver támogatás (Software Framework), könyvtárak, példaprogramok Bővíthető professzionális fordítókkal (beépülnek a rendszerbe. - 16 -

Atmel Studio Ver. 6. (AVR 8-16-32-bites ARM 32-bites µc) - 17 -

JTAG ICE USB Hardver támogatás JTAG ICE mkii AVR ONE JTAGICE3 Házilag készült ISP letöltő ISP programozók: PP, RS232, USB JTAG debuggerek - 18 -

Szimbolikus programfejlesztés A programspecifikáció és a programfejlesztés egy egységben történik. Magas szintű, öndokumentáló program kifejezés. Automatikus programkód generálás akár több mikroszámítógép platformra is. Példák: A Mathworks Matlab/Simulink rendszeréhez illeszkedő Real Time és Embedded Target toolbox-ok. A National Instruments LabVIEW rendszere. A Siemens Space rendszere biztonsági alkalmazásokra. - 19 -

Matlab/Simulink,Real Time Workshop, Embedded Target Grafikus programkifejezés, kiterjedt építőelem készlet. Automatikus kódgenerálás különböző processzorokra. - 20 -

National Instruments LabVIEW Grafikus programozási nyelv, kiterjedt építőelem készlet. Változatos vezérlési szerkezetek, real-time működés Automatikus kódgenerálás. - 21 -

Siemens Space a Paksi Atomerőműben Reaktorvédelmi Rendszer: a Siemens TelepermXS rendszerére épül A programspecifikáció: több száz lap: grafikus sémák Space rendszer: automatikus kódgenerálás a TelepermXS processzorokra Biztonsági alkalmazásokra verifikált kód. N% Ta MCP x 1 x 2 x 1 x 2 x 1 N N corr x 1 x y= * 2 1000 3x Q y= k Q x * 1 N MCP 3x per 3x Q corr REACTOR POWER LIMITING N + - k Q 3x + 1% 3x 3x - 1% x 1 x 2 x 3 y t 0 y 1 1 0 1 x 2 MCP per N x 1 MCP per 1 0 6 5 4 3 100 83 66 50 30 28 26.3 24.5 (per. = permissible) + - y t-1 t-1 +1 y t-1-1 3x 3% 6 5 4 3 100 83 66 50 (per. = permissible) 1 3x x 1 x 2 x 3 3x 50 sec t 0 3x corr. < 3 0 < 3 0 3x y t corr. & 3x EP302-22 -

Programozási eszközök A programozási környezeteken kívül: programcsomagok, toolkit-ek, software stack-ek, IP-k: Matematikai eljárások (mátrix műveletek, FFT). Méréstechnikai, irányítástechnikai csomagok (PID szabályozó). Periféria kezelő csomagok (IDE, USB harddiszk, MMC/SD memóriakártya) Hálózati kommunikációs csomagok (CAN, TCP/IP, Zigbee, USB stack) Open-source és kereskedelmi célú Program újrahasznosítás - reusability - 23 -

Operációs rendszerek Beágyazott operációs rendszerek: Linux open source és professzionális realizációk, különböző disztibúciók. Android open source, a mobil eszközök révén nagyon elterjedt. Microsoft WinCE professzionális, programozók szűk köre fér hozzá. Apple ios professzionális, de a programozók felé korlátokkal nyitott. Valós idejű operációs rendszerek, pl. RTOS, MicroC/OS Különböző gyártók saját termékeik számára kifejlesztett operációs rendszerei. - 24 -

Operációs rendszerek Operációs rendszerek alkalmazásának előnyei: Standardizált programfuttatási környezetet biztosítanak, a programozónak csak saját feladatával kell törődnie. Standardizált rendszerkezelés operációs rendszerhivásokon keresztül. Egységesített hardver kezelés standard meghajtóprogramok (driver) API felületein keresztül. Háttértárolók, kommunikációs hálózatok magas szintű standardizált kezelése. Automatizált memóriakezelés, virtuális memóriakezelés háttértárolók igénybevételével. Standard programok, programcsomagok a megoldandó feladatok széles skálájára. - 25 -

Operációs rendszerek Operációs rendszerek alkalmazásának feltételei: Nagyobb számítási teljesítményű, általában 32-bites és a feletti mikroszámítógép. Nagy dinamikus memória és MMU (Memory Management Unit). Célszerű többszintű prioritásos megszakítás-rendszer, DMA (Direct Memory Access) és egyéb hardver támogatás. - 26 -

Real-time programozás Valós idejű rendszerek: Párhuzamosan futó, egymással és a külvilág eseményeivel kapcsolatban álló folyamatok. Egymással és a külvilág eseményeivel való szinkronizáció. Holtpontmentes működés. Programeszközök: Valós idejű magok (real-time kernel): a folyamatütemezés, szinkronizáció, információcsere eszközeit tömörítő program-mag, amely köré épül az alkalmazói program. Valós idejű operációs rendszer: az operációs rendszer funkciókat valós idejű eszközök egészítik ki. - 27 -