Nagyteljesítményű mikrovezérlők

A VIK Wikiből
A lap korábbi változatát látod, amilyen Bessenyei Szilárd (vitalap | szerkesztései) 2016. február 23., 20:45-kor történt szerkesztése után volt. (→‎2014 tavasz)
Ugrás a navigációhoz Ugrás a kereséshez
Nagyteljesítményű mikrovezérlők
Tárgykód
VIMIM342
Általános infók
Kredit
4
Tanszék
MIT
Követelmények
Házi feladat
1 db
Vizsga
írásbeli
Elérhetőségek

Tartalomjegyzék

2015 tavasz

ARM magokkal foglalkozik, elég érdekes tárgy. aborokon gyakorlatban mikrovezérlőket programoztunk. IDE-ként Coocox-ot használtunk, legtöbbet az LPC1768-as, és a Silabs EFM32 modulját használtuk. A félév során egy házit kellett elkészítenünk, ahol gyakorlatban használtuk azt amit órán tanultunk. A házira fajta jegyet kaphattál:

  • OK: 1 tetszőleges kérdés max. pontra elfogadva.
  • Jó: 2 tetszőleges kérdés max. pontra elfogadva
  • Szuper: 3 tetszőleges kérdés max. pontra elfogadva

Vizsga pontozás:

  • 40%-tól elégséges, a többi lineáris.

Vizsgához kérdések

  • kérdéslista: kb. 60 kérdés
  • Vizsgán 10 random kérdés a listából
  • HF beszámítása a vizsgába

Vizsga kérdés válasz: Kerdes-Valasz2015

Ellenőrző kérdések a „Nagyteljesítményű mikrovezérlők” tárgyhoz

1. Mutassa be, a mikrovezérlő piac alakulását és fő trendjeit az ARM Cortex magú vezérlők megjelenéséig. Milyen főbb vezérlő családok jelentek meg, ezeknek milyen jellegzetességeik voltak!

1976: Intel 8048, 8049

  • 8 bit
  • 10 MHz
  • 1-2k ROM, 64-256 byte RAM

1980: Intel 8051

  • 8 bit ALU és adat
  • 16bit cím
  • UART
  • Power saving mode
  • 128 byte RAM, 4kByte ROM, 4*8 bi-dir I/O, 2*16bit counter/timer

1993: PIC

  • EEPROM alkalmassá teszi amatőr felhasználásra
  • 1K EEPROM program, 64byte EEPROM adat, 36 byte SRAM

1997: Atlem IPS Flash

  • AVR mag
  • In-System programozható normál feszültségen
  • 8kB Flash, 512B SRAM, 512B EEPROM, UART, SPI, PWM, 32 I/O

2003: Első ARM7-es alapú mikrovezérlő

  • 2006: Cortex M3

2. Mutassa be az ARM cég filozófiáját és a hagyományos ARM magok: ARM7, ARM9, ARM11 jellegzetességeit

  • Processzor magok tervezésével foglalkozik, közvetlenül nem gyárt
  • Széles termékskála, legelterjedtebb 32bit-es család
  • ARM7-9-10-11-> növekvő teljesítmény és fogyasztás
  • ARM7 -> Cortex M
  • ARM9 -> Cortex R
  • ARM 10/11 -> Cortex A

3. Ismertesse az ARM7 magok jellemzőit: utasításkészlet, architektúra működési módok. Interrupt kezelés!

  • Kevés utasítás, kis komplexitás
  • 3 elemű pipeline
  • Load-Store Architektúra, általános regiszterek
  • 5 működési mód
    • FIQ
    • Supervisor
    • Abort
    • IRQ
    • Undefined
  • Alacsony szintű interrupt kezelés
  • 2 utasításkészlet:
    • 32 bit ARM
    • 16 bit THUMB (30%-kal kisebb, 40%-kal lassabb)

4. Hasonlítsa össze a 8bites és 32bites mikrovezérlők lábszámának és Flash memóriájának, valamint árának a változását az elmúlt 5-10 évben!

