ARM Cortex magú mikrovezérlők

Hasonló dokumentumok
Nagyteljesítményű mikrovezérlők

Nagyteljesítményű mikrovezérlők

ARM Cortex magú mikrovezérlők

ARM Cortex magú mikrovezérlők

Nagyteljesítményű mikrovezérlők

Nagyteljesítményű mikrovezérlők Energiatakarékos üzemmódok

Nagyteljesítményű mikrovezérlők

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

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

Nagyteljesítményű mikrovezérlők

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

ARM Cortex magú mikrovezérlők

ARM Cortex magú vezérlők Energia felhasználás Energiatakarékos üzemmódok

ARM Cortex magú mikrovezérlők

ARM Cortex magú mikrovezérlők. mbed

ARM processzorok felépítése

ARM Cortex magú mikrovezérlők

Dr. Schuster György szeptember 27.

ARM (Advanced RISC Machine)

Autóipari beágyazott rendszerek CAN hardver

Silabs STK3700, Simplicity Studio laborgyakorlat

ARM Cortex magú mikrovezérlők

Programmable Chip. System on a Chip. Lazányi János. Tartalom. A hagyományos technológia SoC / PSoC SoPC Fejlesztés menete Mi van az FPGA-ban?

Nagyteljesítményő mikrovezérlık Cortex M3 mag

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. GY1.1 SENSACT0 PÉLDAPROGRAM

Arduino bevezető Szenzorhálózatok és alkalmazásaik

ARM Cortex magú mikrovezérlők

ARM Cortex magú mikrovezérlők

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. GY1. 32-BITES MIKROSZÁMÍTÓGÉPEK

I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA

Első sor az érdekes, IBM PC ra alapul: 16 bites feldolgozás, 8 bites I/O (olcsóbb megoldás). 16 kbyte RAM. Nem volt háttértár, 5 db ISA foglalat

Labor 2 Mikrovezérlők

TI TMDSEVM6472 rövid bemutatása

ARM Cortex magú mikrovezérlők

A Texas Instruments MSP430 mikrovezérlőcsalád

Labor gyakorlat Mikrovezérlők

Budapesti Műszaki- és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar MIT. Nagyteljesítményű mikrovezérlők tantárgy [vimim342]

Labor gyakorlat Mikrovezérlők

Mikrorendszerek tervezése

Dr. Schuster György október 14.

A Számítógépek felépítése, mőködési módjai

Nagyteljesítményű mikrovezérlők 10b. RTOS gyakorlatok

Beágyazott és Ambiens Rendszerek

Az interrupt Benesóczky Zoltán 2004

Mintavételes szabályozás mikrovezérlő segítségével

A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához

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

Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

6.2. TMS320C64x és TMS320C67xx DSP használata

Nagy Gergely április 4.

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD

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

Nagy teljesítményű vészhelyzeti áramforrás tervezése

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

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

Az MSP430 mikrovezérlők digitális I/O programozása

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

Az AVR ATmega128 mikrokontroller

Hány komputer van a kezemben?

Perifériák hozzáadása a rendszerhez

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

Számítógép Architektúrák

Labor gyakorlat Mikrovezérlők

Konkurencia és energiakezelés integrálása eszközmeghajtókba. Vezeték nélküli szenzorhálózatok

Számítógép Architektúrák

Az AVR programozás alapjai. Előadja: Both Tamás

MSP430 programozás Energia környezetben. Az I/O portok kezelése

FPGA áramkörök alkalmazásainak vizsgálata

Számítógép Architektúrák

Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output

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

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

SZÁMÍTÓGÉPARCHITEKTÚRÁK

Járműfedélzeti rendszerek I. 2. előadás Dr. Bécsi Tamás

16F628A megszakítás kezelése

Digitális áramkörök és rendszerek alkalmazása az űrben 3.

Mikrorendszerek tervezése

Új kompakt X20 vezérlő integrált I/O pontokkal

Assembly. Iványi Péter

Ismétlés: Moore törvény. Tranzisztorok mérőszáma: n*százmillió, n*milliárd.

Modbus kommunikáció légkondícionálókhoz

Mérési útmutató. A/D konverteres mérés. // Első lépésként tanulmányozzuk a digitális jelfeldolgozás előnyeit és határait.

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

Mechatronika és mikroszámítógépek. 2018/2019 I. félév. Külső megszakítások

Újdonságok az Arduino szabadszoftveres platform körül. Noll János FSF.hu Alapítvány

