Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Mikrokontrollerek - MCU -. Mikrokontroller / mikrovezérlő A mikrokontroller (uC) lényegében egy egy tokba integrált mikroszámítógép. Pontos definíciója.

Hasonló előadás


Az előadások a következő témára: "Mikrokontrollerek - MCU -. Mikrokontroller / mikrovezérlő A mikrokontroller (uC) lényegében egy egy tokba integrált mikroszámítógép. Pontos definíciója."— Előadás másolata:

1 Mikrokontrollerek - MCU -

2 Mikrokontroller / mikrovezérlő A mikrokontroller (uC) lényegében egy egy tokba integrált mikroszámítógép. Pontos definíciója nincs, különböző bonyolultságú típusok vannak. Korai, egyszerű típusok pl. uP kiegészítve belső memóriával vagy egyszerű portokkal. Mai típusok megfeleltethetőek egy nem is túl régi komplett számítógépnek...

3 Mikrokontroller / mikrovezérlő Amiben különbözik a nagyméretű gépektől: kisebb számítási teljesítmény kisebb fogyasztás kisebb memória (gyakran nem is bővíthető) speciális perifériák beépítve „tápot kap és már megy is”

4 Mikrokontroller / mikrovezérlő A mai típusok jellemzően tartalmaz(hat)nak:  processzormag  programmemória (EEPROM/Flash)  szabadon hozzáférhető memória (RAM); adatmemória (EEPROM)  órajel generátor  digitális ki-bemenetek, soros portok, analóg bemenet, PWM kimenet  időzítők, számlálók, eseményfigyelők, megszakítási lehetőségekkel

5 Mikrokontroller / mikrovezérlő Felhasználási területek: egyszerűbb beágyazott rendszerek (különböző gépek beépített vezérlőegysége)  pl. jármű, modelljármű, ipari berendezések műholdak, mérőműszerek, hobbi eszközök PC-n belül is van (perifériák vezérlőegységei)

6 Mikrokontroller / mikrovezérlő A 8bites típusok jellemzően <20MHz órajelűek, programmemóriájuk a néhány ezer sortól a néhány tízezer sorig terjed, a RAM a néhány száz bytetól a néhány száz kB-ig terjed. A processzor paraméterek szempontjából összehasonlíthatóak egy 80-as évekbeli PC-vel (de utóbbiak memóriája és háttértára általában nagyobb volt). Assemblyben is könnyen lehet programozni.

7 Mikrokontroller / mikrovezérlő A 32bites vezérlők akár 100MHz órajelűek is lehetnek, akár több MB programmemóriával és RAM-mal. Akár egy 90-es évekbeli PC processzor teljesítményét elérik. Ilyenekre fejleszteni már majdnem olyan, mint PC-re... Célszerűen C-ben lehet programozni.

8 Felépítés A mikrovezérlők jellemzően Harvard architektúrájúak, azaz fizikailag külön memória van a programnak (utasítások) és az egyebeknek (RAM). A programmemória nem feltétlenül 8bites felépítésű; a RAM általában 8bites cellákból áll A RAM mellett tartalmazhat data EEPROM-ot is a program által igényelt adatok tartós tárolása céljából.

9 A mikrokontroller belső felépítése

10 Program memória A központi egység a végrehajtandó adatokat a program memóriából olvassa ki. Ez a tár különféle igények miatt különböző típusú: ROM, PROM, EPROM, EEPROM, Flash lehet. ROM: ennek a tartalmát a gyártás során írják bele a memóriába. Ez – mivel nagy darabszám esetén a legolcsóbb memóriamegoldás – akkor előnyös, ha nagy mennyiségben akarjuk az adott felprogramozott PIC vezérlőt felhasználni. Természetesen ilyenkor a gyártóhoz kell juttatni a ROM-ba írandó teljes tartalmat és ezt írják be a gyártástechnológia adott fázisában a ROM-ba. PROM / OTP: Programmable ROM, One-Time Programmable; a felhasználó által egyszer programozható, így nem kell a gyártóhoz beküldeni, és utólag nem módosítható (ez akkor előnyös, ha nagyon el akarjuk kerülni, hogy a felhasználó belenyúljon a programba).

