Presentation is loading. Please wait.

Presentation is loading. Please wait.

32-bitni mikrokontroleri i primena - MS1BMP

Similar presentations


Presentation on theme: "32-bitni mikrokontroleri i primena - MS1BMP"— Presentation transcript:

1 32-bitni mikrokontroleri i primena - MS1BMP
2017/2018 Nenad Jovičić

2 Cortex profili R serija se često susreće kao SoC, jer poseduje hardver za neke specifične zadata (HDD na primer). Od Cortex-M familije imamo Cortex-M0, Cortex-M0+, Cortex-M1, Cortex-M3, Cortex-M4, and Cortex-M7. Cortex-M1 je tzv. Softcore procesor namenjen FPGA imlementaciji

3 Cortex M varijante procesora
Cortex-M3 se prvi pojavio i to je mainstream model. Cortex-M4 je jači po tome što ima proširen insrukcijski set sa nekim DSP instrukcijama, kao i podršku za hardverski FPU. Najjači je Cortex-M7 koji se značajno ralikuje od prethodnika ali ima isti programerski model, tako da je softver praktično vertikalno kompatibilan.

4 Cortex u odnosu na starije familije
90-tih su postojala ARM7 i ARM9 CPU jezgra. Iako je svaki CPU bio identičan, ipak je to bio samo CPU i svaki proizvođač je na svoj način dodavao sve periferije. To je uzrokovalo teškoće u migracijama između različitih AMR baziranih platformi. Cortex-M je to izmenio jer je to jedna potpuna mikrokontrolerska platforma (MCU), a ne samo procesorsko jezgro CPU. Standardizovani su BUS arhitektura, prekidni kontroler, MPU, kontrola najapanja, debug interfejs...

5 Odakle početi sa proučavanjem?
Cortex-M3 je osnova sa koje se lako silazi i podiže na Cortex-M0 ili Cortex-M4. Cortex-M7 ima kompleksniji memorijski interfejs.

6 Cortex-M3 Trostepeni pajplajn koji je dobar kada nema skokova a instrukcije su jednostavne. Problem se javlja pri svakom skoku jer se pipeline prazni, tj. Prekida se kontinuitet, a to sve efektivno povećava ptorošnju i smanjuje brzinu.

7 Pipeline Ipak Cortex-M3 i M4 imaju prefetch buffer koji omogućava speculative branch što znatno popravlja stvar.    BEQ   label1 label2: Cortex-M7 ima full Branch Target Address što je još naprednije. (skok se vrši još u decode fazi) Cortex-M3 i Cortex-M4 postižu 1.25 DMIPS/MHz dokCortex-M7 postiže 2.14 DMIPS/MHz. DMIPS/MHz je rezultat tzv. Dhrystone testa koji predstavlja skup testova namenjenih celobrojnoj aritmetici.

8 Cortex-M3 Hardverski množač i delitelj
NVIC sa 240 ulaza, sa determinističkim odzivom od tačno 12 ciklusa. Systick tajmer u okviru samog procesora realizovan kao 24-bitni brojač Uz NVIC tu je i WIC (wakeup interrupt controller) koji omogućava buđenje iz lowpower režima.

9 Cortex-M3

10 Debug CoreSight tehnologija.
JTAG koji je ranije bio dostupan na ARM7 i ARM9 je omogućavao samo 2 breakpoint-a a najvažnije je da je CPU postajao blackbox kada se aktivira run komanda. Coresight to menja i mogućava 8 brakpoint-a kako u Code tako i u Data prostoru. Data watchpoint and trace (DWT) unit prati memoriju ili registre bez uticanja na rad procesora (on the fly) Instrumentation trace macrocell (ITM) unit omogućava da se poruke poslate sa printf() funkcijom ispisuju na terminalskom prozoru u debuger-u. Dakle, PC postaje kao nekakav instrument za posmatranje rada hardvera. ITM podseća na UART ali je znatno komplikovaniji i poseduje 32 fizicka kanala...

11 Debug Embedded trace macrocell (ETM) unit je jedinica omogućava praćenje inzvršavanja koda. Poseduju je samo high-end mikrokontroleri. Obezbeđuje code coverage monitoring Cortex-M3 poseduje opcioni MPU (memory protection unit) koji obezbeđuje kontrolu pristupa privilegovanog i neprivilegovanog softvera određenim regionima u memoriji. Ovo na primer obezbeđuje da RTOS ima a korisnički softver nema pristup nekim zonama u memoriji. MPU je takođe karakterističan za high-end mikrokontrolere Cortex-M3 je Hardvard arhitekture što znači da ima odvojen port za pristup code memoriji i sram memoriji...

12 Instrukcijski set

13

14 Cortex-M0 Nastao nekoliko godina nakon Cortex-M3.
Zauzima znatno manje prostora (12-25k gejtova). Ima znatno manji broj instrukcija, i zato je i jeftiniji i znatno manje troši. Crtex-M3 zauzima 33-50kgejtova, Cortex-M4 zauzima 65-90k gejtova. Sa druge strane ko nauči da radi sa Cortex-M3 programiranje je praktično jednako sa stanovišta viših programskih jezika. Von Neuman arhitektura, sa trostepenim pipeline-om kao i Cortex-M3. Zbog manjeg instrukcijskog seta postiže 0.84 DMIPS/MHz. Ima identičan NVIC ali sa 32 linije. Ima identičan Systick tajmer. Debug je slabiji. DWT ne podržava data trace, ITM ne postoji, ali je moguće pratiti memoriju on the fly. Ipak bolje nego JTAG kod ARM7 i ARM9.

