P od stawy te chn iki cyfrowej Mikroprocesory - sq1ftb.com filezestaw ten jest znacznie bogatszy. 5
Mikroprocesory i Mikrosterowniki
Transcript of Mikroprocesory i Mikrosterowniki
![Page 1: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/1.jpg)
Mikroprocesory
i Mikrosterowniki
Wykład 1
dr inż. Piotr Markowski
Wydział Elektroniki Mikrosystemów i Fotoniki
Na prawach rękopisu.Na podstawie dokumentacji ATmega8535, www.atmel.com.
![Page 2: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/2.jpg)
Konsultacje, materiały
dr inż. Piotr Markowski © 2015
http://www.w12.pwr.wroc.pl/pmarkowski
![Page 3: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/3.jpg)
Treść kursu
dr inż. Piotr Markowski © 2015
• Mikroprocesory i mikrokontrolery
• Programowanie mikrokontrolerów na
przykładzie 8-bitowego układu ATmega8535
(ATMEL)
• Asembler
![Page 4: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/4.jpg)
Literatura
dr inż. Piotr Markowski © 2015
• R. Pełka „Mikrokontrolery – architektura, programowanie, zastosowania”
• P. Górecki „Mikrokontrolery dla początkujących”
• J.M. Sibigtroth „Zrozumieć małe mikrokontrolery”
• J. Doliński „Mikrokontrolery AVR w praktyce”
• R. Baranowski „Mikrokontrolery AVR ATmega w praktyce”
• www.atmel.com (dokumentacja!)
![Page 5: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/5.jpg)
Plan wykładu
dr inż. Piotr Markowski © 2015
• Mikroprocesory i mikrokontrolery
• Architektura mikrokontrolera na przykładzie AVR
• Lista instrukcji AVR
• Urządzenia peryferyjne AVR
• Wybrane interfejsy komunikacyjne
• Wybrane układy zewnętrzne
![Page 6: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/6.jpg)
Mikrokontroler (mikrosterownik) – definicja
dr inż. Piotr Markowski © 2015
MCU (MicroController Unit)
Scalony układ cyfrowy, który oprócz wbudowanej
jednostki centralnej CPU posiada zintegrowaną
pamięć oraz układy wspomagające.
Mikrokontroler stanowi całkowicie autonomiczny
system mikroprocesorowy, który do pracy nie
wymaga układów zewnętrznych.
Ma rozbudowany system komunikacji z otoczeniem.
![Page 7: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/7.jpg)
Mikrokontroler - budowa
dr inż. Piotr Markowski © 2015
Pamięć:
- programu
- danych
CPU
Central Processing Unit
mikroprocesor
jednostka centralna
serce MCU
mogą być różne CPU:
architektury
magistrale (8,16-bit...)
rodziny MCU
![Page 8: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/8.jpg)
Mikrokontroler - budowa
dr inż. Piotr Markowski © 2015
Pamięć programu
(dysk twardy MCU)
program
Pamięć danych
(RAM)
rejestry + RAM
np.
8 kB
32 kB
np.
32 rej. uniwersalne
8-bitowe
np.
64 rej. specjalne
8-bitowe
np.
512 bajtów SRAM
RAZEM 608 B
H
A
R
V
A
R
D
![Page 9: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/9.jpg)
Mikrokontroler - budowa
dr inż. Piotr Markowski © 2015
Porty WE / WY
do komunikacji
z otoczeniem
np. 32 nóżki
podzielone na 4 porty
(4 x 8)
![Page 10: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/10.jpg)
Mikrokontroler - budowa
dr inż. Piotr Markowski © 2015
Mag
istr
ala
dan
ych
Mag
istr
ala
ad
reso
wa
Mag
istr
ala
ste
rują
ca
Układy peryferyjne
ADC
czujniki
komparator
obsługa przerwań
interfejsy komunikac.
pamięć ROM
liczniki
RTC
WDT
![Page 11: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/11.jpg)
Mikrokontroler - budowa
dr inż. Piotr Markowski © 2015
Układ taktujący
K
W
A
R
C
ZASILANIE
RESET
![Page 12: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/12.jpg)
dr inż. Piotr Markowski © 2015
ATmega8535
![Page 13: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/13.jpg)
Specyfikacja ATmega8535
dr inż. Piotr Markowski © 2015
• Mikrokontroler 8-bitowy
• Architektura RISC
– ~120 instrukcji – w większości wykonywane w 1 cykl zegarowy
– 32 rejestry uniwersalne, 8-o bitowe
- 64 rejestry specjalne
– do 16 MIPS przy 16 MHz
– wbudowany układ mnożący
RISC (Reduced Instruction Set Computer)
- architektura typu Harvard (oddzielone szyny danych i rozkazów)
- przetwarzanie potokowe
- zredukowana lista instrukcji
- instrukcje mogą operować na dowolnym rejestrze uniwersalnym
- ograniczenie komunikacji między pamięcią, a procesorem
![Page 14: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/14.jpg)
Specyfikacja ATmega8535
dr inż. Piotr Markowski © 2015
• Pamięci:
– 8 KB Flash EEPROM (p. programu, nieulotna)
– 512 B SRAM (p. danych, ulotna)
– 512 B EEPROM (p. użytkownika, nieulotna)
– Programowalne zabezpieczenie kodu programu (Lock Bits)
• 32 programowalne wejścia/wyjścia (porty I/O)
![Page 15: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/15.jpg)
Specyfikacja ATmega8535
dr inż. Piotr Markowski © 2015
• Urządzenia peryferyjne
– Dwa 8-bitowe liczniki (Timer/Counters) (2^8-1 = 255)
– Jeden licznik 16-bitowy (2^16-1 = 65535)
– Programowalny Watchdog (licznik specjalny)
– generator sygnału PWM (Pulse Width Modulation)
– 10-bitowy konwerter analogowo-cyfrowy (ADC)
– Komparator analogowy
– Magistrala szeregowa Two-wire (I2C)
– Magistrala szeregowa USART
– Magistrala szeregowa SPI (tryby Master/Slave)
![Page 16: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/16.jpg)
Specyfikacja ATmega8535
dr inż. Piotr Markowski © 2015
• Opcje specjalne
– Brown-out Detector
– Wewnętrzny oscylator RC
– Możliwość taktowania ze źródła zewnętrznego
– Przerwania wewnętrzne i zewnętrzne
– Sześć trybów uśpienia
• Napięcia zasilania:
– 2,7 – 5,5V dla ATmega8535L
– 4,5 – 5,5V dla ATmega8535
![Page 17: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/17.jpg)
dr inż. Piotr Markowski © 2015
Budowa
MicroController Unit
(MCU)
![Page 18: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/18.jpg)
Mikrokontroler
dr inż. Piotr Markowski © 2015
Komputer
Mikrokontroler
(mikrokomputer jednoukładowy)
![Page 19: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/19.jpg)
CPU – podstawowe zdolności
dr inż. Piotr Markowski © 2015
Operacje arytmetyczne np. +, -, *, /, ^, …
Operacje logiczne np. AND, OR, XOR
Operacje bitowe np. 0100 0010
0011 1100
Operacje warunkowe np. if(1) w_prawo
if(0) w_lewo
![Page 20: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/20.jpg)
CPU – możliwości
dr inż. Piotr Markowski © 2015
BRAK pamięć programu (np. EEPROM)
pamięć danych (np. RAM)
odliczanie
komunikacja
ADC
AC
I/O
![Page 21: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/21.jpg)
MCU – budowa wewnętrzna
dr inż. Piotr Markowski © 2015
MCU
CPU
Arithmetic
Logic
Unit
(ALU)
General
Purpose
Registers
(Rx)
Pamięć programu
LDI R16 , 0xFF
OUT DDRA , R16
LDI R17 , 0b10101010
OUT PORTA , R17
….
….
Pamięć RAM
stos
…
Urządzenia peryferyjneRejestry specjalne
DDRA
PORTC
SREG
TCCR0
…
![Page 22: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/22.jpg)
dr inż. Piotr Markowski © 2015
Rejestry
![Page 23: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/23.jpg)
Rejestry specjalne
dr inż. Piotr Markowski © 2015
Podstawowe elementy
mikrokontrolera.
Każde urządzenie wewnętrzne
μC ma przypisane do siebie
specjalne rejestry sterujące
jego pracą.
![Page 24: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/24.jpg)
Rejestry specjalne
dr inż. Piotr Markowski © 2015
Przykładowy rejestr specjalny:
1 1 0ExaReg 1 0 0 - -
on/off
start/stop
przerwanie
on/off
prescaler
SREG = Status Register
DDRA = Data Direction Register
TCCR0 = Timer/Counter Control Register 0
GICR = General Interrupt Control Register
![Page 25: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/25.jpg)
Rejestry uniwersalne
dr inż. Piotr Markowski © 2015
1 0 0 1 1 0 0 1
rej. specjalny
Brak bezpośredniego dostępu do rej. specjalnych
Dostęp pośredni – przez dowolny rejestr uniwersalny
rej. uniwersalny
R0 – R31
dowolny
rejestr uniwersalny
1 0 0 1 1 0 0 1wartość
TCCR0
wybrany
rejestr specjalny
![Page 26: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/26.jpg)
Rejestry
dr inż. Piotr Markowski © 2015
Rejestry specjalne:
– do sterowania urządzeniami wewnętrznymi
- 64 szt. (str. 299)
- nazwy to skróty (SREG = Status Register)
Rejestry uniwersalne:
- do wykonywania operacji (arytmetycznych, logicznych itp.)
- 32 szt.
- nazwy: R0 – R31
![Page 27: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/27.jpg)
dr inż. Piotr Markowski © 2015
Programowanie
![Page 28: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/28.jpg)
Programowanie
dr inż. Piotr Markowski © 2015
KOD MASZYNOWY
1110010001010100
0000111001010101
1101011001000111
1110101110010110
1110010001010110
0111001001010111
1101011001000101
0010101110010100
1000110011010101
0001011101010010
1011110001001001
1100101010010111
![Page 29: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/29.jpg)
Programowanie
dr inż. Piotr Markowski © 2015
KOD MASZYNOWY
1110010001010100
0000111001010101
1101011001000111
1110101110010110
000011 10010 10101
Kod operacji
np.:
ADD
(dodaj 2 rejestry)
Wskazuje miejsce
przechowywania
argumentu 1
Wskazuje miejsce
przechowywania
argumentu 2
1110 1011 1001 0110
Kod operacji
np.:
LDI
(załaduj
do rejestru)
Wskazuje miejsce
Docelowe
(rejestr)Wartość
do załadowania
![Page 30: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/30.jpg)
Programowanie
dr inż. Piotr Markowski © 2015
KOD MASZYNOWY
11100100010101
01110010010101
11010110010001
00101011100101
ASEMBLER
LDI R16, 100
LDI R17, 50
ADD R16, R17
OUT PORTA, R16
JĘZ. POZIOMU
ŚRED. / WYS.
PORTA:= R16+R17
(C, BASCOM)
LISTA
INSTRUKCJI µP
……………….
……………….
……………….
……………….
asemblacja kompilacja
![Page 31: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/31.jpg)
Programowanie
dr inż. Piotr Markowski © 2015
PROGRAM
(PC)µC
PAMIĘĆ
PROGRAMU
FLASH EEPROM
ELECTRICAL
ERASABLE
PROGRAMABLE
READ
ONLY
MEMORY
Kompilacja
Asemblacja
![Page 32: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/32.jpg)
dr inż. Piotr Markowski © 2015
Porty I/O
![Page 33: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/33.jpg)
Porty I/O
dr inż. Piotr Markowski © 2015
A: B: C: D:
DDRA DDRB DDRC DDRD
PORTA PORTB PORTC PORTD
PINA PINB PINC PIND
DDR – Data Direction Register (‘1’=WY, ‘0’=WE)
PORT – gdy WY (wysyłanie ‘1’ lub ‘0’)
PIN – gdy WE (tylko do odczytu)
PA0…PA7, … , PD0…PD7
![Page 34: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/34.jpg)
Jak zrobić, żeby:
dr inż. Piotr Markowski © 2015
1) wysłać z μC na zewnątrz sygnał 10101010 (port C)?DDRC:
PORTC:
PINC:
2) sczytać sygnał podany z zewnątrz na port C?DDRC:
PORTC:
PINC:
3) ustawić 6 najstarszych jako WY, reszta jako WE;
wysłać 000111 i sczytać PC0, PC1?DDRC:
PORTC:
PINC:
11111111
10101010
-
00000000
-
zajrzeć do środka
11111100
000111xx
zajrzeć do środka
![Page 35: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/35.jpg)
Porty I/O
dr inż. Piotr Markowski © 2015
Port wejściowy (DDR ← 0)
minimalna wydajność prądowa
pobiera informacje
wymaga zabezpieczenia przed zakłóceniami
nóżka w trybie Hi-Z (tri-state) lub pull-up
Port wyjściowy (DDR ← 1)
wydajność prądowa 20 mA
wysyła informacje
![Page 36: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/36.jpg)
PULL-UP
dr inż. Piotr Markowski © 2015
Antena – urządzenie zbiorcze zamieniające
fale elektromagnetyczne na sygnał elektryczny
(lub odwrotnie)
![Page 37: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/37.jpg)
PULL-UP
dr inż. Piotr Markowski © 2015
DDR ← 0
PORT ← 1
MCU
I/O
logic
Vcc
pull-up
resistor
C:
DDRC
PORTC
PINC
0 1 1 11 0 0 0
1 11 1 0 00 0
Wejścia są podciągnięte
do 1 logicznej
![Page 38: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/38.jpg)
dr inż. Piotr Markowski © 2015
Lista instrukcji
AVR
(zob. wykład „Instrukcje, tryby adresowania”)
![Page 39: Mikroprocesory i Mikrosterowniki](https://reader031.fdocuments.net/reader031/viewer/2022012100/6169de2a11a7b741a34c4161/html5/thumbnails/39.jpg)
Przykładowe zagadnienia sprawdzające
dr inż. Piotr Markowski © 2015
1. Mikrokontroler – definicja.
2. Mikrokontroler vs. Mikroprocesor – różnice.
3. Mikrokontroler – ogólna budowa wewnętrzna.
4. Rodzaje pamięci półprzewodnikowych (RAM, ROM, EEPROM, itp.),
podstawowe cechy.
5. Podział pamięci w mikrokontrolerze: p. danych, p. programu.
6. Rejestry mikrokontrolera – podział, funkcje, cechy, sposoby dostępu, stos.
7. Funkcje wybranych rejestrów specjalnych:
PC, SP, SREG, DDRx, PORTx, PINx.
8. PULL-UP.
9. Konwersja kodów liczbowych: NKB, U2, szesnastkowy.