1.1. Általános áttekintés

Operációs rendszerek. A Windows NT felépítése

Operációs rendszerek. Windows NT. A Windows NT

Bevitel-Kivitel. Bevitel-Kivitel és Perifériák. Algoritmusok és Alkalmazásaik Tanszék Budapest december 16.

5. tétel. A számítógép sematikus felépítése. (Ábra, buszok, CPU, Memória, IT, DMA, Periféria vezérlő)

Programmable Chip. System on a Chip. Lazányi János. Tartalom. A hagyományos technológia SoC / PSoC SoPC Fejlesztés menete Mi van az FPGA-ban?

MSP430 programozás Energia környezetben. Szervó motorok vezérlése

9. Fejezet: Input/Output

Laborsegédlet 3. Labor

A Számítógépek hardver elemei

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Villamosmérnöki Intézet Elektrotechnikai-Elektronikai Intézeti Tanszék

PIC tanfolyam 2013 tavasz 2. előadás

MPLAB IDE - SIM - - Rövid ismertető a használathoz - Kincses Levente 3E22 89/ November 14. Szabadka

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

Átírás:

ARM Cortex magú mikrovezérlők 4. System Control block Scherer Balázs Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2018

Az ARM7 magú vezérlők felépítésének fejlődése 2003-2008 BME-MIT 2018 2.

Az első ARM7 magú vezérlők belső felépítése 2003: LPC210x On-chip memory ARM7 core AHB bridge Vector Interrupt Controller AHB bus AHB/APB bridge APB bus Periph 1 Periph 2 Periph 3 Periph 4 BME-MIT 2018 3.

AHB vs APB Mindkettő az ARM Advanced Microcontroller Bus Architecture (AMBA) szabványhoz tartozik AHB Advanced Highperformance Bus o Van Pipelining o Multiple master o Burst-ös átvitel o Full-duplex parallel komm. APB Advanced Peripheral Bus o Nincs Pipelining o Single master o Kis interfész komplexitás o Kis fogyasztás o 32bites buszszélesség BME-MIT 2018 4.

Az utolsó szériás ARM7 magú vezérlő 2006: LPC23xx Fast I/O On-chip memory ARM7 core USB memory DMA controller Vector Interrupt Controller AHB bridge AHB bridge AHB1 bus Ethernet with DMA Ethernet memory AHB ot AHB bridge USB with DMA AHB/APB bridge APB bus Periph 1 Periph 2 Periph 3 Periph 4 BME-MIT 2018 5.

A legelterjedtebb Cortex M3 sorozatok belső felépítése és felépítésük fejlődése BME-MIT 2018 6.

Első generációs Cortex M3 2006: Luminary LM3S102 ARM Cortex M3 Proc 20MHz System Bus icode idata 8 Kbyte Flash APB bridge 2 Kbyte SRAM GPIO Periph 2 APB bus Periph 3 Periph 4 BME-MIT 2018 7.

Második generációs Cortex M3 2007: STM32F103 (Max 72 MHz) APB1: max. 72MHz APB2: max. 36MHz BME-MIT 2018 8.

Több master a buszon Master Arbiter Slave Megosztott AHB Busz Master Slave Master Slave Master Master Master AHB Busz Matrix Slave Slave Slave BME-MIT 2018 9.

Mi történik a pontoknál Arbitráció: általában round-robin BME-MIT 2018 10.

Harmadik generációs Cortex M3 2009: STM32F107 (Max 72 MHz) BME-MIT 2018 11.

Harmadik generációs Cortex M3 2009: Az LPC1768 belső architektúrája BME-MIT 2018 12.

Negyedik Cortex M3 generáció 2010: Az STM32F2xx belső architektúrája BME-MIT 2018 13.

Negyedik Cortex M3 generáció 2010: Az STM32F2xx belső buszszerkezete BME-MIT 2018 14.

A legelterjedtebb Cortex M0 sorozatok belső felépítése BME-MIT 2018 15.

ARM7, Cortex M3, M0 összehasonlítás memória hozzáférés ARM7TDMI Cortex M3 Cortex M0 BME-MIT 2018 16.

LPC800 AHB-Lite o Redukált bus specifikáció o 1 Master/layer Switch Matrix BME-MIT 2018 17.

LPC800 BME-MIT 2018 18.

A legelterjedtebb Cortex M4 sorozatok belső felépítése BME-MIT 2018 19.

STMF4xxx BME-MIT 2018 20.

