3/28/2013
PRIMJERI ARHITEKTURA MIKROKONTROLERSKE PLATFORME
Sistemi u realnom vremenu Vanr.prof.dr. Lejla Banjanović‐Mehmedović
Copyright: Lejla Banjanovic‐Mehmedovic
PRIMJERI ARHITEKTURE MIKROKONTROLERSKE PLATFORME
Mikrokontroler
Mikrokontroler ‐ Poluprovodićki čip sa procesorom i perifernim funcijama (RAM, Flash,CAN‐
(Controller Area Network), LIN‐ (Local Interconnect Network), USB‐ (Universal Serial Bus), I²C‐ (Inter‐
Integrated
teg ated C
Circuit),
cu t), SSPI‐ (Se
(Serial
a Peripheral
e p e a Interface),
te face), se
serijsko
js o ili Ethernet‐sučelje,
t e et suče je, PWM‐izlazi,
a , LCD‐
C
Controller i drajver i Analognim‐Digitalnim‐konverterom) – System on a Chip
Od aplikacije, koju želimo izgraditi , ovisi izbor mikrokontolerske strukture, koliko će imati I/O portova, koliko ROMa, RAMa i sl.)
Copyright: Lejla Banjanovic‐Mehmedovic
1
3/28/2013
PRIMJER ARHITEKTURE MIKROKONTROLERSKE PLATFORME
Oblasti primjene mikrokontrolera:
Copyright: Lejla Banjanovic‐Mehmedovic
PRIMJER 1: Boe‐Bot: hardverska platforma
Boe‐Bot ‐ mobilni robot firme Parallax
Modularan
Poseban programski jezik PBASIC
na p
putu između asemblera i C p
programskog
g
g
jezika.
Pogon: servo motori
Senzori ‐ podržava veliki broj senzora
infracrveni
kontaktni „whiskers“ senzori
Ultrazvučni (sonar)
Video kamera
Enkoderi...
Bluetooth i serijska komunikacija
Copyright: Lejla Banjanovic‐Mehmedovic
2
3/28/2013
Boe‐Bot: BASIC‐STAMP 2
Najvažniji dio:
mobilna štampana ploča (Board Of
Education) ‐ nosi BASIC Stamp II
mikrokontroler
BASIC Stamp
p je
j u stvari mala
štampana ploča koja sadrži osnovne
elemente
mikroprocesorskog
sistema:
Mikrokontroler
sadrži CPU, ugrađen ROM koji
sadrži BASIC interpreter
Memoriju (serijski EEPROM)
Sat
obično u
rezonatora
vidu
keramičkog
Napajanje
Eksterne ulaze i izlaze
Radna brzina
20 Mhz
Brzina izvršavanja
~4.000 instr./s
RAM
32 B
EEPROM
2 kB
PBASIC naredbi
42
Copyright: Lejla Banjanovic‐Mehmedovic
KOOPERATIVNI RAD MOBILNIH ROBOTA, DIZAJNIRAN SA MAŠINOM KONAČNOG STANJA
Slika 12 – Interakcija među robotima putem virtuelnih feromona
Slika 63 – Mašina konačnih stanja za ponašanje provjere šesnaesterca i prepreka
Copyright: Lejla Banjanovic‐Mehmedovic
3
3/28/2013
PRIMJER 2: ARHITEKTURA MIKROKONTROLERSKE PLATFORME
Atmel ATMEGA16‐16PU:
Karakteristike
Vrijednost
kučište
DIL 40
8‐bit Timer 2
10‐bit A/D Channels 8
Flash memorija
16 kB
RAM
1 kB
UART
1
SPI
1
TWI
1
16‐bit Timer 1
UCC
4,5...5,5 V
EEPROM 512 Byte
Frekfencija takta
0 ‐ 16 MHz
I/O Pins
32
Copyright: Lejla Banjanovic‐Mehmedovic
PRIMJER 2 ARHITEKTURE MIKROKONTROLERSKE PLATFORME
Memorija mikrokontolera
Tip
Brzina pristupa Veličina
memoriji
memorije
Broj mogućih zapisa
Opstanak
zapisa bez napona
RAM (Random Access Memory)
++++ ++++ beskonačno ne EPROM (Erasable Programmable
Read‐Only Memory)
+ +++ ~1000 da
EEPROM (Electrically Erasable Programmable Read Only Memory)
+ +++ 10.000‐
1.000.000 da
FLASH‐ROM ++ +++++ 1000‐10.000 da OTP‐ROM (One Time Programmable‐Read Only Memory)
+ +++ jedanput
da
Registar
++++++ + beskonačno ne F‐RAM (Ferroelectric RAM)
++++
+++
beskonačno da Copyright: Lejla Banjanovic‐Mehmedovic
4
3/28/2013
PRIMJER 2. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
Registri i portovi mikrokontolera
32 8‐bitna registra
26 ... 31 čine 3 16‐bitna registra (X, Y, Z registri)
Copyright: Lejla Banjanovic‐Mehmedovic
PRIMJER 2. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
Način programiranja mikrokontolera
Memorisanje podataka unutar mikrokontrolera u Intel HEX formatu
formatu..
Razvoj programa uz primjenu programskih jezika:
•
Assembler
•
C
•
Basic
•
Paskal
•
Forth
•
Ada
•
C
C++
Copyright: Lejla Banjanovic‐Mehmedovic
5
3/28/2013
PRIMJER 2. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
Primjer programa u C programskom jeziku
Copyright: Lejla Banjanovic‐Mehmedovic
PRIMJER 2. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
Razvojna ploča STK500
Copyright: Lejla Banjanovic‐Mehmedovic
6
3/28/2013
PRIMJER 2. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
Copyright: Lejla Banjanovic‐Mehmedovic
PRIMJER 2. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
STK500 podrška za mikrokontrolere:
•
ATtiny11
•
ATmega16
•
AT90S4433
•
AT90S2313
•
ATtiny12
•
ATmega161
•
AT90S4434
•
AT90S2323
•
ATtiny15
•
ATmega163
•
AT90S8515
•
AT90S2333
•
ATtiny22
•
ATmega323
•
AT90S8535
•
AT90S2343
•
ATtiny28
•
ATmega103*
•
AT
ATmega8
8
•
AT90S4414
•
ATmega128*
Copyright: Lejla Banjanovic‐Mehmedovic
7
3/28/2013
PRIMJER 2. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
I/O registri:
DDRx
PINx
PORTx
Usmjerivački registar podataka za PORT x
x odgovara A, B, C, D itd. (ovisno od broja PORT‐ova koje korist AVR). Vrijednost 1 odgovara izlaz portu, vrijednost 0 za ulazni port.
Ulazna adresa za PORT x
Bitovi u PINx odgovaraju stanju PORT‐PIN‐a koji je definisan kao ulaz. Bit 1 kad je PIN high, Bit 0 kad je low.
Registar podataka PORT x
Kod PIN‐ova koji su pomoću DDRx uključeni kao ulaz, moguče je preko PORTx interne P ll U t
Pull‐Up otpore aktivirati ili deaktivirati kti i ti ili d kti i ti
(1=aktivirano).
PORTB=0xFF; postavlja početno stanje porta,
DDRB=0xFF; postavlja PORTB kao izlazni port
Copyright: Lejla Banjanovic‐Mehmedovic
PRIMJER 2. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
Primjer programa za upravljanje I/O pinvima
Copyright: Lejla Banjanovic‐Mehmedovic
8
3/28/2013
PRIMJER 2. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
Interrupt‐i
Pri pojavi određenih događaja unutar mikrokontrolera se registruje Interrupt (zahtjev za prekid
tekučeg procesa).
Primjer primjene Interrupt‐a
Interrupt a je:
•
ukoliko se stanje promjeni na nekom od ulaznih pin‐ova
•
ukoliko je protekao konkretno definisani vremensko period,
•
ukoliko je serijski prenos okončan
•
ukoliko je okončano mjerenje putem A/D konvertera
Ukoliko se pojavi događaj koji je povezan sa pozivom Interrupt‐a slijedi tok događaja:
1. Unutar specijalnog registra postavlja se vrijednost bita (Interruptflag )
2. Daljnji tok osnovnog programa se prekida, Interruptflag se briše i pokreće se podprogram
(Interrupt Service Routine ‐ ISR)
3. Nakon završetka podprograma, nastavlja se sa izvravanjem naredbi u osnovnom programu
nastavljajući sa narednom naredbom nakon poziva Interrupta
Copyright: Lejla Banjanovic‐Mehmedovic
PRIMJER 2. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
Primjer programa za korištenja interaptima
Copyright: Lejla Banjanovic‐Mehmedovic
9
3/28/2013
PRIMJER 2. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
Timeri
Timer je određeni registar unutar mikrokontrolera koji dozvoljava
kontinualno intrementira ili dekramentira
dekramentira..
da se njegova vrijednost
Timer‐i služe:
•
za periodično ponavljanje određenih naredbi
•
da pri određenim vrednostima aktiviranje interapta
•
samostalno kreiranje izlaznih signala
•
...
Prescaler
Overflows/Sekunde (sistem: 4MHz)
Vrijeme između dva Overflows‐a (s)
1
15625
0,000064
8
1953,125
0,00512
64
244,1406
0,04096
256
61,0351
0,016384
15,2587
0,065536
1024
Copyright: Lejla Banjanovic‐Mehmedovic
PRIMJER 2. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
8 bit‐Timeri
TCCR0 ‐ Timer/Counter Control Register Timer 0
Bit 7
6
5
4
3
2
1
0 Naziv
‐
‐
‐
‐
‐
CS02
CS01
CS00 R/W R
R
R
R
R
R/W
R/W
R/W Inicijalna vrijednost 0
0
0
0
0
0
0
0
CS02, CS01, CS00 (Clock Select Bits)
CS02 CS01 CS00 0 0 0 Resultat
Stop, Timer/Counter se zaustavlja
0 0 1 CPU‐Takt 0 1 0 CPU‐Takt / 8 0 1 1 CPU‐Takt / 64 1 0 0 CPU‐Takt / 256 1 0 1 CPU‐Takt / 1024 1 1 0 Eksterni Pin TO, opadajući
1 1 1 Eksterni Pin TO, rastući
Copyright: Lejla Banjanovic‐Mehmedovic
10
3/28/2013
PRIMJER 2. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
8 bit‐Timeri
TCNT0 ‐ Timer/Counter Daten Register Timer 0
Bit
7
Naziv MSB
6
5
4
3
2
1
0 R/W R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W Inicijalna vrijednost
0
0
0
0
0
0
0
0 LSB Ovaj 8‐bitni rastući brojać broji do 255, te nakon toga zapoćinje sa brojanjem u slijedećem ciklusu
od 0.
Copyright: Lejla Banjanovic‐Mehmedovic
PRIMJER 2. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
Primjer programa za upravljanje timerima
Copyright: Lejla Banjanovic‐Mehmedovic
11
3/28/2013
PRIMJER 2. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
UART ‐ Universal Asynchronous Receiver Transmitter
UART digitalni serijski interfejs koji služi za komunikaciju između PC‐
PC‐a i
mikrokontrolera putem rs‐
rs‐232 serijskog međusklopa
međusklopa..
Copyright: Lejla Banjanovic‐Mehmedovic
PRIMJER 2. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
I2C komunikacija
I2C (eng.
(eng. Inter
Inter‐‐Integrated Circuit) pedstavlja vid serijske sinhrone komunikacije između nekoliko
mikrokontrolera u vidu Master‐
Master‐Slave magistrale.
magistrale.
Glavni uređaj generiše takt i adresira sporedne učesnike (7 bit – 112 učesnika; 10 bita ‐ preko 1000
učesnika).
Postoji mogućnost kreiranja Multi‐Master‐magistrale.
Copyright: Lejla Banjanovic‐Mehmedovic
12
3/28/2013
PRIMJER 3. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
Karakteristike ATmega32
AVR® 8‐bit Mikrokontroler
visokih performansi i niske
potrošnje
Napredna RISC Arhitektura
131 Instrukcija – Većina se izvršava u jednom taktu
32 x 8 Registra opšte namjene
Potpuno statičke operacije
Do 16 MIPS pri 16 MHz
Ciklus Čitanja/Pisanja: 10,000 Flash/100,000 EEPROM
Očuvanje podataka: 20 god. pri
85°C/100
85
C/100 god. pri
god pri 25
25°C
C
Podrška za debagiranje u čipu
Programiranje Flash, EEPROM i
bitova zaključavanja kroz JTAG Interfejs
Copyright: Lejla Banjanovic‐Mehmedovic
PRIMJER 3. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
AVR arhitektura ATmega32
•32KBytes Flash memorije
•32KBytes
Flash memorije sa
mogućnosti samoprogramiranja
(In‐System Self‐programmable)
•1024 Bytes EEPROM
•2K Byte Internog SRAM
Copyright: Lejla Banjanovic‐Mehmedovic
13
3/28/2013
PRIMJER 3. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
Karakteristike ATmega32
•Periferne mogućnosti
•Dva 8‐bitna Tajmera/Brojača sa
•I/O
I/O ii pakovanje
zasebnim
b
preskalerima
k l
i modovima
d
•32 Programabilne I/O linije
uspoređivanja
•40‐pin PDIP, 44‐lead TQFP, and 44‐pad •Jedan 16‐bitni Tajmer/Brojač sa
QFN/MLF
zasebnim preskalerom, modom
• Radni naponi
uspoređivanja i modom hvatanja
•2.7 ‐ 5.5V za ATmega32L
•Brojači u realnom vremenu sa
•4.5 ‐ 5.5V ua ATmega32
zasebnim oscilatorom
•Brzine
•Četiri PWM kanala
•0 ‐ 8 MHz za ATmega32L
•10‐bitni ADC sa 8 kanala
•0 ‐ 16 MHz za ATmega32
•Bajtno orjentisan serijski interfejs
•Potrošnja
Potrošnja energije pri 1 MHz, 3V, 25
energije pri 1 MHz 3V 25°C
C •Programabilni serijski USART
P
bil i ij ki USART
•Master/Slave SPI serijski interfejs za ATmega32L
•Aktivno: 1.1 mA
•Programabilni Watchdog Tajmer •U praznom hodu: 0.35 mA
sa zasebnim oscilatorom u čipu
•Analogni komparator u čipu
Copyright: Lejla Banjanovic‐Mehmedovic
PRIMJER 3. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
KR‐mega 32 baziran na Atmel32
Priključak za baterije (9,6 Volt)
Zaštita priključka za baterije od pogrešne
polarizacije
Razdvojeno osigurane strujne krugove
Automatske osigurače koji se sami vraćaju u slučaju iskakanja
LCD‐Display, opcionalno sa pozadinskim
osvjetljenjem
Opcionalno osvjetljenje se može jumperom
postaviti na ON (konstantno svijetli), OFF ili
OUT21 (upravljano svijetli)
2 priključka za motore (za motore do 600mA Spitzenstrom, kod
p
,
većih motora
potreban eksterni H‐most)
2 priključka za servo motore
I²C‐priključak na koji se mogu priključiti dva
uređaja. Jednostavna ekspanzija za više
uređaja.
SPI‐priključak koji se može koristiti kao
Slave. Na ovaj priključak se također mogu
priključiti dva uređaja.
Copyright: Lejla Banjanovic‐Mehmedovic
14
3/28/2013
PRIMJER 3. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
Mobilna robotska platforma KR‐
mega32‐16 V2.3
RS232 Interface preko kojeg platforma
može
ž komunicirati
k
i i ti sa računarom
č
ili drugim
d i
uređajima.
RS232 Interface sa TTL‐Pegel, preko kojeg
platforma može komunicirati sa računarom
ili drugim uređajima
Selekcija RS232 načina rada (PC‐RS232 ili
TTL‐RS232) vrši se jumperom.
Posebno izdvojen UART priključak, preko
kojeg je moguće uspostaviti nekoliko
različitih komunikacijskih protokola.
Integrisan programator. Nije potreban
poseban adapter za programiranje.
13 digitalnih ulaza/izlaza
8 analoge ulaza koji se također
8 analoge
se također mogu
koristiti kao digitalni ulazi/izlazi
3 eksterna Interapta(Interrupts)
Dugme za reset
32 KByte memorije
16 MHz frekvencija
Copyright: Lejla Banjanovic‐Mehmedovic
PRIMJER 3. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
Shema priključaka KR‐mega32‐16 V2.3
Copyright: Lejla Banjanovic‐Mehmedovic
15
3/28/2013
PRIMJER 3. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
Mogući priključci senzora na portovima
Analogni ulazi
Zauzimanje porta
Digitalni ulazi
Zauzimanje porta
9
slobodan
l b d
10
slobodan
1
Senzor za mjerenje udaljenosti lijevo
2
slobodan
3
slobodan
11
slobodan
4
slobodan
12
slobodan
5
slobodan
13
slobodan
6
slobodan
14
slobodan
7
slobodan
15
slobodan
8
Senzor za mjerenje udaljenosti desno
16
slobodan
M t i
Motori
Z i
Zauzimanje
j porta
t
17
Taster pozadi desno
Motor 1
Motor lijevo
Motor 2
Motor desno
Servo 1
Servo motor lijevo
Servo 2
Servo motor desno
18
Taster pozadi lijevo
19
Taster sprijeda lijevo
20
Taster sprijeda desno
21
slobodan
Copyright: Lejla Banjanovic‐Mehmedovic
PRIMJER 4. NI MOBILNI ROBOT
NI Single‐Board RIO (eng. Reconfigurable input/output) je ugrađena razvojna platforma: ‐procesor realnog vremena sbRIO‐9632 frekvencije 400 MHz, sadrži 128MB DRAM
128MB DRAM‐a za ugrađene operacije i 256MB stalne đ
ij i 256MB t l
memorije za smještanje programa ili podataka
‐korisnički rekonfigurabilan 2M Xilinx Spartan FPGA ‐ulazi/izlazi (32 nesimetrična/16 diferencijalna16‐bitna analogna ulazna kanala od 250 kS/s i četiri 16‐bitna analogna izlazna kanala od 100 kS/s)
Copyright: Lejla Banjanovic‐Mehmedovic
16
3/28/2013
PRIMJER 4. FPGA
FPGA (eng. Field Programmable Gate Array) su poluprovodničke komponente visokog stepena integracije, koje se sastoje od velikog broja programabilnih logičkih blokova, programabilnih konekcija između tih blokova, te programabilnih ulaza/izlaza. Korisnik bil ih k
k ij i
đ tih bl k
t
bil ih l /i l
K i ik
programiranjem FPGA komponente dobija željeni hardverski sklop, a pošto su ove komponente reprogramabilne, moguće je jednostavno ponovno programiranje, izmjena ili dodavanje različitih funkcionalnosti hardvera. Copyright: Lejla Banjanovic‐Mehmedovic
PRIMJER 5. ARHITEKTURE MIKROKONTROLERSKE PLATFORME
Pioneer 3‐DX
Osnovne komponente robota Osnovne
komponente robota
su okupljene oko njegovog 44.2368 MHz Renesas SH2‐
7144 mikroprocesora. Ovaj procesor je 32‐bit‐ni RISC mikroporcesor, koji ima 128 kB FLASH memorije i
32 kB RAM‐a i Interface‐i mikrokontrolera su obezbjeđeni putem 3 PCI
obezbjeđeni putem 3 PCI porta i mnoštvom drugi komunikacionih portova
Copyright: Lejla Banjanovic‐Mehmedovic
17
3/28/2013
Usporedba mikrokontrolerskih karakteristika ugrađenih mobilnih robotskih platformi
Parallax Boe-Bot
EyeBot
Kr-mega 32
Pioneer 3-DX
PIC 16C57 mikrokontroler
firme Microchip Inc.
32-bitni M68332
32-bitni Atmel
32-bitni Renesas SH27144
32KB Flash mem.
1024 B EEPROM
 2KB Internog SRAM
 128 kB FLASH
memorije
 32 KB RAMa


2KB EEPROM
30B RAM
 512KB ROM (for
system + user
programs)
 1-2MB RAM
po 1 serijski ulaz/izlaz
16 u/i pinova za opštu
upotrebu


1 paral. port
3 serij. porta
 8 digitalnih ulaza
 8 digitalnih izl.
 16 U/I za Timing
proc. jedinicu
 8 analognih ulaza




13 U/I digitalnih portova
8 Anal. Portova (kao ul.
ili kao digitalni U/I)
 2 izalaza z amotore
 2 servo priključka


4 RS-232 ser. porta (5
konektora)
 2 8-bit
8 bi bumpera
b
/dig.ul.konektor.
 Hvataljka / I/O port sa
8-bitnim digital I/O,
analogni ulaz
 Motor/Power Board
(drive system) interf. sa
PWM i 8-bit dig. ulazima

Copyright: Lejla Banjanovic‐Mehmedovic
Operativni Sistemi Mobilnih Robota Sa Ugrađenim Sistemima
•A/ROSE /
•Embedded Linux •Inferno (distriobuirani operativni sistem) •ROM‐DOS •Minix version 3 •T2 SDE •Windows XP Embedded •Windows CE •.NET Micro Framework •QNX
Copyright: Lejla Banjanovic‐Mehmedovic
18
Download

primjeri arhitektura mikrokontrolerske platforme