2. 14.05.17 Copyright Stipe Predanić, 2014 2
Mikroprocesor i mikroupravljač
● Za građu računala potrebni su:
– CPU
– ROM s programom (barem osnovnim za podizanje
operacijskog sustava, poput BIOS-a na PC računalima)
– RAM za privremeno spremanje podataka
– sklop za rad s vanjskim ulazno/izlaznim jedinicama
● Mikroupravljač (mikrokontroler, eng. microcontroller) ima
sve komponente ugrađene u sebe
– i još mnoge druge, poput timera, RTC-a, sklopova za serijsku
komunikaciju
● Mikroprocesor je često goli CPU, bez posebnih dodatnih
sklopova
– sve potrebno dodati u okruženje mikroprocesora
3. Obitelji mikroupravljača
● U svijetu mikroupravljača postoji nekoliko velikih te
mnoštvo manjih proizvođača
– Mali proizvođači često licenciraju procesore od velikih
proizvođača
● Veliki proizvođači uobičajeno osmišljavaju nove procesore
i mikroupravljače, no osmišljavanje posve novog okruženja
je rijetko kad financijski isplativo
– Novi prevoditelji (compileri)
– Nova dokumentacija
– Novi referentni dizajn
● Rješenje: osmisliti porodicu mikroupravljača koja ima isti
CPU (eng. core), dok se periferni elementi (AD pretvornici,
RAM i ROM memorija, itd) dodaju prema potrebi
4. Obitelji mikroupravljača
● Primjer AVR ATTINY serija:
– http://en.wikipedia.org/wiki/Atmel_AVR_ATtiny_comparison_chart
– Primjetimo kako je GCC identifier isti za dobar dio
mikroupravljača iako su njihove karakteristike različite
● GCC je GNU C compiler, prevoditelj za C jezik
– Što znači kad je isti identifikator?
● Ista građa CPU-a koji izvršava naredbe
● Jednaki asemblerski odnosno strojni kod
● Moguće prebacivanje programskog koda s jednog
mikroupravljača na drugi
– Zbog cijene procesora, dodatnih mogućnosti periferije,
više memorije
6. Obitelji mikroupravljača
● "Obitelj" ili "Porodica" mikroupravljača se definira kao grupa
proizvoda koji dijele zajedničku osnovnu arhitekturu te su
kompatibilni programskim kodom (eng. Code compatibile)
● Napomena: Programski kod napisan za jednog člana obitelji
trebao bi biti kompatibilan s ostalim članovima iste obitelji.
7. Obitelji mikroupravljača
● Procesori u mikroupravljaču su najčešće:
– 8 bitni
● Manjih procesorskih snaga
● Manje programske memorije (od par stotina byteova do stotinjak kB)
● Manji RAM (od desetak byteova do par kB)
● Jeftini
– 32 bitni
● Većih procesorskih snaga
● Više programske memorije, više RAM-a
● Mogu pokretati i jednostavne RTOS (Real time OS)
● Skuplji
– Razlika u cijeni samih mikroupravljača na veliki broj primjeraka čak i
nije velika (reda par dolara). No često 32 bitni zahtjevaju više pažnje
u proizvodnji samih uređaja, te je rijetko kad toliko snage stvarno
potrebno.
8. Microchip PIC
● Microchip je veliki proizvođač mikroupravljača
– 8 bitne serije
● PIC10, PIC12, PIC16, PIC18
● Poznatiji procesori: 16F84, 16F628, 18F2550 18F4550
● Najslabiji 10F200 radi na 4MHz, ima 375B Flasha, 16 byte
RAM i 4 GPIO - cijena 31 cent
– 16 bitne serije
● PIC24, dsPIC30 dsPIC33
– Ds – Digital Signal, ugrađena podrška za brzu obradu signala
– 32 bitne serije
● PIC32
– Najjači (PIC32MZ2048 serija) imaju i do 2MB Flasha, 512kB
RAM-a, ugrađeni Ethernet kontroler, cijene (za modele s 1MB
Flasha) počinju od 6.7US$
9. Microchip PIC
● Osnovna PIC platforma je osmišljena 1975!!, od strane
General Instrumentsa, kao sklop za kontrolu vanjskih
jedinica za procesor CP1600 (16 bitni procesor)
● 1985 je platforma doživjela prvi upgrade, a 1993 su prešli
na EEPROM za programiranje
● Godišnje Microchip proda preko milijardu različitih
mikroupravljača.
10. Atmel AVR
● Atmel u AVR seriji ima mikroupravljače:
– 8 bitne
● TinyAVR obitelj (ATtiny serija)
– Najslabiji Attiny 4 ima 0.5kB ROM, 32byte RAM, 4GPIO
● megaAVR obitelj (ATmega serija)
– Na ovoj se obitelji temelji popularna Arduino platforma
● XMEGA (ATxmega serija)
● FPSLIC(AVR s FPGA (Field-programmable gate array))
– Mogućnost stvaranje hardverskih logički sklopova kroz softver,
što ubrzava obradu signala
– 32 bitne
● AVR32 UC3
– Podržava hardversku implementaciju Java virtual machine
– Ugrađen aritmetički koprocesor
– Najjači imaju do 512kB FLASH (programska memorija), 128kB
RAM, Ethernet itd.
11. Atmel AVR
● AVR je osmišljen u Norveškoj sredinom 1990
● Prava prodana Atmelu i 1997 predstavljen prvi chip na
tržištu
● Popularna Arduino razvojna platforma je bazirana na
ATMEGA seriji
● Microchip je kupio AVR početkom 2016. godine
12. Texas Instruments MSP430
● Texas Instruments ima mnoge procesore u proizvodnji ali
MSP430 jezgra je popularna jer:
– 16 bitna jezgra koja zahtjeva iznimno malo energije
● Različiti modeli imaju različito ciljano tržište:
– MSP430L092 ima 1KB ROM i 128B RAM, ali može raditi već od
0.9V na 1MHz (i pritom troši manje od 50μA struje) – cijena 0.8$
– MSP430F6659 ima 512KB FLASH, 66KB RAM, ima ugrađenu
podršku za LCD, troši 300μA /MHz i košta 6.48$
● Zbog male potrošnje često se koristi u senzorima, jer je TI
koristio istu jezgru i u RF340 seriji (MSP430 jezgra + RF
komunikacija)
13. ARM
● ARM arhitektura je jedna od najkorištenijih arhitektura u
računarstvu
– Koristi se u svemu od mobitela, manjih računala pa do
mikroupravljača
– ARM jezgra se može licencirati i po potrebi dalje razvijati
● Apple procesori A4-A8 u iPhone i iPad uređajima su ARM
bazirani
– Doduše Apple je ARM procesor koristio i u svojem prvom PDA –
Apple Newton
● Osim daljnjeg razvoja često se uz jezgru dodaju različiti
elementi kako bi se uz CPU dobile i dodatne mogućnosti
– Zar to nije mikrokontroler?
– SoC
● System on a Chip
● Visoko integrirane komponente u jednu komponentu
14. ARM
● ARM arhitektura
– Većinom 32 bitna, ali postoje i 64 bitne verzije
– Cortex M arhitektura je za mikroupravljače
Architecture Cores designed by ARM Holdings
ARMv1 32/26 ARM1
ARMv2 32/26 ARM2, ARM3
ARMv3 32 ARM6, ARM7
ARMv4 32 ARM8
ARMv4T 32 ARM7TDMI, ARM9TDMI
ARMv5 32 ARM7EJ, ARM9E, ARM10E
ARMv6 32 ARM11
ARMv6-M 32 ARM Cortex-M0, ARM Cortex-M0+, ARM Cortex-M1
ARMv7-M 32 ARM Cortex-M3
ARMv7E-M 32 ARM Cortex-M4, ARM Cortex-M7
ARMv7-R 32 ARM Cortex-R4, ARM Cortex-R5, ARM Cortex-R7
ARMv7-A 32
ARMv8-A 64/32 ARM Cortex-A53, ARM Cortex-A57
Bit
width
ARM Cortex-A5, ARM Cortex-A7, ARM Cortex-A8,
ARM Cortex-A9, ARM Cortex-A12, ARM Cortex-
A15, ARM Cortex-A17
15. ARM
● ARM Cortex M arhitektura
– Različite arhitekture imaju različite mogućnosti
● Različite Cortex M arhitekture se trebaju gledati kao zasebne
porodice
– Npr. Memorijski model
● M0, M0+ i M1 imaju Von Neumann memorijski model
● M3, M4 i M7 imaju Harvard memorijski model
– Npr. dodatna hardverska podrška
● Sklopovski riješeno djeljenje brojeva
– M0, M0+, M1 – nemaju taj sklop
– M3, M4, M7 – imaju taj sklop
18. ARM
● Cortex M cijene i mogućnosti su šarolike, ali je moguće pronaći mikroupravljače po
cijenama usporedivim s 8 bitnim procesorima (ali i usporedive su i karakteristike)
– Npr. STM32F042F4P6 je Cortex M0+, ima 16kB Flash, 6kB RAM, radi na 48MHz i ima
samo 28 nožica. Cijena je 1$
– NXP Semiconductors LPC4317 , ima 1MB Flash, 136kB RAM, radi na 204 MHz, cijena
15$
● Primjene su šarolike, i lako je pronaći razvojne sustave s Cortex M procesorima
– Hardverska podrška
● Arduino Due ( Atmel SAM3X8E Cortex M3), Teensy serija (Freescale MK20DX256VLH7
Cortex M4)
● NXP LPCExpresso serija (koriste NXP LPC procesore, npr. LPC1343 koji je Cortex M3
procesor)
– Softverska podrška
● MBED (online razvoj, iznimno jednostavno), http://developer.mbed.org/
● Arduino (nastavak na 8 bitne procesore), http://www.arduino.cc/
19. ARM
● Cortex M daje stvarne mogućnosti mikroupravljača, te profesionalna
upotreba stvarno zahtjeva takva rješenja
● Često se traži i:
– Jednostavna platforma
– Koja koristi standardizirane OS-eve za embedded riješenja
● Linux
● Free RTOS
● QNX
● VxWorks
● Stoga se često za embedded upotrebu koriste i Cortex A procesori u
jednostavnim računalima
– Raspberry Pi, BeagleBone itd.
– Pružaju se mogućnosti pokretanja većih aplikacija koje koriste više
RAM-a i podatkovnog prostora
– uređaji pružaju multifunkcionalnost
20. ARM
● S upotrebom Cortex A procesorima u jednostavnim
računalima poput Raspberry Pi zatvara se cijeli krug
računarstva
– ARM je nastao za potrebe britanske tvrtke Acorn Computers
koja je proizvodila BBC Micro seriju mikroračunala u 80-tima
– Tražili su brži i efikasniji procesor od trenutno dostupnih, i
krenuli su raditi vlastiti procesor, te su 1987 na tržište izbacili
Acorn Archimedes računalo
● izvan Velike Britanije nije imalo veliki uspjeh makar je bilo brže
i pouzdanije od tada popularnih 16 i 32 bitnih modela
21. 14.05.17 Copyright Stipe Predanić, 2014 21
Intel MCS-51
● 8 bitni procesori, Harvard arhitektura
● Podržava 2 odvojena memorijska područja za programe
– U samom chipu (do 64 kB, u originalu 4kB)
– Vanjska memorija (do 64 kB)
● Obitelj MCS-51 obuhvaća originalne procesore:
● Napomena: 8031 nema ugrađenu programsku memoriju (ROM)
već obavezno mora imati vanjsku programsku memoriju
– Niža cijena za situacije kad ugrađena nije bila dovoljna
22. 14.05.17 Copyright Stipe Predanić, 2014 22
Intel MCS-51
● Intel je MCS-51 porodicu izbacio na tržište 1981.
– Prije toga su imali MCS-48 porodicu, iznimno popularnu
– Poslije su nadograđivali MCS-51 u MCS-151 i MCS-251
serijama
– Intel od 2007. ne proizvodi MCS-51 mikroupravljače
● Nasreću, licencirali su mikroupravljače, te ih sada
proizvodi preko 20 drugih proizvođača:
– Atmel, Maxim (preko Dallas podružnice), NXP, ST
Microelectronics, Silicon Laboratories, Texas Instruments itd.
– No ono što je još zanimljivije, MCS-51 jezgra se koristi i kod
mnogih drugih proizvođača kao dio gotovih vlasničkih
(proprietary) chipova (npr. Kontroleri za razne sklopovske
elemente – USB memorije, wireless riješenja i sl.)
23. 14.05.17 Copyright Stipe Predanić, 2014 23
Intel MCS-51
● Popularnost MCS-51 se očituje u tome što je procesor bio
– licenciran drugim proizvođačima
– jednostavan
– jeftin
– Zbog gorenavedenih karakteristika postoji mnogo već
napisanog koda što ubrzava razvoj produkta
● Moderni MCS-51 imaju
– Više ili manje portova od originala
– Dodatnu podršku za komunikacijske protokole
– Hardwired kontrolnu jedinicu (original Intel je imao
mikroprogramiranu)
25. 14.05.17 Copyright Stipe Predanić, 2014 25
Motorola/Freescale 68x serije
● Motorola je u 70-tima izradila uspješnu 6800 seriju
mikroprocesora
– 8 bitni procesori, Von Neumann arhitektura
– Temeljem tog procesora Motorola je izradila porodice
mikroupravljača:
● 68HC05 seriju (ne proizvodi se),
● 68HC08 serija (slabiji procesori ),
● 68HC11 serija (jači i opremljeniji procesori)
● 68HC12 serija (16 bitni, u potpunosti kompatibilni s 68HC11)
● 68HC16 serija (16 bitni, softverski kompatibilni s 68HC11)
– Motorola je krajem 2000-tih odcijepila svoj odjel razvoja
procesora u tvrtku Freescale
– Ovi procesori su iznimno popularni u industrijskoj proizvodnji,
iz istog razloga kao i Intel MCS-51
26. 14.05.17 Copyright Stipe Predanić, 2014 26
Zilog Z80
● Zilog Z80 mikroprocesor je iznimno uspješan mikroprocesor iz
70-tih i 80-tih
– Koristio se u ZX seriji (Spectrum, 81 itd), Amstrad CPC seriji, i
mnogim drugim mikroračunalima (u Jugoslaviji Galaksija
– 8 bitni procesor baziran na Intel 8080 arhitekturi, Von Neumann
– Tijekom vremena korištena su Z80 računala kao ugradbeni
uređaji
– U 90-tima je započet rad na mikroupravljačima koji imaju Z80
jezgru
● Toshiba, Hitachi i drugi
– Popularnost: isto kao i Motorola 68x i Intel MCS-51, postoji
mnogo postojećeg (starog) programskog koda koji se i dalje
koristi.