Nagyteljesítményű mikrovezérlők

Hasonló dokumentumok
ARM Cortex magú 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

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

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

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

Nagyteljesítményű mikrovezérlők

Nagyteljesítményű mikrovezérlők

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

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

Autóipari beágyazott rendszerek CAN hardver

ARM Cortex magú mikrovezérlők. mbed

ARM Cortex magú mikrovezérlők

ARM processzorok felépítése

Dr. Schuster György szeptember 27.

Silabs STK3700, Simplicity Studio laborgyakorlat

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?

ARM Cortex magú mikrovezérlők

ARM (Advanced RISC Machine)

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.1 SENSACT0 PÉLDAPROGRAM

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

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

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

Mikrorendszerek tervezése

A Texas Instruments MSP430 mikrovezérlőcsalád

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

ARM Cortex magú 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]

Az interrupt Benesóczky Zoltán 2004

TI TMDSEVM6472 rövid bemutatása

Labor 2 Mikrovezérlők

Labor gyakorlat Mikrovezérlők

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

Dr. Schuster György október 14.

Szoftver tervezési ág

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

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

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

Labor gyakorlat Mikrovezérlők

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

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

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

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

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

Az AVR ATmega128 mikrokontroller

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

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

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

Nagy Gergely április 4.

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

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

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD

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

Hány komputer van a kezemben?

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

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

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

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

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

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

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

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

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

Beágyazott és Ambiens Rendszerek

The modular mitmót system. 433, 868MHz-es ISM sávú rádiós kártya

A Netburner fejlesztőeszköz alkalmazástechnikája

The modular mitmót system. DPY kijelző kártya C API

6.2. TMS320C64x és TMS320C67xx DSP használata

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

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

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

16F628A megszakítás kezelése

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

1.1. Általános áttekintés

Programozás és Digitális technika I. Pógár István eng.unideb.hu/pogari

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

9. Fejezet: Input/Output

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

OPERÁCIÓS RENDSZEREK. Elmélet

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

Autóipari beágyazott rendszerek. AutoSAR Platform

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.

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

Leírás. Készítette: EMKE Kft február 11.

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

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

AFE műszaki specifikáció

Labor gyakorlat Mikrovezérlők

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

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

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ő)

Mikrorendszerek tervezése

Jelfeldolgozás a közlekedésben

Átírás:

Nagyteljesítményű mikrovezérlők 5. System Control block Scherer Balázs Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2015

Tartalom Az ARM7 magú vezérlők felépítésének fejlődése A legelterjedtebb Cortex sorozatok belső felépítése és felépítésük fejlődése System Control Block o A reset utáni elindulás folyamata o A Flash gyorsító modul o Órajel források és órajel elosztás CMSIS BME-MIT 2015 2.

Az ARM7 magú vezérlők felépítésének fejlődése BME-MIT 2015 3.

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

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

Az utolsó szériás ARM7 magú vezérlő 2006: LPC23xx Fast I/O On-chip memory ARM7 core USB memory DMA controller Vektor 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 2015 6.

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

32 bites trendek 2003-2014 Flash [kbyte] M0 M0,M0+ M3, M0 M3 M4, M3 1024 512 256 128 64 32 16 8 4 2 1 0,5 8 14-16 20 28-32-36 40-44-48 64 80-100 144 208 256 lábszám BME-MIT 2015 8.

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

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 2015 10.

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

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 2015 12.

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

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

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

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

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

LPC18xx Negyedik Cortex M3 generáció BME-MIT 2015 18.

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

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

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

STMF0xx BME-MIT 2015 22.

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

STMF4xxx BME-MIT 2015 24.

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 és10-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 2015 25.

Cortex M4, Cortex M0 együtt Szeparálható a feldolgozás és a Real-Time vezérlés Külön NVIC Osztott memóriarendszeren keresztüli kommunikáció BME-MIT 2015 26.

Cortex M0, M4 együttes használat példa audió feldolgozás Cortex M0: perifériakezelés: I2S, USB Cortex M4: teljes teljesítménnyel feldolgozás BME-MIT 2015 27.

Cortex M0, M4 motor controll Cortex-M4: Motor control Field Oriented Control (FOC) Cortex M0: CAN parancs feldolgozás BME-MIT 2015 28.

LPC4300 belső felépítés BME-MIT 2015 29.

LPC43xx Dual Core BME-MIT 2015 30.

Dual Core LPC43xx memória rendszer o Az M4 ésm0 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 2015 31.

LPC4300 memória Flash Két 512K byte-os flash memoria blokk o Lehet összefüggő 1 Mbyte-os blokként használni 256-bit-es memória vezérlő o 150MHz. BME-MIT 2015 32.

max.256kb SRAM Sok blokkra osztva o párhuzamos DMA okét core működés LPC4300 memória SRAM BME-MIT 2015 33.

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

STM32F7xx belső felépítés BME-MIT 2015 35.

STM32F7xx belső felépítés BME-MIT 2015 36.

System Control Block BME-MIT 2015 37.

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 2015 38.

Reset BME-MIT 2015 39.

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 2015 40.

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 2015 41.

A reset utáni elindulás folyamata BME-MIT 2015 42.

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 ojtag-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 ohol van ez a bootmód és hogyan indul el? BME-MIT 2015 43.

STM32F107 Hol helyezkedik el a boot code BME-MIT 2015 44.

STM32F107 Boot konfiguráció Két külső láb függvénye BME-MIT 2015 45.

STM32F107 viselkedése bootnál BME-MIT 2015 46.

Flash gyorsító modul BME-MIT 2015 47.

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, 2xx 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 2015 48.

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

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 2015 50.

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 2015 51.

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

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

STM32F2xx / STM32F4xx megoldása BME-MIT 2015 54.

Órajel elosztás BME-MIT 2015 55.

Órajel szétosztás problémái Követelmény sokféle alapórajel oquartz Pontos, stabil, drága orc osc Pontatlan, olcsó Sokféle periféria igény o Alap perifériablokkok oi/o lábak oethernet ousb BME-MIT 2015 56.

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

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 2015 58.

Az LPC1768 megoldása BME-MIT 2015 59.

Az LPC1768 megoldása BME-MIT 2015 60.

STM32F4xx BME-MIT 2015 61.

Az LPC43xx megoldása BME-MIT 2015 62.

Ó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 2015 63.

CMSIS Cortex Microcontroller Software Interface Standard BME-MIT 2015 64.

Fejlesztési költségek alakulása BME-MIT 2015 65.

Egy általános beágyazott rendszer SW architektúrája Application Libraries Hardware független mitmót API Felhasználói project ISO C Math DPY-TRM COM-R04 MIKROP Kernel MCU-ARM API Hardware Abstraction Layer interrupts Device Drivers Serial I/O kezelés SPI Előre fordított ecos distribúció Exceptions I2C BME-MIT 2015 66.

CMSIS szerkezete (v1.3) BME-MIT 2015 67.

CMSIS szerkezete (v3) BME-MIT 2015 68.

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 2015 69.

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 2015 70.

CMSIS core struktúra BME-MIT 2015 71.

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 2015 72.

Fordító függő Startup Code, ugrótábla A startup_devicefile 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 2015 73.

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 2015 74.

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 2015 75.

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 briefleí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 2015 76.