Az LPC4300 család Cortex-M4 alaú Digital Signal Controller Cortex-M0 Alrendszer a periféria funkciókra max. 1 MB Flash o Két bankos Flash max. 200 kbyte SRAM High speed USB Pin kompatibilis az M3 sorozattal További tulasjdonságok o 10/100 Ethernet MAC o LCD panel controller (max. 1024H 768V) o 2x 10-bit ADCs és 10-bit DAC at 400ksps o 8 csatornás DMA vezérlő o Motor Control PWM, Quadrature Encoder o 4x UARTs, 2x I2C, I2S, CAN 2.0B, 2x SSP/SPI BME-MIT 2018 21.

LPC4300 belső felépítés BME-MIT 2018 22.

Dual Core LPC43xx memória rendszer o Az M4 és M0 is tud Flash-ből kódot végrehajtani összeakadás nélkül o M0 a saját RAM-jából futtatni o ROM code Thumban van, mindkettő tudja futtatni o M4 MPU-ja tudja védeni az M0 által használt memóriákat BME-MIT 2018 23.

A legelterjedtebb Cortex M7 sorozatok belső felépítése BME-MIT 2018 24.

STM32F7xx belső felépítés BME-MIT 2018 25.

System Control Block BME-MIT 2018 26.

System Control block A rendszer órajel forrásának kiválasztása o Külső Quartz, Belső RC oszcillátor, Órajel quartz PLL (Phase Locked Loop) o A rendszer órajel meghatározása Egyes periféria buszok órajelének meghatározása o Core órajel és a különböző periféria órajelek közötti viszony Gyorsabb vezérlőknél a Flash hozzáférés szabályozása o Flash gyorsítás, Wait ciklusok száma stb. Perifériák tápellátásának engedélyezése o A modern vezérlőkben gyakorlatilag periféria szinten kapcsolhatóak le az egységek Lábak alternatív funkcióinak meghatározása BME-MIT 2018 27.

Reszet BME-MIT 2018 28.

A Reset és elindulás folyamata A reset forrása o Power-on o Watchdog o Brown out o Külső láb o Szoftveres A reset forrása egy regiszterből kiolvasható Mi történik, mi indul el a reset hatására? BME-MIT 2018 29.

Az NVIC ugrótábla Az ugrótábla a címtartomány alján a 0x00000004-ről indul. o A 0x00000000-án a kezdő stack pointer van, hogy minél hamarabb lehessen C-t használni. No. Exception Type Priority Type of Priority Descriptions 1 Reset -3 (Highest) fixed Reset 2 NMI -2 fixed Non-Maskable Interrupt 3 Hard Fault -1 fixed Default fault if other hander not implemented 4 MemManage Fault 0 settable MPU violation or access to illegal locations 5 Bus Fault 1 settable Fault if AHB interface receives error 6 Usage Fault 2 settable Exceptions due to program errors 7-10 Reserved N.A. N.A. 11 SVCall 3 settable System Service call 12 Debug Monitor 4 settable Break points, watch points, external debug 13 Reserved N.A. N.A. 14 PendSV 5 settable Pendable request for System Device 15 SYSTICK 6 settable System Tick Timer Gyártó specifikus 16 256 Interrupt #0.. Interrupt#240 7.. 247 settable settable settable External Interrupt #0.. External Interrupt #240 BME-MIT 2018 30.

A reset utáni elindulás folyamata BME-MIT 2018 31.

Beépített boot code Az első on-chip flash-es ARM7-től o A flash programozás nem triviális RAM-ba letölteni a programot, majd onnan futtatva az felprogramozni a Flash-t o JTAG-elés az első időkben végképp problémás volt Beépített bootkód, amely valamilyen módon támogatja a Flash programozását o Hol van ez a bootmód és hogyan indul el? BME-MIT 2018 32.

STM32F107 Hol helyezkedik el a boot code BME-MIT 2018 33.

STM32Fxxx Boot konfiguráció Két külső láb függvénye BME-MIT 2018 34.

Flash gyorsító modul BME-MIT 2018 35.

Flash memória A Flash memóriák kisebb helyet foglalnak el, mint a RAM-ok, de lassabbak. Flash memória hozzáférési idők o 30ns - 50ns (33 25 MHz) Ez kevés a 60, 72, 120, 180, 200,300 MHz-ről való működéshez Megoldások o Futtassunk kódot RAM-ból RAM drága és sokat fogyaszt. o Emeljük meg Flash hozzáférés bitszámát, 64bit, 128 bit Valamilyen interfészt igényel BME-MIT 2018 36.

