Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Beágyazott információs rendszerek

    A tantárgy angol neve: Embedded Information Systems

    Adatlap utolsó módosítása: 2022. november 5.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Alapképzés (BSc), Mérnök informatikus szak
    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIMIAD04   2/0/2/f 5  
    3. A tantárgyfelelős személy és tanszék Dr. Kovácsházy Tamás,
    A tantárgy tanszéki weboldala https://www.mit.bme.hu/oktatas/targyak/vimiad04
    4. A tantárgy előadója

    Dr. Kovácsházy Tamás, egyetemi docens, MIT

    5. A tantárgy az alábbi témakörök ismeretére épít Operációs rendszerek, Szoftvertechnológia, C/C++ programozás, Számítógép hálózatok
    7. A tantárgy célkitűzése

    A tantárgy célja a fizikai, biológiai, kémiai környezetükkel aktív, valós-idejű információs kapcsolatban álló beágyazott rendszerek létrehozásához és működtetéséhez szükséges, az informatikai alapműveltségen túlmutató speciális tudás és készségek fejlesztése gyakorlati példákon keresztül. A tantárgy elsősorban azokra a vonatkozásokra mutat rá, amelyek - a környezetünk folytonos és párhuzamos jelenségei, valamint az azt befolyásolni igyekvő számítástechnika kifejezetten szekvenciális jellegéből adódóan - fokozott odafigyelést és alaposabb felkészültséget igényelnek. Ennek érdekében kiemelten szerepel a valós-idejű működés, valamint kisebb mértékben a szolgáltatásbiztonság követelményeit figyelembe vevő tervezési elvek bemutatása. 

    A tantárgy az ismereteket egykártyás számítógépes platformon, beágyazott Linux környezetben demonstrálja, és ebben a környezetben rendszer- és szoftverfejlesztési ismereteket is nyújt. Ugyanakkor a tárgy kitér a mikrovezérlőket alkalmazó egyszerűbb beágyazott rendszerek jellegzetességeire is, beleértve a szoftver aspektusokra is, mint pl. az MCU-on futtatható beágyazott operációs rendszerek (pl. FreeRTOS) és a Linux különbségeire, a HW platform és OS választás részleteire stb.

    8. A tantárgy részletes tematikája

    1. hét: Bevezetés. A beágyazott rendszerek alkalmazásai, alkalmazási példák. A beágyazó fizikai környezet jellegzetes tulajdonságai, az azokból származó speciális követelmények. Valós-idejű (real-time) rendszer és biztonságkritikus rendszer fogalmak bevezetése, és az azokkal kapcsolatos HW és SW elvárások, következmények. Kiberfizikai rendszer koncepció. A beágyazott rendszer, mint erőforrás korlátozott környezet, erőforrásokkal történő hatékony gazdálkodás, beleértve az energiát (low-power). 

    2. hét: A beágyazott információs rendszerek jellegzetes rendszerarchitektúrái, komponensek, elosztott beágyazott rendszerek. Fizikai kapcsolat a külvilággal (interdiszciplináris, multidomén, pl. mechanika, fizika, kémia, biológia, stb.), szenzorok és beavatkozók, humán interfész (user interface, szerviz interfész, stb.). Kapcsolat a fizikai beágyazó környezettel rendszerszinten, ANSI/IEC 60529-2004 és MIL-STD-810. Fizikai beágyazó környezetből származó információ jellegzetes tulajdonságainak elemzése. 

    3. hét: A beágyazott rendszerekben alkalmazott végrehajtó egységek. Mikrovezérlők, alkalmazás processzorok, azok összehasonlítása a mobil, asztali (desktop) és szerver processzorokkal. Homogén és heterogén többprocesszoros rendszerek és SW támogatásuk, rendszerchipek (System on a Chip, SoC). Memória alrendszer, fizikai memória és virtuális tárkezelés, cache szerepe beágyazott környezetben, Linux példákkal. Spekulatív végrehajtás és a memória alrendszer hatása a végrehajtási időre, worst-case végrehajtás fontosságának kiemelése.  

    4. hét: Jellegzetes beágyazott perifériák és azok alkalmazásai. GPIO, A/D és D/A, I2C/SPI/I2S buszok, timerek. GPIO alkalmazásai, jelszint-illesztési megoldások nagyteljesítményű perifériák vezérlésére. Jel-integritás és elektromágneses-interferencia elkerülésének a fontossága. 

    5. A beágyazott rendszerek tipikus szoftver komponensei, periféria könyvtárak és Board Support Package (BSP), beágyazott operációs rendszer (típusaik, típusra jellegzetes felépítésük), köztes rétegek (middleware). Beágyazott Linux és FreeRTOS összehasonlítása, használati-esetek. Beágyazott virtualizáció különböző formái és megvalósítása Linux példákkal. 

    6. hét: Periféria kezelés tipikus SW megoldásai, GPIO, A/D és D/A átalakító, I2C/SPI/I2S chipek közötti kommunikációs megoldások SW alrendszerei beágyazott Linux-ban. Jellegzetes beágyazott perifériák bemutatása és kezelése magas szinten (user-space). A user-space és kernel-space beágyazott periféria kezelése összehasonlítása, elemzése. A kernel programozás előnyei és hátrányai, kerülésének indokai.  

    7. hét: Polling és interrupt alapú perifériakezelés, és azok összehasonlítása, jellegzetességeik ezek megjelenése a beágyazott Linux-ban. Valós-idejű periféria kezelés megoldásai, elemzése és vizsgálata. Esemény-vezérelt szoftver architektúrák, és azok megjelenése a Linux operációs rendszerben. Esemény-vezérelt és többszálú programozás mintái (select, poll rendszerhívások), szálak közötti szinkronizáció a gyakorlatban, közös erőforrások kezelése. 

    8. hét: Ütemező, ütemező választás, ütemező befolyásolása, valós-idejű ütemezés. Folyamatok és szálak használata és alkalmazásának a következményei. Rendszerindítás és folyamatmenedzsment alapjai (systemd és alternatívái, hosszú távú ütemezés). 

    9. hét: Hálózatba kapcsolt beágyazott rendszerek, szenzorhálózatok, biztonságkritikus és valós-idejű működés nehézségei elosztott rendszerekben. Elosztott rendszerek idő-vezérelt működése, az idő-vezérelt működés összehasonlítása az esemény-vezérelt megközelítéssel. Valós-idejű kommunikációs megoldások beágyazott rendszerekben. 

    10. hét: Idő kezelése elosztott rendszerben, óra- és frekvencia szinkronizáció problémái, szükségessége és megoldásai. Globális óraszinkronizáció (GNSS). Network Time Protocol (NTP) működése és korlátai. Óraszinkronizáció a telephelyen (pl. lokális hálózatban), IRIG és IEEE 1588, valamint annak a profiljai. 

    11. hét: Időérzékeny hálózatok (Time-Sensitive Networks, TSN), alapműködés, szolgáltatások. Valós-idejű köztesrétegek, alkalmazási réteg protokollok beágyazott információs rendszerekben. Publish-Subscribe megoldások és azok vizsgálata biztonságkritikus, valós-idejű beágyazott rendszerekben. MQTT és a valós-idejűség, OPC-UA és annak a TSN leképzése, Data Distribution Service (DDS). 

    12. hét: Heterogén többprocesszoros rendszerek alkalmazástechnikája, aszimmetrikus többprocesszoros rendszerek ütemezése. Edge rendszerek, edge és cloud kapcsolata. Edge compute HW és SW lehetőségei, számábrázolás hatása a számítási teljesítményre és a fogyasztásra. MI Edge Compute esettanulmány. 

    13. hét: Beágyazott rendszerek fejlesztése, hibakeresés beágyazott rendszerekben. Keresztplatformos fejlesztés, programletöltés és program nyomkövetése beágyazott rendszerekben. Oszcilloszkóp és logikai analizátor alkalmazása szoftver hibakeresés során, műszere programozott elérése esettanulmány.

     

    A laborok részletes tematikája

    1. hét: A laborok során használt fejlesztőkörnyezettel történő ismerkedés. 

    2. hét: Ismerkedés a valós-idejűség fogalmával Linux alatt egyszerű példaprogramokon keresztül, teljesítmény vizsgálat. 

    3. hét: Tárkezelés, és azon belül is a virtuális tárkezelés tulajdonságaival történő ismerkedés Linux alatt, memória alrendszer hatása a valós-idejűségre, teljesítmény vizsgálat. 

    4. hét: GPIO és A/D periféria villamos tulajdonságainak a vizsgálata kész szoftver felhasználásával. 

    5. hét: I2C periféria villamos működésének a vizsgálata kész szoftverrel. 

    6. hét: GPIO periféria interfész programozása beágyazott Linux alatt, a különböző megoldások időzítési viszonyainak vizsgálata. 

    7. hét: Eseménykezelés (pl. poll() rendszerhívás) és többszálú programozás mintáinak vizsgálata beágyazott alkalmazásban. 

    8. hét: Linux ütemezés befolyásolása, a valós-idejű ütemezési osztályok használata, és azok alkalmazásának hatása GPIO kezelés esetén. 

    9. hét: Rendszerindítási folyamat vizsgálata, egyszerű systemd script készítése beágyazott Linux program indítására. 

    10. hét: Beágyazott alkalmazási-réteg protokollok vizsgálata valós-idejűség szempontjából (MQTT és DDS összehasonlítása), késleltetés mérés az alkalmazási rétegben. 

    11. hét: Időkezelés Linux alatt, Linux rendszerórák és timerek használata. Időbélyegek kezelése. 

    12. hét: NTP és IEEE 1588 óraszinkronizációs megoldások a gyakorlatban. 

    13. hét: RemoteProc és RPMsg alkalmazása heterogén többprocesszoros környezetben egyszerű példával.

    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

    Előadás és az előadásokhoz szorosan kapcsolódó, egykártyás beágyazott számítógépen zajló laborgyakorlatok.

    10. Követelmények A félév során két nagyzárthelyi írására kerül sor. A kredit megszerzésének feltétele külön-külön a nagyzárthelyikre a kapható pontok 40%-ának elérése. A félévvégi osztályzatot a nagyzárthelyik összpontszáma alapján állapítjuk meg. Az elért összpontszámot az elérhető maximális pontszámhoz viszonyítjuk, és az alábbiak szerint osztályozunk: 
    • 40% -tól, de 52.5% alatt: elégséges (2) 

    • 52.5%-tól, de 65% alatt: közepes (3) 

    • 65%-tól, de 80% alatt: jó (4) 

    • 80%-tól: jeles (5) 

    Részvétel a laborokon: A gyakorlatokon a részvételt ellenőrizzük, a megrendezésre kerülő laborokon minimum 2/3-án a részvétel kötelező a félév végi jegy megszerzéséhez.

    11. Pótlási lehetőségek

    A nagyzárthelyik egyszeri pótlására a pótlási héten biztosítunk lehetőséget. Az 1. és a 2. ZH pótlására külön-külön, eltérő időpontban lesz lehetőség a pótlási héten. 

    A laborok nem pótolhatók, azoknak legalább a 2/3-án a megjelenés kötelező. Vagyis 13 gyakorlat esetén 9-en, 12 esetén 8 gyakorlaton kötelező a megjelenés, az aktuális szám a félév beosztásától függ.
    12. Konzultációs lehetőségek

    Az oktatókkal előre egyeztetett időpontban van lehetőség konzultációra.

    13. Jegyzet, tankönyv, felhasználható irodalom

    Tanszéki elektronikus jegyzet

    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra56
    Félévközi készülés órákra14
    Felkészülés zárthelyire40
    Félévközi készülés laborokra40
    Kijelölt írásos tananyag elsajátítása0
    Vizsgafelkészülés0
    Összesen150
    15. A tantárgy tematikáját kidolgozta

    Dr. Kovácsházy Tamás, egyetemi docens, MIT

    IMSc tematika és módszer

    Az IMSc program hallgatói számára emelt szintű, fakultatív házi feladatokat kínálunk, amelyekhez eszközt és konzultációt biztosítunk. Alapvető célunk az, hogy a hallgatókat a tananyag mélyebb, és egyben gyakorlati megismerésére ösztönözzük, ugyanakkor fakultatív feladatokkal választási lehetőségeket is kínáljunk számukra.

    IMSc pontozás

    A tantárgyból maximum 25 IMSc pont szerezhető: 

    • A zárthelyiken maximum 5 IMSc pont szerezhető emelt szintű feladat megoldásáért, ha a zárthelyi magában legalább 80%-os eredményű. 

    • Fakultatív házi feladatok emelt szintű megoldásáért összesen maximum 15 IMSc pont szerezhető. 

    Az IMSc pontok gyűjtése teljesen független a tantárgyban szerezhető ZH pontoktól. Ezen pontok megszerzése és a fakultatív feladatok megoldása nélkül is jeles szinten teljesíthetők a tantárgy követelményei. Az IMSc pontok megszerzése az IMSc programban nem résztvevő hallgatók számára is biztosított.

    Egyéb megjegyzések A tantárgy angol neve: Embedded Information Systems