Podstawy
Techniki Mikroprocesorowej
Wykład 1
dr inż. Piotr Markowski
Konsultacje, materiały
Treść kursu
• Mikroprocesory i mikrokontrolery
• Programowanie mikrokontrolerów na
przykładzie 8-bitowego układu ATmega8535
(ATMEL)
Literatura
• 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”
Plan wykładu
• Mikroprocesory i mikrokontrolery
• Architektura mikrokontrolera na przykładzie AVR
• Lista instrukcji AVR
• Urządzenia peryferyjne AVR
• Wybrane interfejsy komunikacyjne
• Wybrane układy zewnętrzne
Mikrokontroler (mikrosterownik) – definicja
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.
Mikrokontroler - budowa
Pamięć: CPU
Central Processing Unit mikroprocesor
jednostka centralna serce MCU
mogą być różne CPU: architektury
magistrale (8,16-bit...) rodziny MCU
Mikrokontroler - budowa
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 H A R V A R D
Mikrokontroler - budowa
Porty WE / WY do komunikacji z otoczeniem np. 32 nóżki podzielone na 4 porty (4 x 8)Mikrokontroler - budowa
Magistra la d any ch Magistra la adre sow a Magistra la ste rując a Układy peryferyjne ADC czujniki komparator obsługa przerwań interfejsy komunikac. pamięć ROM liczniki RTCMikrokontroler - budowa
Układ taktujący K W A R C ZASILANIE RESETSpecyfikacja ATmega8535
• 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
Specyfikacja ATmega8535
• 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)
Specyfikacja ATmega8535
• 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
Specyfikacja ATmega8535
• 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
Budowa
MicroController Unit
(MCU)
Mikrokontroler
Komputer
Mikrokontroler
CPU – podstawowe zdolności
Operacje arytmetyczne
np. +, -, *, /, ^, …
Operacje logiczne
np. AND, OR, XOR
Operacje bitowe
np. 0
1
00 00
1
0
0011 1100
Operacje warunkowe
np. if(1) w_prawo
if(0) w_lewo
CPU – możliwości
BRAK
pamięć programu (np. EEPROM)
pamięć danych (np. RAM)
odliczanie
komunikacja
ADC
AC
MCU – budowa wewnętrzna
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 … DDRA PORTC SREG TCCR0 …Rejestry specjalne
Podstawowe elementy
mikrokontrolera.
Każde urządzenie wewnętrzne
μC ma przypisane do siebie
specjalne rejestry sterujące
jego pracą.
Rejestry specjalne
Przykładowy rejestr specjalny:
1 1 0 ExaReg 1 0 0 - -on/off start/stop przerwanie on/off prescaler
SREG = Status Register
DDRA = Data Direction Register
Rejestry uniwersalne
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
1 0 0 1 1 0 0 1
wartość
TCCR0
wybrany
Rejestry
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.
Programowanie
KOD MASZYNOWY
1110010001010100
0000111001010101
1101011001000111
1110101110010110
1110010001010110
0111001001010111
1101011001000101
0010101110010100
1000110011010101
0001011101010010
1011110001001001
Programowanie
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 Wskazuje miejsce Docelowe WartośćProgramowanie
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
Programowanie
PROGRAM
(PC)
µC
PAMIĘĆ
PROGRAMU
FLASH EEPROM
ELECTRICAL
ERASABLE
PROGRAMABLE
READ
ONLY
Kompilacja AsemblacjaPorty I/O
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’)
Jak zrobić, żeby:
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:
11111111
10101010
-00000000
-zajrzeć do środka
11111100
000111xx
Porty I/O
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)
PULL-UP
Antena – urządzenie zbiorcze zamieniające
fale elektromagnetyczne na sygnał elektryczny
(lub odwrotnie)
PULL-UP
DDR ← 0
PORT ← 1
MCU I/O logic Vcc pull-up resistorC:
DDRC
PORTC
PINC
0 1 1 0 1 1 0 0 1 1 1 1 0 0 0 0Wejścia są podciągnięte
do 1 logicznej
Lista instrukcji
AVR
Przykładowe zagadnienia sprawdzające
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.