Az STM32F10x megoldása 2009 2 db 64 bites prefetch buffer A wait ciklusok számát fel kell programozni. BME-MIT 2018 37.

Az LPC1768 megoldása 2010 8 darab 128 bites szó nem csak utasítások, de adatokat is fel tud hozni wait ciklusok számát fel kell programozni BME-MIT 2018 38.

LPC1768 megoldás eredményei RAM-ból való kód végrehajtással összevetve o A végrehajtási sebesség 16% -on belül marad o A fogyasztás 25%-al kevesebb A régi ARM7-es verziónál használthoz képest o Sima 128 bites Flash interfész o 45% teljesítmény növekedés BME-MIT 2018 39.

Benchmark eredmények 3 Relative performance 2.5 2 1.5 1 0.5 LPC2376 LPC17XX M3 Comp 0 a2time aifftr aifirf aiifft basefp bitmnp cacheb canrdr idctrn iirflt matrix pntrch puwmod rspeed tblook ttsprk EEMBC Benchmark BME-MIT 2018 40.

STM32F2xx/STM32F4xx megoldása Branch manegement és Cache újdonság BME-MIT 2018 41.

STM32F2xx / STM32F4xx megoldása BME-MIT 2018 42.

Órajel elosztás BME-MIT 2018 43.

Órajel szétosztás problémái Követelmény sokféle alapórajel o Quartz Pontos, stabil, drága o RC osc Pontatlan, olcsó Sokféle periféria igény o Alap perifériablokkok o I/O lábak o Ethernet o USB BME-MIT 2018 44.

Cortex M3 magú vezérlő belső felépítése 2009: STM32F107 (Max 72 MHz) BME-MIT 2018 45.

Az STM32F107 megoldása HSI RC 8MHz /2 HCLK up to 72MHz PCLK1 up to 36MHz 4-16 MHz OSC_OUT OSC_IN HSE Osc /2 x2...x16 PLL PLLCLK SYSCLK up to 72 MHz AHB Prescaler /1,2 512 APB1 Prescaler /1,2,4,8,16 If (APB1 pres =1) x1 Else x2 TIMxCLK TIM2,3,4 PCLK2 up to 72MHz CSS APB2 Prescaler /1,2,4,8,16 If (APB2 pres =1) x1 Else x2 TIM1CLK OSC32_IN OSC32_OUT LSE OSc LSI RC /128 32.768KHz ~40KHz RTCCLK IWDGCLK USB Prescaler /1,1.5 ADC Prescaler /2,4,6,8 ADCCLK USBCLK 48MHz BME-MIT 2018 46.

STM32F4xx BME-MIT 2018 47.

Órajel szétosztás problémái Egy egyszerű LED villogtatás is minimum 1 órajel engedélyezést igényel, de akár 3-4-et is igényelhet BME-MIT 2018 48.

Periféria tápellátás engedélyezés Nagyon mikrovezérlő gyártó függő a filozófia BME-MIT 2018 49.

Alternatív funkciójú lábak Nagyon hasonló a filozófia a gyártóktól függetlenül BME-MIT 2018 50.

CMSIS Cortex Microcontroller Software Interface Standard BME-MIT 2018 51.

Fejlesztési költségek alakulása BME-MIT 2018 52.

CMSIS szerkezete (v1.3) BME-MIT 2018 53.

CMSIS Core Hardware Abstraction Layer (HAL): Az összes Cortex M variánshoz egy standardizált periféria és regiszter készlet kezelés a SysTick, NVIC, System Control Block, MPU, FPU registerszterekhez Rendszer kivétel nevek: A rendszer kivételekhez, interruptokhoz való hozzáférés deffiniálása Header file szervezés definiciók: Elnevezési konvenciók az mikrokontroller specifikus interruptok-hoz és header file-okhoz Rendszer indítás: Mikrovezérlő független inicializáló függvény interfész. Standardized SystemInit() függvény Speciális utasítások támogatása Globális változó a system clock frekvencia meghatározására BME-MIT 2018 54.

