Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1...

40
Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach rękopisu. Na podstawie dokumentacji ATmega8535, www.atmel.com.

Transcript of Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1...

Page 1: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

Podstawy

Techniki Mikroprocesorowej

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: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

Konsultacje, materiały

dr inż. Piotr Markowski © 2015

Pn, 11-13, 143/M11

Czw, 11-13, 143/M11

http://www.w12.pwr.wroc.pl/pmarkowski

Page 3: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

Warunki zaliczenia

dr inż. Piotr Markowski © 2015

• kartkówki (60%)

test mieszany (wykład 8 – 23-01-2020)

• poprawa ustna

Page 4: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

Treść kursu

dr inż. Piotr Markowski © 2015

• Mikroprocesory i mikrokontrolery

• Programowanie mikrokontrolerów na

przykładzie 8-bitowego układu ATmega8535

(ATMEL)

• Asembler

Page 5: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 6: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 7: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 8: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 9: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 10: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 11: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 12: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

Mikrokontroler - budowa

dr inż. Piotr Markowski © 2015

Układ taktujący

K

W

A

R

C

ZASILANIE

RESET

Page 13: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

dr inż. Piotr Markowski © 2015

ATmega8535

Page 14: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

Specyfikacja ATmega8535

dr inż. Piotr Markowski © 2015

• Mikrokontroler 8-bitowy

• Architektura RISC

– 132 instrukcje – 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 15: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 16: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 17: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 18: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

dr inż. Piotr Markowski © 2015

Budowa

MicroController Unit

(MCU)

Page 19: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

Mikrokontroler

dr inż. Piotr Markowski © 2015

Komputer

Mikrokontroler

(mikrokomputer jednoukładowy)

Page 20: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 21: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 22: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 23: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

dr inż. Piotr Markowski © 2015

Rejestry

Page 24: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 25: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 26: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 27: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 28: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

dr inż. Piotr Markowski © 2015

Programowanie

Page 29: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

Programowanie

dr inż. Piotr Markowski © 2015

KOD MASZYNOWY

1110010001010100

0000111001010101

1101011001000111

1110101110010110

1110010001010110

0111001001010111

1101011001000101

0010101110010100

1000110011010101

0001011101010010

1011110001001001

1100101010010111

Page 30: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 31: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 32: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

Programowanie

dr inż. Piotr Markowski © 2015

PROGRAM

(PC)µC

PAMIĘĆ

PROGRAMU

FLASH EEPROM

ELECTRICAL

ERASABLE

PROGRAMABLE

READ

ONLY

MEMORY

Kompilacja

Asemblacja

Page 33: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

dr inż. Piotr Markowski © 2015

Porty I/O

Page 34: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 35: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 36: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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 37: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

PULL-UP

dr inż. Piotr Markowski © 2015

Antena – urządzenie zbiorcze zamieniające

fale elektromagnetyczne na sygnał elektryczny

(lub odwrotnie)

Page 38: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

PULL-UP

dr inż. Piotr Markowski © 2015

DDR ← 0

PORT ← 1

MCU

I/O

logic

Vcc

pull-up

register

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 39: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

dr inż. Piotr Markowski © 2015

Lista instrukcji

AVR

(zob. wykład „Instrukcje, tryby adresowania”)

Page 40: Podstawy Techniki Mikroprocesorowej · 2019-10-10 · Podstawy Techniki Mikroprocesorowej Wykład 1 dr inż. Piotr Markowski Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach

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.