5. Hasonlítsa össze a 8bites és 32bites mikrovezérlők sleep fogyasztásának és mőködési feszültség tartományának, valamint perifériakészletének alakulását az elmúlt 5-10 évben!

6. Ismertesse a 8bites és 32bites mikrovezérlők választása mellett és ellen szóló legfőbb érveket!

8bit:

  • Alacsonyabb ár
  • Erre specializált 8bites esetén alacsonyabb fogyasztás
  • A 8bites mindig robusztusabb
  • Erős gyári támogatás, egyszerűbb chip, egyszerűbb fejlesztés

32bit:

  • Az árkülönbség egyre csökken
  • mA/MIPS-ben sokkal jobb, mint a 8bites
  • Lemaradás sleep-áramfelvételben és feszültségtartományban folyamatosan csökken


7. Mutassa be az ARM Cortex mag sorozatának (M, R, A) jellegzetességeit! Melyik Cortex-es sorozat melyik hagyományos mag sorozat kiváltására készült!

8. Mutassa be a Cortex M3 processzor mag fő jellemzőit (architektúra, főbb blokkok,újdonságok az ARM7-hez képest)!

  • THUMB-2 Utasítás készlet: Nincs külön ARM és THUMB, egyszerre tartalmaz 16 és 32 bites utasításokat
  • Egyszerűbb programozó modell az ARM7-hez képest
  • Nagyobb teljesítményű utasítások, mint az ARM7-en
  • Hozzáférési módok
    • Privileged (volt Supervisor, minden erőforráshoz hozzáfér)
    • Unprivileged (Felhasználói mód, néhány utasítás letiltva, System control Space regiszterek nem hozzáférhetőek)
  • Működési módok
    • Thread mód (normál, lehet privilegizált és nem is)
    • Handler mód (Kivétel / Interrupt kezelés, privilegizált)
  • 2 külön Stack -> rosszul működő alkalmazás nem tudja kilőni az oprendszert
    • Main stack: OS-nek és interruptoknak fenntartva
    • Process stack: Thread mód számára

9. Mutassa be röviden a Cortex M3 alapú vezérlők memória szervezésének jellemzőit.Milyen főbb cím tartományok vannak, mi az a bit banding, mi a non-aligned memóriahozzáférés. Mik a főbb különbségek az ARM7 alapú vezérlőkkel szemben!

10. Mutassa be a Cortex M3 utasítás végrehajtását (pipe-line), programozói modelljét(load and store), regiszter készletét!

11. Mutassa be a Cortex M3 mőködési módjait és hasonlítsa ezeket össze az ARM7mőködési módjaival!

12. Mutassa be a Cortex M3 standard perifériáit (System timer, NVIC, debugg blokkok) és az ezek által nyújtott előnyöket!

13. Mutassa be a piacon kapható legelterjedtebb Cortex M3 alapú mikrovezérlő sorozatokat!

14. Mutassa be a legelterjedtebb ARM7 magú és Cortex M3 magú sorozatok belső felépítésének fejlődését az elmúlt 8 évben!

15. Mutassa be a Reset és elindulás folyamatát az STM32F107 és az LPC1768 vezérli esetében!

16. Mi az a Flash gyorsító modul, miért szükséges. Mutassa be röviden a hasznát és a működését!

17. Mutassa be egy tipikus Cortex M3 magú vezérlő órajel hálózatát. Magyarázza meg az egyes órajel osztások értelmét és szükségességét.

18. Mutassa be röviden a CMSIS-t (Cortex Microcontroller Software Interface Standard)

Layer a User Application Code és MCU között.

CMSIS Core

  • Hardware abstraction Layer: Minden Cortex M variánshoz standardizált periféria és regiszter kezelés
  • Rendszer kivétel nevek: Kivételekhez, interruptokhoz való hozzáférés definiálása
  • Header File szervezés definíciók: Elnevezési konvenciók az interruptokhoz és header fileokhoz.
  • Rendszer indítás: Független inicializáló függvény interfész, SystemInit()
  • Speciális utasítások támogatása
  • System Clock frekvencia meghatározása

