Mikroprocesory i Mikrosterowniki

39
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.

Transcript of Mikroprocesory i Mikrosterowniki

Page 1: Mikroprocesory i Mikrosterowniki

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

Konsultacje, materiały

dr inż. Piotr Markowski © 2015

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

Page 3: Mikroprocesory i Mikrosterowniki

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

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

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

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

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

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

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

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

Mikrokontroler - budowa

dr inż. Piotr Markowski © 2015

Układ taktujący

K

W

A

R

C

ZASILANIE

RESET

Page 12: Mikroprocesory i Mikrosterowniki

dr inż. Piotr Markowski © 2015

ATmega8535

Page 13: Mikroprocesory i Mikrosterowniki

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

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

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

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

dr inż. Piotr Markowski © 2015

Budowa

MicroController Unit

(MCU)

Page 18: Mikroprocesory i Mikrosterowniki

Mikrokontroler

dr inż. Piotr Markowski © 2015

Komputer

Mikrokontroler

(mikrokomputer jednoukładowy)

Page 19: Mikroprocesory i Mikrosterowniki

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

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

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

dr inż. Piotr Markowski © 2015

Rejestry

Page 23: Mikroprocesory i Mikrosterowniki

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

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

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

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

dr inż. Piotr Markowski © 2015

Programowanie

Page 28: Mikroprocesory i Mikrosterowniki

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

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

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

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

dr inż. Piotr Markowski © 2015

Porty I/O

Page 33: Mikroprocesory i Mikrosterowniki

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

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

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

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

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

dr inż. Piotr Markowski © 2015

Lista instrukcji

AVR

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

Page 39: Mikroprocesory i Mikrosterowniki

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.