15 Cortex-M0 low power U aktivnom režimu troši kao tipičan uC ali je znazno brži Primer za 16x16 množenje: Cortex-M0 ovo radi u 1 ckulusu. Tipičan 8-bitni uC kao 8051 ovo radi za 48 ciklusa a tipičan 16-bitni uC za 8 ciklusa.

16 16x16 množenje

17 Kako proizvođači prave Low Power
WIC je definisan ali se može izmestiti u drugi deo čipa. Tako se proizvođačima daje prostor za kreativnost.

18 Cortex-M4 Upgrade u odnosu na M3 prvenstveno dodavanje DSP instrukcija u formi SIMD instrukcija.

19 Cortex-M4 Mnoge aritmetičke instrukcije su unapređene tako da su jednociklusne:

20 SIMD instrukcije Na primer jednom instruckijom napravim dva 16-bitna množenja i saberem te rezultate u 64-bitnu sumu.

21 FPU Na non-FPU mikrokontrolerima matematičke operacije sa pokretnom tačkom su bile implementirane kopmpajlerskim bibliotekama sa stotinama instrukcija i taktova... FPU je prava aritmetiča jedinica koja transakcije sa memorijom obavlja direktno kao i ALU.

22 DSP Cortex-M4 poseduje instrukcije koje omogućavaju optimizovano izvršavanje tipičnih DSP funkcija kao što su IIR, FIR, FFT itd... Podršku daje sam ARM preko optimizovanih intrinsic funkcija i biblioteka za DSP funkcije.

23 Cortex-M7 Cortex-M7 predstavlja značajan skok u performansama ali i u arhitekturi. Ne samo da poseduje drugačiju strukturu i širi instrukcijski set, već njegova arhitektura dozvoljava realizacije koje mogu da rade na višim učestanostima.

24 Cortex-M7 To je procesor superskalarne arhitekture, i ima dva trostepena pipeline-a koji mogu da izvršavaju tzv. Dual-issue instrukcije. Poseduje i tzv. Branch Target Address Cache koji omogućava znatno brže skokove, naročito u realizaciji petlji.

25 Magistrale ARM7 je prvi uveo AHB (Advanced High-Performance bus) magistralu. Cortex-M je najpre uveo AHB matrix, što ustvari predstavlja matricu više paralelnih AHB magistrala i time je omogućeno da više mastera koristi magistralu u paraleli. Arbitracija je potrebna jedino kada dva mastera pristupaju istoj memorijskoj zoni ili periferijama. Cortex-M7 uvodi novu magistralu Advanced Extensible Interface (AXI-M). To je 64-bitna magistrala koja omogućava razvoj NoC (network on Chip) sistema sa više procesora.

26 Cortex-M4 vs M7 Glavna razlika koju oseća programer je organizacija memorije. Cortex-M7 ima hijerarhijski organizovanu memoriju. Pre svega CPU poseduje dve tzv. Instruction and Data Tightly Coupled Memories (I-TCM i D-TCM), veličine do 16k bez stanja čekanja. Pored toga CPU može da alocira još dve Cache memorije veličine 64k bilo gde na AXI magisatrali.

27 Cortex-M familija - presek

28 Projekat - rokovi 24.10.-31.10. - Prikupljanje predloga projekata.
Faza Izveštaj 1. - Idejno rešenje. – Definisanje spiska potrebnih komponenti. Faza Izveštaj 2. - Dizajn hardvera na nivou električne šeme, i dostavljanje spiska komponenti. – Nabavka komponenti. – Rad na prototipu. Faza Izveštaj 3. – Prototip hardvera i softvera. Minimalna konfiguracija koja potvrđuje izvodljivost projekta. Finalizacija projekta. Ispitni rok januar 2018 – Finalni izveštaj.

29 Projekti Osnovne smernice:
Projekat treba da uključi korišćenje bar dve različite periferije Projekat treba da uključi bar dva prekida ili jedan prekid i jedan DMA prenos Jednostavni projekti koji koriste GPIO, UART i slično se rade na Cortex-M3 platformi Kompleksniji projeti koji uključuju obradu signala se rade na Cortex-M4 platformi Vrlo kompleksni projekti koji uključuju obradu signala se rade na Cortex-M7 platformi

30 Projekti Dodatne napomene:
Intenzivno koristiti vezu sa računarom preko UART-a. Spoljašnje displeje koristiti samo ukoliko aplikacija to nesumnjivo zahteva. Koncentrisati se na korišćenje mikroe-click pločica Izbegavati GSM i GPS conectivity – već dosta puta rađeno. Wireless conectivity – koristiti ako se pravi neki kompleksniji sistem. Interesantno a do sada nije korišćeno: Ethernet, CAN Upravljanje servo motoričićima – može da bude interesantno

31 Primer Senzor - LightHz click
Kodira intenzitet svetlosti kao signal promenljive učestanosti. Izlaz može da bude LED dioda koja simulira osvetljenje prostorije. Preko ili potenciometra se zadaje intenzitet svetlosti koji treba obezbediti.

32 Primer Grid-EYE click


Download ppt "32-bitni mikrokontroleri i primena - MS1BMP"

Similar presentations


Ads by Google