A CMSIS file-jai és könyvtárstruktúrája File Szolgáltató Leírás device.h Mikrovezérlő gyártó A mikrovezérlő perifériáinak definítciója. Ez a file include-olhatja az összes többi mikrovezérlőhöz tartozó firmware headert. core_cm0.h ARM (fordítófüggő részekkel) A Cortex-M0 alapperifériáinak és regisztereinek definítciója core_cm3.h ARM (fordítófüggő részekkel) A Cortex-M3 alapperifériáinak és regisztereinek definítciója core_cm0.c ARM (fordítófüggő részekkel) A Cortex-M0 alapperifériáinak és regisztereinek kezelőfüggvényei core_cm3.c ARM (fordítófüggő részekkel) A Cortex-M3 alapperifériáinak és regisztereinek kezelőfüggvényei startup_device ARM, de a mikrovezérlő, vagy compiler gyártó adoptálhatja és testreszabhatja A Cortex-M mikrovezérlő startupkódja és a teljes mikrovezérlő függő ugrótábla system_device ARM, de a mikrovezérlő gyártó, adoptálhatja és testreszabhatja Mikrovezérlő függő inicializációs rész. Tipikusan a PLL és egyébb órajelforrások inicializálása történik itt. BME-MIT 2018 55.

CMSIS core struktúra BME-MIT 2018 56.

A device.h szerepe Az egyetlen szükséges include file a felhasználó számára (az induláshoz) CMSIS core_cm3.h stdint.h stm32f10x.h device.h system_stm32f10x.h BME-MIT 2018 57.

Fordító függő Startup Code, ugrótábla A startup_device file a GCC megvalósításnál a ugrótáblákhoz úgynevezett weak pragmákat használnak DCD USART1_IRQHandler, /* USART1 */ Majd az így definiált nevet egy weak pragmával ráhuzalozzuk egy default handlerre: #pragma weak USART1_IRQHandler = Default_Handler BME-MIT 2018 58.

A system_device.c Minden Cortex M3 vezérlő azonos módon elindítható legyen Minimum szolgáltatások Függvény definició void SystemInit (void) void SystemCoreClockUpdate (void) Változó definítció uint32_t SystemCoreClock Leírás A mirovezérlő elindulásához szükséges rutinok végrehajtása. Tipikusan ez a függvény konfigurálja a PLL-t. Ez a függvény tipikusan a startup_device-ból híódik meg, de lehet, hogy a felhasználónak kell meghívnia. Beállítja a PLL-t a SystemCoreClock változó értékének megfelelően. Leírás A rendszer órajel frekvenciáját tartalmazza. BME-MIT 2018 59.

A CMSIS coding guildlines-ai A CMSIS szabvány a MISRA 2004-es guildline-jainak betartásával készül. A CMSIS az adattípusokként az <stdint.h> -ba definiált típusokat használja A kifejezéseket tartalmazó #define-okat zárójelezni kell. A Core Peripheral Access Layer (CPAL) összes függvénye re-entráns kell, hogy legyen. A Core Peripheral Access Layer (CPAL) nem tartalmaz blokkoló kódot. Az összes interupt kezelő függvények a _IRQHandler utótaggal kell záródnia. BME-MIT 2018 60.

A CMSIS coding guildlines-ai 2. Nagybetűvel jelöl minden core, vagy periféria regisztert, illetve assemly utasítást. Az ún. CamelCase jelölést használja a perifériakezelő függvények és interupt függvények számára. PERIFÉRIA_ perfixet kell használni a perifériához tartozó függvényekhez (tehát a függvény neve elött nagybetűvel fel kell tüntetni a periféria nevét). Doxygen kommentekkel kell minden függvényt ellátni o A minimális komment a következő Egy soros brief leírás Kifejtett paraméter komment a param-al Kifejtett visszatérési érték komment a ret paraméterrel. Kifejtett leírás a függvény működéséről. BME-MIT 2018 61.

CMSIS szerkezete (v5) BME-MIT 2018 62.

CMSIS DSP library Cortex M4-re, M3-ra optimalizált assembly szintű rutinok Basic math functions o Vector abszolút éték, összeadás, szorzás, kivonás Gyors komplex matematikai függvények o Cosinus, Sinus, Gyökvonás o Komplex számok matematikája Szűrök o FIR, IIR BME-MIT 2018 63.

CMSIS Driver API Gyártó független periféria driver library BME-MIT 2018 64.

CMSIS RTOS Felépítése BME-MIT 2018 65.

CMSIS RTOS Kernel kezelő függvények BME-MIT 2018 66.

CMSIS RTOS Thread menedzsment függvények BME-MIT 2018 67.

CMSIS RTOS Általános időzítő függvények Általános timer függvények BME-MIT 2018 68.