device.h: Perifériák definíciója. Include-olhatja a többi szükséges headert.

19. Mutassa be egy általános 32 bites mikrovezérlő GPIO lábainak kezelését. Milyen a 8bites vezérlőkre nem jellemző problémák léphetnek fel az STM32F107 esetében a GPIO lábak kezelésénél?

  • Pin direction
  • Data Read
  • Data Write
  • Port funkció regiszter - sokszor alternetív funkciójuk van
  • Külön órajel generáló blokk

20. Mutassa be egy modern Timer blokk által nyújtott lehetiségeket. Milyen Timer megvalósítások lehetségesek egy 32 bites vezérlőnél?

21. Mutassa be az SPI kommunikáció jellegzetességeit és mutasson példát tipikus SPI buszon keresztül kommunikáló perifériákra.

22. Mutassa be az I2C kommunikáció jellegzetességeit és mutasson példát tipikus I2C buszon keresztül kommunikáló perifériákra.

23. Mutassa be az USART periféria tipikus felhasználási lehetőségeit!

24. Mutassa be a mikrovezérlőkben található AD és DA átalakítók tipikus tulajdonságait és működését.

25. Hasonlítsa össze a Cortex M3 NVIC-ét az ARM7 megszakításkezelési lehetőségeivel.

ARM7: 2 interrupt vonal, nem determinisztikus kiszolgálás, nincs nested IT támogatás hardveresen. Cortex M: Nested Vector Interrupt Controller

  • Gyártó független standard
  • A Thumb2 több órajeles utasításai megszakíthatóak, így determinisztikus
  • Nested IT támogatása
  • Megszabható a bemenő vonalak száma

26. Mutassa be az NVIC interrupt vektor tábla szervezésének főbb jellegzetességeit (nem kell tudni fejből az IT tábla felépítését). Hány periféria megszakítást támogat az NVIC, mindegyiket ki szokták ezek közül használni?

Ugrótábla:

  • Azonosító
  • Exception Type
  • Priority
  • Type of priority
  • Leítás

240 külső periféria interruptot támogat, de erőforrás minimalizálás miatt megszabhatják a tervezők a bemeneti vonalak számát.

27. Mutassa be az NVIC priorítás kezelésének alapjait. Mire jók a megszakításmaszk regiszterek, és mi az értelme a Vector Table offset regiszternek?

Az alap belső kivételeknek fix prioritása van. A többi megszakításhoz 3-8 bites prioritás regiszter kapcsolódik [06-9]. 127 preempciós szint + szubprioritás, a legalacsonyabb fut le először.

Megszakításmaszk regiszterek: bizonyos interruptok érvényre jutását lehet megakadályozni (Primask, faultmask, basepri

Vector Table Offset Register: )

28. Mutassa be a Cortex M3 NVIC-jének megszakítás végrehajtási folyamatát! Mi az a tail-chaining, mi történik ilyenkor?

29. Mutasson példát a DMA kezelés használatára! Milyen átviteli és működési lehetőségeket kínál egy általános DMA blokk. Milyen paramétereket kell általában beállítani egy DMA átvitelhez?

30. Mutassa be röviden az STM32F1xx vezérlők DMA blokkjának működését. Milyen problémákat okozhat a memória – memória átvitel esetében a cirkuláris buffer beállítás használata? Hogyan próbálják a DMA hatékonyságát növelni az új sorozatú vezérlőknél (memória elrendezés)?

31. Röviden mutassa be a beágyazott operációs rendszerek és az asztali operációs rendszerek közötti különbségeket! Miért célszerű egy operációs rendszer porttal kezdeni egy 32 bites vezérli fejlesztését, milyen járulékos dolgokat hoz általában magával egy kész operációs rendszer port?

32. Röviden mutassa be a µC-OS felépítését és jellegzetességeit!