11 EPROM: Erasable Programmable ROM; ez a memóriatípus olyan, hogy a felhasználó képes ennek tartalmát beírni, majd új tartalom beírása előtt ultraibolya fénnyel [pl. kvarclámpa] törölni [„kinapoztatni”]. A kvarc ablakot törlés után le kell ragasztani, mert a napfény hatására idővel törlődik. Ma már nem használatos, meghaladta az EEPROM és a Flash, de pl. régi párhuzamos buszú memóriáknál találkozhatunk vele. EEPROM: Electronically Erasable Programmable ROM; hasonló az EPROM memóriához, de itt a törlés a „kinapozás” helyett elektromos jelekkel történik, így a programfejlesztéshez az ilyen típusú memória még előnyösebb. Ennek újabb változata a FLASH.

12 PIC mikrovezérlők A Microchip gyár mikrokontroller (MCU=microcontroller unit) családjának márkaneve a PIC. Létezik 8, 16, 32 bites változat, mindegyikből több család és több tucat típus. Az egyes családokat számok jelölik: 8bites családok: alsó kategória: PIC10, PIC12 középső kategória: PIC12, PIC16 felső kategória: PIC18

13 PIC 8b családok PIC10: <1k flash, B RAM, 6pin, 4..16MHz max, 8b ADC, b timer PIC12: 1..4k flash, B RAM, 8pin, 4..32MHz max, 10b ADC, 1..4 timers (8b / 16b) PIC16: 1..56k flash, 25B..4kB RAM, 8..64pin, MHz max, 10b ADC, 1..6 timers, UART, MSSP, stb. PIC18: k flash, 256B..4kB RAM, pin, MHz max, speciális perifériák, kibővített utasításkészlet

14 PIC16F690 blokkvázlat Digit. portok perifériák Flash program memória RAM ALU

15 PIC16F690 lábkiosztás A mikrokontrollerek kivezetései a sok funkció miatt multiplexáltak. Az egyes funkciók között szoftveresen (konfigurációs regiszterbe írással) lehet választani. A legtöbb kivezetés alapból bináris ki- vagy bemenet funkciójú (digital IO), ezek általában nyolcasával portokba vannak sorolva - pl. PORTA, PORTB stb (ábrán az RA0..7, RB0..7, stb feliratú kivezetések) Egy portba írással így egyszerre akár 8 kivezetés értékét módosíthatjuk, de lehetőség van a bitenkénti (lábankénti) módosításra is. (A bitmódosító utasítások jellemzően a mikrokontrollerek sajátossága, nem szokásosak a mikroprocesszorokban, ahol ezek helyett logikai műveletekkel (maszkolás) kell a biteket manipulálni.)

