MIKROPROCESORY I MIKROKONTROLERY Piotr MALECKI 1/24 TEMAT TEGO WYKŁADU OBEJMUJE OBSZAR GDZIE INFORMATYK SPOTYKA SIĘ Z PODSTAWOWYMI PROBLEMAMI BUDOWY KOMPUTERÓW. POZNAMY ELEMENTY JEDNOSTKI CENTRALNEJ – CPU (CENTRAL PROCESSOR UNIT) ORAZ ELEMENTY SKŁADAJĄCE SIĘ NA KOMPLETNY SYSTEM KOMPUTEROWY. TYTUŁOWE ROZRÓŻNIENIE MIKROPROCESORA I MIKROKONTROLERA DOTYCZY WŁAŚNIE DWU RÓŻNYCH TYPÓW OBWODÓW SCALONYCH: UKŁAD MIKROPROCESORA ZAWIERA PRAWIE WYŁĄCZNIE CPU (ZWYKLE O POTĘŻNEJ MOCY OBLICZENIOWEJ) GDY MIKROKONTROLER TO JEDNOUKŁADOWY, W PEŁNI AUTONOMICZNY, KOMPLETNY SYSTEM KOMPUTEROWY WYPOSAŻONY W PAMIĘCI DANYCH I PROGRAMÓW ORAZ ZNACZNĄ LICZBĘ UKŁADÓW WEJŚCIA/WYJŚCIA TAKICH JAK LICZNIKI/CZASOMIERZE, PRZETWORNIKI ANALOGOWO-CYFROWE I CYFROWO-ANALOGOWE, INTERFEJSY KOMUNIKACYJNE OBSŁUGUJĄCE RÓŻNE PROTOKOŁY TRANSMISJI DANYCH, KOMPARATORY NAPIĘĆ, STEROWNIKI WYŚWIETLACZY LCD, ORAZ WIELE PORTÓW (GRUP LINII WE/WY). MIKROPROCESOR – „wielki inwalida" MIKROKONTROLER - przykł. AVR RAM RAM
24
Embed
MIKROPROCESORY I MIKROKONTROLERY - Strona główna - …mars.iti.pk.edu.pl/~malecki/MiM2015A-wprowadzenie.pdf · Endianess (Jonathan Swift (1726) – satyryczna powieść „Podróże
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
MIKROPROCESORY I MIKROKONTROLERY
Piotr MALECKI 1/24
TEMAT TEGO WYKŁADU OBEJMUJE OBSZAR GDZIE INFORMATYK SPOTYKA SIĘ Z PODSTAWOWYMI PROBLEMAMI BUDOWY
KOMPUTERÓW. POZNAMY ELEMENTY JEDNOSTKI CENTRALNEJ – CPU (CENTRAL PROCESSOR UNIT) ORAZ ELEMENTY
SKŁADAJĄCE SIĘ NA KOMPLETNY SYSTEM KOMPUTEROWY.
TYTUŁOWE ROZRÓŻNIENIE MIKROPROCESORA I MIKROKONTROLERA DOTYCZY WŁAŚNIE DWU RÓŻNYCH TYPÓW OBWODÓW
SCALONYCH: UKŁAD MIKROPROCESORA ZAWIERA PRAWIE WYŁĄCZNIE CPU (ZWYKLE O POTĘŻNEJ MOCY OBLICZENIOWEJ) GDY
MIKROKONTROLER TO JEDNOUKŁADOWY, W PEŁNI AUTONOMICZNY, KOMPLETNY SYSTEM KOMPUTEROWY WYPOSAŻONY W
PAMIĘCI DANYCH I PROGRAMÓW ORAZ ZNACZNĄ LICZBĘ UKŁADÓW WEJŚCIA/WYJŚCIA TAKICH JAK LICZNIKI/CZASOMIERZE,
PRZETWORNIKI ANALOGOWO-CYFROWE I CYFROWO-ANALOGOWE, INTERFEJSY KOMUNIKACYJNE OBSŁUGUJĄCE RÓŻNE
PROTOKOŁY TRANSMISJI DANYCH, KOMPARATORY NAPIĘĆ, STEROWNIKI WYŚWIETLACZY LCD, ORAZ WIELE PORTÓW (GRUP LINII
WE/WY).
MIKROPROCESOR –
„wielki inwalida" MIKROKONTROLER - przykł. AVR
RA
M
RA
M
MIKROPROCESORY I MIKROKONTROLERY
Piotr MALECKI 2/24
CPU – JEDNOSTKA CENTRALNA TO ZŁOŻONY UKŁAD ELEKTRONICZNY ZDOLNY
DO WYKONYWANIA INSTRUKCJI (KOMEND, ROZKAZÓW),
KTÓRYCH REPERTUAR POZNAMY W TRAKCIE WYKŁADU.
- INSTRUKCJA ZAWIERA KOD OPERACJI, PRZY POMOCY KTÓREJ CPU
PRZETWARZA DANE – ARGUMENTY INSTRUKCJI
- CIĄG INSTRUKCJI (PROGRAM) MAGAZYNOWANY JEST W PAMIĘCI
PROGRAMÓW, SKĄD JEST POBIERANY DO WYKONANIA
Z CZĘSTOTLIWOŚCIĄ ZEGARA TAKTUJĄCEGO PRACĘ CPU.
PRAKTYCZNE POZNANIE MIKROKONTROLERA OZNACZA UMIEJĘTNOŚĆ JEGO
PROGRAMOWANIA. W TYM CELU NALEŻY POZNAĆ REPERTUAR INSTRUKCJI, ZNACZENIE
REJESTRÓW ORAZ FUNKCJE UKŁADÓW WEJŚCIA/WYJŚCIA ZWANYCH TEŻ „WEWNĘTRZNYMI
UKŁADAMI PERYFERYJNYMI”
ZNACZĄCY ROZWÓJ MIKROKONTROLERÓW TRWA OD LAT 80-TYCH XX WIEKU.
ISTNIEJE SZEREG RODZAJÓW MIKROKONTROLERÓW.
SKONCENTRUJEMY SIĘ NA TRZECH TYPACH MIKROKONTROLERÓW:
„RODZINIE” ‘81, RODZINIE AVR ORAZ NA GRUPIE OBECNIE NAJLICZNIEJ PRODUKOWANYCH
MIKROKONTROLERÓW ARM.
MIKROPROCESORY I MIKROKONTROLERY
Piotr MALECKI 3/24
RÓŻNE CECHY BUDOWY TYCH GRUP OKREŚLA SIĘ ICH PRZYNALEŻNOŚCIĄ DO
PEWNYCH „ARCHITEKTUR”. RODZINA ‘51 NALEŻY DO ARCHITEKTURY „CISC”, RODZINY
AVR I ARM TO ARCHITEKTURA „RISC”
CISC a RISC Complex Instruction Set Computer a Reduced Instruction Set Computer
DOSŁOWNE ROZWINIĘCIE TYCH AKRONIMÓW JEST DOSYĆ MYLĄCE, ALE RÓŻNICE TYCH
PRZYKŁADOWE PORÓWNANIE GRUP OPERACJI ARYTMETYCZNYCH PROCESORA ‘51 ORAZ AVR
ILUSTRUJE NAJBARDZIEJ ISTOTNE RÓŻNICE TYCH ARCHITEKTUR:
ZNACZNIE WIĘCEJ REJESTRÓW RISC MOŻE BYĆ DOWOLNYMI ARGUMENTAMI OPERACJI
WIĘKSZOŚĆ OPERACJI RISC WPŁYWA NA USTAWIENIA ZNACZNIKÓW („FLAG”)
WIĘKSZOŚĆ OPERACJI ODNOSI SIĘ DO REJESTRÓW – PAMIĘĆ DANYCH TRAKTOWNA
JEST JAK URZĄDZENIE WEJŚCIA/WYJŚCIA
RÓŻNICE TE ZNACZNIE USPRAWNIAJĄ I UŁATWIAJĄ PROGRAMOWANIE; POZWALAJĄ SKRÓCIĆ
KOD PROGRAMU.
PRZYKŁAD DODAWANIA DWÓCH LICZB CAŁKOWITYCH 16-BITOWYCH DLA –BITOWYCH
PROCESORÓW: [R8,R7] = [R8,R7] + [R6,R5]
CISC RISC
… …
MOV A, R7 ADD R7, R5
ADD A, R5 ADDC R8, R6
MOV R7, A …
MOV A, R8
ADDC A, R6
MOV R7, A
…
MIKROPROCESORY I MIKROKONTROLERY
Piotr MALECKI 7/24
JESZCZE JEDEN PODZIAŁ:
O PROCESORACH, KTÓRYCH PAMIĘCI PROGRAMÓW I PAMIĘCI DANYCH SĄ ODRĘBNYMI URZĄDZENIAMI
MÓWIMY, ŻE NALEŻĄ DO ARCHITEKTURY HARWARDZKIEJ.
JEŚLI PAMIĘĆ DANYCH I PAMIĘĆ PROGRAMÓW RÓŻNI SIĘ TYLKO PRZESTRZENIĄ ADRESOWĄ, TO
MÓWIMY O ARCHITEKTURZE VON NEUMANNA
RODZINY ‘51 I AVR NALEŻĄ DO ARCHITEKTURY HARWARDZKIEJ, WCZEŚNIEJSZE KONSTRUKCJE ARM ( NP.
MODELE CORTEX-M0, CORTEX-M1) BUDOWANE BYŁY W ARCHITEKTURZE VON NEUMANN’A.
MIKROPROCESORY I MIKROKONTROLERY
Piotr MALECKI 8/24
CECHY ARCHITEKTURY HARWARDZKIEJ:
ODRĘBNOŚĆ PAMIĘCI DANYCH I PAMIĘCI KODU OZNACZA, ŻE MAGISTRALE CPU –
PAMIĘĆ SĄ NIEZALEŻNE, MOGĄ MIEĆ RÓŻNE SZYBKOŚCI I SZEROKOŚCI.
W ARCHITEKTURZE ARM TRANSFERY DANYCH I INSTRUKCJI MOGĄ NAWET ODBYWAĆ
SIĘ JEDNOCZEŚNIE.
RODZINA ‘51 JEST PRZYKŁADEM „RYGORYSTYCZNEJ” ARCHITEKTURY
HARWARDZKIEJ. OZNACZA TO, ŻE PROGRAMISTA POZBAWIONY JEST MOŻLIWOŚCI
INGERENCJI W PAMIĘĆ PROGRAMU W TRAKCIE JEGO WYKONYWANIA.
PAMIĘĆ PROGRAMÓW MOŻNA ZMIENIĆ JEDYNIE W TRYBIE ŁADOWANIA.
PRZESYŁANIE DANYCH (przykład instrukcji rodziny ‘51 - „regorystyczny Harward”)
kod dozwolone adresowanie
Kopiuj A <- □ MOV A,Rr A,direct A,@Ri A,#data
Kopiuj Rr <- □ MOV Rr,A Rr,direct Rr,#data
Kopiuj direct <- □ MOV direct,A direct,Rr direct,direct direct,@Ri direct,#data
Kopiuj @Ri <- □ MOV @Ri,A @Ri,direct @Ri,#data
Kopiuj DPTR <- □ MOV DPTR,#data16
Pamięć programu MOVC A,@A+DPTR A,@A+PC
Zewn. pamięć danych MOVX A,@Ri A,@DPTR @Ri,A @DPTR,A
Zamień XCH A,Rr A,direct A,@Ri
Zamień 4 młodsze bity XCHD A,@Ri
Zapisz na stos PUSH direct (SP=SP+1 (SP) <- direct)
Odczytaj ze stosu POP direct (direct <- (SP) SP=SP-1)
MIKROPROCESORY I MIKROKONTROLERY
Piotr MALECKI 9/24
MOVC A,@A+DPTR A,@A+PC Z POPRZEDNIEJ TABELI TO KOMENDA
PRZENIESIENIA BAJTU Z PAMIĘCI KODU
DO AKUMULATORA. TYLE I NIC WIĘCEJ
HARWARDZKIE AVR NIE SĄ JUŻ TAK RYGORYSTYCZNE:
SPM (Z) <= R1:R0 STORE PROGRAM MEMORY !
Każdy rozkaz AVR zajmuje 2 bajty pamięci kodu. Starszy bit to zawartość R1, młodszy R0.
Nie wszystkie modele AVR pozwalają na zapis pojedynczego słowa (2-bajtowego). W niektórych
można wyzerować całą stronę (64K) pamięci kodu i całą załadować za pomocą STM.
ORGANIZACJA PAMIĘCI ARM JEST BARDZO ORYGINALNA - NIEZALEŻNIE OD
FIZYCZNEGO, SPRZĘTOWEGO ROZRÓŻNIENIA TYPÓW I MAGISTRAL PAMIĘCI DANYCH
I PROGRAMÓW SĄ ONE OBJĘTE JEDNĄ WSPÓLNĄ PRZESTRZENIĄ ADRESOWĄ !
MIKROPROCESORY I MIKROKONTROLERY
Piotr MALECKI 10/24
„ZALECANA”
ORGANIZACJA
PAMIĘCI
ARM-CORTEX M3
MOŻNA UMIEŚCIĆ
KOD
W PRZESTRZENI
DANYCH (!)
ALE
PRODUCENT
ODRADZA
MIKROPROCESORY I MIKROKONTROLERY
Piotr MALECKI 11/24
Organizacja wewnętrznej pamięci RAM μkontrolerów rodziny 51
128 bajtów dolnego obszaru wewnętrznej pamięci RAM
128 bajtów górnego obszaru wewnętrznej pamięci RAM
Obszar rejestrów SFR
Adresowanie bezpośrednie i pośrednie
Adresowanie pośrednie zawartością rejestrów
Adresowanie bezpośrednie
00H
07FH
80H
0FFH 0FFH
80H
MIKROPROCESORY I MIKROKONTROLERY
Piotr MALECKI 12/24
Struktura dolnego obszaru pamięci RAM µkontrolerów
R0
R1
R2
R3 R4
R5
R6 R7
Bank 0
0H
7H
BANK 1
BANK 2
BANK 3
Bajty z adresowalnymi bitami
Pamięć ogólnego zastosowania
00 07
7F 78
30H
7FH
8H - 0FH
10H - 17H
18H - 1FH
MIKROPROCESORY I MIKROKONTROLERY
Piotr MALECKI 13/24
SFR – obszar rejestrów specjalnego przeznaczenia wykorzystuje się: ●Jako zapis wszelkich rejestrów sterujących pracą CPU takich jak ACC- akumulator, B – akumulator pomocniczy, PSW - rejestr wskaźników stanu, SP – wskaźnik stosu ... (poza licznikiem rozkazów (PC) i bankami GPR, ●Jako interfejs pomiędzy CPU a urządzeniami peryferyjnymi.
...sterowanie urządzeniami peryferyjnymi poprzez operacje na odpowiadających im
rejestrach pamięci należy do genialnych rozwiązań w konstrukcji procesorów cyfrowych...
Stan wszystkich rejestów SFR po RESET (lub po uruchomieniu procesora) jest zdefiniowany. Jest też udokumentowany w danych technicznych kontrolera.
Programista może zmienić pierwotne (default – niejawne) ustawienia SFR. Np. wskaźnik stosu SP ustawiany jest pierwotnie na (adres) 07H, wskazuje na
R0 pierwszego banku rejestrów ogólnego zastosowania GPR i zwykle przestawiany na odległą lokację.
MIKROPROCESORY I MIKROKONTROLERY
Piotr MALECKI 14/24
TAKTOWANIE MIKROKONTROLERA ●Cykl maszynowy mikrokontrolerów rodziny 51 składa się z sześciu stanów (S1 – S6). Każdy stan trwa dwa okresy sygnału taktującego. Więc jeden cykl maszynowy trwa 12 taktów (okresów) sygnału zegarowego. ●Mikrokontrolery mają wbudowany generator sygnału zegarowego i zewnętrzny rezonator kwarcowy. Dobór rezonatora wyznacza częstotliwość taktowania. Zwykle od kilku do kilkudziesięciu MHz. Później poznamy powody dla popularnej częstości 11.059 MHz. ●Czas wykonywania instrukcji mikrokontrolerów rodziny 51 wynosi jeden, dwa lub 4 cykle maszynowe. (Te 4 cykle odnoszą jedynie do dwóch instrukcji: mnożenie i dzielenia). ●Podział cyklu maszynowego na stany i fazy wynika z potrzeby generacji sygnałów sterujących poszczególnymi etapami wykonywania instrukcji (pobranie z pamięci, zdekodowanie instrukcji, pobranie argumentów, zapis wyniku itp). Np.: stan wyprowadzenia RESET jest testowany w każdym cyklu maszynowym w stanie S5P2.
MIKROPROCESORY I MIKROKONTROLERY
Piotr MALECKI 15/24
ACC.7 ACC.6 ACC.5 ACC.4 ACC.3 ACC.2 ACC.1 ACC.0
CY AC F0 RS1 RS0 OV F1 P
‘51 AKUMULATOR
PSW – PROGRAM STATUS WORD
7 6 5 4 3 2 1 0
CY – carry flag AC – aux. Carry F0, F1 – general purpose RS1, RS0 – reg. bank select
OV – overflow flag P – parity bit
MIKROPROCESORY I MIKROKONTROLERY
Piotr MALECKI 16/24
ARM
MIKROPROCESORY I MIKROKONTROLERY
Piotr MALECKI 17/24
MIKROPROCESORY I MIKROKONTROLERY
Piotr MALECKI 18/24
Endianess (Jonathan Swift (1726) – satyryczna powieść „Podróże Guliwera”)
Stos - SP ‘51, AVR i ARM ! Specjalny sposób używania części pamięci danych