33. Röviden mutassa be az eCos felépítését és jellegzetességeit!

34. Röviden mutassa be a FreeRTOS felépítését és jellegzetességeit!

35. Mutassa be, hogy milyen lehetőségeink vannak a mikrovezérlők aktív fogyasztásának befolyásolására 8 bites és 32 bites mikrovezérlők esetében. Hasonlítsa össze nagyvonalakban a 8 bites és 32 bites mikrovezérlők aktív fogyasztásának alakulását az elmúlt pár évben.

36. Mutassa be, hogy egy általános 8 bites és 32 bites mikrovezérlőnek milyen energiatakarékos módjai vannak (általánosan jellemzi módok kellenek, nem kell tudni, hogy melyik vezérlőnél hogy hívják ezeket).

37. Tipikusan miért vannak hátrányban a 32 bites vezérlők a 8 bites társaikhoz képest az energiatakarékos fogyasztás (passzív állapotok) tekintetében. Milyen technikákat, trükköket vetnek be ezek kompenzálására?

38. Mi az a ROM monitor (más néven GDB stub), tradicionálisan hogy és hol lehet használni, miért nem a legjobb megoldás a modern 32 bites mikrovezérlők esetében?

39. Mi az a GDB, milyen jellegő parancsok használhatóak a GDB-ben a target debuggolására? Mi az a GDB RSP, milyen tulajdonságai vannak, miért játszik fontos szerepet a beágyazott rendszerek debuggolásában!

40. Mi az az Open-OCD, milyen főbb komponensekből áll, mire kell odafigyelni, amikor kész Open-OCD forításokat próbálunk használni saját eszközünkhöz?

41. Mutassa be nagyvonalakban, hogy milyen lépések játszódnak le akkor, amikor egy Eclipse-es GDB, alapú debugger felületen le szeretnénk egy debugg állapotban lévi target egy változójának értékét kérdezni az OpenOCD segítségével!

42. Mutassa be, hogy milyen blokkokból áll a Cortex M3 Coresight debug rendszere, mennyivel nyújtanak ezek a blokkok több lehetiséget egy tradicionális hibakereséshez képest.

43. Mik azok az SD kártyák, milyen főbb típusaik vannak? Milyen alapvető lehetőségek vannak a fizikai illesztésüknél, és mik ezeknek az előnyei és hátrányai?

Secure Digital Memory Card. Standard (-2GB), SDHC (4-32GB) és SDXC(32GB-2TB) változatok elérhetőek. Az interfészek között van különbség, de lefelé kompatibilisek.

Típusai:

  • SD Card - 32 x 24 mm
  • MiniSD Card - 21.5 x 20 mm
  • microSD Card - 15 x 11 mm

Minimális sebesség: 8 Mb/s, Class szám adja meg a sebességet. Leggyorsabb a Class 10. Kommunikációs módok:

  • One-bit SD mode: Külön parancs és adat csatotrna
  • Four-bit SD mode: Extra adattáblák
  • SPI mode: Egyszerűsített kommunikációs elsősorban mikrokontrolllerek részére

44. Mutasson egy rövid példát az SD kártyák kezelésére SPI módban: írás, olvasás, törlés (nem kell a pontos parancsszámokat tudni, elég, egy átviteli ábra mindegyikből)!

Az SPI Frame 6 byte-ból áll, a CRC kikapcsolható.

45. Mutassa be a FAT file rendszer felépítését, röviden foglalja össze, hogy mi az a FAT tábla, és mi az a Directory tábla!

  • A partíciók egyenlő clusterekre vannak bontva
  • Minden file egy vagy több clustert foglal el. Egy file a clusterek láncolt listájával megadható.
  • Sokszor az összetartozó clusterek nem egymás mellett vannak -> Fragmentálódás

Boot sector:

  • Bootloadert tartalmaz
  • Nem mindig az első szektor

FS Information sector:

  • Csak FAT32-ben
  • Szabad terület gyors nyilvántartása