16 PIC program memória felépítése Amint tápfeszültséget kap (vagy reset után) a program futása a 0-ás prg.mem. címen kezdődik. A 4-es cím (5.sor) az ún. megszakítás vektor (interrupt vector). Ha megszakítás történik, ide ugrik a program (függetlenül a megszakítás okától – azt külön meg kell állapítani az ún. interrupt flag bitekből. Külön 8 szintű verem (stack) van. Ebbe menti a program counter (pc) tartalmát megszakításkor vagy call utasításkor (szubrutin hívás). A prg.mem. is állhat több oldalból (page) (hasonlóan a RAM bankjaihoz).

17 A PIC RAM felépítése (16F690) SFR: special function registers GPR: general purpose registers Bankok

18 PIC RAM A PIC-nél nincsenek külön processzor regiszterek és RAM, a kettő ugyanaz. (Az Atmel vezérlőknél a hagyományos processzorokhoz hasonlóan külön kis regiszterkészlet és külön nagy RAM van.) A PIC RAM 8 bites celláit is regiszternek hívják, ezekből kétféle van. A GPR-ek (General Purpose Registers) a hagyományos értelemben vett RAM, a szabadon írható-olvasható cellák. Itt tárolhatjuk a változóinkat. Az SFR-ek (Special Function Registers) egyrészt a mikrokontroller különböző beállításait tartalmazó regiszterek, másrészt a beépített perifériák beállításait és ki-bemenő adatait kezelhetjük rajtuk keresztül. (Ez lényegében a memory- mapped IO fogalom megvalósítása.) Az SFR-ek többnyire írhatóak és olvashatóak, de vannak kivételek. Pl. a TRISA regiszterben a PORTA kivezetések irányát (in vagy out) tudjuk beállítani. A PORTA regiszterben a hozzátartozó kivezetések értékét tudjuk beírni (ha output) vagy beolvasni (ha input). A TXD regiszterbe írással kezdeményezhetünk soros porti írást (ha előtte felkonfiguráltuk a megfelelő regiszterekbe írással…)

19 PIC RAM A legtöbb típusnál a RAM fizikai mérete nagyobb, mint amennyit egyszerre meg tud címezni. A RAM-ot „bank”- okra osztják, ezekből egyszerre egy érhető el. A Status regiszter mindegyik bankban ugyanott van. Ennek az RPx bitjei állítják be az aktuálisan használt bank számát. Az assemblerben a banksel direktíva segít a bankválasztásban (pl. banksel PORTA kiválasztja a PORTA regisztert tartalmazó bankot.)

20 PIC16 utasításkészlet A PIC16 család utasításai 14bitesek (egy „szó” (word)) Minden utasítás belefér ebbe a szóméretbe, paraméterestül (8b konstans vagy RAM cím)

21 PIC16 utasításkészlet összefoglaló

22 Utasításkészlet aritmetikai: add subtract increment, decrement logikai: and or xor complement bitenkénti: bit set, bit clear bit test rotate (shift) swap feltételes: inc/dec, skip if zero bit test, skip is set/clear adatmozgatás: move vezérlés: goto call, return nop (no operation) 18F sorozatnak kibővített utasításkészlet van Pl. hardveres szorzó is van benne, többféle feltételes utasítás stb.

23 Tápellátás A 8b PIC-ek jellemzően 5V vagy 3,3V tápfeszültségű kivitelben készülnek. A 16b és 32b verziók jellemzően 3,3voltosak. Az 5V-os verziók gyakran kb. 2,5V-5,5V tartományban működőképesek. A 3,3voltosak jellemzően nem szeretik a nagyobb feszültséget!

24 Órajel generálás PIC kontrollereknél Továbbá ma már többnyire van teljesen beépített órajel generátor (16F típusoknál jellemzően 4 vagy 8MHz-es, leosztható).

25 Órajel System clock (f s ): az alap órajel Instruction clock f instr = f s /4, az utasításvégrehajtási ciklus Majdnem minden utasítás egy ilyen ciklus alatt hajtódik végre (ezért is egy szó hosszúak), kivéve a vezérlésátadások, amelyek két ciklus alatt (a pipeline törlése miatt) Pl. ha f s =4MHz, akkor T instr =1us az utasításvégrehajtási idő

26 Watch Dog Timer [WDT] Ha a WDT időzítője lejár, reseteli a mikrovezérlőt. Ennek elkerülésére a programban időnként clear watchdog timer utasításokat kell elhelyezni. Bizonyos típusú „lefagyások” elleni védekezést szolgálhat.

27 Digital IO A legtöbb kivezetés beállítható digitális (bináris) ki vagy bemenetnek. A TRISx regiszterek állítják be a PORTx kapuk lábainak irányát. A PORTx regiszterek tartalmazzák a kivezetések aktuális értékét. Az inputra állított láb nagy impedanciás, tehát ha tri-state kaput akarunk készíteni, akkor a harmadik állapotot inputba állítással érhetjük el (ezért a TRIS név: tri-state) A kimenetek logikai 1 értékének a tápfesz felel meg. Bemenet esetében ne haladjuk meg a tápfeszt (ill. ne legyen nullánál kisebb)!

28 Digital IO illesztés Ha 5V és 3,3V eszközöket kell illeszteni egymáshoz. 5V eszköz a 3,3V-os szinteket a bemeneten logikai 1-nek veszi, ált. nem szükséges illesztés. 3,3V eszköz az 5V szintet nem szereti! Ezért azt pl. R-osztóval csökkentsük le. Hasznos lehet diódás, Z-diódás védelem is.

29 Kapcsoló illesztés Digitális porthoz kapcsoló illesztése A kondenzátor segíti a kapcsoláskor fellépő tranziensek (pergés, prell) csillapítását. Ha ez nem elég, akkor szükség lehet egy Schmitt-triggeres áramkör (pl inverter) közbeiktatására, vagy szoftveres megoldásra.

30 ADC (Analog digital converter) Jellemzően egy vagy két ADC egység van beépítve, egy multiplexer segítségével azonban több bemenet közül választhatjuk ki, hogy épp melyiket szeretnénk digitalizálni. A 8bites PIC-ek jellemzően 10bites szukcesszív approximációs ADC-vel rendelkeznek (azaz 10 ciklus alatt készül el az eredmény és azt két bájtban tárolja).

31 Timer/counter Timer funkció: f s /4 frekvenciával (T instr - ként) növeli a számláló regiszter tartalmát egyesével  8b vagy 16b számláló regiszter  Prescale: minden n-edik T instr -re növeli csak (1:1, 1:2, 1:4, 1:8, 1:16 jellemző) Counter: kívülről bekötött jel impulzusait számlálja

32 Capture/compare Capture mode: elmenti a timer értékét, amikor egy esemény (felfutó vagy lefutó él) történik egy adott bemeneten Compare mode: akkor lép életbe, ha a timer értéke elér egy előre beállított értéket

33 PWM PWM mode: négyszögjelet ad ki bizonyos kimeneten, kitöltési tényezője és frekvenciája programozható (pulse width modulation) vezérlési célokra alkalmazható (motor, világítás, fűtés, stb.) jellemzően pl. MOSFET-et hajtunk meg a uC-ról, és az hajtja a céláramkört

34 UART/USART/EUSART universal asynchron receiver transmitter egyszerű NRZ kódolású soros port RS232-ből megismert keretezés hardveresen megvalósítva Rx és Tx kivezetések (ha kell a többi, akkor digital io lábakkal szoftveresen) 8b, nincs paritás kimenet 0V – tápfesz, illesztés szükséges

35 UART illesztés uC PC Max232 IC átalakítja +- (szimmetrikus) feszültségűvé a 0-5V jelet (a kondik a töltéspumpához kellenek).

36 MSSP master synchronous serial port I2C és SPI megvalósításához

37 Egyéb portok Speciális PIC-ekben (tip. 18F család) lehet még pl.: USB logikai illesztő CAN logikai illesztő Ethernet logikai illesztő (a fizikai illesztő IC ilyenkor is kellhet hozzájuk)

38 Soros programozás Programozás: Van egy hardver (a programozó), ami a PC-ről jövő jelet (USB vagy RS232) átalakítja és betáplálja a mikrokontrollerbe. A programozási mód beállításához a Vpp lábra kell kötni egy bizonyos feszültséget (a normál tápfesznél nagyobbat). A programozás egy szinkron soros adatátvitel: ICSPDAT lábon az adat, ICSPCLK lábon az órajel megy. Ált. öt láb kell a programozáshoz, a tápfesz, föld, Vpp, adat és órajel. A hatodik láb ún. kisfeszültségű üzemmódot tesz lehetővé, nem szükséges.

39 Soros programozás A programozás egy másik módja az ún. bootloader használata. Ez egy kis program, amit először hagyományos módon feltöltünk. Utána a mikrokontrollerhez a saját soros portján (UART vagy USB) csatlakozva a bootloader segítségével közvetlen a PC-ről töltjük át a programot. A bootloader ilyen szempontból a PC op rendszeréhez hasonlít (ő indul el először és ő indítja el a felhasználói programot). (Ez csak akkor megvalósítható, ha a uC rendelkezik ilyen porttal ill. elég nagy prg.memóriával, hiszen a bootloader is helyet foglal el.)

40 Programozó eszközök: PICkit

41 PICDem2 demo board

42 Atmel 8b mikrovezérlők Load-store architektúra (külön regiszterkészlet és külön RAM, adatokat be kell másolni RAMból a regiszterekbe, ott lehet dolgozni velük) jellemzően nagyobb RAM, mint PIC-ben egyébként hasonló tudású egyesek szerint kevésbé zaj/zavar- érzékeny egyesek szerint kevésbé jó leírása van programozásával is vannak gondok

43 AVR STK500

44 Atmel vezérlős fejlesztőpanelek: Arduino család

45 Raspberry Pi 32bites mikrovezérlő panel microSD kártya foglalat HDMI és kompozit video out audio out USB ethernet gyakorlatilag egy komplett számítógép (Linux futtatható rajta) ARM magos vezérlővel

46 Köszönjük a figyelmet és sikeres ”égetést” kívánunk!


Letölteni ppt "Mikrokontrollerek - MCU -. Mikrokontroller / mikrovezérlő A mikrokontroller (uC) lényegében egy egy tokba integrált mikroszámítógép. Pontos definíciója."

Hasonló előadás


Google Hirdetések