1.06k likes | 1.33k Views
Mit jelent az, hogy “ Beágyazott Rendszer ?”. “ Egy specializált számítógép rendszer, ami egy nagyobb rendszer vagy berendezés része .” Webopedia
E N D
Mit jelent az, hogy “Beágyazott Rendszer?” “Egy specializált számítógép rendszer, ami egy nagyobb rendszer vagy berendezés része.” Webopedia “…egy beágyazott rendszer előre definiált feladatokat teljesít, általában speciális követelményeknek megfelelve. Mivel a rendszer egy speciális feladatra készült, ezért a tervezőmérnökök optimalizálták, csökkentve a méretét és a költségeket.” Wikipedia
Az ipar legfontosabb tervezési kihívásai napjainkban • A HW mérnök problémája: A komplex megoldások kihívása • Ethernet, USB, video, audio, (iPod, cell phone) • A SW mérnök problémája: A szoftver méret exponenciális növekedése • Megközelítőleg a teljes fejlesztési költségek 50% a szoftverrel kapcsolatos • A legtöbb beágyazott rendszer fejlesztése a szoftver problémák miatt késik • A terméktervezési ciklus problémája: Az egyre bonyolultabb rendszerek kihívása.
A tervezési ciklus Terv Test Rendszer Specifikáció Alkalmazási teszt Kalibrálásés FunkcionálisTeszt Tervezésés Szimuláció Prototípus Rendszer Teszt (HIL) Kódgenerálás
Ipari vezérlések Mozgás vezérlés Komplex vezérlési alkalmazások Repülés vezérlés Precíziós gépi vezérlések Motor vezérlés
Kulcsrakész rendszerek Moduláris redsz. COTS kártyák ODM kártyák Egyedi kártyák Standard Silicon ASIC ASSP Hogyan csökkenthetjük a beágyazott rendszerek tervezése során a komplexitást? Bevezetés költsége Gyártási volumen
Hagyományos beágyazott rendszerek fejlesztési ideje Hardver tervezés: 2 hét Logikai és áramköri tervezés: 2 hét Hardver verifikáció: 2 hét Szoftver tervezés/kódolás: 2 hét Szoftver integráció: 2 hét Rendszer teszt/ellenőrzés: 2 hét ÖSSZESEN: 12 hét, $50,000 - $150,000
Moduláris és készen kapható elemekből építhető beágyazott rendszerek Hardver tervezés: 0hét Logikai és áramköri tervezés: 0hét Hardver verifikáció: 0hét Szoftver tervezés/kódolás: 1hét Szoftver integráció: 1hét Rendszer teszt/ellenőrzés: 1hét ÖSSZESEN: 3hét, $17,000 + PC költség
Általános HW rendszerarchitektúrák Analog I/O Analog I/O Sensor I/O Sensor I/O Processor FPGA Processor Bus I/O USB, Ethernet Bus I/O USB, Ethernet Digital I/O Digital I/O Processor Analog I/O Sensor I/O Bus I/O USB, Ethernet Digital I/O
Általános beágyazott kommunikációs módszerek SPI I2C Serial
2. Előadás: Téma: A. Általános FPGA programozási technikák
Tartalom • FPGA műveleti paletta • Egyszerű FPGA VI • Párhuzamosság és megosztott erőforrások • Egészaritmetikai kérdések
FPGA műveleti paletta • FPGA specifikus funkciók • Programozási technikák • Eszköz I/O • Aritmetikai és logikai elemek • Tömbök és klaszterek • Időzítések • Matematikai és vezérlési funkciók • Szinkronizálás és FIFO elemek • Táblázatok
Egyszerű FPGA VI • F=(A+B)CD
LabVIEW technológia leképezése FPGA-ra A megadott logika leképezése FPGA: F =(A+B)CD F AB CD
A fordítási folyamat és a szerver • A LV diagramok konvertálása átmeneti leíró fájlokra • A leíró fájlok elküldése a fordító szerverre • Lefordítja az adat fájlokat az FPGA-ra • Visszaadja az FPGA konfigurációs fájlt a LabVIEW-nak • A bitfolyamot egy VI tárolja • A LabVIEW környezet egy kliens • Tetszőlegesen kapcsolódhat a szerverhez és leválhat róla a fordítás után Compile Server
Letöltés Windows OS • A RUN parancs kiadása után a fordítás végén automatikusan történik LabVIEW FPGA Module Target FPGA FPGA VI Download Bit File Embedded FPGA VI ( a bitfájl maga)
Interaktív mód • Az FPGA-n futó VI egy Előlapi panelen keresztül érhető el • Nincs debug lehetőség • A VI az FPGA-n fut Windows OS LabVIEW FPGA Module FPGA VI (Front Panel) Target FPGA FPGA VI (működő) Kommunikáció
Host PC interaktív mód • A Host PC VI Előlapja biztosítja FPGA VI kommunikációt • Megenged egyéb feldolgozást is a Host VI-ban Windows OS VI (Front Panel) Target FPGA FPGA VI (működő) Kommunikáció
Windows Target mód Windows OS • Az FPGA VI a Windows rendszeren fut • Szoftver emuláció • Nincs hardver időzítés • Debuggolás lehetséges • A logika ellenőrzése fordítás előtt LabVIEW FPGA Module (targeted to Windows) FPGA VI
Task 1 Task 1 Task 2 Task 2 Megosztott erőforrások Mielőtt egy taszk használhatna egy megosztott erőforrást, meg kell várnia, míg az eszköz felszabadul. Megosztott erőforrás Fut Vár A Task 2 akkor indulhat, ha a Task 1 befejezte az erőforrás használatát Megosztott erőforrás Vár Fut
Megosztott erőforrások • Megosztott erőforrások: • Digitális kimenetek • Memória/FIFOs • Nem újra-beépülő VI-ok • Lokális változók
VI-ok megosztása (nem újra-beépülő VI-ok) • Nem újra-beépülő (Alapértelmezett) • A VI megosztott • Egyetlen példányban épül be az FPGA eszközbe • Újra-beépülő VI • A diagram minden példánya külön logikai elemekre képződik le az FPGA-ban (több helyet igényel) • Beállítható az erőforrás tulajdonságokban az opciók között
Egész aritmetika • Nincs lebegőpontos művelet • Sem szimpla, sem dupla pontosságban
Egész aritmetika • Adatok skálázása • A lebegőpontos szorzást/osztást helyettesítsük skálázással • Leginkább 16 bites egészeknél használható, a számításoknál 32 bites szélességet használva • Műveletek • Szorzás egész értékű skálázó értékkel • Skálázás 2 hatványaival • Együttesen megoldható a szorzás törttel művelet
Egész aritmetika • Változó értékű skálázáshoz a skálázó faktor kiszámítható és beállítható a Host VI-ban Például: Skálázó faktor: 11500Léptetés: -14 bit jobbraA művelet eredménye: 11500 / 16384 = 0.7019
Egész aritmetika • A matematikai műveletek során előforduló túlcsordulások kezelésére és elkerülésére használjunk szaturációs műveleteket • Túlcsordulás esetén két lehetőség van -Szaturáció -Átfordulás
3. Előadás: Téma: • FPGA I/O konfigurálása • FPGA I/O paletta • I/O típusok
Az FPGA I/O kétféleképpen használható: Áthúzhatjuk a LabVIEW Project-ből Tegyünk egy üres I/O komponenst a blokk diagramba és konfiguráljuk Az FPGA I/O használata
I/O típusok • Digitális vonalak – Boole változók írhatók/olvashatók a vonalakról • ADC és DAC – Magas szintű VI-ok, értékek írására és olvasására; NI R-Series hardver • Előre kiosztott IO lábak az FPGA-n (pl. Xilinx Spartan 3E kártyán) • Használjuk a példa projekteket mintaként
Számláló készítése Digital I/O vonalakkal • A minimális használható pulzusszélességet a ciklus periódusideje szabja meg
Bináris konverzió az Analog I/O vonalakkal • Az Analóg I/O használatakor a bináris értéket a nominális értékre jkell konvertálni a host VI-ban • A bináris konverziós tényező az aktuális kártyától függ • Spartan 3E; 14-bit ADC • NI Hardware; modulonként változó
3A Előadás: Téma: • Digitális I/O protokollok az FPGA I/O vonalakkal
Általános digitális kommunikációs módszerek • Komponens/IC kommunikáció • Elektromos tervezés: SPI, I2C, JTAG, PS/2, … • Rendszer kommunikáció • Repülés: MIL-STD-1553, ARINC-429, … • Autóipar: CAN, MOST, KWP, 1939, … • Távközlés • Űrkutatás: PCM/Telemetria • Fogyasztói elektronika • Digitális audió: S/PDIF, I2S • Egyedi • Eszköz specifikus megvalósítás
SPI kommunikáció Pont-pont Master - Slave SPI kapcsolat Egy Master, több Slave SPI busz kapcsolat
PWM mommunikáció • A PWM használható egyszerűbb szervo vezérléseknél Pulzus szélesség SzögMegjegyzés 0.6ms -45 fok minimum pulzus szélesség 1.5ms0 fok középállás 2.4 msc -45 fok maximum pulzus szélesség
A LabVIEW FPGA használata digitális protokollok generálására Látogassunk el www.ni.comoldalra, ahol a LabVIEW FPGA-hoz különböző példamegoldások találhatók a PWM, I2C, SPI, és más protokollokhoz
4. előadás: Témák: • Időzítési funkciók • Ciklusvégrahajtás különböző időzítési funkciókkal • Párhuzamos ciklusvégrehajtás • Ciklusok szinkronizálása • Adatmegosztás
Időzítő függvények konfigurálása • Számolási egységek • Ütemek • μsec • msec • Belső számlálók mérete • 32 Bit • 16 Bit • 8 Bit
Ciklusidőzítés • A szokásosan használt ciklus szerkezetben a ciklus időzítő az első hurok végrehajtás előtt inicializálja a hurok időzítését • Ha a kód végrehajtása egy esetben meghaladja a beállított időzítést, akkor a hurok időzítő ezt tolerálja és ettől függetlenül a továbbiakban is az eredetileg beállított hurok időzítést tartja.
A ciklusidő beállítás és a várakozás értelmezése • A kódszerkezet teljesen azonos • A ciklus időzítő kód csak az első lefutáskor aktív • A várakozás a hurokvégrehajtás minden iterációjában aktív
Ütemszámláló alkalmazási példa:Végrehajtási idő mérése 1. Módszer 2. Módszer
Időzítés használata kiválasztott órajelciklushoz időzített ciklusokhoz • Több funkció végrehajtása egyetlen órajel alatt • A ciklus alapértelmezésben a fordításkor megadott órajel sebesség szerint hajtódik végre • Javítja a kódvégrehajtás sebességét és hatékonyságát • Minden kódrészletnek egyetlen órajelciklus alatt kell végrehajtódnia 50 MHz Clock = Spartan 3E HW 40 MHz Clock = NI HW 16MHz Clock = Logsys HW
Többszörös órajel tartományok • A rendszerórajel alapján különböző sebességű órajeltartományok alakíthatók ki • Ennek megfelelően a különböző egy órajelciklus időzítésű hurkok működtethetők eltérő órajelekről • Támogatott I/O egységek: • R sorozatú digitális I/O-k • cRIO-9401 • Használható: • Órajelek generálására • Lokális sebesség optimalizálás
4.1 gyakorlat Téma: Időzítés és IO Tárgy: To create a VI that reads and writes to AI/O and sets a digital line high when threshold value is reached Solution: Found in Solutions folder