File allication Table (FAT) Table

  • Leíró lista, ami térképet ad a partíció clustereihez
  • Tartalmazza
    • Következő cluster száma
    • End of Clusterchain jelzés
    • Bad Cluster jelzés
    • Reserved Cluster jelzés
    • 0 Ha a cluster nem használt

Directory Table

  • Speciális file
  • Minden file vagy directory egy 32byte-os blokkal azonosítódik
  • Tartalmazza: Név, Kiterjesztés, Attribútumok, Utolsó hozzáférés, Cluster cím, Méret


46. Milyen felépítése van a ChanFatFS programcsomagnak, milyen szolgáltatásokat nyújt, és tipikusan milyen funkcionalitásokat kell egy ilyen programnál portolni, ha saját rendszerünkben szeretnénk használni?

Tipikusan beágyazott rendszerekhez létrehozott FAT fájlrendszer, platformfüggetlen. Application -> FatFS module -> (LowLevel disk I/O, RTC Clock)

Portolás: Disk drive inicializáció, Disk drive státusz lekérdezés, szektor olvasás. Ha nem readonly Szektorírás és Disk specifikus tulajdonságok (disk_ioctl). get_fattime: rendszeridő lekérdezés.

47. Milyen vezetékek futnak egy USB 2.0 kábelben, mi ezek szerepe? Milyen USB csatlakozókat használnak? Rajzolja fel egy up-/downstream USB FS transzíver sémáját! Melyik hol található? Mi a lényeges különbség? Miben tér el az LS és FS transzíver?

48. Milyen állapotokat vehet fel az USB két adatvezetéke? Az egyes állapotokhoz adjon példát: mikor kerülnek ezek a buszra? A fizikai rétegben milyen bitkódolást használ az USB átvitel?

49. Mutassa be egy USB csomag általános felépítését! Milyen főbb csoportokba oszthatók a csomagok, mi ezek jellemzije? Jellemezze az USB négy transzfer típusát! Mikor melyiket érdemes/kell használni? Mondjon példákat!

50. Mi az az USB pipe és az endpoint, mi a különbség az IN és OUT típusú endpoint között? Milyen viszonyban van az eszköz-, konfiguráció-, interfész- és a végpont leíró? Melyik "mire való"?

51. Tipikusan milyen TCP/IP protokollok szükségesek egy beágyazott megvalósításban? Röviden mutassa be ezeknek a szerepét!

52. Milyen megvalósítási problémákkal egyszerűsítésekkel találkozhatunk egy beágyazott TCP/IP protokoll stack esetében (IP-, ICMP-, TCP korlátok, memóriakezelés, párhuzamosság)? Kis teljesítményű, kis erőforrású vezérli esetében miért nem mindegy, hogy TCP, vagy UDP alapú alkalmazási rétegbeli protokollt használunk?

53. Mutasson be röviden két beágyazott TCP/IP protokoll stack-et és jellemezze őket!

54. Mutassa be röviden a Cortex M0 mag jellegzetességeit, miben különbözik a Cortex M3 magtól és az ARM7 magtól! Mi az a WIC (Wake-up Interupt Controller) és miért fontos az energiatakarékosság szempontjából?

55. Milyen elinyei lehetnek egy 32 bites vezérlinek egy 8 bites vezérlivel szemben energiatakarékos alkalmazásoknál (miért lehet fontos a hatékony utasítás végrehajtás)?

56. Milyen piaci szegmenst céloznak meg az NXP LPC11xx sorozatai alapvetien miben különböznek ezek a vezérlők a Cortex M3 sorozatú társaiktól?

57. Mutassa be a Cortex M4 mag jellegzetességeit! Mik azok a SIMD és MAC utasítások és miért lehetnek ezek hatékonyak jelfeldolgozásra?

58. Mutassa be az NXP LPC4300-as sorozatának felépítését! Milyen szerepet szánnak az M0-ás és az M4-es magnak, mutasson erre példát!